diff options
Diffstat (limited to 'frontends/windows/window.h')
-rw-r--r-- | frontends/windows/window.h | 109 |
1 files changed, 109 insertions, 0 deletions
diff --git a/frontends/windows/window.h b/frontends/windows/window.h new file mode 100644 index 000000000..ec54287f4 --- /dev/null +++ b/frontends/windows/window.h @@ -0,0 +1,109 @@ +/* + * Copyright 2011 Vincent Sanders <vince@simtec.co.uk> + * + * 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_WINDOWS_WINDOW_H_ +#define _NETSURF_WINDOWS_WINDOW_H_ + +/** The window operation function table for win32 */ +extern struct gui_window_table *win32_window_table; + +#include "desktop/mouse.h" + +struct browser_mouse { + struct gui_window *gui; + struct box *box; + + double pressed_x; + double pressed_y; + bool waiting; + browser_mouse_state state; +}; + +struct gui_window { + /* The front's private data connected to a browser window */ + /* currently 1<->1 gui_window<->windows window [non-tabbed] */ + struct browser_window *bw; /** the browser_window */ + + HWND main; /**< handle to the actual window */ + HWND toolbar; /**< toolbar handle */ + HWND urlbar; /**< url bar handle */ + HWND throbber; /** throbber handle */ + HWND drawingarea; /**< drawing area handle */ + HWND statusbar; /**< status bar handle */ + HWND vscroll; /**< vertical scrollbar handle */ + HWND hscroll; /**< horizontal scrollbar handle */ + + HMENU mainmenu; /**< the main menu */ + HMENU rclick; /**< the right-click menu */ + struct nsws_localhistory *localhistory; /**< handle to local history window */ + int width; /**< width of window */ + int height; /**< height of drawing area */ + + int toolbuttonc; /**< number of toolbar buttons */ + int toolbuttonsize; /**< width, height of buttons */ + bool throbbing; /**< whether currently throbbing */ + + struct browser_mouse *mouse; /**< mouse state */ + + HACCEL acceltable; /**< accelerators */ + + float scale; /**< scale of content */ + + int scrollx; /**< current scroll location */ + int scrolly; /**< current scroll location */ + + RECT *fullscreen; /**< memorize non-fullscreen area */ + RECT redraw; /**< Area needing redraw. */ + int requestscrollx, requestscrolly; /**< scolling requested. */ + struct gui_window *next, *prev; /**< global linked list */ +}; + + +/** + * Obtain gui window structure from window handle. + * + * \param hwnd The window handle. + * \return The gui window associated with the window handle. + */ +struct gui_window *nsws_get_gui_window(HWND hwnd); + +/** + * Cause a browser window to navigate to a url + * + * \param hwnd The win32 handle to the browser window or one of its decendants. + * \param urltxt The URL to navigate to. + */ +bool nsws_window_go(HWND hwnd, const char *urltxt); + +void win32_window_set_scroll(struct gui_window *w, int sx, int sy); + +nserror nsws_create_main_class(HINSTANCE hinstance); + +/** + * Get the main win32 window handle from a gui window + */ +HWND gui_window_main_window(struct gui_window *); + + +/** + * Get the localhistory win32 window handle from a gui window + */ +struct nsws_localhistory *gui_window_localhistory(struct gui_window *); + + +#endif /* _NETSURF_WINDOWS_WINDOW_H_ */ |