make the gtk_search structure private to teh gtk search object

This commit is contained in:
Vincent Sanders 2019-09-17 22:28:43 +01:00 committed by Daniel Silverstone
parent e9b5b56ba6
commit d94afaa0e1
5 changed files with 37 additions and 55 deletions

View File

@ -75,8 +75,8 @@ struct search_context {
/* Exported function documented in search.h */ /* Exported function documented in search.h */
struct search_context * search_create_context(struct content *c, struct search_context *
content_type type, void *gui_data) search_create_context(struct content *c, content_type type, void *gui_data)
{ {
struct search_context *context; struct search_context *context;
struct list_entry *search_head; struct list_entry *search_head;

View File

@ -87,7 +87,7 @@
<property name="visible">True</property> <property name="visible">True</property>
<property name="can_focus">False</property> <property name="can_focus">False</property>
<child> <child>
<object class="GtkCheckButton" id="FindHightlightAll"> <object class="GtkCheckButton" id="FindHighlightAll">
<property name="label" translatable="yes">gtkFindHighlightAll</property> <property name="label" translatable="yes">gtkFindHighlightAll</property>
<property name="use_action_appearance">False</property> <property name="use_action_appearance">False</property>
<property name="visible">True</property> <property name="visible">True</property>

View File

@ -38,18 +38,26 @@
#include "gtk/search.h" #include "gtk/search.h"
struct gtk_search {
GtkToolbar *bar;
GtkEntry *entry;
GtkToolButton *back;
GtkToolButton *forward;
GtkToolButton *close;
GtkCheckButton *checkAll;
GtkCheckButton *caseSens;
struct browser_window *bw;
};
/** /**
* activate search forwards button in gui. * activate search forwards button in gui.
* *
* \param active activate/inactivate * \param active activate/inactivate
* \param gw The gui window in which to activite the search button in. * \param search the gtk search context
*/ */
static void nsgtk_search_set_forward_state(bool active, struct gui_window *gw) static void nsgtk_search_set_forward_state(bool active, struct gtk_search *search)
{ {
struct gtk_search *search;
search = nsgtk_window_get_search(gw);
gtk_widget_set_sensitive(GTK_WIDGET(search->forward), active); gtk_widget_set_sensitive(GTK_WIDGET(search->forward), active);
} }
@ -58,14 +66,10 @@ static void nsgtk_search_set_forward_state(bool active, struct gui_window *gw)
* activate search back button in gui. * activate search back button in gui.
* *
* \param active activate/inactivate * \param active activate/inactivate
* \param gw The gui window in which to activite the search button in. * \param search the gtk search context
*/ */
static void nsgtk_search_set_back_state(bool active, struct gui_window *gw) static void nsgtk_search_set_back_state(bool active, struct gtk_search *search)
{ {
struct gtk_search *search;
search = nsgtk_window_get_search(gw);
gtk_widget_set_sensitive(GTK_WIDGET(search->back), active); gtk_widget_set_sensitive(GTK_WIDGET(search->back), active);
} }
@ -77,13 +81,10 @@ static gboolean
nsgtk_search_forward_button_clicked(GtkWidget *widget, gpointer data) nsgtk_search_forward_button_clicked(GtkWidget *widget, gpointer data)
{ {
struct gtk_search *search; struct gtk_search *search;
struct browser_window *bw;
search_flags_t flags; search_flags_t flags;
search = (struct gtk_search *)data; search = (struct gtk_search *)data;
bw = nsgtk_get_browser_window(search->gw);
flags = SEARCH_FLAG_FORWARDS; flags = SEARCH_FLAG_FORWARDS;
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(search->caseSens))) { if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(search->caseSens))) {
@ -94,7 +95,8 @@ nsgtk_search_forward_button_clicked(GtkWidget *widget, gpointer data)
flags |= SEARCH_FLAG_SHOWALL; flags |= SEARCH_FLAG_SHOWALL;
} }
browser_window_search(bw, search->gw, flags, gtk_entry_get_text(search->entry)); browser_window_search(search->bw, search, flags,
gtk_entry_get_text(search->entry));
return TRUE; return TRUE;
} }
@ -106,13 +108,10 @@ static gboolean
nsgtk_search_back_button_clicked(GtkWidget *widget, gpointer data) nsgtk_search_back_button_clicked(GtkWidget *widget, gpointer data)
{ {
struct gtk_search *search; struct gtk_search *search;
struct browser_window *bw;
search_flags_t flags; search_flags_t flags;
search = (struct gtk_search *)data; search = (struct gtk_search *)data;
bw = nsgtk_get_browser_window(search->gw);
flags = 0; flags = 0;
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(search->caseSens))) { if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(search->caseSens))) {
@ -123,7 +122,8 @@ nsgtk_search_back_button_clicked(GtkWidget *widget, gpointer data)
flags |= SEARCH_FLAG_SHOWALL; flags |= SEARCH_FLAG_SHOWALL;
} }
browser_window_search(bw, search->gw, flags, gtk_entry_get_text(search->entry)); browser_window_search(search->bw, search, flags,
gtk_entry_get_text(search->entry));
return TRUE; return TRUE;
} }
@ -150,13 +150,10 @@ nsgtk_search_close_button_clicked(GtkWidget *widget, gpointer data)
static gboolean nsgtk_search_entry_changed(GtkWidget *widget, gpointer data) static gboolean nsgtk_search_entry_changed(GtkWidget *widget, gpointer data)
{ {
struct gtk_search *search; struct gtk_search *search;
struct browser_window *bw;
search_flags_t flags; search_flags_t flags;
search = (struct gtk_search *)data; search = (struct gtk_search *)data;
bw = nsgtk_get_browser_window(search->gw);
flags = 0; flags = 0;
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(search->caseSens))) { if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(search->caseSens))) {
@ -167,7 +164,8 @@ static gboolean nsgtk_search_entry_changed(GtkWidget *widget, gpointer data)
flags |= SEARCH_FLAG_SHOWALL; flags |= SEARCH_FLAG_SHOWALL;
} }
browser_window_search(bw, search->gw, flags, gtk_entry_get_text(search->entry)); browser_window_search(search->bw, search, flags,
gtk_entry_get_text(search->entry));
return TRUE; return TRUE;
} }
@ -178,16 +176,10 @@ static gboolean nsgtk_search_entry_changed(GtkWidget *widget, gpointer data)
static gboolean nsgtk_search_entry_activate(GtkWidget *widget, gpointer data) static gboolean nsgtk_search_entry_activate(GtkWidget *widget, gpointer data)
{ {
struct gtk_search *search; struct gtk_search *search;
struct browser_window *bw;
search_flags_t flags; search_flags_t flags;
search = (struct gtk_search *)data; search = (struct gtk_search *)data;
nsgtk_search_set_forward_state(true, search->gw);
nsgtk_search_set_back_state(true, search->gw);
bw = nsgtk_get_browser_window(search->gw);
flags = SEARCH_FLAG_FORWARDS; flags = SEARCH_FLAG_FORWARDS;
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(search->caseSens))) { if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(search->caseSens))) {
@ -198,7 +190,8 @@ static gboolean nsgtk_search_entry_activate(GtkWidget *widget, gpointer data)
flags |= SEARCH_FLAG_SHOWALL; flags |= SEARCH_FLAG_SHOWALL;
} }
browser_window_search(bw, search->gw, flags, gtk_entry_get_text(search->entry)); browser_window_search(search->bw, search, flags,
gtk_entry_get_text(search->entry));
return FALSE; return FALSE;
} }
@ -232,7 +225,7 @@ nserror nsgtk_search_toggle_visibility(struct gtk_search *search)
{ {
gboolean vis; gboolean vis;
browser_window_search_clear(nsgtk_get_browser_window(search->gw)); browser_window_search_clear(search->bw);
g_object_get(G_OBJECT(search->bar), "visible", &vis, NULL); g_object_get(G_OBJECT(search->bar), "visible", &vis, NULL);
if (vis) { if (vis) {
@ -286,8 +279,8 @@ nserror nsgtk_search_restyle(struct gtk_search *search)
/* exported interface documented in gtk/search.h */ /* exported interface documented in gtk/search.h */
nserror nserror
nsgtk_search_create(GtkBuilder *builder, nsgtk_search_create(GtkBuilder *builder,
struct gtk_search **search_out, struct browser_window *bw,
struct gui_window *gw) struct gtk_search **search_out)
{ {
struct gtk_search *search; struct gtk_search *search;
@ -296,7 +289,7 @@ nsgtk_search_create(GtkBuilder *builder,
return NSERROR_NOMEM; return NSERROR_NOMEM;
} }
search->gw = gw; search->bw = bw;
search->bar = GTK_TOOLBAR(gtk_builder_get_object(builder, "findbar")); search->bar = GTK_TOOLBAR(gtk_builder_get_object(builder, "findbar"));
search->entry = GTK_ENTRY(gtk_builder_get_object(builder, "Find")); search->entry = GTK_ENTRY(gtk_builder_get_object(builder, "Find"));

View File

@ -18,7 +18,7 @@
/** /**
* \file * \file
* free text page search for gtk interfaces * free text page search for gtk interface
*/ */
#ifndef NETSURF_GTK_SEARCH_H_ #ifndef NETSURF_GTK_SEARCH_H_
@ -26,28 +26,17 @@
extern struct gui_search_table *nsgtk_search_table; extern struct gui_search_table *nsgtk_search_table;
struct nsgtk_scaffolding; struct gtk_search;
struct gtk_search {
GtkToolbar *bar;
GtkEntry *entry;
GtkToolButton *back;
GtkToolButton *forward;
GtkToolButton *close;
GtkCheckButton *checkAll;
GtkCheckButton *caseSens;
struct gui_window *gw;
};
/** /**
* create text search context * create text search context
* *
* \param builder the gtk builder containing the search toolbar * \param builder the gtk builder containing the search toolbar
* \param search_out search context result * \param bw The browsing context to run the find operations against
* \param search search context result
* \return NSERROR_OK and search_out updated * \return NSERROR_OK and search_out updated
*/ */
nserror nsgtk_search_create(GtkBuilder *builder, struct gtk_search **search_out, struct gui_window *gw); nserror nsgtk_search_create(GtkBuilder *builder, struct browser_window *bw, struct gtk_search **search);
/** /**
* update search toolbar size and style * update search toolbar size and style

View File

@ -792,7 +792,7 @@ gui_window_create(struct browser_window *bw,
} }
/* local page text search toolbar */ /* local page text search toolbar */
res = nsgtk_search_create(tab_builder, &g->search, g); res = nsgtk_search_create(tab_builder, g->bw, &g->search);
if (res != NSERROR_OK) { if (res != NSERROR_OK) {
free(g); free(g);
g_object_unref(tab_builder); g_object_unref(tab_builder);