static void create_properties_dialog(PropertyDialogElements *e) { GtkWidget *base_path_button; static guint base_path_button_handler_id = 0; static guint radio_long_line_handler_id = 0; e->dialog = create_project_dialog(); e->notebook = ui_lookup_widget(e->dialog, "project_notebook"); e->file_name = ui_lookup_widget(e->dialog, "label_project_dialog_filename"); e->name = ui_lookup_widget(e->dialog, "entry_project_dialog_name"); e->description = ui_lookup_widget(e->dialog, "textview_project_dialog_description"); e->base_path = ui_lookup_widget(e->dialog, "entry_project_dialog_base_path"); e->patterns = ui_lookup_widget(e->dialog, "entry_project_dialog_file_patterns"); gtk_entry_set_max_length(GTK_ENTRY(e->name), MAX_NAME_LEN); ui_entry_add_clear_icon(GTK_ENTRY(e->name)); ui_entry_add_clear_icon(GTK_ENTRY(e->base_path)); ui_entry_add_clear_icon(GTK_ENTRY(e->patterns)); /* Workaround for bug in Glade 3.8.1, see comment above signal handler */ if (base_path_button_handler_id == 0) { base_path_button = ui_lookup_widget(e->dialog, "button_project_dialog_base_path"); base_path_button_handler_id = g_signal_connect(base_path_button, "clicked", G_CALLBACK(on_project_properties_base_path_button_clicked), e->base_path); } /* Same as above, should be in Glade but can't due to bug in 3.8.1 */ if (radio_long_line_handler_id == 0) { radio_long_line_handler_id = g_signal_connect(ui_lookup_widget(e->dialog, "radio_long_line_custom_project"), "toggled", G_CALLBACK(on_radio_long_line_custom_toggled), ui_lookup_widget(e->dialog, "spin_long_line_project")); } }
GtkWidget *plugin_configure(GtkDialog *dialog) { GtkWidget *label, *vbox, *combo, *check_type, *check_msgwin, *check_toolbar, *check_editor_menu; #ifdef HAVE_ENCHANT_1_5 GtkWidget *entry_dir, *hbox, *button, *image; #endif vbox = gtk_vbox_new(FALSE, 6); check_type = gtk_check_button_new_with_label(_("Check spelling while typing")); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(check_type), sc_info->check_while_typing); gtk_box_pack_start(GTK_BOX(vbox), check_type, FALSE, FALSE, 6); check_toolbar = gtk_check_button_new_with_label( _("Show toolbar item to toggle spell checking")); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(check_toolbar), sc_info->show_toolbar_item); gtk_box_pack_start(GTK_BOX(vbox), check_toolbar, FALSE, FALSE, 3); check_editor_menu = gtk_check_button_new_with_label( _("Show editor menu item to show spelling suggestions")); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(check_editor_menu), sc_info->show_editor_menu_item); gtk_box_pack_start(GTK_BOX(vbox), check_editor_menu, FALSE, FALSE, 3); check_msgwin = gtk_check_button_new_with_label( _("Print misspelled words and suggestions in the messages window")); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(check_msgwin), sc_info->use_msgwin); gtk_box_pack_start(GTK_BOX(vbox), check_msgwin, FALSE, FALSE, 3); label = gtk_label_new(_("Language to use for the spell check:")); gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 3); combo = gtk_combo_box_text_new(); populate_dict_combo(GTK_COMBO_BOX(combo)); if (sc_info->dicts->len > 20) gtk_combo_box_set_wrap_width(GTK_COMBO_BOX(combo), 3); else if (sc_info->dicts->len > 10) gtk_combo_box_set_wrap_width(GTK_COMBO_BOX(combo), 2); gtk_box_pack_start(GTK_BOX(vbox), combo, FALSE, FALSE, 6); #ifdef HAVE_ENCHANT_1_5 label = gtk_label_new_with_mnemonic(_("_Directory to look for dictionary files:")); gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0); entry_dir = gtk_entry_new(); ui_entry_add_clear_icon(GTK_ENTRY(entry_dir)); gtk_label_set_mnemonic_widget(GTK_LABEL(label), entry_dir); ui_widget_set_tooltip_text(entry_dir, _("Read additional dictionary files from this directory. " "For now, this only works with myspell dictionaries.")); if (NZV(sc_info->dictionary_dir)) gtk_entry_set_text(GTK_ENTRY(entry_dir), sc_info->dictionary_dir); button = gtk_button_new(); g_signal_connect(button, "clicked", G_CALLBACK(dictionary_dir_button_clicked_cb), entry_dir); image = gtk_image_new_from_stock("gtk-open", GTK_ICON_SIZE_BUTTON); gtk_container_add(GTK_CONTAINER(button), image); hbox = gtk_hbox_new(FALSE, 6); gtk_box_pack_start(GTK_BOX(hbox), entry_dir, TRUE, TRUE, 0); gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 0); gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); g_object_set_data(G_OBJECT(dialog), "dict_dir", entry_dir); #endif g_object_set_data(G_OBJECT(dialog), "combo", combo); g_object_set_data(G_OBJECT(dialog), "check_type", check_type); g_object_set_data(G_OBJECT(dialog), "check_msgwin", check_msgwin); g_object_set_data(G_OBJECT(dialog), "check_toolbar", check_toolbar); g_object_set_data(G_OBJECT(dialog), "check_editor_menu", check_editor_menu); g_signal_connect(dialog, "response", G_CALLBACK(configure_response_cb), NULL); gtk_widget_show_all(vbox); return vbox; }
/* TODO: this should be ported to Glade like the project preferences dialog, * then we can get rid of the PropertyDialogElements struct altogether as * widgets pointers can be accessed through ui_lookup_widget(). */ void project_new(void) { GtkWidget *vbox; GtkWidget *table; GtkWidget *image; GtkWidget *button; GtkWidget *bbox; GtkWidget *label; PropertyDialogElements *e; if (! project_ask_close()) return; g_return_if_fail(app->project == NULL); e = g_new0(PropertyDialogElements, 1); e->dialog = gtk_dialog_new_with_buttons(_("New Project"), GTK_WINDOW(main_widgets.window), GTK_DIALOG_DESTROY_WITH_PARENT, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, NULL); gtk_widget_set_name(e->dialog, "GeanyDialogProject"); bbox = gtk_hbox_new(FALSE, 0); button = gtk_button_new(); image = gtk_image_new_from_stock(GTK_STOCK_NEW, GTK_ICON_SIZE_BUTTON); label = gtk_label_new_with_mnemonic(_("C_reate")); gtk_box_pack_start(GTK_BOX(bbox), image, FALSE, FALSE, 3); gtk_box_pack_start(GTK_BOX(bbox), label, FALSE, FALSE, 3); gtk_container_add(GTK_CONTAINER(button), bbox); gtk_dialog_add_action_widget(GTK_DIALOG(e->dialog), button, GTK_RESPONSE_OK); vbox = ui_dialog_vbox_new(GTK_DIALOG(e->dialog)); entries_modified = FALSE; table = gtk_table_new(3, 2, FALSE); gtk_table_set_row_spacings(GTK_TABLE(table), 5); gtk_table_set_col_spacings(GTK_TABLE(table), 10); label = gtk_label_new(_("Name:")); gtk_misc_set_alignment(GTK_MISC(label), 1, 0); e->name = gtk_entry_new(); ui_entry_add_clear_icon(GTK_ENTRY(e->name)); gtk_entry_set_max_length(GTK_ENTRY(e->name), MAX_NAME_LEN); ui_table_add_row(GTK_TABLE(table), 0, label, e->name, NULL); label = gtk_label_new(_("Filename:")); gtk_misc_set_alignment(GTK_MISC(label), 1, 0); e->file_name = gtk_entry_new(); ui_entry_add_clear_icon(GTK_ENTRY(e->file_name)); gtk_entry_set_width_chars(GTK_ENTRY(e->file_name), 30); button = gtk_button_new(); g_signal_connect(button, "clicked", G_CALLBACK(on_file_save_button_clicked), e); image = gtk_image_new_from_stock(GTK_STOCK_OPEN, GTK_ICON_SIZE_BUTTON); gtk_container_add(GTK_CONTAINER(button), image); bbox = gtk_hbox_new(FALSE, 6); gtk_box_pack_start_defaults(GTK_BOX(bbox), e->file_name); gtk_box_pack_start(GTK_BOX(bbox), button, FALSE, FALSE, 0); ui_table_add_row(GTK_TABLE(table), 1, label, bbox, NULL); label = gtk_label_new(_("Base path:")); gtk_misc_set_alignment(GTK_MISC(label), 1, 0); e->base_path = gtk_entry_new(); ui_entry_add_clear_icon(GTK_ENTRY(e->base_path)); gtk_widget_set_tooltip_text(e->base_path, _("Base directory of all files that make up the project. " "This can be a new path, or an existing directory tree. " "You can use paths relative to the project filename.")); bbox = ui_path_box_new(_("Choose Project Base Path"), GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER, GTK_ENTRY(e->base_path)); ui_table_add_row(GTK_TABLE(table), 2, label, bbox, NULL); gtk_container_add(GTK_CONTAINER(vbox), table); /* signals */ g_signal_connect(e->name, "changed", G_CALLBACK(on_name_entry_changed), e); /* run the callback manually to initialise the base_path and file_name fields */ on_name_entry_changed(GTK_EDITABLE(e->name), e); g_signal_connect(e->file_name, "changed", G_CALLBACK(on_entries_changed), e); g_signal_connect(e->base_path, "changed", G_CALLBACK(on_entries_changed), e); gtk_widget_show_all(e->dialog); while (gtk_dialog_run(GTK_DIALOG(e->dialog)) == GTK_RESPONSE_OK) { if (update_config(e, TRUE)) { if (!write_config(TRUE)) SHOW_ERR(_("Project file could not be written")); else { ui_set_statusbar(TRUE, _("Project \"%s\" created."), app->project->name); ui_add_recent_project_file(app->project->file_name); break; } } } gtk_widget_destroy(e->dialog); g_free(e); }
static GtkWidget *create_custom_widget(GtkPrintOperation *operation, gpointer user_data) { /* copied from interface.c */ GtkWidget *page; GtkWidget *frame33; GtkWidget *alignment36; GtkWidget *vbox30; GtkWidget *hbox10; GtkWidget *label203; PrintWidgets *w = user_data; gtk_print_operation_set_custom_tab_label(operation, _("Document Setup")); page = gtk_vbox_new(FALSE, 0); gtk_container_set_border_width(GTK_CONTAINER(page), 5); w->check_print_linenumbers = gtk_check_button_new_with_mnemonic(_("Print line numbers")); gtk_box_pack_start(GTK_BOX(page), w->check_print_linenumbers, FALSE, FALSE, 0); gtk_widget_set_tooltip_text(w->check_print_linenumbers, _("Add line numbers to the printed page")); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w->check_print_linenumbers), printing_prefs.print_line_numbers); w->check_print_pagenumbers = gtk_check_button_new_with_mnemonic(_("Print page numbers")); gtk_box_pack_start(GTK_BOX(page), w->check_print_pagenumbers, FALSE, FALSE, 0); gtk_widget_set_tooltip_text(w->check_print_pagenumbers, _("Add page numbers at the bottom of each page. It takes 2 lines of the page.")); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w->check_print_pagenumbers), printing_prefs.print_page_numbers); w->check_print_pageheader = gtk_check_button_new_with_mnemonic(_("Print page header")); gtk_box_pack_start(GTK_BOX(page), w->check_print_pageheader, FALSE, FALSE, 0); gtk_widget_set_tooltip_text(w->check_print_pageheader, _("Add a little header to every page containing the page number, the filename and the current date (see below). It takes 3 lines of the page.")); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w->check_print_pageheader), printing_prefs.print_page_header); g_signal_connect(w->check_print_pageheader, "toggled", G_CALLBACK(on_page_header_toggled), w); frame33 = gtk_frame_new(NULL); gtk_box_pack_start(GTK_BOX(page), frame33, FALSE, FALSE, 0); gtk_frame_set_label_align(GTK_FRAME(frame33), 0, 0); gtk_frame_set_shadow_type(GTK_FRAME(frame33), GTK_SHADOW_NONE); alignment36 = gtk_alignment_new(0, 0.5, 1, 1); gtk_container_add(GTK_CONTAINER(frame33), alignment36); gtk_alignment_set_padding(GTK_ALIGNMENT(alignment36), 0, 0, 12, 0); vbox30 = gtk_vbox_new(FALSE, 1); gtk_container_add(GTK_CONTAINER(alignment36), vbox30); w->check_print_basename = gtk_check_button_new_with_mnemonic(_("Use the basename of the printed file")); gtk_box_pack_start(GTK_BOX(vbox30), w->check_print_basename, FALSE, FALSE, 0); gtk_widget_set_tooltip_text(w->check_print_basename, _("Print only the basename(without the path) of the printed file")); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w->check_print_basename), printing_prefs.page_header_basename); hbox10 = gtk_hbox_new(FALSE, 5); gtk_box_pack_start(GTK_BOX(vbox30), hbox10, TRUE, TRUE, 0); label203 = gtk_label_new(_("Date format:")); gtk_box_pack_start(GTK_BOX(hbox10), label203, FALSE, FALSE, 0); w->entry_print_dateformat = gtk_entry_new(); ui_entry_add_clear_icon(GTK_ENTRY(w->entry_print_dateformat)); gtk_box_pack_start(GTK_BOX(hbox10), w->entry_print_dateformat, TRUE, TRUE, 0); gtk_widget_set_tooltip_text(w->entry_print_dateformat, _("Specify a format for the date and time stamp which is added to the page header on each page. You can use any conversion specifiers which can be used with the ANSI C strftime function.")); gtk_entry_set_text(GTK_ENTRY(w->entry_print_dateformat), printing_prefs.page_header_datefmt); on_page_header_toggled(GTK_TOGGLE_BUTTON(w->check_print_pageheader), w); gtk_widget_show_all(page); return page; }
static void create_properties_dialog(PropertyDialogElements *e) { GtkWidget *table, *notebook, *build_table; GtkWidget *bbox; GtkWidget *label; GtkWidget *swin; GeanyDocument *doc = document_get_current(); GeanyFiletype *ft = NULL; e->dialog = create_project_dialog(); gtk_window_set_transient_for(GTK_WINDOW(e->dialog), GTK_WINDOW(main_widgets.window)); gtk_window_set_destroy_with_parent(GTK_WINDOW(e->dialog), TRUE); gtk_widget_set_name(e->dialog, "GeanyDialogProject"); ui_entry_add_clear_icon(GTK_ENTRY(ui_lookup_widget(e->dialog, "spin_indent_width"))); table = gtk_table_new(5, 2, FALSE); gtk_container_set_border_width(GTK_CONTAINER(table), 6); gtk_table_set_row_spacings(GTK_TABLE(table), 5); gtk_table_set_col_spacings(GTK_TABLE(table), 10); label = gtk_label_new(_("Filename:")); gtk_table_attach(GTK_TABLE(table), label, 0, 1, 0, 1, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_misc_set_alignment(GTK_MISC(label), 0, 0); e->file_name = gtk_label_new(""); gtk_label_set_selectable(GTK_LABEL(e->file_name), TRUE); gtk_table_attach(GTK_TABLE(table), e->file_name, 1, 2, 0, 1, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_misc_set_alignment(GTK_MISC(e->file_name), 0, 0); label = gtk_label_new(_("Name:")); gtk_table_attach(GTK_TABLE(table), label, 0, 1, 1, 2, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_misc_set_alignment(GTK_MISC(label), 0, 0); e->name = gtk_entry_new(); ui_entry_add_clear_icon(GTK_ENTRY(e->name)); gtk_entry_set_max_length(GTK_ENTRY(e->name), MAX_NAME_LEN); gtk_table_attach(GTK_TABLE(table), e->name, 1, 2, 1, 2, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (0), 0, 0); label = gtk_label_new(_("Description:")); gtk_table_attach(GTK_TABLE(table), label, 0, 1, 2, 3, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (GTK_FILL), 0, 0); gtk_misc_set_alignment(GTK_MISC(label), 0, 0); e->description = gtk_text_view_new(); gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(e->description), GTK_WRAP_WORD); swin = gtk_scrolled_window_new(NULL, NULL); gtk_widget_set_size_request(swin, 250, 80); gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(swin), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(swin), GTK_WIDGET(e->description)); gtk_table_attach(GTK_TABLE(table), swin, 1, 2, 2, 3, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (0), 0, 0); label = gtk_label_new(_("Base path:")); gtk_table_attach(GTK_TABLE(table), label, 0, 1, 3, 4, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_misc_set_alignment(GTK_MISC(label), 0, 0); e->base_path = gtk_entry_new(); ui_entry_add_clear_icon(GTK_ENTRY(e->base_path)); gtk_widget_set_tooltip_text(e->base_path, _("Base directory of all files that make up the project. " "This can be a new path, or an existing directory tree. " "You can use paths relative to the project filename.")); bbox = ui_path_box_new(_("Choose Project Base Path"), GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER, GTK_ENTRY(e->base_path)); gtk_table_attach(GTK_TABLE(table), bbox, 1, 2, 3, 4, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (0), 0, 0); if (doc != NULL) ft = doc->file_type; build_table = build_commands_table(doc, GEANY_BCS_PROJ, &(e->build_properties), ft); gtk_container_set_border_width(GTK_CONTAINER(build_table), 6); label = gtk_label_new(_("Build")); notebook = ui_lookup_widget(e->dialog, "project_notebook"); build_page_num = gtk_notebook_insert_page(GTK_NOTEBOOK(notebook), build_table, label, 2); e->notebook = notebook; g_signal_connect(ui_lookup_widget(e->dialog, "radio_long_line_custom"), "toggled", G_CALLBACK(on_radio_long_line_custom_toggled), ui_lookup_widget(e->dialog, "spin_long_line")); label = gtk_label_new(_("File patterns:")); gtk_table_attach(GTK_TABLE(table), label, 0, 1, 4, 5, (GtkAttachOptions) (GTK_FILL), (GtkAttachOptions) (0), 0, 0); gtk_misc_set_alignment(GTK_MISC(label), 0, 0); e->patterns = gtk_entry_new(); gtk_widget_set_tooltip_text(e->patterns, _("Space separated list of file patterns used for the find in files dialog " "(e.g. *.c *.h)")); gtk_table_attach(GTK_TABLE(table), e->patterns, 1, 2, 4, 5, (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (0), 0, 0); label = gtk_label_new(_("Project")); gtk_notebook_insert_page(GTK_NOTEBOOK(notebook), table, label, 0); build_page_num++; }
static void create_dialog_find_tag(void) { GtkWidget *label, *vbox, *ebox, *entry; GtkSizeGroup *size_group; if (s_ft_dialog.widget) return; s_ft_dialog.widget = gtk_dialog_new_with_buttons( _("Find Tag"), GTK_WINDOW(geany->main_widgets->window), GTK_DIALOG_DESTROY_WITH_PARENT, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, NULL); gtk_dialog_add_button(GTK_DIALOG(s_ft_dialog.widget), "gtk-find", GTK_RESPONSE_ACCEPT); gtk_dialog_set_default_response(GTK_DIALOG(s_ft_dialog.widget), GTK_RESPONSE_ACCEPT); vbox = ui_dialog_vbox_new(GTK_DIALOG(s_ft_dialog.widget)); gtk_box_set_spacing(GTK_BOX(vbox), 9); size_group = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL); label = gtk_label_new(_("Search for:")); gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); gtk_size_group_add_widget(size_group, label); s_ft_dialog.combo = gtk_combo_box_text_new_with_entry(); entry = gtk_bin_get_child(GTK_BIN(s_ft_dialog.combo)); ui_entry_add_clear_icon(GTK_ENTRY(entry)); gtk_entry_set_width_chars(GTK_ENTRY(entry), 40); gtk_label_set_mnemonic_widget(GTK_LABEL(label), entry); ui_entry_add_clear_icon(GTK_ENTRY(entry)); gtk_entry_set_activates_default(GTK_ENTRY(entry), TRUE); ebox = gtk_hbox_new(FALSE, 6); gtk_box_pack_start(GTK_BOX(ebox), label, FALSE, FALSE, 0); gtk_box_pack_start(GTK_BOX(ebox), s_ft_dialog.combo, TRUE, TRUE, 0); gtk_box_pack_start(GTK_BOX(vbox), ebox, TRUE, FALSE, 0); label = gtk_label_new(_("Match type:")); gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); gtk_size_group_add_widget(size_group, label); s_ft_dialog.combo_match = gtk_combo_box_text_new(); gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(s_ft_dialog.combo_match), "exact"); gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(s_ft_dialog.combo_match), "prefix"); gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(s_ft_dialog.combo_match), "pattern"); gtk_combo_box_set_active(GTK_COMBO_BOX(s_ft_dialog.combo_match), 1); gtk_label_set_mnemonic_widget(GTK_LABEL(label), s_ft_dialog.combo_match); ebox = gtk_hbox_new(FALSE, 6); gtk_box_pack_start(GTK_BOX(ebox), label, FALSE, FALSE, 0); gtk_box_pack_start(GTK_BOX(ebox), s_ft_dialog.combo_match, TRUE, TRUE, 0); gtk_box_pack_start(GTK_BOX(vbox), ebox, TRUE, FALSE, 0); label = gtk_label_new(_("Search inside:")); gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); gtk_size_group_add_widget(size_group, label); s_ft_dialog.dir_label = gtk_label_new(""); gtk_misc_set_alignment(GTK_MISC(s_ft_dialog.dir_label), 0, 0.5); ebox = gtk_hbox_new(FALSE, 6); gtk_box_pack_start(GTK_BOX(ebox), label, FALSE, FALSE, 0); gtk_box_pack_start(GTK_BOX(ebox), s_ft_dialog.dir_label, TRUE, TRUE, 0); gtk_box_pack_start(GTK_BOX(vbox), ebox, TRUE, FALSE, 0); s_ft_dialog.case_sensitive = gtk_check_button_new_with_mnemonic(_("C_ase sensitive")); gtk_button_set_focus_on_click(GTK_BUTTON(s_ft_dialog.case_sensitive), FALSE); s_ft_dialog.declaration = gtk_check_button_new_with_mnemonic(_("_Declaration")); gtk_button_set_focus_on_click(GTK_BUTTON(s_ft_dialog.declaration), FALSE); g_object_unref(G_OBJECT(size_group)); /* auto destroy the size group */ gtk_container_add(GTK_CONTAINER(vbox), s_ft_dialog.case_sensitive); gtk_container_add(GTK_CONTAINER(vbox), s_ft_dialog.declaration); gtk_widget_show_all(vbox); }
static gint show_dialog_find_file(gchar *path, gchar **pattern, gboolean *case_sensitive, gboolean *full_path) { gint res; GtkWidget *entry; gchar *selection; GtkSizeGroup *size_group; if (!s_fif_dialog.widget) { GtkWidget *label, *vbox, *ebox; s_fif_dialog.widget = gtk_dialog_new_with_buttons( _("Find File"), GTK_WINDOW(geany->main_widgets->window), GTK_DIALOG_DESTROY_WITH_PARENT, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, NULL); gtk_dialog_add_button(GTK_DIALOG(s_fif_dialog.widget), "gtk-find", GTK_RESPONSE_ACCEPT); gtk_dialog_set_default_response(GTK_DIALOG(s_fif_dialog.widget), GTK_RESPONSE_ACCEPT); vbox = ui_dialog_vbox_new(GTK_DIALOG(s_fif_dialog.widget)); gtk_box_set_spacing(GTK_BOX(vbox), 6); size_group = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL); label = gtk_label_new(_("Search for:")); gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); gtk_size_group_add_widget(size_group, label); s_fif_dialog.combo = gtk_combo_box_text_new_with_entry(); entry = gtk_bin_get_child(GTK_BIN(s_fif_dialog.combo)); gtk_entry_set_width_chars(GTK_ENTRY(entry), 40); gtk_label_set_mnemonic_widget(GTK_LABEL(label), entry); ui_entry_add_clear_icon(GTK_ENTRY(entry)); gtk_entry_set_activates_default(GTK_ENTRY(entry), TRUE); ebox = gtk_hbox_new(FALSE, 6); gtk_box_pack_start(GTK_BOX(ebox), label, FALSE, FALSE, 0); gtk_box_pack_start(GTK_BOX(ebox), s_fif_dialog.combo, TRUE, TRUE, 0); gtk_box_pack_start(GTK_BOX(vbox), ebox, TRUE, FALSE, 0); label = gtk_label_new(_("Search inside:")); gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); gtk_size_group_add_widget(size_group, label); s_fif_dialog.dir_label = gtk_label_new(""); gtk_misc_set_alignment(GTK_MISC(s_fif_dialog.dir_label), 0, 0.5); ebox = gtk_hbox_new(FALSE, 6); gtk_box_pack_start(GTK_BOX(ebox), label, FALSE, FALSE, 0); gtk_box_pack_start(GTK_BOX(ebox), s_fif_dialog.dir_label, TRUE, TRUE, 0); gtk_box_pack_start(GTK_BOX(vbox), ebox, TRUE, FALSE, 0); s_fif_dialog.case_sensitive = gtk_check_button_new_with_mnemonic(_("C_ase sensitive")); gtk_button_set_focus_on_click(GTK_BUTTON(s_fif_dialog.case_sensitive), FALSE); s_fif_dialog.full_path = gtk_check_button_new_with_mnemonic(_("Search in full path")); gtk_button_set_focus_on_click(GTK_BUTTON(s_fif_dialog.full_path), FALSE); gtk_box_pack_start(GTK_BOX(vbox), s_fif_dialog.case_sensitive, TRUE, FALSE, 0); gtk_box_pack_start(GTK_BOX(vbox), s_fif_dialog.full_path, TRUE, FALSE, 0); gtk_widget_show_all(vbox); } if (path) gtk_label_set_text(GTK_LABEL(s_fif_dialog.dir_label), path); else gtk_label_set_text(GTK_LABEL(s_fif_dialog.dir_label), _("project or external directory")); entry = gtk_bin_get_child(GTK_BIN(s_fif_dialog.combo)); selection = get_selection(); if (selection) gtk_entry_set_text(GTK_ENTRY(entry), selection); g_free(selection); gtk_widget_grab_focus(entry); res = gtk_dialog_run(GTK_DIALOG(s_fif_dialog.widget)); if (res == GTK_RESPONSE_ACCEPT) { const gchar *str; str = gtk_entry_get_text(GTK_ENTRY(entry)); *pattern = g_strconcat("*", str, "*", NULL); *case_sensitive = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(s_fif_dialog.case_sensitive)); *full_path = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(s_fif_dialog.full_path)); ui_combo_box_add_to_history(GTK_COMBO_BOX_TEXT(s_fif_dialog.combo), str, 0); } gtk_widget_hide(s_fif_dialog.widget); return res; }
gint gprj_project_add_properties_tab(GtkWidget *notebook) { GtkWidget *vbox, *hbox, *hbox1; GtkWidget *table; GtkWidget *label; gchar *str; gint page_index; e = g_new0(PropertyDialogElements, 1); vbox = gtk_vbox_new(FALSE, 0); table = gtk_table_new(3, 2, FALSE); gtk_table_set_row_spacings(GTK_TABLE(table), 5); gtk_table_set_col_spacings(GTK_TABLE(table), 10); label = gtk_label_new(_("Source patterns:")); gtk_misc_set_alignment(GTK_MISC(label), 0, 0); e->source_patterns = gtk_entry_new(); ui_table_add_row(GTK_TABLE(table), 0, label, e->source_patterns, NULL); ui_entry_add_clear_icon(GTK_ENTRY(e->source_patterns)); ui_widget_set_tooltip_text(e->source_patterns, _("Space separated list of patterns that are used to identify source files.")); str = g_strjoinv(" ", g_prj->source_patterns); gtk_entry_set_text(GTK_ENTRY(e->source_patterns), str); g_free(str); label = gtk_label_new(_("Header patterns:")); gtk_misc_set_alignment(GTK_MISC(label), 0, 0); e->header_patterns = gtk_entry_new(); ui_entry_add_clear_icon(GTK_ENTRY(e->header_patterns)); ui_table_add_row(GTK_TABLE(table), 1, label, e->header_patterns, NULL); ui_widget_set_tooltip_text(e->header_patterns, _("Space separated list of patterns that are used to identify headers. " "Used mainly for header/source swapping.")); str = g_strjoinv(" ", g_prj->header_patterns); gtk_entry_set_text(GTK_ENTRY(e->header_patterns), str); g_free(str); label = gtk_label_new(_("Ignored dirs patterns:")); gtk_misc_set_alignment(GTK_MISC(label), 0, 0); e->ignored_dirs_patterns = gtk_entry_new(); ui_entry_add_clear_icon(GTK_ENTRY(e->ignored_dirs_patterns)); ui_table_add_row(GTK_TABLE(table), 2, label, e->ignored_dirs_patterns, NULL); ui_widget_set_tooltip_text(e->ignored_dirs_patterns, _("Space separated list of patterns that are used to identify directories " "that are not scanned for source files.")); str = g_strjoinv(" ", g_prj->ignored_dirs_patterns); gtk_entry_set_text(GTK_ENTRY(e->ignored_dirs_patterns), str); g_free(str); gtk_box_pack_start(GTK_BOX(vbox), table, FALSE, FALSE, 6); e->generate_tags = gtk_check_button_new_with_label(_("Generate tags for all project files")); ui_widget_set_tooltip_text(e->generate_tags, _("Generate tag list for all project files instead of only for the currently opened files. " "Too slow for big projects (>1000 files) and should be disabled in this case.")); gtk_box_pack_start(GTK_BOX(vbox), e->generate_tags, FALSE, FALSE, 6); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(e->generate_tags), g_prj->generate_tags); hbox1 = gtk_hbox_new(FALSE, 0); label = gtk_label_new(_("Note: set the patterns of files belonging to the project under the Project tab.")); gtk_box_pack_start(GTK_BOX(hbox1), label, FALSE, FALSE, 0); gtk_box_pack_start(GTK_BOX(vbox), hbox1, FALSE, FALSE, 6); label = gtk_label_new(_("GProject")); hbox = gtk_hbox_new(FALSE, 0); gtk_box_pack_start(GTK_BOX(hbox), vbox, TRUE, TRUE, 6); page_index = gtk_notebook_append_page(GTK_NOTEBOOK(notebook), hbox, label); gtk_widget_show_all(notebook); return page_index; }
GtkWidget *plugin_configure(GtkDialog *dialog) { GtkWidget *label_language, *label_dir, *vbox; GtkWidget *combo, *check_type, *check_on_open, *check_msgwin, *check_toolbar; GtkWidget *frame_editor_menu, *check_editor_menu; GtkWidget *check_editor_menu_sub_menu, *align_editor_menu_sub_menu; GtkWidget *vbox_interface, *frame_interface, *label_interface; GtkWidget *vbox_behavior, *frame_behavior, *label_behavior; #ifdef HAVE_ENCHANT_1_5 GtkWidget *entry_dir, *hbox, *button, *image; #endif vbox = gtk_vbox_new(FALSE, 6); check_toolbar = gtk_check_button_new_with_label( _("Show toolbar item to toggle spell checking")); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(check_toolbar), sc_info->show_toolbar_item); check_editor_menu = gtk_check_button_new_with_label( _("Show editor menu item to show spelling suggestions")); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(check_editor_menu), sc_info->show_editor_menu_item); check_editor_menu_sub_menu = gtk_check_button_new_with_label( _("Show suggestions in a sub menu of the editor menu")); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(check_editor_menu_sub_menu), sc_info->show_editor_menu_item_sub_menu); align_editor_menu_sub_menu = gtk_alignment_new(0.5, 0.5, 1, 1); gtk_alignment_set_padding(GTK_ALIGNMENT(align_editor_menu_sub_menu), 0, 0, 9, 0); gtk_container_add(GTK_CONTAINER(align_editor_menu_sub_menu), check_editor_menu_sub_menu); frame_editor_menu = gtk_frame_new(NULL); gtk_frame_set_label_widget(GTK_FRAME(frame_editor_menu), check_editor_menu); gtk_container_set_border_width(GTK_CONTAINER(frame_editor_menu), 3); gtk_container_add(GTK_CONTAINER(frame_editor_menu), align_editor_menu_sub_menu); g_signal_connect(check_editor_menu, "toggled", G_CALLBACK(configure_frame_editor_menu_toggled_cb), dialog); check_msgwin = gtk_check_button_new_with_label( _("Print misspelled words and suggestions in the messages window")); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(check_msgwin), sc_info->use_msgwin); vbox_interface = gtk_vbox_new(FALSE, 0); gtk_box_pack_start(GTK_BOX(vbox_interface), check_toolbar, FALSE, FALSE, 3); gtk_box_pack_start(GTK_BOX(vbox_interface), frame_editor_menu, TRUE, TRUE, 3); gtk_box_pack_start(GTK_BOX(vbox_interface), check_msgwin, TRUE, TRUE, 3); label_interface = gtk_label_new(NULL); gtk_label_set_use_markup(GTK_LABEL(label_interface), TRUE); gtk_label_set_markup(GTK_LABEL(label_interface), _("<b>Interface</b>")); frame_interface = gtk_frame_new(NULL); gtk_frame_set_label_widget(GTK_FRAME(frame_interface), label_interface); gtk_container_add(GTK_CONTAINER(frame_interface), vbox_interface); gtk_box_pack_start(GTK_BOX(vbox), frame_interface, FALSE, FALSE, 3); check_type = gtk_check_button_new_with_label(_("Check spelling while typing")); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(check_type), sc_info->check_while_typing); check_on_open = gtk_check_button_new_with_label(_("Check spelling when opening a document")); gtk_widget_set_tooltip_text(check_on_open, _("Enabling this option will check every document after it is opened in Geany. " "Reloading a document will also trigger a re-check.")); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(check_on_open), sc_info->check_on_document_open); label_language = gtk_label_new(_("Language to use for the spell check:")); gtk_misc_set_alignment(GTK_MISC(label_language), 0, 0.5); combo = gtk_combo_box_text_new(); populate_dict_combo(GTK_COMBO_BOX(combo)); if (sc_info->dicts->len > 20) gtk_combo_box_set_wrap_width(GTK_COMBO_BOX(combo), 3); else if (sc_info->dicts->len > 10) gtk_combo_box_set_wrap_width(GTK_COMBO_BOX(combo), 2); #ifdef HAVE_ENCHANT_1_5 label_dir = gtk_label_new_with_mnemonic(_("_Directory to look for dictionary files:")); gtk_misc_set_alignment(GTK_MISC(label_dir), 0, 0.5); entry_dir = gtk_entry_new(); ui_entry_add_clear_icon(GTK_ENTRY(entry_dir)); gtk_label_set_mnemonic_widget(GTK_LABEL(label_dir), entry_dir); gtk_widget_set_tooltip_text(entry_dir, _("Read additional dictionary files from this directory. " "For now, this only works with myspell dictionaries.")); if (! EMPTY(sc_info->dictionary_dir)) gtk_entry_set_text(GTK_ENTRY(entry_dir), sc_info->dictionary_dir); button = gtk_button_new(); g_signal_connect(button, "clicked", G_CALLBACK(dictionary_dir_button_clicked_cb), entry_dir); image = gtk_image_new_from_stock("gtk-open", GTK_ICON_SIZE_BUTTON); gtk_container_add(GTK_CONTAINER(button), image); hbox = gtk_hbox_new(FALSE, 6); gtk_box_pack_start(GTK_BOX(hbox), entry_dir, TRUE, TRUE, 0); gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 0); g_object_set_data(G_OBJECT(dialog), "dict_dir", entry_dir); #endif vbox_behavior = gtk_vbox_new(FALSE, 0); gtk_box_pack_start(GTK_BOX(vbox_behavior), check_type, FALSE, FALSE, 3); gtk_box_pack_start(GTK_BOX(vbox_behavior), check_on_open, TRUE, TRUE, 3); gtk_box_pack_start(GTK_BOX(vbox_behavior), label_language, TRUE, TRUE, 3); gtk_box_pack_start(GTK_BOX(vbox_behavior), combo, TRUE, TRUE, 3); #ifdef HAVE_ENCHANT_1_5 gtk_box_pack_start(GTK_BOX(vbox_behavior), label_dir, TRUE, TRUE, 3); gtk_box_pack_start(GTK_BOX(vbox_behavior), hbox, TRUE, TRUE, 3); #endif label_behavior = gtk_label_new(NULL); gtk_label_set_use_markup(GTK_LABEL(label_behavior), TRUE); gtk_label_set_markup(GTK_LABEL(label_behavior), _("<b>Behavior</b>")); frame_behavior = gtk_frame_new(NULL); gtk_frame_set_label_widget(GTK_FRAME(frame_behavior), label_behavior); gtk_container_add(GTK_CONTAINER(frame_behavior), vbox_behavior); gtk_box_pack_start(GTK_BOX(vbox), frame_behavior, FALSE, FALSE, 3); g_object_set_data(G_OBJECT(dialog), "combo", combo); g_object_set_data(G_OBJECT(dialog), "check_type", check_type); g_object_set_data(G_OBJECT(dialog), "check_on_open", check_on_open); g_object_set_data(G_OBJECT(dialog), "check_msgwin", check_msgwin); g_object_set_data(G_OBJECT(dialog), "check_toolbar", check_toolbar); g_object_set_data(G_OBJECT(dialog), "check_editor_menu", check_editor_menu); g_object_set_data(G_OBJECT(dialog), "check_editor_menu_sub_menu", check_editor_menu_sub_menu); g_signal_connect(dialog, "response", G_CALLBACK(configure_response_cb), NULL); configure_frame_editor_menu_toggled_cb(GTK_TOGGLE_BUTTON(check_editor_menu), dialog); gtk_widget_show_all(vbox); return vbox; }
GtkWidget *plugin_configure(GtkDialog *dialog) { GtkWidget *vbox, *check_openuri, *check_tasks, *check_systray; GtkWidget *check_doclist, *vbox_doclist, *frame_doclist; GtkWidget *radio_doclist_name, *radio_doclist_occurrence; GtkWidget *check_bookmarklist, *check_markword, *frame_tasks, *vbox_tasks; GtkWidget *check_tasks_scan_mode, *entry_tasks_tokens, *label_tasks_tokens, *tokens_hbox; GtkWidget *check_blanklines, *check_xmltagging; vbox = gtk_vbox_new(FALSE, 6); check_doclist = gtk_check_button_new_with_label( _("Show toolbar item to show a list of currently open documents")); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(check_doclist), ao_info->enable_doclist); g_signal_connect(check_doclist, "toggled", G_CALLBACK(ao_configure_doclist_toggled_cb), dialog); radio_doclist_name = gtk_radio_button_new_with_mnemonic(NULL, _("Sort documents by _name")); ui_widget_set_tooltip_text(radio_doclist_name, _("Sort the documents in the list by their filename")); radio_doclist_occurrence = gtk_radio_button_new_with_mnemonic_from_widget( GTK_RADIO_BUTTON(radio_doclist_name), _("Sort documents by _occurrence")); ui_widget_set_tooltip_text(radio_doclist_name, _("Sort the documents in the order of the document tabs")); if (ao_info->doclist_sort_mode == DOCLIST_SORT_BY_NAME) gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(radio_doclist_name), TRUE); else gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(radio_doclist_occurrence), TRUE); vbox_doclist = gtk_vbox_new(FALSE, 0); gtk_box_pack_start(GTK_BOX(vbox_doclist), radio_doclist_name, FALSE, FALSE, 3); gtk_box_pack_start(GTK_BOX(vbox_doclist), radio_doclist_occurrence, TRUE, TRUE, 3); frame_doclist = gtk_frame_new(NULL); gtk_frame_set_label_widget(GTK_FRAME(frame_doclist), check_doclist); gtk_container_add(GTK_CONTAINER(frame_doclist), vbox_doclist); gtk_box_pack_start(GTK_BOX(vbox), frame_doclist, FALSE, FALSE, 3); check_openuri = gtk_check_button_new_with_label( /* TODO fix the string */ _("Show a 'Open URI' menu item in the editor menu")); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(check_openuri), ao_info->enable_openuri); gtk_box_pack_start(GTK_BOX(vbox), check_openuri, FALSE, FALSE, 3); check_tasks = gtk_check_button_new_with_label( _("Show available Tasks in the Messages Window")); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(check_tasks), ao_info->enable_tasks); g_signal_connect(check_tasks, "toggled", G_CALLBACK(ao_configure_tasks_toggled_cb), dialog); check_tasks_scan_mode = gtk_check_button_new_with_label( _("Show tasks of all documents")); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(check_tasks_scan_mode), ao_info->tasks_scan_all_documents); ui_widget_set_tooltip_text(check_tasks_scan_mode, _("Whether to show the tasks of all open documents in the list or only those of the current document.")); entry_tasks_tokens = gtk_entry_new(); if (NZV(ao_info->tasks_token_list)) gtk_entry_set_text(GTK_ENTRY(entry_tasks_tokens), ao_info->tasks_token_list); ui_entry_add_clear_icon(GTK_ENTRY(entry_tasks_tokens)); ui_widget_set_tooltip_text(entry_tasks_tokens, _("Specify a semicolon separated list of search tokens.")); label_tasks_tokens = gtk_label_new_with_mnemonic(_("Search tokens:")); gtk_label_set_mnemonic_widget(GTK_LABEL(label_tasks_tokens), entry_tasks_tokens); tokens_hbox = gtk_hbox_new(FALSE, 0); gtk_box_pack_start(GTK_BOX(tokens_hbox), label_tasks_tokens, FALSE, FALSE, 3); gtk_box_pack_start(GTK_BOX(tokens_hbox), entry_tasks_tokens, TRUE, TRUE, 3); vbox_tasks = gtk_vbox_new(FALSE, 0); gtk_box_pack_start(GTK_BOX(vbox_tasks), check_tasks_scan_mode, FALSE, FALSE, 3); gtk_box_pack_start(GTK_BOX(vbox_tasks), tokens_hbox, TRUE, TRUE, 3); frame_tasks = gtk_frame_new(NULL); gtk_frame_set_label_widget(GTK_FRAME(frame_tasks), check_tasks); gtk_container_add(GTK_CONTAINER(frame_tasks), vbox_tasks); gtk_box_pack_start(GTK_BOX(vbox), frame_tasks, FALSE, FALSE, 3); check_systray = gtk_check_button_new_with_label( _("Show status icon in the Notification Area")); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(check_systray), ao_info->enable_systray); gtk_box_pack_start(GTK_BOX(vbox), check_systray, FALSE, FALSE, 3); check_bookmarklist = gtk_check_button_new_with_label( _("Show defined bookmarks (marked lines) in the sidebar")); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(check_bookmarklist), ao_info->enable_bookmarklist); gtk_box_pack_start(GTK_BOX(vbox), check_bookmarklist, FALSE, FALSE, 3); check_markword = gtk_check_button_new_with_label( _("Mark all occurrences of a word when double-clicking it")); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(check_markword), ao_info->enable_markword); gtk_box_pack_start(GTK_BOX(vbox), check_markword, FALSE, FALSE, 3); check_blanklines = gtk_check_button_new_with_label( _("Strip trailing blank lines")); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(check_blanklines), ao_info->strip_trailing_blank_lines); gtk_box_pack_start(GTK_BOX(vbox), check_blanklines, FALSE, FALSE, 3); check_xmltagging = gtk_check_button_new_with_label( _("XML tagging for selection")); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(check_xmltagging), ao_info->enable_xmltagging); gtk_box_pack_start(GTK_BOX(vbox), check_xmltagging, FALSE, FALSE, 3); g_object_set_data(G_OBJECT(dialog), "check_doclist", check_doclist); g_object_set_data(G_OBJECT(dialog), "radio_doclist_name", radio_doclist_name); g_object_set_data(G_OBJECT(dialog), "radio_doclist_occurrence", radio_doclist_occurrence); g_object_set_data(G_OBJECT(dialog), "check_openuri", check_openuri); g_object_set_data(G_OBJECT(dialog), "check_tasks", check_tasks); g_object_set_data(G_OBJECT(dialog), "entry_tasks_tokens", entry_tasks_tokens); g_object_set_data(G_OBJECT(dialog), "check_tasks_scan_mode", check_tasks_scan_mode); g_object_set_data(G_OBJECT(dialog), "check_systray", check_systray); g_object_set_data(G_OBJECT(dialog), "check_bookmarklist", check_bookmarklist); g_object_set_data(G_OBJECT(dialog), "check_markword", check_markword); g_object_set_data(G_OBJECT(dialog), "check_blanklines", check_blanklines); g_object_set_data(G_OBJECT(dialog), "check_xmltagging", check_xmltagging); g_signal_connect(dialog, "response", G_CALLBACK(ao_configure_response_cb), NULL); ao_configure_tasks_toggled_cb(GTK_TOGGLE_BUTTON(check_tasks), dialog); ao_configure_doclist_toggled_cb(GTK_TOGGLE_BUTTON(check_doclist), dialog); gtk_widget_show_all(vbox); #if ! GTK_CHECK_VERSION(2, 10, 0) gtk_widget_hide(check_systray); #endif return vbox; }