[anjuta] devhelp: move tabs into grip, move forward/backward into help view grip
- From: Johannes Schmid <jhs src gnome org>
- To: svn-commits-list gnome org
- Subject: [anjuta] devhelp: move tabs into grip, move forward/backward into help view grip
- Date: Tue, 9 Jun 2009 06:22:47 -0400 (EDT)
commit b2aaa21ce357145bce13bba892b1c3c774d3e8a1
Author: Johannes Schmid <jhs gnome org>
Date: Tue Jun 9 12:22:36 2009 +0200
devhelp: move tabs into grip, move forward/backward into help view grip
---
plugins/devhelp/plugin.c | 142 +++++++++++++++++++++++++++++++++++-----------
plugins/devhelp/plugin.h | 6 ++-
2 files changed, 114 insertions(+), 34 deletions(-)
diff --git a/plugins/devhelp/plugin.c b/plugins/devhelp/plugin.c
index e169262..4f2e9ce 100644
--- a/plugins/devhelp/plugin.c
+++ b/plugins/devhelp/plugin.c
@@ -143,7 +143,7 @@ api_reference_idle (AnjutaDevhelp* plugin)
{
gtk_notebook_set_current_page (GTK_NOTEBOOK (plugin->control_notebook), 0);
anjuta_shell_present_widget (ANJUTA_PLUGIN (plugin)->shell,
- plugin->main_vbox, NULL);
+ plugin->control_notebook, NULL);
return FALSE;
}
@@ -293,6 +293,39 @@ static void on_load_finished (GObject* view, GObject* frame, gpointer user_data)
AnjutaDevhelp* devhelp = ANJUTA_PLUGIN_DEVHELP(user_data);
anjuta_devhelp_check_history(devhelp);
}
+
+static void
+on_notebook_button_toggled (GtkToggleButton *button,
+ AnjutaDevhelp *devhelp)
+{
+ int page = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (button), "__page"));
+ gtk_notebook_set_page (GTK_NOTEBOOK(devhelp->control_notebook), page);
+}
+
+static void
+on_notebook_switch_page (GtkNotebook* notebook,
+ GtkNotebookPage* page,
+ guint page_num,
+ AnjutaDevhelp *devhelp)
+{
+ g_signal_handlers_block_by_func (devhelp->button_tree,
+ on_notebook_button_toggled,
+ devhelp);
+ g_signal_handlers_block_by_func (devhelp->button_search,
+ on_notebook_button_toggled,
+ devhelp);
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(devhelp->button_tree),
+ page_num == 0);
+ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(devhelp->button_search),
+ page_num == 1);
+ g_signal_handlers_unblock_by_func (devhelp->button_tree,
+ on_notebook_button_toggled,
+ devhelp);
+ g_signal_handlers_unblock_by_func (devhelp->button_search,
+ on_notebook_button_toggled,
+ devhelp);
+}
+
#endif
static gboolean
@@ -305,8 +338,8 @@ devhelp_activate (AnjutaPlugin *plugin)
static gboolean init = FALSE;
GNode *books;
GList *keywords;
- GtkWidget* books_sw;
- GtkWidget *button_hbox;
+ GtkWidget *label;
+ GtkWidget *books_sw;
if (!init)
{
@@ -330,35 +363,73 @@ devhelp_activate (AnjutaPlugin *plugin)
devhelp->uiid = anjuta_ui_merge (ui, UI_FILE);
#ifndef DISABLE_EMBEDDED_DEVHELP
+ /* Tabs in grip */
+ devhelp->tab_hbox = gtk_hbox_new (FALSE, 1);
+ devhelp->button_tree = gtk_toggle_button_new_with_label (_("Contents"));
+ devhelp->button_search = gtk_toggle_button_new_with_label (_("Search"));
+
+ gtk_box_pack_start (GTK_BOX (devhelp->tab_hbox),
+ gtk_image_new_from_stock (ANJUTA_STOCK_DEVHELP,
+ GTK_ICON_SIZE_MENU),
+ FALSE, FALSE, 0);
+ label = gtk_label_new (_("Help"));
+ gtk_label_set_ellipsize (GTK_LABEL (label),
+ PANGO_ELLIPSIZE_END);
+ gtk_box_pack_start (GTK_BOX (devhelp->tab_hbox),
+ label,
+ TRUE, TRUE, 0);
+ gtk_box_pack_start (GTK_BOX (devhelp->tab_hbox),
+ devhelp->button_tree,
+ FALSE, FALSE, 0);
+ gtk_box_pack_start (GTK_BOX (devhelp->tab_hbox),
+ devhelp->button_search,
+ FALSE, FALSE, 0);
+ gtk_widget_show_all (devhelp->tab_hbox);
+
+ g_signal_connect (devhelp->button_tree, "toggled",
+ G_CALLBACK(on_notebook_button_toggled), devhelp);
+ g_object_set_data (G_OBJECT(devhelp->button_tree), "__page", GINT_TO_POINTER(0));
+ g_signal_connect (devhelp->button_search, "toggled",
+ G_CALLBACK(on_notebook_button_toggled), devhelp);
+ g_object_set_data (G_OBJECT(devhelp->button_search), "__page", GINT_TO_POINTER(1));
/*
* Forward/back buttons
*/
- devhelp->main_vbox = gtk_vbox_new (FALSE, 6);
- gtk_widget_show (devhelp->main_vbox);
- button_hbox = gtk_hbox_new (FALSE, 0);
- gtk_widget_show (button_hbox);
-
- devhelp->go_back = gtk_button_new_from_stock (GTK_STOCK_GO_BACK);
- gtk_widget_show (devhelp->go_back);
- gtk_box_pack_start (GTK_BOX (button_hbox), devhelp->go_back, FALSE, FALSE, 0);
+ devhelp->custom_label = gtk_hbox_new (FALSE, 1);
+ gtk_widget_show (devhelp->custom_label);
+
+ gtk_box_pack_start (GTK_BOX (devhelp->custom_label),
+ gtk_image_new_from_stock (ANJUTA_STOCK_DEVHELP,
+ GTK_ICON_SIZE_MENU),
+ FALSE, FALSE, 0);
+ gtk_box_pack_start (GTK_BOX (devhelp->custom_label), gtk_label_new (_("Help display")),
+ FALSE, FALSE, 0);
+
+ devhelp->go_back = gtk_button_new ();
+ gtk_container_add (GTK_CONTAINER (devhelp->go_back),
+ gtk_image_new_from_stock(GTK_STOCK_GO_BACK, GTK_ICON_SIZE_MENU));
gtk_widget_set_sensitive (devhelp->go_back, FALSE);
g_signal_connect (devhelp->go_back, "clicked",
- G_CALLBACK (on_go_back_clicked), devhelp);
+ G_CALLBACK (on_go_back_clicked), devhelp);
- devhelp->go_forward = gtk_button_new_from_stock (GTK_STOCK_GO_FORWARD);
- gtk_widget_show (devhelp->go_forward);
- gtk_box_pack_start (GTK_BOX (button_hbox), devhelp->go_forward, FALSE, FALSE, 0);
+ devhelp->go_forward = gtk_button_new ();
+ gtk_container_add (GTK_CONTAINER (devhelp->go_forward),
+ gtk_image_new_from_stock(GTK_STOCK_GO_FORWARD, GTK_ICON_SIZE_MENU));
gtk_widget_set_sensitive (devhelp->go_forward, FALSE);
g_signal_connect (devhelp->go_forward, "clicked",
- G_CALLBACK (on_go_forward_clicked), devhelp);
+ G_CALLBACK (on_go_forward_clicked), devhelp);
- devhelp->online = gtk_button_new_from_stock (_("Online"));
- gtk_widget_show (devhelp->online);
- gtk_box_pack_start (GTK_BOX (button_hbox), devhelp->online, FALSE, FALSE, 0);
+ devhelp->online = gtk_button_new_with_label (_("Online"));
g_signal_connect (devhelp->online, "clicked",
- G_CALLBACK (on_online_clicked), devhelp);
-
- gtk_box_pack_start (GTK_BOX (devhelp->main_vbox), button_hbox, FALSE, FALSE, 0);
+ G_CALLBACK (on_online_clicked), devhelp);
+
+ gtk_box_pack_start (GTK_BOX (devhelp->custom_label), devhelp->go_back,
+ FALSE, FALSE, 0);
+ gtk_box_pack_start (GTK_BOX (devhelp->custom_label), devhelp->go_forward,
+ FALSE, FALSE, 0);
+ gtk_box_pack_start (GTK_BOX (devhelp->custom_label), devhelp->online,
+ FALSE, FALSE, 0);
+ gtk_widget_show_all (devhelp->custom_label);
/*
* Notebook
@@ -375,8 +446,12 @@ devhelp_activate (AnjutaPlugin *plugin)
gtk_container_set_border_width (GTK_CONTAINER (books_sw), 2);
devhelp->control_notebook = gtk_notebook_new ();
- gtk_box_pack_start (GTK_BOX (devhelp->main_vbox), devhelp->control_notebook,
- TRUE, TRUE, 0);
+ gtk_notebook_set_show_tabs (GTK_NOTEBOOK (devhelp->control_notebook),
+ FALSE);
+ g_signal_connect (devhelp->control_notebook,
+ "switch-page",
+ G_CALLBACK(on_notebook_switch_page),
+ devhelp);
devhelp->book_tree = dh_book_tree_new (books);
devhelp->search = dh_search_new (keywords);
@@ -393,9 +468,9 @@ devhelp_activate (AnjutaPlugin *plugin)
gtk_container_add (GTK_CONTAINER (books_sw), devhelp->book_tree);
gtk_notebook_append_page (GTK_NOTEBOOK (devhelp->control_notebook), books_sw,
- gtk_label_new (_("Contents")));
+ NULL);
gtk_notebook_append_page (GTK_NOTEBOOK (devhelp->control_notebook), devhelp->search,
- gtk_label_new (_("Search")));
+ NULL);
gtk_widget_show_all (devhelp->control_notebook);
@@ -416,13 +491,14 @@ devhelp_activate (AnjutaPlugin *plugin)
gtk_widget_show (devhelp->view_sw);
gtk_container_add (GTK_CONTAINER (devhelp->view_sw), devhelp->view);
- anjuta_shell_add_widget (plugin->shell, devhelp->main_vbox,
- "AnjutaDevhelpIndex", _("Help"), ANJUTA_STOCK_DEVHELP,
- ANJUTA_SHELL_PLACEMENT_LEFT, NULL);
+ anjuta_shell_add_widget_custom (plugin->shell, devhelp->control_notebook,
+ "AnjutaDevhelpIndex", _("Help"), ANJUTA_STOCK_DEVHELP,
+ devhelp->tab_hbox,
+ ANJUTA_SHELL_PLACEMENT_LEFT, NULL);
/* This is the window that show the html help text */
- anjuta_shell_add_widget (plugin->shell, devhelp->view_sw,
+ anjuta_shell_add_widget_custom (plugin->shell, devhelp->view_sw,
"AnjutaDevhelpDisplay", _("Help display"),
- ANJUTA_STOCK_DEVHELP,
+ ANJUTA_STOCK_DEVHELP, devhelp->custom_label,
ANJUTA_SHELL_PLACEMENT_CENTER, NULL);
#endif /* DISABLE_EMBEDDED_DEVHELP */
@@ -453,7 +529,7 @@ devhelp_deactivate (AnjutaPlugin *plugin)
/* Remove widgets */
anjuta_shell_remove_widget(plugin->shell, devhelp->view_sw, NULL);
- anjuta_shell_remove_widget(plugin->shell, devhelp->main_vbox, NULL);
+ anjuta_shell_remove_widget(plugin->shell, devhelp->control_notebook, NULL);
#endif /* DISABLE_EMBEDDED_DEVHELP */
@@ -545,7 +621,7 @@ ihelp_search (IAnjutaHelp *help, const gchar *query, GError **err)
plugin = ANJUTA_PLUGIN_DEVHELP (help);
anjuta_shell_present_widget (ANJUTA_PLUGIN (plugin)->shell,
- plugin->main_vbox, NULL);
+ plugin->control_notebook, NULL);
dh_search_set_search_string (DH_SEARCH (plugin->search), query, NULL);
gtk_notebook_set_current_page (GTK_NOTEBOOK (plugin->control_notebook), 1);
diff --git a/plugins/devhelp/plugin.h b/plugins/devhelp/plugin.h
index 5201c5c..cb91d59 100644
--- a/plugins/devhelp/plugin.h
+++ b/plugins/devhelp/plugin.h
@@ -52,12 +52,16 @@ struct _AnjutaDevhelp{
GtkWidget *view;
GtkWidget *view_sw;
GtkWidget *control_notebook;
- GtkWidget *main_vbox;
+ GtkWidget *tab_hbox;
+ GtkWidget *custom_label;
GtkWidget *book_tree;
GtkWidget *search;
GtkWidget *go_back;
GtkWidget *go_forward;
GtkWidget *online;
+
+ GtkWidget *button_tree;
+ GtkWidget *button_search;
IAnjutaEditor *editor;
guint editor_watch_id;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]