[gq-commit] gq/src prefs.c,1.34,1.35
Status: Beta
Brought to you by:
sur5r
From: <sta...@us...> - 2003-10-05 22:21:05
|
Update of /cvsroot/gqclient/gq/src In directory sc8-pr-cvs1:/tmp/cvs-serv7500 Modified Files: prefs.c Log Message: * Make the preferences window state persistent * Added a new "GUI" tab to the preferences dialog, allowing what to restore at startup Index: prefs.c =================================================================== RCS file: /cvsroot/gqclient/gq/src/prefs.c,v retrieving revision 1.34 retrieving revision 1.35 diff -C2 -d -r1.34 -r1.35 *** prefs.c 5 Oct 2003 13:45:58 -0000 1.34 --- prefs.c 5 Oct 2003 22:20:58 -0000 1.35 *************** *** 48,51 **** --- 48,52 ---- #include "browse.h" #include "utf8-compat.h" + #include "state.h" struct ldapserver *current_selected_server = NULL; *************** *** 62,65 **** --- 63,67 ---- static void destroy_edit_server_window(GtkWidget *this, gpointer data); + static void create_guitab(GtkWidget *target, GtkWidget *targetwindow); *************** *** 1069,1072 **** --- 1071,1096 ---- config->ldifformat = type; + /* GUI: */ + + /* restore window sizes */ + widget = gtk_object_get_data(GTK_OBJECT(this), "restore_window_sizes"); + config->restore_window_sizes = GTK_TOGGLE_BUTTON(widget)->active ? 1 : 0; + + /* restore window positions */ + widget = gtk_object_get_data(GTK_OBJECT(this), + "restore_window_positions"); + config->restore_window_positions = + GTK_TOGGLE_BUTTON(widget)->active ? 1 : 0; + + /* restore search history */ + widget = gtk_object_get_data(GTK_OBJECT(this), + "restore_search_history"); + config->restore_search_history = + GTK_TOGGLE_BUTTON(widget)->active ? 1 : 0; + + /* restore window sizes */ + widget = gtk_object_get_data(GTK_OBJECT(this), "restore_window_sizes"); + config->restore_window_sizes = GTK_TOGGLE_BUTTON(widget)->active ? 1 : 0; + combo = gtk_object_get_data(GTK_OBJECT(this), "schemaserver"); if(combo) { *************** *** 1086,1094 **** GtkWidget *label, *vbox2; GtkWidget *notebook; ! GtkWidget *vbox_search_options, *vbox_browse_options, *vbox_servers, *vbox_templates, *vbox_ldif; GtkWidget *hbox_buttons, *okbutton, *cancelbutton; ! prefswindow = gtk_window_new(GTK_WINDOW_TOPLEVEL); ! gtk_widget_set_usize(prefswindow, 520, 470); gtk_container_border_width(GTK_CONTAINER(prefswindow), CONTAINER_BORDER_WIDTH); --- 1110,1122 ---- GtkWidget *label, *vbox2; GtkWidget *notebook; ! GtkWidget *vbox_search_options, *vbox_browse_options, *vbox_servers, *vbox_templates, *vbox_ldif, *vbox_gui; GtkWidget *hbox_buttons, *okbutton, *cancelbutton; ! /* prefswindow = gtk_window_new(GTK_WINDOW_TOPLEVEL); */ ! /* gtk_widget_set_usize(prefswindow, 520, 470); */ ! ! prefswindow = stateful_gtk_window_new(GTK_WINDOW_TOPLEVEL, ! "prefswindow", 520, 470); ! gtk_container_border_width(GTK_CONTAINER(prefswindow), CONTAINER_BORDER_WIDTH); *************** *** 1160,1163 **** --- 1188,1203 ---- gtk_notebook_append_page(GTK_NOTEBOOK(notebook), vbox_ldif, label); + + /* GUI tab */ + vbox_gui = gtk_vbox_new(FALSE, 0); + gtk_container_border_width(GTK_CONTAINER(vbox_gui), + CONTAINER_BORDER_WIDTH); + create_guitab(vbox_gui, prefswindow); + gtk_widget_show(vbox_gui); + label = gq_label_new(_("_GUI")); + gtk_widget_show(label); + gtk_notebook_append_page(GTK_NOTEBOOK(notebook), vbox_gui, label); + + /* OK and Cancel buttons outside notebook */ hbox_buttons = gtk_hbutton_box_new(); /* FALSE, 0); */ *************** *** 1618,1621 **** --- 1658,1716 ---- } + + + static void create_guitab(GtkWidget *target, GtkWidget *targetwindow) + { + GtkWidget *persistframe; + GtkWidget *vbox1, *button; + + /* Persistency frame */ + persistframe = gtk_frame_new(_("Persistency")); + gtk_widget_show(persistframe); + gtk_box_pack_start(GTK_BOX(target), persistframe, FALSE, TRUE, 5); + + vbox1 = gtk_vbox_new(FALSE, 0); + gtk_container_border_width(GTK_CONTAINER(vbox1), + CONTAINER_BORDER_WIDTH); + gtk_container_add(GTK_CONTAINER(persistframe), vbox1); + gtk_widget_show(vbox1); + + /* Restore Window Sizes checkbox */ + button = gq_check_button_new_with_label(_("Restore Window Si_zes")); + gtk_object_set_data(GTK_OBJECT(targetwindow), + "restore_window_sizes", button); + if(config->restore_window_sizes) + gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(button), TRUE); + #ifdef OLD_FOCUS_HANDLING + GTK_WIDGET_UNSET_FLAGS(GTK_CHECK_BUTTON(button), GTK_CAN_FOCUS); + #endif + gtk_widget_show(button); + gtk_box_pack_start(GTK_BOX(vbox1), button, FALSE, TRUE, 5); + + /* Restore Window Positions checkbox */ + button = gq_check_button_new_with_label(_("Restore Window Pos_itions")); + gtk_object_set_data(GTK_OBJECT(targetwindow), + "restore_window_positions", button); + if(config->restore_window_positions) + gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(button), TRUE); + #ifdef OLD_FOCUS_HANDLING + GTK_WIDGET_UNSET_FLAGS(GTK_CHECK_BUTTON(button), GTK_CAN_FOCUS); + #endif + gtk_widget_show(button); + gtk_box_pack_start(GTK_BOX(vbox1), button, FALSE, TRUE, 5); + + /* Restore Search History checkbox */ + button = gq_check_button_new_with_label(_("Restore Search _History")); + gtk_object_set_data(GTK_OBJECT(targetwindow), + "restore_search_history", button); + if(config->restore_search_history) + gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(button), TRUE); + #ifdef OLD_FOCUS_HANDLING + GTK_WIDGET_UNSET_FLAGS(GTK_CHECK_BUTTON(button), GTK_CAN_FOCUS); + #endif + gtk_widget_show(button); + gtk_box_pack_start(GTK_BOX(vbox1), button, FALSE, TRUE, 5); + } + |