diff options
Diffstat (limited to 'capplets/theme-switcher/control/control.c')
-rw-r--r-- | capplets/theme-switcher/control/control.c | 213 |
1 files changed, 0 insertions, 213 deletions
diff --git a/capplets/theme-switcher/control/control.c b/capplets/theme-switcher/control/control.c deleted file mode 100644 index c9b4e3e84..000000000 --- a/capplets/theme-switcher/control/control.c +++ /dev/null @@ -1,213 +0,0 @@ -#include <config.h> -#include <libbonoboui.h> -#include <string.h> - -static gchar* current_theme = NULL; -static gchar **new_rc_files = NULL; - -#define GNOME_PAD_SMALL 4 - -static GtkWidget* -create_form (void) -{ - GtkWidget *widget, *table, *hbox; - GtkWidget *scrolled_window, *menubar, *menu; - GtkListStore *store; - GtkTreeIter iter; - GSList *group; - const gchar *text = _("Eenie Meenie Mynie Moe Catcha Tiger By Its Toe"); - gchar **textarr; - gint i; - gint col = 0, newcol; - - store = gtk_list_store_new (2, G_TYPE_STRING, G_TYPE_STRING); - textarr = g_strsplit (text, " ", -1); - - for (i = 0; textarr && textarr[i]; i++) { - if (!col) { - gtk_list_store_append (store, &iter); - newcol = 1; - } - else - newcol = 0; - - gtk_list_store_set (store, - &iter, - col, textarr[i], - -1); - col = newcol; - } - - table = gtk_table_new (5, 3, FALSE); - - widget = gtk_label_new (_("Selected themes from above will be tested by previewing here.")); - gtk_label_set_justify (GTK_LABEL (widget), GTK_JUSTIFY_LEFT); - gtk_table_attach (GTK_TABLE (table), widget, 0, 3, 0, 1, 0, 0, GNOME_PAD_SMALL, GNOME_PAD_SMALL); - - /* column one */ - widget = gtk_button_new_with_label (_("Sample Button")); - hbox = gtk_hbox_new (FALSE, 0); - gtk_box_pack_start (GTK_BOX (hbox), widget, FALSE, FALSE, 0); - gtk_table_attach (GTK_TABLE (table), hbox, 0, 1, 2, 3, GTK_EXPAND | GTK_FILL, 0, GNOME_PAD_SMALL, GNOME_PAD_SMALL); - widget = gtk_check_button_new_with_label (_("Sample Check Button")); - hbox = gtk_hbox_new (FALSE, 0); - gtk_box_pack_start (GTK_BOX (hbox), widget, FALSE, FALSE, 0); - gtk_table_attach (GTK_TABLE (table), hbox, 0, 1, 3, 4, GTK_EXPAND | GTK_FILL, 0, GNOME_PAD_SMALL, 0); - widget = gtk_entry_new (); - gtk_entry_set_max_length (GTK_ENTRY (widget), 50); - gtk_entry_set_text (GTK_ENTRY (widget), _("Sample Text Entry Field")); - gtk_widget_set_size_request (widget, 70, -1); - hbox = gtk_hbox_new (FALSE, 0); - gtk_box_pack_start (GTK_BOX (hbox), widget, TRUE, TRUE, 0); - gtk_table_attach (GTK_TABLE (table), hbox, 0, 1, 4, 5, GTK_EXPAND | GTK_FILL, 0, GNOME_PAD_SMALL, GNOME_PAD_SMALL); - - /* column two */ - - menubar = gtk_menu_bar_new(); - gtk_table_attach (GTK_TABLE (table), menubar, 1, 2, 2, 3, 0, 0, GNOME_PAD_SMALL, GNOME_PAD_SMALL); - - widget = gtk_menu_item_new_with_label(_("Submenu")); - gtk_menu_shell_append (GTK_MENU_SHELL (menubar), widget); - - menu = gtk_menu_new(); - gtk_menu_item_set_submenu(GTK_MENU_ITEM(widget), menu); - widget = gtk_menu_item_new_with_label(_("Item 1")); - gtk_menu_shell_append (GTK_MENU_SHELL (menu), widget); - widget = gtk_menu_item_new_with_label(_("Another item")); - gtk_menu_shell_append (GTK_MENU_SHELL (menu), widget); - - - widget = gtk_radio_button_new_with_label (NULL, _("Radio Button 1")); - hbox = gtk_hbox_new (FALSE, 0); - gtk_box_pack_start (GTK_BOX (hbox), widget, FALSE, FALSE, 0); - group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (widget)); - gtk_table_attach (GTK_TABLE (table), hbox, 1, 2, 3, 4, GTK_EXPAND | GTK_FILL, 0, 0, 0); - - widget = gtk_radio_button_new_with_label (group, _("Radio Button 2")); - hbox = gtk_hbox_new (FALSE, 0); - gtk_box_pack_start (GTK_BOX (hbox), widget, FALSE, FALSE, 0); - group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (widget)); - gtk_table_attach (GTK_TABLE (table), hbox, 1, 2, 4, 5, GTK_EXPAND | GTK_FILL, 0, 0, 0); - - /* column three */ - scrolled_window = gtk_scrolled_window_new (NULL, NULL); - gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrolled_window), - GTK_SHADOW_ETCHED_IN); - gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW (scrolled_window), - GTK_POLICY_NEVER, GTK_POLICY_ALWAYS); - - gtk_table_attach (GTK_TABLE (table), scrolled_window, 2, 3, 2, 5, GTK_EXPAND | GTK_FILL, 0, GNOME_PAD_SMALL, 0); - - widget = gtk_tree_view_new_with_model (GTK_TREE_MODEL (store)); - gtk_widget_set_size_request (widget, 150, 75); - g_object_unref (store); - - gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (widget), - -1, - _("One"), - gtk_cell_renderer_text_new (), - "text", 0, - NULL); - gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (widget), - -1, - _("Two"), - gtk_cell_renderer_text_new (), - "text", 1, - NULL); - - gtk_container_add (GTK_CONTAINER (scrolled_window), widget); - - return table; -} - -static void -get_prop_cb (BonoboPropertyBag *bag, BonoboArg *arg, guint arg_id, - CORBA_Environment *ev, gpointer data) -{ - BONOBO_ARG_SET_STRING (arg, current_theme); -} - -static void -set_prop_cb (BonoboPropertyBag *bag, const BonoboArg *arg, guint arg_id, - CORBA_Environment *ev, gpointer data) -{ - GtkWidget *form = GTK_WIDGET (data); - - if (!new_rc_files) - { - gchar **rc_files = gtk_rc_get_default_files (); - int i, j; - for (i = 0; rc_files[i] != NULL; i++) - { - } - new_rc_files = g_new0 (gchar *, i + 2); - for (j = 0; j < i; j++) - new_rc_files[j] = g_strdup (rc_files[j]); - current_theme = g_strdup (BONOBO_ARG_GET_STRING (arg)); - new_rc_files[j] = current_theme; - } - else - { - gchar **rc_files = gtk_rc_get_default_files (); - int i; - for (i = 0; rc_files[i] != NULL; i++) - { - if (!strcmp (rc_files[i], current_theme)) - { - g_free (current_theme); - current_theme = g_strdup (BONOBO_ARG_GET_STRING (arg)); - new_rc_files[i] = current_theme; - } - else - { - g_free (new_rc_files[i]); - new_rc_files[i] = g_strdup (rc_files[i]); - } - } - } - - gtk_rc_set_default_files (new_rc_files); - - gtk_rc_reparse_all_for_settings (gtk_settings_get_default (), TRUE); - gtk_widget_reset_rc_styles (form); -} - -BonoboObject * -gnome_theme_preview_new (void) -{ - BonoboPropertyBag *pb; - BonoboControl *control; - GtkWidget *form; - - form = create_form (); - gtk_widget_show_all (form); - - control = bonobo_control_new (form); - pb = bonobo_property_bag_new (get_prop_cb, set_prop_cb, form); - bonobo_property_bag_add (pb, "theme", 0, BONOBO_ARG_STRING, NULL, - "The currently previewed theme", - BONOBO_PROPERTY_READABLE | - BONOBO_PROPERTY_WRITEABLE); - bonobo_control_set_properties (control, BONOBO_OBJREF (pb), NULL); - bonobo_object_unref (BONOBO_OBJECT (pb)); - - return BONOBO_OBJECT (control); -} - -static BonoboObject * -control_factory (BonoboGenericFactory *factory, const char *id, gpointer data) -{ - BonoboObject *object = NULL; - - g_return_val_if_fail (id != NULL, NULL); - - if (!strcmp (id, "OAFIID:GNOME_Theme_Preview")) - object = gnome_theme_preview_new (); - - return object; -} - -BONOBO_ACTIVATION_FACTORY ("OAFIID:GNOME_Theme_PreviewFactory", - "gnome-theme-preview", VERSION, - control_factory, NULL); - |