gnome-control-center/capplets/common/bonobo-property-editor-range.c
Bradford Hovinen 4937798114 Remove IMLIB check (GNOMECC_CAPPLETS_DESKTOP_IN_RULE): Add sed expression
2001-07-25  Bradford Hovinen  <hovinen@ximian.com>

	* configure.in: Remove IMLIB check
	(GNOMECC_CAPPLETS_DESKTOP_IN_RULE): Add sed expression to cover
	macro DESKTOP_EXEC_LINE
	(LIBCOMMON_DIR): Add option --enable-bonobo-conf

	* all: Added support for optionally compiling without bonobo-conf enabled
2001-07-25 17:26:17 +00:00

70 lines
1.7 KiB
C

#include <bonobo-conf/bonobo-property-editor.h>
#include <gtk/gtkrange.h>
#include <gtk/gtksignal.h>
#include <bonobo.h>
static void
changed_cb (GtkAdjustment *adj, BonoboPEditor *editor)
{
CORBA_Environment ev;
DynamicAny_DynAny dyn;
BonoboArg *arg;
gulong val;
CORBA_exception_init (&ev);
val = adj->value;
dyn = CORBA_ORB_create_basic_dyn_any (bonobo_orb (), TC_ulong, &ev);
DynamicAny_DynAny_insert_ulong (dyn, val, &ev);
if (BONOBO_EX (&ev) || dyn == NULL)
return;
arg = DynamicAny_DynAny_to_any (dyn, &ev);
bonobo_peditor_set_value (editor, arg, &ev);
bonobo_arg_release (arg);
CORBA_Object_release ((CORBA_Object) dyn, &ev);
CORBA_exception_free (&ev);
}
static void
adj_set_value_cb (BonoboPEditor *editor,
BonoboArg *value,
CORBA_Environment *ev)
{
GtkAdjustment *adj;
gulong v;
adj = gtk_range_get_adjustment (GTK_RANGE (bonobo_peditor_get_widget (editor)));
if (!bonobo_arg_type_is_equal (value->_type, TC_ulong, NULL))
return;
v = BONOBO_ARG_GET_GENERAL (value, TC_ulong, CORBA_unsigned_long, NULL);
gtk_signal_handler_block_by_func (GTK_OBJECT (adj), changed_cb,
editor);
gtk_adjustment_set_value (adj, v);
gtk_signal_handler_unblock_by_func (GTK_OBJECT (adj), changed_cb,
editor);
}
GtkObject* bonobo_peditor_range_construct (GtkWidget *widget)
{
BonoboPEditor *editor;
GtkAdjustment *adj;
g_return_val_if_fail (widget != NULL, NULL);
g_return_val_if_fail (GTK_IS_RANGE (widget), NULL);
editor = bonobo_peditor_construct (widget, adj_set_value_cb, TC_ulong);
adj = gtk_range_get_adjustment (GTK_RANGE (widget));
gtk_signal_connect (GTK_OBJECT (adj), "value_changed",
GTK_SIGNAL_FUNC (changed_cb), editor);
return GTK_OBJECT (editor);
}