From a20fe23ce611a156ba7f10d555436b3ad9f8b72f Mon Sep 17 00:00:00 2001 From: Vincent Sanders Date: Tue, 17 Sep 2019 00:48:57 +0100 Subject: move search toolbar to be per tab and move implementation to one place --- frontends/gtk/window.c | 29 ++++++++++++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) (limited to 'frontends/gtk/window.c') diff --git a/frontends/gtk/window.c b/frontends/gtk/window.c index 647f15fcb..a8badc488 100644 --- a/frontends/gtk/window.c +++ b/frontends/gtk/window.c @@ -62,6 +62,7 @@ #include "gtk/bitmap.h" #include "gtk/gdk.h" #include "gtk/resources.h" +#include "gtk/search.h" #include "gtk/window.h" static GtkWidget *select_menu; @@ -99,6 +100,9 @@ struct gui_window { /** controls toolbar context */ struct nsgtk_toolbar *toolbar; + /** search toolbar context */ + struct gtk_search *search; + /** The top level container (tabBox) */ GtkWidget *container; @@ -779,6 +783,7 @@ gui_window_create(struct browser_window *bw, g->input_method = gtk_im_multicontext_new(); + /* create toolbar */ res = nsgtk_toolbar_create(tab_builder, bw_from_gw, g, &g->toolbar); if (res != NSERROR_OK) { free(g); @@ -786,6 +791,13 @@ gui_window_create(struct browser_window *bw, return NULL; } + /* local page text search toolbar */ + res = nsgtk_search_create(tab_builder, &g->search, g); + if (res != NSERROR_OK) { + free(g); + g_object_unref(tab_builder); + return NULL; + } /* set a default favicon */ g_object_ref(favicon_pixbuf); @@ -1467,6 +1479,13 @@ struct nsgtk_scaffolding *nsgtk_get_scaffold(struct gui_window *g) } +/* exported interface documented in window.h */ +struct gtk_search *nsgtk_window_get_search(struct gui_window *gw) +{ + return gw->search; +} + + /* exported interface documented in window.h */ struct browser_window *nsgtk_get_browser_window(struct gui_window *g) { @@ -1488,6 +1507,14 @@ GtkLayout *nsgtk_window_get_layout(struct gui_window *g) } +/* exported interface documented in window.h */ +nserror +nsgtk_window_search_toggle(struct gui_window *gw) +{ + return nsgtk_search_toggle_visibility(gw->search); +} + + /* exported interface documented in window.h */ nserror nsgtk_window_item_activate(struct gui_window *gw, nsgtk_toolbar_button itemid) @@ -1511,7 +1538,7 @@ nserror nsgtk_window_update_all(void) for (gw = window_list; gw != NULL; gw = gw->next) { nsgtk_tab_options_changed(nsgtk_scaffolding_notebook(gw->scaffold)); nsgtk_toolbar_restyle(gw->toolbar); - /** \todo update search bar */ + nsgtk_search_restyle(gw->search); browser_window_schedule_reformat(gw->bw); } return NSERROR_OK; -- cgit v1.2.3