[Gnucash-changes] Track changes to user's toolbar style preference
using the new gconf
David Hampton
hampton at cvs.gnucash.org
Sat Oct 8 17:03:29 EDT 2005
Log Message:
-----------
Track changes to user's toolbar style preference using the new gconf
method.
Tags:
----
gnucash-gnome2-dev
Modified Files:
--------------
gnucash/src/gnome:
window-reconcile.c
Revision Data
-------------
Index: window-reconcile.c
===================================================================
RCS file: /home/cvs/cvsroot/gnucash/src/gnome/window-reconcile.c,v
retrieving revision 1.103.4.13
retrieving revision 1.103.4.14
diff -Lsrc/gnome/window-reconcile.c -Lsrc/gnome/window-reconcile.c -u -r1.103.4.13 -r1.103.4.14
--- src/gnome/window-reconcile.c
+++ src/gnome/window-reconcile.c
@@ -76,7 +76,8 @@
GtkWidget *window; /* The reconcile window */
GtkWidget *toolbar; /* Toolbar widget */
- SCM toolbar_change_cb_id; /* id for toolbar preference change cb */
+ gint toolbar_change_cb_id; /* id for toolbar preference change cb */
+ gint toolbar_change_cb_id2; /* id for toolbar preference change cb */
GtkWidget *starting; /* The starting balance */
GtkWidget *ending; /* The ending balance */
@@ -1377,11 +1378,26 @@
}
static void
-gnc_toolbar_change_cb(void *data)
+gnc_toolbar_change_cb (GConfClient *client,
+ guint cnxn_id,
+ GConfEntry *entry,
+ gpointer data)
{
RecnWindow *recnData = data;
+ GConfValue *value;
+ const gchar *key, *key_tail;
- gnc_recn_refresh_toolbar(recnData);
+ key = gconf_entry_get_key(entry);
+ value = gconf_entry_get_value(entry);
+ if (!key || !value)
+ return;
+
+ key_tail = rindex(key, '/');
+ if (key_tail != NULL)
+ key_tail++;
+ if (strcmp(key_tail, KEY_TOOLBAR_STYLE) == 0) {
+ gnc_recn_refresh_toolbar(recnData);
+ }
}
static GtkWidget *
@@ -1722,7 +1738,6 @@
BonoboDockItemBehavior behavior;
GtkWidget *dock_item;
GtkWidget *toolbar;
- SCM id;
behavior = BONOBO_DOCK_ITEM_BEH_EXCLUSIVE;
if (!gnc_gconf_toolbar_detachable())
@@ -1734,9 +1749,12 @@
gtk_container_set_border_width(GTK_CONTAINER(toolbar), 2);
gtk_container_add(GTK_CONTAINER(dock_item), toolbar);
- id = gnc_register_option_change_callback(gnc_toolbar_change_cb, recnData,
- "General", "Toolbar Buttons");
- recnData->toolbar_change_cb_id = id;
+ recnData->toolbar_change_cb_id =
+ gnc_gconf_add_anon_notification(GCONF_GENERAL,
+ gnc_toolbar_change_cb, recnData);
+ recnData->toolbar_change_cb_id2 =
+ gnc_gconf_add_anon_notification(DESKTOP_GNOME_INTERFACE,
+ gnc_toolbar_change_cb, recnData);
bonobo_dock_add_item (BONOBO_DOCK(dock), BONOBO_DOCK_ITEM(dock_item),
BONOBO_DOCK_TOP, 1, 0, 0, TRUE);
@@ -1921,12 +1939,13 @@
recn_destroy_cb (GtkWidget *w, gpointer data)
{
RecnWindow *recnData = data;
- SCM id;
gnc_unregister_gui_component_by_data (WINDOW_RECONCILE_CM_CLASS, recnData);
- id = recnData->toolbar_change_cb_id;
- gnc_unregister_option_change_callback_id (id);
+ gnc_gconf_remove_anon_notification(GCONF_GENERAL,
+ recnData->toolbar_change_cb_id);
+ gnc_gconf_remove_anon_notification(DESKTOP_GNOME_INTERFACE,
+ recnData->toolbar_change_cb_id2);
if (recnData->delete_refresh)
gnc_resume_gui_refresh ();
More information about the gnucash-changes
mailing list