static void
toolbar_style_cb (GSettings *settings,
                  gchar *key,
                  AppearanceData      *data)
{
    set_toolbar_style (data, g_settings_get_string (settings, key));
}
static void
toolbar_style_cb (GConfPropertyEditor *peditor,
		  gchar               *key,
		  GConfValue          *value,
		  AppearanceData      *data)
{
  set_toolbar_style (data, gconf_value_get_string (value));
}
void
ui_init (AppearanceData *data)
{
  GObject *peditor;
  char *toolbar_style;

  gconf_client_add_dir (data->client, "/desktop/gnome/interface",
			GCONF_CLIENT_PRELOAD_ONELEVEL, NULL);

  peditor = gconf_peditor_new_boolean
    (NULL, "/desktop/gnome/interface/can_change_accels",
     glade_xml_get_widget (data->xml, "menu_accel_toggle"), NULL);

  peditor = gconf_peditor_new_boolean
    (NULL, "/desktop/gnome/interface/menus_have_icons",
     glade_xml_get_widget (data->xml, "menu_icons_toggle"), NULL);
  g_signal_connect (peditor, "value_changed",
		    (GCallback) menus_have_icons_cb, data);

  set_have_icons (data,
    gconf_client_get_bool (data->client,
			   "/desktop/gnome/interface/menus_have_icons",
			   NULL));

  peditor = gconf_peditor_new_combo_box
    (NULL, "/desktop/gnome/interface/toolbar_style",
     glade_xml_get_widget (data->xml, "toolbar_style_select"),
     "conv-to-widget-cb", toolbar_to_widget,
     "conv-from-widget-cb", toolbar_from_widget,
     NULL);
  g_signal_connect (peditor, "value_changed",
		    (GCallback) toolbar_style_cb, data);

  g_signal_connect (glade_xml_get_widget (data->xml, "toolbar_handlebox"),
		    "button_press_event",
		    (GCallback) button_press_block_cb, NULL);

  show_handlebar (data,
    gconf_client_get_bool (data->client,
			   "/desktop/gnome/interface/toolbar_detachable",
			   NULL));

  toolbar_style = gconf_client_get_string
    (data->client,
     "/desktop/gnome/interface/toolbar_style",
     NULL);
  set_toolbar_style (data, toolbar_style);
  g_free (toolbar_style);

  /* no ui for detachable toolbars */
  gconf_client_notify_add (data->client,
			   "/desktop/gnome/interface/toolbar_detachable",
                           (GConfClientNotifyFunc) toolbar_detachable_cb,
                           data, NULL, NULL);
}
void
ui_init (AppearanceData *data)
{
    GtkWidget* widget;

#if GTK_CHECK_VERSION (3, 10, 0)
    GtkWidget* container = appearance_capplet_get_widget(data, "vbox24");

    // Remove menu accels and toolbar style toggles for new GTK versions
    gtk_container_remove((GtkContainer *) container,
                         appearance_capplet_get_widget(data, "menu_accel_toggle"));
    gtk_container_remove((GtkContainer *) container,
                         appearance_capplet_get_widget(data, "hbox11"));
#endif

    widget = appearance_capplet_get_widget(data, "menu_icons_toggle");
    g_settings_bind (data->interface_settings,
                     MENU_ICONS_KEY,
                     G_OBJECT (widget),
                     "active",
                     G_SETTINGS_BIND_DEFAULT);
    g_signal_connect (data->interface_settings, "changed::" MENU_ICONS_KEY,
                      G_CALLBACK (menus_have_icons_cb), data);

    set_have_icons (data,
                    g_settings_get_boolean (data->interface_settings,
                                            MENU_ICONS_KEY));

#if !GTK_CHECK_VERSION (3, 10, 0)
    widget = appearance_capplet_get_widget(data, "menu_accel_toggle");
    g_settings_bind (data->interface_settings,
                     ACCEL_CHANGE_KEY,
                     G_OBJECT (widget),
                     "active",
                     G_SETTINGS_BIND_DEFAULT);

    widget = appearance_capplet_get_widget(data, "toolbar_style_select");
    g_settings_bind_with_mapping (data->interface_settings,
                                  TOOLBAR_STYLE_KEY,
                                  G_OBJECT (widget),
                                  "active",
                                  G_SETTINGS_BIND_DEFAULT,
                                  toolbar_to_widget,
                                  toolbar_from_widget,
                                  data,
                                  NULL);

    g_signal_connect (data->interface_settings, "changed::" TOOLBAR_STYLE_KEY,
                      (GCallback) toolbar_style_cb, data);

    char* toolbar_style;

    toolbar_style = g_settings_get_string
                    (data->interface_settings,
                     TOOLBAR_STYLE_KEY);
    set_toolbar_style (data, toolbar_style);
    g_free (toolbar_style);
#endif

    g_signal_connect (appearance_capplet_get_widget (data, "toolbar_handlebox"),
                      "button_press_event",
                      (GCallback) button_press_block_cb, NULL);

    show_handlebar (data,
                    g_settings_get_boolean (data->interface_settings,
                                            TOOLBAR_DETACHABLE_KEY));

    /* no ui for detachable toolbars */
    g_signal_connect (data->interface_settings,
                      "changed::" TOOLBAR_DETACHABLE_KEY, (GCallback) toolbar_detachable_cb, data);
}