From a8a6098f689a936307ca11cc922a8fc535654007 Mon Sep 17 00:00:00 2001 From: Vincent Sanders Date: Thu, 18 Aug 2016 21:07:04 +0100 Subject: move core window API into netsurf header path --- desktop/core_window.h | 84 -------------------------------------- desktop/tree.c | 2 +- desktop/treeview.c | 2 +- frontends/atari/treeview.c | 2 +- frontends/gtk/corewindow.h | 2 +- include/netsurf/core_window.h | 93 +++++++++++++++++++++++++++++++++++++++++++ 6 files changed, 97 insertions(+), 88 deletions(-) delete mode 100644 desktop/core_window.h create mode 100644 include/netsurf/core_window.h diff --git a/desktop/core_window.h b/desktop/core_window.h deleted file mode 100644 index 38045a3e8..000000000 --- a/desktop/core_window.h +++ /dev/null @@ -1,84 +0,0 @@ -/* - * Copyright 2012 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 - * Core window handling (interface). - */ - -#ifndef _NETSURF_DESKTOP_CORE_WINDOW_H_ -#define _NETSURF_DESKTOP_CORE_WINDOW_H_ - -struct core_window; -struct rect; - -typedef enum { - CORE_WINDOW_DRAG_NONE, - CORE_WINDOW_DRAG_SELECTION, - CORE_WINDOW_DRAG_TEXT_SELECTION, - CORE_WINDOW_DRAG_MOVE -} core_window_drag_status; - -/** Callbacks to achieve various core window functionality. */ -struct core_window_callback_table { - /** - * Request a redraw of the window - * - * \param cw the core window object - * \param r rectangle to redraw - */ - void (*redraw_request)(struct core_window *cw, const struct rect *r); - - /** - * Update the limits of the window - * - * \param cw the core window object - * \param width the width in px, or negative if don't care - * \param height the height in px, or negative if don't care - */ - void (*update_size)(struct core_window *cw, int width, int height); - - /** - * Scroll the window to make area visible - * - * \param cw the core window object - * \param r rectangle to make visible - */ - void (*scroll_visible)(struct core_window *cw, const struct rect *r); - - /** - * Get window viewport dimensions - * - * \param cw the core window object - * \param width to be set to viewport width in px, if non NULL - * \param height to be set to viewport height in px, if non NULL - */ - void (*get_window_dimensions)(struct core_window *cw, - int *width, int *height); - - /** - * Inform corewindow owner of drag status - * - * \param cw the core window object - * \param ds the current drag status - */ - void (*drag_status)(struct core_window *cw, - core_window_drag_status ds); -}; - - -#endif diff --git a/desktop/tree.c b/desktop/tree.c index a5c97c33c..4972777ba 100644 --- a/desktop/tree.c +++ b/desktop/tree.c @@ -32,11 +32,11 @@ #include "utils/utils.h" #include "utils/nsoption.h" #include "netsurf/browser_window.h" +#include "netsurf/core_window.h" #include "content/content.h" #include "content/hlcache.h" #include "desktop/tree.h" -#include "desktop/core_window.h" struct tree { unsigned int flags; /* Tree flags */ diff --git a/desktop/treeview.c b/desktop/treeview.c index fa7fea02d..387b34e7b 100644 --- a/desktop/treeview.c +++ b/desktop/treeview.c @@ -31,6 +31,7 @@ #include "netsurf/clipboard.h" #include "netsurf/layout.h" #include "netsurf/keypress.h" +#include "netsurf/core_window.h" #include "content/hlcache.h" #include "css/utils.h" @@ -39,7 +40,6 @@ #include "desktop/textarea.h" #include "desktop/treeview.h" #include "desktop/gui_internal.h" -#include "desktop/core_window.h" /** @todo get rid of REDRAW_MAX -- need to be able to know window size */ #define REDRAW_MAX 8000 diff --git a/frontends/atari/treeview.c b/frontends/atari/treeview.c index 4298fca54..731c032e3 100644 --- a/frontends/atari/treeview.c +++ b/frontends/atari/treeview.c @@ -29,8 +29,8 @@ #include "utils/utils.h" #include "netsurf/plotters.h" #include "netsurf/mouse.h" +#include "netsurf/core_window.h" #include "desktop/treeview.h" -#include "desktop/core_window.h" #include "atari/gui.h" #include "atari/plot/plot.h" diff --git a/frontends/gtk/corewindow.h b/frontends/gtk/corewindow.h index d6f3011ba..cfb865edc 100644 --- a/frontends/gtk/corewindow.h +++ b/frontends/gtk/corewindow.h @@ -19,7 +19,7 @@ #ifndef GTK_COREWINDOW_H #define GTK_COREWINDOW_H -#include "desktop/core_window.h" +#include "netsurf/core_window.h" /** * nsgtk core window mouse state diff --git a/include/netsurf/core_window.h b/include/netsurf/core_window.h new file mode 100644 index 000000000..274c757e3 --- /dev/null +++ b/include/netsurf/core_window.h @@ -0,0 +1,93 @@ +/* + * Copyright 2012 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 + * Interface to core window handling. + * + * This provides a generallised API for frontends to implement which + * allows them to provide a single implementation for general window + * operations on their platform. + * + * General core implementations (cookie manager, global history, + * hotlist and ssl certificate viewer) use this API to perform + * operations like drawing and user input in a portable way. + */ + +#ifndef _NETSURF_CORE_WINDOW_H_ +#define _NETSURF_CORE_WINDOW_H_ + +struct core_window; +struct rect; + +typedef enum { + CORE_WINDOW_DRAG_NONE, + CORE_WINDOW_DRAG_SELECTION, + CORE_WINDOW_DRAG_TEXT_SELECTION, + CORE_WINDOW_DRAG_MOVE +} core_window_drag_status; + +/** Callbacks to achieve various core window functionality. */ +struct core_window_callback_table { + /** + * Request a redraw of the window + * + * \param cw the core window object + * \param r rectangle to redraw + */ + void (*redraw_request)(struct core_window *cw, const struct rect *r); + + /** + * Update the limits of the window + * + * \param cw the core window object + * \param width the width in px, or negative if don't care + * \param height the height in px, or negative if don't care + */ + void (*update_size)(struct core_window *cw, int width, int height); + + /** + * Scroll the window to make area visible + * + * \param cw the core window object + * \param r rectangle to make visible + */ + void (*scroll_visible)(struct core_window *cw, const struct rect *r); + + /** + * Get window viewport dimensions + * + * \param cw the core window object + * \param width to be set to viewport width in px, if non NULL + * \param height to be set to viewport height in px, if non NULL + */ + void (*get_window_dimensions)(struct core_window *cw, + int *width, int *height); + + /** + * Inform corewindow owner of drag status + * + * \param cw the core window object + * \param ds the current drag status + */ + void (*drag_status)(struct core_window *cw, + core_window_drag_status ds); +}; + + +#endif -- cgit v1.2.3