From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from moh2-ve2.go2.pl ([193.17.41.200]:46751 "EHLO moh2-ve2.go2.pl" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755544Ab2DQApp (ORCPT ); Mon, 16 Apr 2012 20:45:45 -0400 Received: from moh2-ve2.go2.pl (unknown [10.0.0.200]) by moh2-ve2.go2.pl (Postfix) with ESMTP id 475F7DA404F for ; Tue, 17 Apr 2012 02:32:00 +0200 (CEST) Received: from unknown (unknown [10.0.0.142]) by moh2-ve2.go2.pl (Postfix) with SMTP for ; Tue, 17 Apr 2012 02:31:59 +0200 (CEST) Date: Tue, 17 Apr 2012 02:31:55 +0200 From: =?utf-8?B?UmFmYcWCIE11xbx5xYJv?= Subject: [RFC] updating gconfig (patch against kernel 3.2.1) Message-ID: <20120417003155.GA2454@blackspire> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="5mCyUwZo2JvN/JJP" Content-Disposition: inline Content-Transfer-Encoding: 8bit Sender: linux-kbuild-owner@vger.kernel.org List-ID: To: linux-kbuild@vger.kernel.org Cc: mmarek@suse.cz, linux-kernel@vger.kernel.org --5mCyUwZo2JvN/JJP Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Awhile ago, I've been wondering if anybody would be interested in bumping gtk version requirement for gconfig, in order to drop libglade dependency. That, in turn, would make it possible for building it against gtk 3, with a few tweaks. Attached patch is more of an idea, than anything complete. AFAICT, it seems to be working correctly (for the most part) with gtk 2 and is also partially working with gtk3. There's quite a bit of cruft there, as I still haven't figured out how to correctly initialize the initial interface choice (full/split/single). Also, with gtk 3, something isn't working correctly in single/full (split seems fine) and there are odd gtk warnings upon closing - I'll need to look into that. gconf.glade is attached as a new file, as it's a gtkbuilder file now. IIRC, GDK_<> -> GDK_KEY_<> would require at least gtk 2.22, but that could be dealt with a couple #ifdef, other than that, at most 2.14 would be needed. So, if there's any interest, comments are welcome. --5mCyUwZo2JvN/JJP Content-Type: text/plain; charset=us-ascii Content-Disposition: attachment; filename="gconf-no-glade.patch" --- scripts/kconfig/gconf.c 2012-01-05 00:55:44.000000000 +0100 +++ scripts/kconfig/gconf.c 2012-04-17 01:41:52.145427498 +0200 @@ -13,7 +13,6 @@ #include "lkc.h" #include "images.c" -#include #include #include #include @@ -41,15 +40,14 @@ static gboolean show_value = TRUE; static gboolean resizeable = FALSE; static int opt_mode = OPT_NORMAL; -GtkWidget *main_wnd = NULL; +GObject *main_wnd = NULL; GtkWidget *tree1_w = NULL; // left frame GtkWidget *tree2_w = NULL; // right frame -GtkWidget *text_w = NULL; -GtkWidget *hpaned = NULL; -GtkWidget *vpaned = NULL; +GObject *text_w = NULL; +GObject *hpaned = NULL; +GObject *vpaned = NULL; GtkWidget *back_btn = NULL; -GtkWidget *save_btn = NULL; -GtkWidget *save_menu_item = NULL; +GObject *save_action = NULL; GtkTextTag *tag1, *tag2; GdkColor color; @@ -109,20 +107,17 @@ const char *dbg_sym_flags(int val) return buf; } -void replace_button_icon(GladeXML * xml, GdkDrawable * window, - GtkStyle * style, gchar * btn_name, gchar ** xpm) +void replace_button_icon(GtkBuilder * xml, + gchar * btn_name, gchar ** xpm) { - GdkPixmap *pixmap; - GdkBitmap *mask; + GdkPixbuf *pixmap; GtkToolButton *button; GtkWidget *image; - pixmap = gdk_pixmap_create_from_xpm_d(window, &mask, - &style->bg[GTK_STATE_NORMAL], - xpm); + pixmap = gdk_pixbuf_new_from_xpm_data((const char**)xpm); - button = GTK_TOOL_BUTTON(glade_xml_get_widget(xml, btn_name)); - image = gtk_image_new_from_pixmap(pixmap, mask); + button = GTK_TOOL_BUTTON(gtk_builder_get_object(xml, btn_name)); + image = gtk_image_new_from_pixbuf(pixmap); gtk_widget_show(image); gtk_tool_button_set_icon_widget(button, image); } @@ -130,72 +125,97 @@ void replace_button_icon(GladeXML * xml, /* Main Window Initialization */ void init_main_window(const gchar * glade_file) { - GladeXML *xml; - GtkWidget *widget; + GtkBuilder *xml; + GObject *widget; GtkTextBuffer *txtbuf; + /* GtkStyle *style; + GtkUIManager *ui_manager; + GtkActionGroup *action_group; + GtkAccelGroup *accel_group; + */ +#if 0 + const gchar * objects[] = { + "window1", + "textbuffer1", + "quit", + "save-as", + "open", + "save", + /* "gconfig-actions", */ + "gconfig-radio-actions", + "image43", + "image44", + "image45" + }; +#endif + GError *error = NULL; - xml = glade_xml_new(glade_file, "window1", NULL); - if (!xml) - g_error(_("GUI loading failed !\n")); - glade_xml_signal_autoconnect(xml); - - main_wnd = glade_xml_get_widget(xml, "window1"); - hpaned = glade_xml_get_widget(xml, "hpaned1"); - vpaned = glade_xml_get_widget(xml, "vpaned1"); - tree1_w = glade_xml_get_widget(xml, "treeview1"); - tree2_w = glade_xml_get_widget(xml, "treeview2"); - text_w = glade_xml_get_widget(xml, "textview3"); + xml = gtk_builder_new(); + //gtk_builder_add_objects_from_file(xml, glade_file, objects, &error); + gtk_builder_add_from_file(xml, glade_file, &error); + if (error) + g_error(_("GUI loading failed ! %s\n"), error->message); + gtk_builder_connect_signals(xml, NULL); + +/* + ui_manager = gtk_ui_manager_new(); + action_group = (GtkActionGroup*) + gtk_builder_get_object(xml, "gconfig-actions"); + gtk_ui_manager_insert_action_group(ui_manager, action_group, NULL); + accel_group = gtk_ui_manager_get_accel_group(ui_manager); + gtk_window_add_accel_group(GTK_WINDOW(main_wnd), accel_group); +*/ + + main_wnd = gtk_builder_get_object(xml, "window1"); + hpaned = gtk_builder_get_object(xml, "hpaned1"); + vpaned = gtk_builder_get_object(xml, "vpaned1"); + tree1_w = GTK_WIDGET(gtk_builder_get_object(xml, "treeview1")); + tree2_w = GTK_WIDGET(gtk_builder_get_object(xml, "treeview2")); + text_w = gtk_builder_get_object(xml, "textview3"); - back_btn = glade_xml_get_widget(xml, "button1"); + back_btn = GTK_WIDGET(gtk_builder_get_object(xml, "button1")); gtk_widget_set_sensitive(back_btn, FALSE); - widget = glade_xml_get_widget(xml, "show_name1"); + widget = gtk_builder_get_object(xml, "show_name1"); gtk_check_menu_item_set_active((GtkCheckMenuItem *) widget, show_name); - widget = glade_xml_get_widget(xml, "show_range1"); + widget = gtk_builder_get_object(xml, "show_range1"); gtk_check_menu_item_set_active((GtkCheckMenuItem *) widget, show_range); - widget = glade_xml_get_widget(xml, "show_data1"); + widget = gtk_builder_get_object(xml, "show_data1"); gtk_check_menu_item_set_active((GtkCheckMenuItem *) widget, show_value); - save_btn = glade_xml_get_widget(xml, "button3"); - save_menu_item = glade_xml_get_widget(xml, "save1"); + save_action = gtk_builder_get_object(xml, "save"); conf_set_changed_callback(conf_changed); - style = gtk_widget_get_style(main_wnd); - widget = glade_xml_get_widget(xml, "toolbar1"); + /* style = gtk_widget_get_style(main_wnd); */ + widget = gtk_builder_get_object(xml, "toolbar1"); #if 0 /* Use stock Gtk icons instead */ - replace_button_icon(xml, main_wnd->window, style, - "button1", (gchar **) xpm_back); - replace_button_icon(xml, main_wnd->window, style, - "button2", (gchar **) xpm_load); - replace_button_icon(xml, main_wnd->window, style, - "button3", (gchar **) xpm_save); + replace_button_icon(xml, "button1", (gchar **) xpm_back); + replace_button_icon(xml, "button2", (gchar **) xpm_load); + replace_button_icon(xml, "button3", (gchar **) xpm_save); #endif - replace_button_icon(xml, main_wnd->window, style, - "button4", (gchar **) xpm_single_view); - replace_button_icon(xml, main_wnd->window, style, - "button5", (gchar **) xpm_split_view); - replace_button_icon(xml, main_wnd->window, style, - "button6", (gchar **) xpm_tree_view); + replace_button_icon(xml, "button4", (gchar **) xpm_single_view); + replace_button_icon(xml, "button5", (gchar **) xpm_split_view); + replace_button_icon(xml, "button6", (gchar **) xpm_tree_view); #if 0 switch (view_mode) { case SINGLE_VIEW: - widget = glade_xml_get_widget(xml, "button4"); + widget = gtk_builder_get_object(xml, "button4"); g_signal_emit_by_name(widget, "clicked"); break; case SPLIT_VIEW: - widget = glade_xml_get_widget(xml, "button5"); + widget = gtk_builder_get_object(xml, "button5"); g_signal_emit_by_name(widget, "clicked"); break; case FULL_VIEW: - widget = glade_xml_get_widget(xml, "button6"); + widget = gtk_builder_get_object(xml, "button6"); g_signal_emit_by_name(widget, "clicked"); break; } @@ -211,7 +231,7 @@ void init_main_window(const gchar * glad gtk_window_set_title(GTK_WINDOW(main_wnd), rootmenu.prompt->text); - gtk_widget_show(main_wnd); + gtk_widget_show(GTK_WIDGET(main_wnd)); } void init_tree_model(void) @@ -222,7 +242,7 @@ void init_tree_model(void) G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, - G_TYPE_POINTER, GDK_TYPE_COLOR, + G_TYPE_POINTER, G_TYPE_STRING, G_TYPE_BOOLEAN, GDK_TYPE_PIXBUF, G_TYPE_BOOLEAN, G_TYPE_BOOLEAN, G_TYPE_BOOLEAN, G_TYPE_BOOLEAN, @@ -236,7 +256,7 @@ void init_tree_model(void) G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, - G_TYPE_POINTER, GDK_TYPE_COLOR, + G_TYPE_POINTER, G_TYPE_STRING, G_TYPE_BOOLEAN, GDK_TYPE_PIXBUF, G_TYPE_BOOLEAN, G_TYPE_BOOLEAN, G_TYPE_BOOLEAN, G_TYPE_BOOLEAN, @@ -274,7 +294,7 @@ void init_left_tree(void) gtk_tree_view_column_set_attributes(GTK_TREE_VIEW_COLUMN(column), renderer, "text", COL_OPTION, - "foreground-gdk", + "foreground", COL_COLOR, NULL); sel = gtk_tree_view_get_selection(view); @@ -324,32 +344,32 @@ void init_right_tree(void) gtk_tree_view_column_set_attributes(GTK_TREE_VIEW_COLUMN(column), renderer, "text", COL_OPTION, - "foreground-gdk", + "foreground", COL_COLOR, NULL); renderer = gtk_cell_renderer_text_new(); gtk_tree_view_insert_column_with_attributes(view, -1, _("Name"), renderer, "text", COL_NAME, - "foreground-gdk", + "foreground", COL_COLOR, NULL); renderer = gtk_cell_renderer_text_new(); gtk_tree_view_insert_column_with_attributes(view, -1, "N", renderer, "text", COL_NO, - "foreground-gdk", + "foreground", COL_COLOR, NULL); renderer = gtk_cell_renderer_text_new(); gtk_tree_view_insert_column_with_attributes(view, -1, "M", renderer, "text", COL_MOD, - "foreground-gdk", + "foreground", COL_COLOR, NULL); renderer = gtk_cell_renderer_text_new(); gtk_tree_view_insert_column_with_attributes(view, -1, "Y", renderer, "text", COL_YES, - "foreground-gdk", + "foreground", COL_COLOR, NULL); renderer = gtk_cell_renderer_text_new(); gtk_tree_view_insert_column_with_attributes(view, -1, @@ -357,7 +377,7 @@ void init_right_tree(void) "text", COL_VALUE, "editable", COL_EDIT, - "foreground-gdk", + "foreground", COL_COLOR, NULL); g_signal_connect(G_OBJECT(renderer), "edited", G_CALLBACK(renderer_edited), NULL); @@ -436,7 +456,7 @@ static void text_insert_msg(const char * /* Main Windows Callbacks */ -void on_save_activate(GtkMenuItem * menuitem, gpointer user_data); +void on_save_activate(GtkAction * menuitem, gpointer user_data); gboolean on_window1_delete_event(GtkWidget * widget, GdkEvent * event, gpointer user_data) { @@ -461,7 +481,8 @@ gboolean on_window1_delete_event(GtkWidg GTK_RESPONSE_CANCEL); label = gtk_label_new(_("\nSave configuration ?\n")); - gtk_container_add(GTK_CONTAINER(GTK_DIALOG(dialog)->vbox), label); + gtk_container_add(GTK_CONTAINER( + gtk_dialog_get_content_area(GTK_DIALOG(dialog))), label); gtk_widget_show(label); result = gtk_dialog_run(GTK_DIALOG(dialog)); @@ -482,7 +503,7 @@ gboolean on_window1_delete_event(GtkWidg } -void on_window1_destroy(GtkObject * object, gpointer user_data) +void on_window1_destroy(GtkWidget * object, gpointer user_data) { gtk_main_quit(); } @@ -490,15 +511,12 @@ void on_window1_destroy(GtkObject * obje void on_window1_size_request(GtkWidget * widget, - GtkRequisition * requisition, gpointer user_data) + GdkRectangle * allocation, gpointer user_data) { - static gint old_h; - gint w, h; + static gint old_h = -1; + gint h; - if (widget->window == NULL) - gtk_window_get_default_size(GTK_WINDOW(main_wnd), &w, &h); - else - gdk_window_get_size(widget->window, &w, &h); + h = allocation->height; if (h == old_h) return; @@ -512,40 +530,41 @@ on_window1_size_request(GtkWidget * widg static void -load_filename(GtkFileSelection * file_selector, gpointer user_data) +load_filename(GtkWidget * file_selector, gint response, gpointer user_data) { const gchar *fn; - fn = gtk_file_selection_get_filename(GTK_FILE_SELECTION - (user_data)); + if (response == GTK_RESPONSE_ACCEPT) { + fn = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER + (file_selector)); if (conf_read(fn)) text_insert_msg(_("Error"), _("Unable to load configuration !")); else display_tree(&rootmenu); + } + + gtk_widget_destroy(file_selector); } -void on_load1_activate(GtkMenuItem * menuitem, gpointer user_data) +void on_load1_activate(GtkAction * menuitem, gpointer user_data) { GtkWidget *fs; - fs = gtk_file_selection_new(_("Load file...")); - g_signal_connect(GTK_OBJECT(GTK_FILE_SELECTION(fs)->ok_button), - "clicked", - G_CALLBACK(load_filename), (gpointer) fs); - g_signal_connect_swapped(GTK_OBJECT - (GTK_FILE_SELECTION(fs)->ok_button), - "clicked", G_CALLBACK(gtk_widget_destroy), - (gpointer) fs); - g_signal_connect_swapped(GTK_OBJECT - (GTK_FILE_SELECTION(fs)->cancel_button), - "clicked", G_CALLBACK(gtk_widget_destroy), - (gpointer) fs); + fs = gtk_file_chooser_dialog_new(_("Load file..."), + GTK_WINDOW(main_wnd), + GTK_FILE_CHOOSER_ACTION_OPEN, + GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, + GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT, + NULL); + g_signal_connect(G_OBJECT(fs), + "response", + G_CALLBACK(load_filename), NULL); gtk_widget_show(fs); } -void on_save_activate(GtkMenuItem * menuitem, gpointer user_data) +void on_save_activate(GtkAction * menuitem, gpointer user_data) { if (conf_write(NULL)) text_insert_msg(_("Error"), _("Unable to save configuration !")); @@ -553,40 +572,39 @@ void on_save_activate(GtkMenuItem * menu static void -store_filename(GtkFileSelection * file_selector, gpointer user_data) +store_filename(GtkWidget * file_selector, gint response, gpointer user_data) { const gchar *fn; + if (response == GTK_RESPONSE_ACCEPT) { - fn = gtk_file_selection_get_filename(GTK_FILE_SELECTION - (user_data)); + fn = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER + (file_selector)); if (conf_write(fn)) text_insert_msg(_("Error"), _("Unable to save configuration !")); + } - gtk_widget_destroy(GTK_WIDGET(user_data)); + gtk_widget_destroy(user_data); } -void on_save_as1_activate(GtkMenuItem * menuitem, gpointer user_data) +void on_save_as1_activate(GtkAction * menuitem, gpointer user_data) { GtkWidget *fs; - fs = gtk_file_selection_new(_("Save file as...")); - g_signal_connect(GTK_OBJECT(GTK_FILE_SELECTION(fs)->ok_button), - "clicked", - G_CALLBACK(store_filename), (gpointer) fs); - g_signal_connect_swapped(GTK_OBJECT - (GTK_FILE_SELECTION(fs)->ok_button), - "clicked", G_CALLBACK(gtk_widget_destroy), - (gpointer) fs); - g_signal_connect_swapped(GTK_OBJECT - (GTK_FILE_SELECTION(fs)->cancel_button), - "clicked", G_CALLBACK(gtk_widget_destroy), - (gpointer) fs); + fs = gtk_file_chooser_dialog_new(_("Save file as..."), + GTK_WINDOW(main_wnd), + GTK_FILE_CHOOSER_ACTION_SAVE, + GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, + GTK_STOCK_SAVE, GTK_RESPONSE_ACCEPT, + NULL); + g_signal_connect(G_OBJECT(fs), + "response", + G_CALLBACK(store_filename), NULL); gtk_widget_show(fs); } -void on_quit1_activate(GtkMenuItem * menuitem, gpointer user_data) +void on_quit1_activate(GtkAction * menuitem, gpointer user_data) { if (!on_window1_delete_event(NULL, NULL, NULL)) gtk_widget_destroy(GTK_WIDGET(main_wnd)); @@ -597,7 +615,8 @@ void on_show_name1_activate(GtkMenuItem { GtkTreeViewColumn *col; - show_name = GTK_CHECK_MENU_ITEM(menuitem)->active; + show_name = gtk_check_menu_item_get_active( + GTK_CHECK_MENU_ITEM(menuitem)); col = gtk_tree_view_get_column(GTK_TREE_VIEW(tree2_w), COL_NAME); if (col) gtk_tree_view_column_set_visible(col, show_name); @@ -608,7 +627,8 @@ void on_show_range1_activate(GtkMenuItem { GtkTreeViewColumn *col; - show_range = GTK_CHECK_MENU_ITEM(menuitem)->active; + show_range = gtk_check_menu_item_get_active( + GTK_CHECK_MENU_ITEM(menuitem)); col = gtk_tree_view_get_column(GTK_TREE_VIEW(tree2_w), COL_NO); if (col) gtk_tree_view_column_set_visible(col, show_range); @@ -626,7 +646,8 @@ void on_show_data1_activate(GtkMenuItem { GtkTreeViewColumn *col; - show_value = GTK_CHECK_MENU_ITEM(menuitem)->active; + show_value = gtk_check_menu_item_get_active( + GTK_CHECK_MENU_ITEM(menuitem)); col = gtk_tree_view_get_column(GTK_TREE_VIEW(tree2_w), COL_VALUE); if (col) gtk_tree_view_column_set_visible(col, show_value); @@ -683,10 +704,10 @@ void on_introduction1_activate(GtkMenuIt dialog = gtk_message_dialog_new(GTK_WINDOW(main_wnd), GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_INFO, - GTK_BUTTONS_CLOSE, intro_text); - g_signal_connect_swapped(GTK_OBJECT(dialog), "response", + GTK_BUTTONS_CLOSE, "%s", intro_text); + g_signal_connect_swapped(G_OBJECT(dialog), "response", G_CALLBACK(gtk_widget_destroy), - GTK_OBJECT(dialog)); + G_OBJECT(dialog)); gtk_widget_show_all(dialog); } @@ -701,10 +722,10 @@ void on_about1_activate(GtkMenuItem * me dialog = gtk_message_dialog_new(GTK_WINDOW(main_wnd), GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_INFO, - GTK_BUTTONS_CLOSE, about_text); - g_signal_connect_swapped(GTK_OBJECT(dialog), "response", + GTK_BUTTONS_CLOSE, "%s", about_text); + g_signal_connect_swapped(G_OBJECT(dialog), "response", G_CALLBACK(gtk_widget_destroy), - GTK_OBJECT(dialog)); + G_OBJECT(dialog)); gtk_widget_show_all(dialog); } @@ -720,10 +741,10 @@ void on_license1_activate(GtkMenuItem * dialog = gtk_message_dialog_new(GTK_WINDOW(main_wnd), GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_INFO, - GTK_BUTTONS_CLOSE, license_text); - g_signal_connect_swapped(GTK_OBJECT(dialog), "response", + GTK_BUTTONS_CLOSE, "%s", license_text); + g_signal_connect_swapped(G_OBJECT(dialog), "response", G_CALLBACK(gtk_widget_destroy), - GTK_OBJECT(dialog)); + G_OBJECT(dialog)); gtk_widget_show_all(dialog); } @@ -743,13 +764,7 @@ void on_back_clicked(GtkButton * button, } -void on_load_clicked(GtkButton * button, gpointer user_data) -{ - on_load1_activate(NULL, user_data); -} - - -void on_single_clicked(GtkButton * button, gpointer user_data) +void on_single_clicked(GtkAction * button, gpointer user_data) { view_mode = SINGLE_VIEW; gtk_widget_hide(tree1_w); @@ -758,7 +773,7 @@ void on_single_clicked(GtkButton * butto } -void on_split_clicked(GtkButton * button, gpointer user_data) +void on_split_clicked(GtkAction * button, gpointer user_data) { gint w, h; view_mode = SPLIT_VIEW; @@ -774,7 +789,7 @@ void on_split_clicked(GtkButton * button } -void on_full_clicked(GtkButton * button, gpointer user_data) +void on_full_clicked(GtkAction * button, gpointer user_data) { view_mode = FULL_VIEW; gtk_widget_hide(tree1_w); @@ -973,14 +988,14 @@ on_treeview2_key_press_event(GtkWidget * if (path == NULL) return FALSE; - if (event->keyval == GDK_space) { + if (event->keyval == GDK_KEY_space) { if (gtk_tree_view_row_expanded(view, path)) gtk_tree_view_collapse_row(view, path); else gtk_tree_view_expand_row(view, path, FALSE); return TRUE; } - if (event->keyval == GDK_KP_Enter) { + if (event->keyval == GDK_KEY_KP_Enter) { } if (widget == tree1_w) return FALSE; @@ -1186,17 +1201,11 @@ static gchar **fill_row(struct menu *men /* Set the node content with a row of strings */ static void set_node(GtkTreeIter * node, struct menu *menu, gchar ** row) { - GdkColor color; - gboolean success; GdkPixbuf *pix; pix = gdk_pixbuf_new_from_xpm_data((const char **) row[COL_PIXBUF]); - gdk_color_parse(row[COL_COLOR], &color); - gdk_colormap_alloc_colors(gdk_colormap_get_system(), &color, 1, - FALSE, FALSE, &success); - gtk_tree_store_set(tree, node, COL_OPTION, row[COL_OPTION], COL_NAME, row[COL_NAME], @@ -1205,7 +1214,7 @@ static void set_node(GtkTreeIter * node, COL_YES, row[COL_YES], COL_VALUE, row[COL_VALUE], COL_MENU, (gpointer) menu, - COL_COLOR, &color, + COL_COLOR, row[COL_COLOR], COL_EDIT, GPOINTER_TO_INT(row[COL_EDIT]), COL_PIXBUF, pix, COL_PIXVIS, GPOINTER_TO_INT(row[COL_PIXVIS]), @@ -1479,9 +1488,8 @@ int main(int ac, char *av[]) textdomain(PACKAGE); /* GTK stuffs */ - gtk_set_locale(); + setlocale(LC_ALL, ""); gtk_init(&ac, &av); - glade_init(); //add_pixmap_directory (PACKAGE_DATA_DIR "/" PACKAGE "/pixmaps"); //add_pixmap_directory (PACKAGE_SOURCE_DIR "/pixmaps"); @@ -1540,6 +1548,5 @@ int main(int ac, char *av[]) static void conf_changed(void) { bool changed = conf_get_changed(); - gtk_widget_set_sensitive(save_btn, changed); - gtk_widget_set_sensitive(save_menu_item, changed); + gtk_action_set_sensitive((GtkAction*)save_action, changed); } --5mCyUwZo2JvN/JJP Content-Type: text/plain; charset=utf-8 Content-Disposition: attachment; filename="gconf.glade" Content-Transfer-Encoding: 8bit Load a config file gtk-open gtk-quit Full Full view True Split Split view radioaction3 Single Single view radioaction3 Save the config in .config gtk-save False Save the config in a file gtk-save-as True False gtk-dialog-question 1 True False gtk-properties 1 True False gtk-justify-fill 1 Sorry, no help available for this option yet. True False Gtk Kernel Configurator 640 480 True False True False False True False _File True False accelgroup1 open True False Load a config file True True save True False Save the config in .config True True save-as True False Save the config in a file True True True False quit True False True True False True False _Options True False False True False Show name Show _name True False True False Show range (Y/M/N) Show _range True False True False Show value of the option Show _data True True False False True False Show normal options Show normal options True True False True False Show all options Show all _options True set_option_mode1 False True False Show all options with prompts Show all prompt options True set_option_mode1 False True False _Help True False _Introduction False True False True image43 False _About False True False True image44 False _License False True False True image45 False False False 0 True False True False both False True False Goes up of one level (single view) Back True gtk-undo False True True False False open True False Load a config file Load True False True save True False Save a config file Save True False True True False False radioaction1 True False True Single view Single button6 False True radioaction2 True False True Split view Split button6 False True radioaction3 True False True Full view Full True False True True False False False True False Collapse the whole tree in the right frame Collapse True gtk-remove False True False True False Expand the whole tree in the right frame Expand True gtk-add False True False False 1 1 True True True False automatic automatic in True True False False True True True True False automatic automatic in True True True False False True True False never automatic in True True False word textbuffer1 True True True True True True 2 --5mCyUwZo2JvN/JJP--