diff --git a/ChangeLog b/ChangeLog index 90240cd04..06c3c834e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,23 @@ 2000-09-24 Bradford Hovinen + * capplets/new-ui-properties/preferences.c + (preferences_clone): Copy dialog_use_icons field + + * capplets/new-ui-properties/prefs-widget-dialogs.c: Use standard + macro for dialog_icons + + * capplets/new-ui-properties/prefs-widget.h + (struct _widget_desc_t): Remove field prefs_offset + + * capplets/new-ui-properties/preferences.c + (preferences_get_dialog_icons): + (preferences_set_dialog_icons): Implement + + * capplets/new-ui-properties/prefs-widget.c (read_preferences): + (register_callbacks): + (toggled_cb): + (selected_cb): Remove support for direct struct offset manipulation + * capplets/Makefile.am (always_built_SUBDIRS): Change ui-properties to new-ui-properties diff --git a/capplets/ui-properties/preferences.c b/capplets/ui-properties/preferences.c index 8cefe00f5..935a574ca 100644 --- a/capplets/ui-properties/preferences.c +++ b/capplets/ui-properties/preferences.c @@ -112,6 +112,7 @@ preferences_clone (Preferences *prefs) new_prefs = PREFERENCES (object); memcpy (new_prefs->gnome_prefs, prefs->gnome_prefs, sizeof (GnomePreferences)); + new_prefs->dialog_use_icons = prefs->dialog_use_icons; return object; } @@ -623,6 +624,16 @@ preferences_get_mdi_tab_pos (Preferences *prefs) return prefs->gnome_prefs->mdi_tab_pos; } +int +preferences_get_dialog_icons (Preferences *prefs) +{ + g_return_val_if_fail (prefs != NULL, 0); + g_return_val_if_fail (IS_PREFERENCES (prefs), 0); + g_return_val_if_fail (prefs->gnome_prefs != NULL, 0); + + return prefs->dialog_use_icons; +} + void preferences_set_dialog_buttons_style (Preferences *prefs, GtkButtonBoxStyle style) @@ -853,3 +864,13 @@ preferences_set_mdi_tab_pos (Preferences *prefs, GtkPositionType type) prefs->gnome_prefs->mdi_tab_pos = type; } + +void +preferences_set_dialog_icons (Preferences *prefs, int s) +{ + g_return_if_fail (prefs != NULL); + g_return_if_fail (IS_PREFERENCES (prefs)); + g_return_if_fail (prefs->gnome_prefs != NULL); + + prefs->dialog_use_icons = s; +} diff --git a/capplets/ui-properties/preferences.h b/capplets/ui-properties/preferences.h index 2c56c097d..1ee562b01 100644 --- a/capplets/ui-properties/preferences.h +++ b/capplets/ui-properties/preferences.h @@ -95,6 +95,7 @@ GtkWindowType preferences_get_dialog_type (Preferences *prefs); GtkWindowPosition preferences_get_dialog_position (Preferences *prefs); GnomeMDIMode preferences_get_mdi_mode (Preferences *prefs); GtkPositionType preferences_get_mdi_tab_pos (Preferences *prefs); +int preferences_get_dialog_icons (Preferences *prefs); void preferences_set_dialog_buttons_style (Preferences *prefs, GtkButtonBoxStyle); @@ -124,5 +125,6 @@ void preferences_set_mdi_mode (Preferences *prefs, GnomeMDIMode); void preferences_set_mdi_tab_pos (Preferences *prefs, GtkPositionType); +void preferences_set_dialog_icons (Preferences *prefs, int); #endif /* __PREFERENCES_H */ diff --git a/capplets/ui-properties/prefs-widget-dialogs.c b/capplets/ui-properties/prefs-widget-dialogs.c index b7632b5c0..c16275bf2 100644 --- a/capplets/ui-properties/prefs-widget-dialogs.c +++ b/capplets/ui-properties/prefs-widget-dialogs.c @@ -37,8 +37,7 @@ static widget_desc_t widget_desc[] = { WD_OPTION (dialog_position, "dialog_position"), WD_OPTION (dialog_type, "dialog_type"), WD_CHECK (dialog_centered, "dialog_centered"), - { WDTYPE_CHECK, "dialog_icons_toggle", NULL, NULL, - GTK_STRUCT_OFFSET (Preferences, dialog_use_icons) }, + WD_CHECK (dialog_icons, "dialog_icons"), WD_END }; diff --git a/capplets/ui-properties/prefs-widget.c b/capplets/ui-properties/prefs-widget.c index 83e2d1bb3..72e5f7bec 100644 --- a/capplets/ui-properties/prefs-widget.c +++ b/capplets/ui-properties/prefs-widget.c @@ -31,9 +31,6 @@ #define WID(str) (glade_xml_get_widget (prefs_widget->dialog_data, str)) -#define VALUE_AT_OFFSET(st, offset) \ - (*((int *) (((char *) st) + offset))) - enum { ARG_0, ARG_PREFERENCES, @@ -246,7 +243,7 @@ static void read_preferences (PrefsWidget *prefs_widget, Preferences *prefs) { widget_desc_t *widget_desc; - int i, value; + int i; g_return_if_fail (prefs_widget != NULL); g_return_if_fail (IS_PREFS_WIDGET (prefs_widget)); @@ -261,27 +258,21 @@ read_preferences (PrefsWidget *prefs_widget, Preferences *prefs) for (i = 0; widget_desc[i].type != WDTYPE_NONE; i++) { g_return_if_fail (widget_desc[i].name != NULL); - - if (widget_desc[i].get_func) - value = widget_desc[i].get_func (prefs); - else if (widget_desc[i].prefs_offset) - value = VALUE_AT_OFFSET (prefs, - widget_desc[i].prefs_offset); - else - continue; + g_return_if_fail (widget_desc[i].get_func != NULL); + g_return_if_fail (widget_desc[i].set_func != NULL); switch (widget_desc[i].type) { case WDTYPE_CHECK: gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (WID (widget_desc[i].name)), - value); + widget_desc[i].get_func (prefs)); break; case WDTYPE_OPTION: gtk_option_menu_set_history (GTK_OPTION_MENU (WID (widget_desc[i].name)), - value); + widget_desc[i].get_func (prefs)); break; case WDTYPE_NONE: @@ -316,6 +307,8 @@ register_callbacks (PrefsWidget *prefs_widget, GladeXML *dialog_data) for (i = 0; widget_desc[i].type != WDTYPE_NONE; i++) { g_return_if_fail (widget_desc[i].name != NULL); + g_return_if_fail (widget_desc[i].get_func != NULL); + g_return_if_fail (widget_desc[i].set_func != NULL); if (widget_desc[i].type == WDTYPE_OPTION) { menu = glade_xml_get_widget (dialog_data, @@ -388,13 +381,8 @@ toggled_cb (GtkToggleButton *tb, PrefsWidget *prefs_widget) widget_desc = find_widget_desc_with_name (prefs_widget, widget_name); g_return_if_fail (widget_desc != NULL); - if (widget_desc->set_func) - widget_desc->set_func (prefs_widget->prefs, - gtk_toggle_button_get_active (tb)); - else if (widget_desc->prefs_offset) - VALUE_AT_OFFSET (prefs_widget->prefs, - widget_desc->prefs_offset) = - gtk_toggle_button_get_active (tb); + widget_desc->set_func (prefs_widget->prefs, + gtk_toggle_button_get_active (tb)); preferences_changed (prefs_widget->prefs); capplet_widget_state_changed (CAPPLET_WIDGET (prefs_widget), TRUE); @@ -418,11 +406,7 @@ selected_cb (GtkMenuItem *mi, PrefsWidget *prefs_widget) widget_desc = find_widget_desc_with_name (prefs_widget, widget_name); g_return_if_fail (widget_desc != NULL); - if (widget_desc->set_func) - widget_desc->set_func (prefs_widget->prefs, index); - else if (widget_desc->prefs_offset) - VALUE_AT_OFFSET (prefs_widget->prefs, - widget_desc->prefs_offset) = index; + widget_desc->set_func (prefs_widget->prefs, index); preferences_changed (prefs_widget->prefs); capplet_widget_state_changed (CAPPLET_WIDGET (prefs_widget), TRUE); diff --git a/capplets/ui-properties/prefs-widget.h b/capplets/ui-properties/prefs-widget.h index b67a1df9a..fa63d3d07 100644 --- a/capplets/ui-properties/prefs-widget.h +++ b/capplets/ui-properties/prefs-widget.h @@ -42,7 +42,6 @@ struct _widget_desc_t char *name; gint (*get_func) (Preferences *); void (*set_func) (Preferences *, gint); - gint prefs_offset; }; typedef struct _widget_desc_t widget_desc_t; @@ -50,15 +49,13 @@ typedef struct _widget_desc_t widget_desc_t; #define WD_CHECK(name, namestr) \ { WDTYPE_CHECK, namestr "_toggle", \ (gint (*) (Preferences *)) preferences_get_##name, \ - (void (*) (Preferences *, gint)) preferences_set_##name, \ - 0} + (void (*) (Preferences *, gint)) preferences_set_##name } #define WD_OPTION(name, namestr) \ { WDTYPE_OPTION, namestr "_select", \ (gint (*) (Preferences *)) preferences_get_##name, \ - (void (*) (Preferences *, gint)) preferences_set_##name, \ - 0} + (void (*) (Preferences *, gint)) preferences_set_##name } #define WD_END \ - { WDTYPE_NONE, NULL, NULL, NULL, 0 } + { WDTYPE_NONE, NULL, NULL, NULL } /* Preferences widget class proper */ diff --git a/control-center/ChangeLog b/control-center/ChangeLog index 6e6c56dc5..a8edee87d 100644 --- a/control-center/ChangeLog +++ b/control-center/ChangeLog @@ -1,3 +1,8 @@ +2000-08-22 Bradford Hovinen + + * Makefile.am (INCLUDES): Changed SETTINGS_DIR to + $(datadir)/control-center + 2000-08-17 Stanislav Brabec * Makefile.am: Added GNOME_LIBDIR to root_manager_LDADD.