1 /*
2  * Copyright 2014 Vincent Sanders <vince@netsurf-browser.org>
3  *
4  * This file is part of NetSurf, http://www.netsurf-browser.org/
5  *
6  * NetSurf is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License as published by
8  * the Free Software Foundation; version 2 of the License.
9  *
10  * NetSurf is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13  * GNU General Public License for more details.
14  *
15  * You should have received a copy of the GNU General Public License
16  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
17  */
18 
19 /**
20  * \file
21  *
22  * Interface to platform-specific search operations.
23  */
24 
25 #ifndef _NETSURF_SEARCH_H_
26 #define _NETSURF_SEARCH_H_
27 
28 /**
29  * function table for page text search.
30  */
31 struct gui_search_table {
32 	/**
33 	 * Change the displayed search status.
34 	 *
35 	 * \param found search pattern matched in text
36 	 * \param p gui private data pointer provided with search callbacks
37 	 */
38 	void (*status)(bool found, void *p);
39 
40 	/**
41 	 * display hourglass while searching.
42 	 *
43 	 * \param active start/stop indicator
44 	 * \param p gui private data pointer provided with search callbacks
45 	 */
46 	void (*hourglass)(bool active, void *p);
47 
48 	/**
49 	 * add search string to recent searches list
50 	 * front has full liberty how to implement the bare notification;
51 	 * core gives no guarantee of the integrity of the string
52 	 *
53 	 * \param string search pattern
54 	 * \param p gui private data pointer provided with search callbacks
55 	 */
56 	void (*add_recent)(const char *string, void *p);
57 
58 	/**
59 	 * activate search forwards button in gui
60 	 *
61 	 * \param active activate/inactivate
62 	 * \param p gui private data pointer provided with search callbacks
63 	 */
64 	void (*forward_state)(bool active, void *p);
65 
66 	/**
67 	 * activate search back button in gui
68 	 *
69 	 * \param active activate/inactivate
70 	 * \param p gui private data pointer provided with search callbacks
71 	 */
72 	void (*back_state)(bool active, void *p);
73 };
74 
75 #endif
76