diff options
author | Christian Persch <chpe@cvs.gnome.org> | 2003-11-30 22:08:32 +0800 |
---|---|---|
committer | Christian Persch <chpe@src.gnome.org> | 2003-11-30 22:08:32 +0800 |
commit | 1aa5a63dad335d4f05b65915bb553fb28192ab02 (patch) | |
tree | f2572a0a3c6395b029ebb94a1c0797d4a14e858e /embed/find-dialog.c | |
parent | 2a4417e4222ce7ce938c5848d43fdbe27089141b (diff) | |
download | gsoc2013-epiphany-1aa5a63dad335d4f05b65915bb553fb28192ab02.tar gsoc2013-epiphany-1aa5a63dad335d4f05b65915bb553fb28192ab02.tar.gz gsoc2013-epiphany-1aa5a63dad335d4f05b65915bb553fb28192ab02.tar.bz2 gsoc2013-epiphany-1aa5a63dad335d4f05b65915bb553fb28192ab02.tar.lz gsoc2013-epiphany-1aa5a63dad335d4f05b65915bb553fb28192ab02.tar.xz gsoc2013-epiphany-1aa5a63dad335d4f05b65915bb553fb28192ab02.tar.zst gsoc2013-epiphany-1aa5a63dad335d4f05b65915bb553fb28192ab02.zip |
Improved API and implementation of EphyDialog. Add support for new combo
2003-11-30 Christian Persch <chpe@cvs.gnome.org>
* configure.in:
* data/glade/epiphany.glade:
* data/glade/prefs-dialog.glade:
* embed/downloader-view.c: (downloader_view_build_ui):
* embed/ephy-embed-dialog.c: (ephy_embed_dialog_new_with_parent):
* embed/ephy-encodings.c: (ephy_encodings_get_detectors):
* embed/ephy-encodings.h:
* embed/find-dialog.c: (update_navigation_controls),
(set_properties), (impl_show), (find_dialog_class_init),
(find_dialog_init), (find_dialog_new_with_parent):
* embed/print-dialog.c: (impl_show), (print_dialog_init),
(print_dialog_new_with_parent), (print_get_info):
* lib/ephy-dialog.c: (ephy_dialog_get_type), (lookup_info),
(set_sensitivity), (set_value_from_pref), (set_pref_from_value),
(set_value_from_editable), (set_value_from_optionmenu),
(set_value_from_combobox), (get_radio_button_active_index),
(set_value_from_radiobuttongroup), (set_value_from_spin_button),
(set_value_from_togglebutton), (set_value_from_info),
(set_editable_from_value), (get_index_from_value),
(set_optionmenu_from_value), (compare_values),
(set_combo_box_from_value), (set_radiobuttongroup_from_value),
(set_spin_button_from_value), (set_togglebutton_from_value),
(set_info_from_value), (set_pref_from_info),
(togglebutton_clicked_cb), (radiobutton_clicked_cb),
(spinbutton_timeout_cb), (spinbutton_changed_cb), (changed_cb),
(set_info_from_pref), (connect_signals), (disconnect_signals),
(init_props), (load_info), (save_info), (setup_default_size),
(dialog_destroy_cb), (impl_construct), (impl_show),
(ephy_dialog_set_modal), (ephy_dialog_add_enum),
(ephy_dialog_set_data_column), (ephy_dialog_set_pref),
(ephy_dialog_set_size_group), (ephy_dialog_construct),
(ephy_dialog_show), (ephy_dialog_run), (ephy_dialog_get_control),
(ephy_dialog_get_value), (ephy_dialog_set_value), (free_prop_info),
(ephy_dialog_init), (ephy_dialog_dispose), (ephy_dialog_finalize),
(ephy_dialog_set_parent), (ephy_dialog_set_property),
(ephy_dialog_get_property), (ephy_dialog_class_init),
(ephy_dialog_new), (ephy_dialog_new_with_parent):
* lib/ephy-dialog.h:
* lib/ephy-file-chooser.c: (ephy_file_chooser_new):
* src/ephy-encoding-dialog.c: (sync_embed_cb),
(sync_parent_window_cb), (activate_choice),
(view_node_selected_cb), (view_node_activated_cb),
(ephy_encoding_dialog_init), (ephy_encoding_dialog_new):
* src/ephy-shell.c: (ephy_shell_finalize),
(ephy_shell_get_pdm_dialog), (ephy_shell_get_prefs_dialog):
* src/ephy-shell.h:
* src/language-editor.c: (language_editor_get_type),
(language_editor_class_init), (language_editor_update_pref),
(language_editor_add_button_clicked_cb),
(language_editor_set_view), (language_editor_init),
(language_editor_new), (language_editor_set_model),
(language_editor_add):
* src/language-editor.h:
* src/pdm-dialog.c: (pdm_dialog_show_help),
(action_treeview_selection_changed_cb), (setup_action),
(cookies_treeview_selection_changed_cb),
(pdm_dialog_cookies_construct), (pdm_dialog_passwords_construct),
(pdm_dialog_init), (show_cookies_properties):
* src/prefs-dialog.c: (prefs_dialog_get_type),
(prefs_dialog_class_init), (prefs_dialog_show_help),
(setup_font_combo), (fonts_language_combo_changed_cb),
(create_fonts_language_menu), (create_node_combo),
(language_combo_changed_cb), (create_language_menu),
(get_download_button_label), (create_download_path_label),
(prefs_dialog_init), (prefs_dialog_response_cb),
(set_homepage_entry), (prefs_homepage_current_button_clicked_cb),
(prefs_homepage_blank_button_clicked_cb),
(language_dialog_changed_cb),
(prefs_language_more_button_clicked_cb),
(download_path_response_cb),
(prefs_download_path_button_clicked_cb):
* src/prefs-dialog.h:
* src/window-commands.c: (window_cmd_edit_prefs):
Improved API and implementation of EphyDialog. Add support for
new combo box, and removed optionmenu.
Port all dialogues to new API and use combobox instead of optionmenus.
Diffstat (limited to 'embed/find-dialog.c')
-rwxr-xr-x | embed/find-dialog.c | 96 |
1 files changed, 54 insertions, 42 deletions
diff --git a/embed/find-dialog.c b/embed/find-dialog.c index ace630cda..932511cec 100755 --- a/embed/find-dialog.c +++ b/embed/find-dialog.c @@ -47,6 +47,7 @@ static GObjectClass *parent_class = NULL; struct FindDialogPrivate { EphyEmbed *old_embed; + gboolean initialised; }; enum @@ -62,13 +63,13 @@ enum static const EphyDialogProperty properties [] = { - { WINDOW_PROP, "find_dialog", NULL, PT_NORMAL, NULL }, - { MATCH_CASE_PROP, "case_check", CONF_FIND_MATCH_CASE, PT_NORMAL, NULL }, - { AUTOWRAP_PROP, "wrap_check", CONF_FIND_AUTOWRAP, PT_NORMAL, NULL }, - { WORD_PROP, "find_entry", CONF_FIND_WORD, PT_NORMAL, NULL }, - { BACK_BUTTON, "back_button", NULL, PT_NORMAL, NULL }, - { FORWARD_BUTTON, "forward_button", NULL, PT_NORMAL, NULL }, - { -1, NULL, NULL } + { "find_dialog", NULL, PT_NORMAL, 0 }, + { "case_check", CONF_FIND_MATCH_CASE, PT_NORMAL, 0 }, + { "wrap_check", CONF_FIND_AUTOWRAP, PT_NORMAL, 0 }, + { "find_entry", CONF_FIND_WORD, PT_NORMAL, 0 }, + { "back_button", NULL, PT_NORMAL, 0 }, + { "forward_button", NULL, PT_NORMAL, 0 }, + { NULL } }; GType @@ -105,41 +106,15 @@ update_navigation_controls (FindDialog *dialog, gboolean prev, gboolean next) { GtkWidget *button; - button = ephy_dialog_get_control (EPHY_DIALOG (dialog), BACK_BUTTON); + button = ephy_dialog_get_control (EPHY_DIALOG (dialog), + properties[BACK_BUTTON].id); gtk_widget_set_sensitive (button, prev); - button = ephy_dialog_get_control (EPHY_DIALOG (dialog), FORWARD_BUTTON); + button = ephy_dialog_get_control (EPHY_DIALOG (dialog), + properties[FORWARD_BUTTON].id); gtk_widget_set_sensitive (button, next); } -static void -impl_show (EphyDialog *dialog) -{ - - EPHY_DIALOG_CLASS (parent_class)->show (dialog); - - /* Focus the text entry. This will correctly select or leave - * unselected the existing text in the entry depending on the - * 'gtk-entry-select-on-focus = 0 / 1' setting in user's gtkrc. - */ - gtk_widget_grab_focus (ephy_dialog_get_control (dialog, WORD_PROP)); -} - -static void -find_dialog_class_init (FindDialogClass *klass) -{ - GObjectClass *object_class = G_OBJECT_CLASS (klass); - EphyDialogClass *ephy_dialog_class; - - parent_class = g_type_class_peek_parent (klass); - ephy_dialog_class = EPHY_DIALOG_CLASS (klass); - - object_class->finalize = find_dialog_finalize; - - ephy_dialog_class->show = impl_show; - - g_type_class_add_private (object_class, sizeof (FindDialogPrivate)); -} static void set_properties (FindDialog *find_dialog) @@ -153,8 +128,10 @@ set_properties (FindDialog *find_dialog) EphyDialog *dialog = EPHY_DIALOG (find_dialog); EphyEmbed *embed; + if (!find_dialog->priv->initialised) return; + /* get the search string from the entry field */ - ephy_dialog_get_value (dialog, WORD_PROP, &word); + ephy_dialog_get_value (dialog, properties[WORD_PROP].id, &word); search_string = g_strdup (g_value_get_string (&word)); g_value_unset (&word); @@ -167,11 +144,11 @@ set_properties (FindDialog *find_dialog) return; } - ephy_dialog_get_value (dialog, MATCH_CASE_PROP, &match_case); + ephy_dialog_get_value (dialog, properties[MATCH_CASE_PROP].id, &match_case); b_match_case = g_value_get_boolean (&match_case); g_value_unset (&match_case); - ephy_dialog_get_value (dialog, AUTOWRAP_PROP, &wrap); + ephy_dialog_get_value (dialog, properties[AUTOWRAP_PROP].id, &wrap); b_wrap = g_value_get_boolean (&wrap); g_value_unset (&wrap); @@ -185,6 +162,39 @@ set_properties (FindDialog *find_dialog) } static void +impl_show (EphyDialog *dialog) +{ + EPHY_DIALOG_CLASS (parent_class)->show (dialog); + + EPHY_FIND_DIALOG (dialog)->priv->initialised = TRUE; + + set_properties (EPHY_FIND_DIALOG (dialog)); + + /* Focus the text entry. This will correctly select or leave + * unselected the existing text in the entry depending on the + * 'gtk-entry-select-on-focus = 0 / 1' setting in user's gtkrc. + */ + gtk_widget_grab_focus (ephy_dialog_get_control + (dialog, properties[WORD_PROP].id)); +} + +static void +find_dialog_class_init (FindDialogClass *klass) +{ + GObjectClass *object_class = G_OBJECT_CLASS (klass); + EphyDialogClass *ephy_dialog_class; + + parent_class = g_type_class_peek_parent (klass); + ephy_dialog_class = EPHY_DIALOG_CLASS (klass); + + object_class->finalize = find_dialog_finalize; + + ephy_dialog_class->show = impl_show; + + g_type_class_add_private (object_class, sizeof (FindDialogPrivate)); +} + +static void sync_page_change (EphyEmbed *embed, const char *address, FindDialog *dialog) { g_return_if_fail (EPHY_IS_EMBED (embed)); @@ -238,6 +248,7 @@ find_dialog_init (FindDialog *dialog) dialog->priv = EPHY_FIND_DIALOG_GET_PRIVATE (dialog); dialog->priv->old_embed = NULL; + dialog->priv->initialised = FALSE; ephy_dialog_construct (EPHY_DIALOG(dialog), properties, @@ -245,7 +256,8 @@ find_dialog_init (FindDialog *dialog) "find_dialog"); update_navigation_controls (dialog, TRUE, TRUE); - window = ephy_dialog_get_control (EPHY_DIALOG (dialog), WINDOW_PROP); + window = ephy_dialog_get_control (EPHY_DIALOG (dialog), + properties[WINDOW_PROP].id); icon = gtk_widget_render_icon (window, GTK_STOCK_FIND, GTK_ICON_SIZE_MENU, @@ -293,7 +305,7 @@ find_dialog_new_with_parent (GtkWidget *window, dialog = EPHY_FIND_DIALOG (g_object_new (EPHY_TYPE_FIND_DIALOG, "embed", embed, - "ParentWindow", window, + "parent-window", window, NULL)); return EPHY_DIALOG(dialog); |