summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorEmmanuele Bassi <ebassi@src.gnome.org>2007-09-06 17:05:06 +0000
committerEmmanuele Bassi <ebassi@src.gnome.org>2007-09-06 17:05:06 +0000
commit4d9d1c8e84bac3e2d2c9c90acff0618ec53a26c0 (patch)
tree03aac3e538dbbf1c4cfd509164a0de9d2404c57b /src
parente78c8d09df7a58594ebc43a64b9ac934c1874506 (diff)
downloadgnome-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.c54
-rw-r--r--src/gdict-window.h1
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;