From 219f5dac32ac2c4ca158785514cdcc35cb3f18bf Mon Sep 17 00:00:00 2001 From: Michael Drake Date: Thu, 25 Jul 2013 16:07:46 +0100 Subject: Add initial version of new cookie manager. --- desktop/cookie_manager.h | 102 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 102 insertions(+) create mode 100644 desktop/cookie_manager.h (limited to 'desktop/cookie_manager.h') diff --git a/desktop/cookie_manager.h b/desktop/cookie_manager.h new file mode 100644 index 000000000..724923677 --- /dev/null +++ b/desktop/cookie_manager.h @@ -0,0 +1,102 @@ +/* + * Copyright 2013 Michael Drake + * + * 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 . + */ + +/** \file + * Cookie Manager (interface). + */ + +#ifndef _NETSURF_DESKTOP_COOKIE_MANAGER_H_ +#define _NETSURF_DESKTOP_COOKIE_MANAGER_H_ + +#include + +#include "desktop/core_window.h" + +struct cookie_data; + +/** + * Initialise the cookie manager. + * + * This iterates through the URL database, enumerating the cookies and + * creates a treeview. + * + * This must be called before any other cookie_manager_* function. + * + * \param cw_t Callback table for core_window containing the treeview + * \param cw The core_window in which the treeview is shown + * \return NSERROR_OK on success, appropriate error otherwise + */ +nserror cookie_manager_init(struct core_window_callback_table *cw_t, + void *core_window_handle); + +/** + * Finalise the cookie manager. + * + * This destroys the cookie manager treeview and the cookie manager module's + * internal data. After calling this if the cookie manager is required again, + * cookie_manager_init must be called. + * + * \return NSERROR_OK on success, appropriate error otherwise + */ +nserror cookie_manager_fini(void); + +/** + * Add/update a cookie to the viewer. (Called by urldb.) + * + * \param data Data of cookie being added/updated. + * \return true (for urldb_iterate_entries) + */ +bool cookie_manager_add(const struct cookie_data *data); + +/** + * Remove a cookie from viewer. (Called by urldb.) + * + * \param data Data of cookie being removed. + */ +void cookie_manager_remove(const struct cookie_data *data); + +/** + * Redraw the cookies manager. + * + * \param x X coordinate to render treeview at + * \param x Y coordinate to render treeview at + * \param clip Current clip rectangle (wrt tree origin) + * \param ctx Current redraw context + */ +void cookie_manager_redraw(int x, int y, struct rect *clip, + const struct redraw_context *ctx); + +/** + * Handles all kinds of mouse action + * + * \param mouse The current mouse state + * \param x X coordinate + * \param y Y coordinate + */ +void cookie_manager_mouse_action(browser_mouse_state mouse, int x, int y); + + +/** + * Key press handling. + * + * \param key The ucs4 character codepoint + * \return true if the keypress is dealt with, false otherwise. + */ +void cookie_manager_keypress(uint32_t key); + +#endif -- cgit v1.2.3