diff options
author | John Mark Bell <jmb@netsurf-browser.org> | 2009-12-17 23:55:02 +0000 |
---|---|---|
committer | John Mark Bell <jmb@netsurf-browser.org> | 2009-12-17 23:55:02 +0000 |
commit | 355799ce0bbb078237dfc1ae9874bbc5342acbc4 (patch) | |
tree | 7ca980c01c0d4d1d55a3b7b15418c95c5618afae /desktop/search.h | |
parent | 4346b2b62b940182575e6612e46234355afa083c (diff) | |
download | netsurf-355799ce0bbb078237dfc1ae9874bbc5342acbc4.tar.gz netsurf-355799ce0bbb078237dfc1ae9874bbc5342acbc4.tar.bz2 |
Merge branches/MarkieB/gtkmain to trunk.
svn path=/trunk/netsurf/; revision=9729
Diffstat (limited to 'desktop/search.h')
-rw-r--r-- | desktop/search.h | 91 |
1 files changed, 91 insertions, 0 deletions
diff --git a/desktop/search.h b/desktop/search.h new file mode 100644 index 000000000..15a4f6c9e --- /dev/null +++ b/desktop/search.h @@ -0,0 +1,91 @@ +/* + * Copyright 2009 Mark Benjamin <netsurf-browser.org.MarkBenjamin@dfgh.net> + * + * This file is part of NetSurf, http://www.netsurf-browser.org/ + * + * NetSurf is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; version 2 of the License. + * + * NetSurf is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + */ + +#ifndef _NETSURF_DESKTOP_SEARCH_H_ +#define _NETSURF_DESKTOP_SEARCH_H_ + +#include <ctype.h> +#include <string.h> + +struct search_context; + +typedef enum { + SEARCH_FLAG_CASE_SENSITIVE = (1 << 0), + SEARCH_FLAG_FORWARDS = (1 << 1), + SEARCH_FLAG_SHOWALL = (1 << 2) +} search_flags_t; + +/** + * called to clear the context; 'renews' the search too + */ +void search_destroy_context(struct search_context *context); + +/** + * Change the displayed search status. + * \param found search pattern matched in text + * \param p the pointer sent to search_step() / search_create_context() + */ +typedef void (*search_status_callback)(bool found, void *p); + +/** + * display hourglass while searching + * \param active start/stop indicator + * \param p the pointer sent to search_step() / search_create_context() + */ +typedef void (*search_hourglass_callback)(bool active, void *p); + +/** + * add search string to recent searches list + * front has full liberty how to implement the bare notification; + * core gives no guarantee of the integrity of the const char * + * \param string search pattern + * \param p the pointer sent to search_step() / search_create_context() + */ +typedef void (*search_add_recent_callback)(const char *string, void *p); + +/** + * activate search forwards button in gui + * \param active activate/inactivate + * \param p the pointer sent to search_step() / search_create_context() + */ +typedef void (*search_forward_state_callback)(bool active, void *p); + +/** + * activate search back button in gui + * \param active activate/inactivate + * \param p the pointer sent to search_step() / search_create_context() + */ +typedef void (*search_back_state_callback)(bool active, void *p); + +struct search_callbacks { + search_forward_state_callback forward_state; + search_back_state_callback back_state; + search_status_callback status; + search_hourglass_callback hourglass; + search_add_recent_callback add_recent; +}; + +bool search_verify_new(struct browser_window *bw, + struct search_callbacks *callbacks, void *p); +void search_step(struct search_context *context, search_flags_t flags, + const char * string); +bool search_create_context(struct browser_window *bw, + struct search_callbacks *callbacks, void *p); +void search_show_all(bool all, struct search_context *context); + +#endif |