Removed -DGLADE_DATADIR

2001-07-17  Bradford Hovinen  <hovinen@ximian.com>

	* Makefile.am (INCLUDES): Removed -DGLADE_DATADIR

	* capplet-util.c (create_dialog_cb): Use create_widget_cb rather
	than loading from Glade
	(capplet_init): Accept CreateDialogFn and initialize
	create_dialog_cb
	(close_cb): Don't call gtk_object_destroy (dialog)
	(get_control_cb): Rename from create_dialog_cb

	* sound-properties-capplet.c (create_dialog): Implement
	(main): Call glade_gnome_init; pass create_dialog to capplet_init
	(setup_dialog): Retrieve the Glade data from the widget passed to
	this function
	(create_dialog): Make sure dialog is destroyed when widget is

	* Makefile.am (EXTRA_DIST): Changed Applications_DATA to
	Applications_in_files
	(INCLUDES): Add -DGLADE_DATADIR
This commit is contained in:
Bradford Hovinen 2001-07-17 18:34:44 +00:00 committed by Bradford Hovinen (Gdict maintainer)
parent 63fbbec13b
commit 43d56c8e68
7 changed files with 70 additions and 56 deletions

View file

@ -1,3 +1,14 @@
2001-07-17 Bradford Hovinen <hovinen@ximian.com>
* Makefile.am (INCLUDES): Removed -DGLADE_DATADIR
* capplet-util.c (create_dialog_cb): Use create_widget_cb rather
than loading from Glade
(capplet_init): Accept CreateDialogFn and initialize
create_dialog_cb
(close_cb): Don't call gtk_object_destroy (dialog)
(get_control_cb): Rename from create_dialog_cb
2001-07-14 Carlos Perelló Marín <carlos@gnome-db.org> 2001-07-14 Carlos Perelló Marín <carlos@gnome-db.org>
* .cvsignore: ssshhhh * .cvsignore: ssshhhh

View file

@ -4,7 +4,6 @@ INCLUDES = \
-DGNOMELOCALEDIR=\""$(datadir)/locale"\" \ -DGNOMELOCALEDIR=\""$(datadir)/locale"\" \
-DGNOME_ICONDIR=\""${prefix}/share/pixmaps"\" \ -DGNOME_ICONDIR=\""${prefix}/share/pixmaps"\" \
-DG_LOG_DOMAIN=\"capplet-common\" \ -DG_LOG_DOMAIN=\"capplet-common\" \
-DGLADE_DATADIR=\""$(datadir)/control-center/interfaces"\" \
-I$(top_srcdir)/ \ -I$(top_srcdir)/ \
-I$(top_srcdir)/intl \ -I$(top_srcdir)/intl \
@CAPPLET_CFLAGS@ @CAPPLET_CFLAGS@

View file

@ -27,15 +27,13 @@
#include "capplet-util.h" #include "capplet-util.h"
static CreateDialogFn create_dialog_cb = NULL;
static ApplySettingsFn apply_settings_cb = NULL; static ApplySettingsFn apply_settings_cb = NULL;
static SetupPropertyEditorsFn setup_cb = NULL; static SetupPropertyEditorsFn setup_cb = NULL;
static BonoboControl *control = NULL; static BonoboControl *control = NULL;
static GladeXML *dialog;
static GtkWidget *widget; static GtkWidget *widget;
static gchar *glade_filename;
/* apply_cb /* apply_cb
* *
* Callback issued when the user clicks "Apply" or "Ok". This function is * Callback issued when the user clicks "Apply" or "Ok". This function is
@ -102,7 +100,6 @@ set_moniker_cb (BonoboPropertyBag *bag, BonoboArg *arg, guint arg_id,
gchar *full_moniker; gchar *full_moniker;
BonoboPropertyFrame *pf; BonoboPropertyFrame *pf;
Bonobo_PropertyBag proxy; Bonobo_PropertyBag proxy;
GladeXML *dialog;
Bonobo_ConfigDatabase db; Bonobo_ConfigDatabase db;
if (arg_id != 1) return; if (arg_id != 1) return;
@ -113,7 +110,6 @@ set_moniker_cb (BonoboPropertyBag *bag, BonoboArg *arg, guint arg_id,
pf = BONOBO_PROPERTY_FRAME (bonobo_control_get_widget (control)); pf = BONOBO_PROPERTY_FRAME (bonobo_control_get_widget (control));
bonobo_property_frame_set_moniker (pf, full_moniker); bonobo_property_frame_set_moniker (pf, full_moniker);
proxy = BONOBO_OBJREF (pf->proxy); proxy = BONOBO_OBJREF (pf->proxy);
dialog = gtk_object_get_data (GTK_OBJECT (control), "dialog");
db = bonobo_get_object (moniker, "IDL:Bonobo/ConfigDatabase:1.0", ev); db = bonobo_get_object (moniker, "IDL:Bonobo/ConfigDatabase:1.0", ev);
@ -123,7 +119,7 @@ set_moniker_cb (BonoboPropertyBag *bag, BonoboArg *arg, guint arg_id,
gtk_object_set_data (GTK_OBJECT (pf), "config-database", db); gtk_object_set_data (GTK_OBJECT (pf), "config-database", db);
if (setup_cb != NULL) if (setup_cb != NULL)
setup_cb (dialog, proxy); setup_cb (bonobo_control_get_widget (control), proxy);
} }
/* close_cb /* close_cb
@ -136,11 +132,10 @@ set_moniker_cb (BonoboPropertyBag *bag, BonoboArg *arg, guint arg_id,
static void static void
close_cb (void) close_cb (void)
{ {
gtk_object_destroy (GTK_OBJECT (dialog));
control = NULL; control = NULL;
} }
/* create_dialog_cb /* get_control_cb
* *
* Callback to construct the main dialog box for this capplet; invoked by Bonobo * Callback to construct the main dialog box for this capplet; invoked by Bonobo
* whenever capplet activation is requested. Returns a BonoboObject representing * whenever capplet activation is requested. Returns a BonoboObject representing
@ -148,25 +143,16 @@ close_cb (void)
*/ */
static BonoboObject * static BonoboObject *
create_dialog_cb (BonoboPropertyControl *property_control, gint page_number) get_control_cb (BonoboPropertyControl *property_control, gint page_number)
{ {
BonoboPropertyBag *pb; BonoboPropertyBag *pb;
GtkWidget *pf; GtkWidget *pf;
if (control == NULL) { if (control == NULL) {
dialog = glade_xml_new (glade_filename, "prefs_widget"); widget = create_dialog_cb ();
if (dialog == NULL) { if (widget == NULL)
g_critical ("Could not load glade file %s", glade_filename);
return NULL; return NULL;
}
widget = glade_xml_get_widget (dialog, "prefs_widget");
if (widget == NULL) {
g_critical ("Could not find preferences widget");
return NULL;
}
pf = bonobo_property_frame_new (NULL, NULL); pf = bonobo_property_frame_new (NULL, NULL);
gtk_object_set_data (GTK_OBJECT (property_control), gtk_object_set_data (GTK_OBJECT (property_control),
@ -175,7 +161,6 @@ create_dialog_cb (BonoboPropertyControl *property_control, gint page_number)
gtk_widget_show_all (pf); gtk_widget_show_all (pf);
control = bonobo_control_new (pf); control = bonobo_control_new (pf);
gtk_object_set_data (GTK_OBJECT (control), "dialog", dialog);
pb = bonobo_property_bag_new ((BonoboPropertyGetFn) get_moniker_cb, pb = bonobo_property_bag_new ((BonoboPropertyGetFn) get_moniker_cb,
(BonoboPropertySetFn) set_moniker_cb, (BonoboPropertySetFn) set_moniker_cb,
@ -214,7 +199,7 @@ create_control_cb (BonoboGenericFactory *factory, Bonobo_ConfigDatabase db)
CORBA_exception_init (&ev); CORBA_exception_init (&ev);
property_control = bonobo_property_control_new property_control = bonobo_property_control_new
((BonoboPropertyControlGetControlFn) create_dialog_cb, 1, NULL); ((BonoboPropertyControlGetControlFn) get_control_cb, 1, NULL);
gtk_signal_connect (GTK_OBJECT (property_control), "action", gtk_signal_connect (GTK_OBJECT (property_control), "action",
GTK_SIGNAL_FUNC (apply_cb), NULL); GTK_SIGNAL_FUNC (apply_cb), NULL);
@ -246,23 +231,6 @@ get_factory_name (const gchar *binary)
return res; return res;
} }
/* get_glade_filename
*
* Construct the filename of the Glade file from the binary name
*/
static gchar *get_glade_filename (const gchar *binary)
{
gchar *tmp, *tmp1, *res;
tmp = g_strdup (binary);
if ((tmp1 = strstr (tmp, "-capplet")) != NULL) *tmp1 = '\0';
res = g_strconcat (GLADE_DATADIR, "/", tmp, ".glade", NULL);
g_free (tmp);
return res;
}
/* get_default_moniker /* get_default_moniker
* *
* Construct the default moniker for configuration from the binary name * Construct the default moniker for configuration from the binary name
@ -288,6 +256,7 @@ void
capplet_init (int argc, capplet_init (int argc,
char **argv, char **argv,
ApplySettingsFn apply_fn, ApplySettingsFn apply_fn,
CreateDialogFn create_dialog_fn,
SetupPropertyEditorsFn setup_fn, SetupPropertyEditorsFn setup_fn,
GetLegacySettingsFn get_legacy_fn) GetLegacySettingsFn get_legacy_fn)
{ {
@ -313,7 +282,6 @@ capplet_init (int argc,
CORBA_exception_init (&ev); CORBA_exception_init (&ev);
glade_gnome_init ();
gnomelib_register_popt_table (cap_options, _("Capplet options")); gnomelib_register_popt_table (cap_options, _("Capplet options"));
gnome_init_with_popt_table (argv[0], VERSION, argc, argv, gnome_init_with_popt_table (argv[0], VERSION, argc, argv,
oaf_popt_options, 0, NULL); oaf_popt_options, 0, NULL);
@ -338,10 +306,10 @@ capplet_init (int argc,
get_legacy_fn (db); get_legacy_fn (db);
Bonobo_ConfigDatabase_sync (db, &ev); Bonobo_ConfigDatabase_sync (db, &ev);
} else { } else {
create_dialog_cb = create_dialog_fn;
apply_settings_cb = apply_fn; apply_settings_cb = apply_fn;
setup_cb = setup_fn; setup_cb = setup_fn;
factory_iid = get_factory_name (argv[0]); factory_iid = get_factory_name (argv[0]);
glade_filename = get_glade_filename (argv[0]);
factory = bonobo_generic_factory_new factory = bonobo_generic_factory_new
(factory_iid, (BonoboGenericFactoryFn) create_control_cb, db); (factory_iid, (BonoboGenericFactoryFn) create_control_cb, db);
g_free (factory_iid); g_free (factory_iid);

View file

@ -27,8 +27,6 @@
#include <gnome.h> #include <gnome.h>
#include <bonobo.h> #include <bonobo.h>
#include <glade/glade.h>
/* FIXME: We should really have a single bonobo-conf.h header */ /* FIXME: We should really have a single bonobo-conf.h header */
#include <bonobo-conf/bonobo-config-database.h> #include <bonobo-conf/bonobo-config-database.h>
@ -67,8 +65,11 @@
/* Callback to apply the settings in the given database */ /* Callback to apply the settings in the given database */
typedef void (*ApplySettingsFn) (Bonobo_ConfigDatabase db); typedef void (*ApplySettingsFn) (Bonobo_ConfigDatabase db);
/* Callback to set up the dialog proper */
typedef GtkWidget *(*CreateDialogFn) (void);
/* Callback to set up property editors for the dialog */ /* Callback to set up property editors for the dialog */
typedef void (*SetupPropertyEditorsFn) (GladeXML *dialog, Bonobo_PropertyBag bag); typedef void (*SetupPropertyEditorsFn) (GtkWidget *dialog, Bonobo_PropertyBag bag);
/* Callback to retrieve legacy settings and store them in the new configuration /* Callback to retrieve legacy settings and store them in the new configuration
* database */ * database */
@ -82,9 +83,6 @@ typedef void (*GetLegacySettingsFn) (Bonobo_ConfigDatabase db);
* particular convention. In particular, suppose the name of the capplet binary * particular convention. In particular, suppose the name of the capplet binary
* is foo-properties-capplet. Then: * is foo-properties-capplet. Then:
* *
* - The glade file is named foo-properties.glade. It is located in
* $(datadir)/control-center/interfaces. The widget containing the property
* information is called prefs_widget.
* - The factory IID is Bonobo_Control_Capplet_foo_properties_Factory * - The factory IID is Bonobo_Control_Capplet_foo_properties_Factory
* - The default configuration moniker is archiver:foo-properties * - The default configuration moniker is archiver:foo-properties
* *
@ -96,6 +94,7 @@ typedef void (*GetLegacySettingsFn) (Bonobo_ConfigDatabase db);
void capplet_init (int argc, void capplet_init (int argc,
gchar **argv, gchar **argv,
ApplySettingsFn apply_fn, ApplySettingsFn apply_fn,
CreateDialogFn create_dialog_fn,
SetupPropertyEditorsFn setup_property_editors_fn, SetupPropertyEditorsFn setup_property_editors_fn,
GetLegacySettingsFn get_legacy_settings_fn); GetLegacySettingsFn get_legacy_settings_fn);

View file

@ -1,7 +1,14 @@
2001-07-17 Bradford Hovinen <hovinen@ximian.com> 2001-07-17 Bradford Hovinen <hovinen@ximian.com>
* sound-properties-capplet.c (create_dialog): Implement
(main): Call glade_gnome_init; pass create_dialog to capplet_init
(setup_dialog): Retrieve the Glade data from the widget passed to
this function
(create_dialog): Make sure dialog is destroyed when widget is
* Makefile.am (EXTRA_DIST): Changed Applications_DATA to * Makefile.am (EXTRA_DIST): Changed Applications_DATA to
Applications_in_files Applications_in_files
(INCLUDES): Add -DGLADE_DATADIR
* sound-properties-capplet.c (setup_dialog): Sensitize events * sound-properties-capplet.c (setup_dialog): Sensitize events
check box only if ESD is already enabled check box only if ESD is already enabled

View file

@ -23,6 +23,7 @@ EXTRA_DIST = ChangeLog $(Applications_in_files) $(Glade_DATA) $(oaf_DATA) $(defa
INCLUDES = \ INCLUDES = \
-DGNOMELOCALEDIR=\""$(datadir)/locale"\" \ -DGNOMELOCALEDIR=\""$(datadir)/locale"\" \
-DG_LOG_DOMAIN=\"sound-properties\" \ -DG_LOG_DOMAIN=\"sound-properties\" \
-DGLADE_DATADIR=\""$(datadir)/control-center/interfaces"\" \
-I$(top_srcdir)/ \ -I$(top_srcdir)/ \
-I$(top_srcdir)/intl \ -I$(top_srcdir)/intl \
-I$(top_srcdir)/capplets/common \ -I$(top_srcdir)/capplets/common \

View file

@ -27,6 +27,8 @@
#include "capplet-util.h" #include "capplet-util.h"
#include <glade/glade.h>
/* Needed only for the sound capplet */ /* Needed only for the sound capplet */
#include <stdlib.h> #include <stdlib.h>
@ -97,14 +99,40 @@ start_esd (void)
#endif #endif
} }
/* create_dialog
*
* Create the dialog box and return it as a GtkWidget
*/
static GtkWidget *
create_dialog (void)
{
GladeXML *data;
GtkWidget *widget;
data = glade_xml_new (GLADE_DATADIR "/sound-properties.glade", "prefs_widget");
widget = glade_xml_get_widget (data, "prefs_widget");
gtk_object_set_data (GTK_OBJECT (widget), "glade-data", data);
gtk_signal_connect_object (GTK_OBJECT (widget), "destroy",
GTK_SIGNAL_FUNC (gtk_object_destroy),
GTK_OBJECT (data));
return widget;
}
/* setup_dialog /* setup_dialog
* *
* Set up the property editors for our dialog * Set up the property editors for our dialog
*/ */
static void static void
setup_dialog (GladeXML *dialog, Bonobo_PropertyBag bag) setup_dialog (GtkWidget *widget, Bonobo_PropertyBag bag)
{ {
GladeXML *dialog;
dialog = gtk_object_get_data (GTK_OBJECT (widget), "glade-data");
CREATE_PEDITOR (boolean, "enable_esd", "enable_toggle"); CREATE_PEDITOR (boolean, "enable_esd", "enable_toggle");
CREATE_PEDITOR (boolean, "event_sounds", "events_toggle"); CREATE_PEDITOR (boolean, "event_sounds", "events_toggle");
@ -132,7 +160,8 @@ get_legacy_settings (Bonobo_ConfigDatabase db)
int int
main (int argc, char **argv) main (int argc, char **argv)
{ {
capplet_init (argc, argv, apply_settings, setup_dialog, get_legacy_settings); glade_gnome_init ();
capplet_init (argc, argv, apply_settings, create_dialog, setup_dialog, get_legacy_settings);
return 0; return 0;
} }