diff options
author | Emmanuele Bassi <ebassi@src.gnome.org> | 2007-09-06 17:05:06 +0000 |
---|---|---|
committer | Emmanuele Bassi <ebassi@src.gnome.org> | 2007-09-06 17:05:06 +0000 |
commit | 4d9d1c8e84bac3e2d2c9c90acff0618ec53a26c0 (patch) | |
tree | 03aac3e538dbbf1c4cfd509164a0de9d2404c57b /src | |
parent | e78c8d09df7a58594ebc43a64b9ac934c1874506 (diff) | |
download | gnome-dictionary-4d9d1c8e84bac3e2d2c9c90acff0618ec53a26c0.tar.gz |
Display the Source chooser inside the side bar of Dictionary
Use the newly added GdictSourceChooser to display the list of available
dictionary sources without having to use the Preferences dialog.
svn path=/trunk/; revision=7656
Diffstat (limited to 'src')
-rw-r--r-- | src/gdict-window.c | 54 | ||||
-rw-r--r-- | src/gdict-window.h | 1 |
2 files changed, 54 insertions, 1 deletions
diff --git a/src/gdict-window.c b/src/gdict-window.c index 1d26f1f..8fe31d9 100644 --- a/src/gdict-window.c +++ b/src/gdict-window.c @@ -59,6 +59,7 @@ #define GDICT_SIDEBAR_SPELLER_PAGE "speller" #define GDICT_SIDEBAR_DATABASES_PAGE "db-chooser" #define GDICT_SIDEBAR_STRATEGIES_PAGE "strat-chooser" +#define GDICT_SIDEBAR_SOURCES_PAGE "source-chooser" enum { @@ -1029,6 +1030,17 @@ gdict_window_cmd_view_strategies (GtkAction *action, } static void +gdict_window_cmd_view_sources (GtkAction *action, + GdictWindow *window) +{ + g_assert (GDICT_IS_WINDOW (window)); + + gdict_sidebar_view_page (GDICT_SIDEBAR (window->sidebar), + GDICT_SIDEBAR_SOURCES_PAGE); + gdict_window_set_sidebar_visible (window, TRUE); +} + +static void gdict_window_cmd_go_first_def (GtkAction *action, GdictWindow *window) { @@ -1310,6 +1322,25 @@ lookup_word (GdictWindow *window, } static void +source_activated_cb (GdictSourceChooser *chooser, + const gchar *source_name, + GdictSource *source, + GdictWindow *window) +{ + gdict_window_set_source_name (window, source_name); + + if (window->status) + { + gchar *message; + + message = g_strdup_printf (_("Dictionary source `%s' selected"), + gdict_source_get_description (source)); + gtk_statusbar_push (GTK_STATUSBAR (window->status), 0, message); + g_free (message); + } +} + +static void strategy_activated_cb (GdictStrategyChooser *chooser, const gchar *strat_name, const gchar *strat_desc, @@ -1391,6 +1422,10 @@ sidebar_page_changed_cb (GdictSidebar *sidebar, gdict_strategy_chooser_refresh (GDICT_STRATEGY_CHOOSER (window->strat_chooser)); break; + case 'o': /* source-chooser */ + message = _("Double-click on the source to use"); + gdict_source_chooser_refresh (GDICT_SOURCE_CHOOSER (window->source_chooser)); + break; default: message = NULL; } @@ -1740,6 +1775,7 @@ gdict_window_constructor (GType type, gtk_container_add (GTK_CONTAINER (frame1), window->defbox); gtk_widget_show (window->defbox); + /* Sidebar */ window->sidebar = gdict_sidebar_new (); g_signal_connect (window->sidebar, "page-changed", G_CALLBACK (sidebar_page_changed_cb), @@ -1748,6 +1784,7 @@ gdict_window_constructor (GType type, G_CALLBACK (sidebar_closed_cb), window); + /* Speller */ window->speller = gdict_speller_new (); if (window->context) gdict_speller_set_context (GDICT_SPELLER (window->speller), @@ -1755,13 +1792,13 @@ gdict_window_constructor (GType type, g_signal_connect (window->speller, "word-activated", G_CALLBACK (speller_word_activated_cb), window); - gdict_sidebar_add_page (GDICT_SIDEBAR (window->sidebar), GDICT_SIDEBAR_SPELLER_PAGE, _("Similar words"), window->speller); gtk_widget_show (window->speller); + /* Database chooser */ window->db_chooser = gdict_database_chooser_new (); if (window->context) gdict_database_chooser_set_context (GDICT_DATABASE_CHOOSER (window->db_chooser), @@ -1775,6 +1812,7 @@ gdict_window_constructor (GType type, window->db_chooser); gtk_widget_show (window->db_chooser); + /* Strategy chooser */ window->strat_chooser = gdict_strategy_chooser_new (); if (window->context) gdict_strategy_chooser_set_context (GDICT_STRATEGY_CHOOSER (window->strat_chooser), @@ -1788,6 +1826,20 @@ gdict_window_constructor (GType type, window->strat_chooser); gtk_widget_show (window->strat_chooser); + /* Source chooser */ + window->source_chooser = gdict_source_chooser_new (); + if (window->loader) + gdict_source_chooser_set_loader (GDICT_SOURCE_CHOOSER (window->source_chooser), + window->loader); + g_signal_connect (window->source_chooser, "source-activated", + G_CALLBACK (source_activated_cb), + window); + gdict_sidebar_add_page (GDICT_SIDEBAR (window->sidebar), + GDICT_SIDEBAR_SOURCES_PAGE, + _("Dictionary sources"), + window->source_chooser); + gtk_widget_show (window->source_chooser); + gtk_container_add (GTK_CONTAINER (frame2), window->sidebar); gtk_widget_show (window->sidebar); diff --git a/src/gdict-window.h b/src/gdict-window.h index 3bd8c62..8dcce23 100644 --- a/src/gdict-window.h +++ b/src/gdict-window.h @@ -59,6 +59,7 @@ struct _GdictWindow GtkWidget *speller; GtkWidget *db_chooser; GtkWidget *strat_chooser; + GtkWidget *source_chooser; GtkWidget *sidebar; GtkWidget *sidebar_frame; |