diff options
author | Vincent Sanders <vince@kyllikki.org> | 2016-05-05 22:28:51 +0100 |
---|---|---|
committer | Vincent Sanders <vince@kyllikki.org> | 2016-05-15 13:44:34 +0100 |
commit | d21447d096a320a08b3efb2b8768fad0dcdcfd64 (patch) | |
tree | 1a83814b7c9e94b2f13c473261f23dd3a17dee64 /framebuffer/fbtk/widget.h | |
parent | 2cbb337756d9af5bda4d594964d446439f602551 (diff) | |
download | netsurf-d21447d096a320a08b3efb2b8768fad0dcdcfd64.tar.gz netsurf-d21447d096a320a08b3efb2b8768fad0dcdcfd64.tar.bz2 |
move frontends into sub directory
Diffstat (limited to 'framebuffer/fbtk/widget.h')
-rw-r--r-- | framebuffer/fbtk/widget.h | 259 |
1 files changed, 0 insertions, 259 deletions
diff --git a/framebuffer/fbtk/widget.h b/framebuffer/fbtk/widget.h deleted file mode 100644 index 5622723ee..000000000 --- a/framebuffer/fbtk/widget.h +++ /dev/null @@ -1,259 +0,0 @@ -/* - * Copyright 2010 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_FB_FBTK_WIDGET_H -#define NETSURF_FB_FBTK_WIDGET_H - -#include <stdbool.h> - -enum fbtk_widgettype_e { - FB_WIDGET_TYPE_ROOT = 0, - FB_WIDGET_TYPE_WINDOW, - FB_WIDGET_TYPE_BITMAP, - FB_WIDGET_TYPE_FILL, - FB_WIDGET_TYPE_TEXT, - FB_WIDGET_TYPE_HSCROLL, - FB_WIDGET_TYPE_VSCROLL, - FB_WIDGET_TYPE_USER, -}; - - -/** Widget description. - * - * A widget is an entry in a tree structure which represents a - * rectangular area with co-ordinates relative to its parent widget. - * This area has a distinct set of callback operations for handling - * events which occour within its boundries. A widget may have an - * arbitrary number of child widgets. The order within the tree - * determines a widgets z order. - * - * --- - * A - * | - * +----------+ - * +--->| Button 3 | - * | +----------+ - * | | A - * | V | - * | +----------+ - * | | Button 2 | - * | +----------+ - * | | A - * | V | - * | +----------+ - * | | Button 1 | - * | +----------+ - * | | A - * | V | - * --- | +----------+ - * A | +->| Filled | - * | | | +----------+ - * +----------+ | | | - * +---->| |-+ | V - * | | Window 1 | | --- --- - * | | |---+ A - * | +----------+ | - * | | A +----------+ --- - * | | | +--->| Button 2 | A - * | | | | +----------+ | - * | | | | | A +-------------+ - * | | | | | | +--->| Button Up | - * | | | | | | | +-------------+ - * | | | | | | | | A - * | | | | | | | V | - * | | | | | | | +-------------+ - * | | | | | | | | Button Down | - * | | | | | | | +-------------+ - * | | | | | | | | A - * | | | | | | | V | - * | | | | | | | +-------------+ - * | | | | | | | +->| Scroller | - * | | | | V | | | +-------------+ - * | | | | +----------+ | | | - * | | | | | |-+ | V - * | | | | | V Scroll | | --- - * | | | | | |---+ - * | | | | +----------+ - * | | | | | A - * | | | | V | - * | | | | +----------+ - * | | | | +->| Button 1 | - * | | | | | +----------+ - * | +----------+ | | | - * | | |-+ | V - * | | Window 2 | | --- - * | | |---+ - * | +----------+ - * | | A - * | V | - * | +------------+ - * --- | | Background | - * A | +->| Bitmap | - * | | | +------------+ - * +------+ | | | - * | |-+ | V - * | Root | | --- - * | |---+ - * +------+ - * | - * V - * --- - * - * Every widget is contained within this generic wrapper. The - * integrated union provides for data specific to a widget type. - */ -struct fbtk_widget_s { - struct fbtk_widget_s *next; /* next lower z ordered widget in tree */ - struct fbtk_widget_s *prev; /* next higher z ordered widget in tree */ - - struct fbtk_widget_s *parent; /* parent widget */ - - struct fbtk_widget_s *first_child; /* first child widget */ - struct fbtk_widget_s *last_child; /* last child widget */ - - /* flags */ - bool mapped; /**< The widget is mapped/visible . */ - - /* Generic properties */ - int x; - int y; - int width; - int height; - colour bg; - colour fg; - - /* event callback handlers */ - fbtk_callback callback[FBTK_CBT_END]; - void *callback_context[FBTK_CBT_END]; - - /* widget redraw */ - struct { - bool child; /* A child of this widget requires redrawing */ - bool needed; /* the widget requires redrawing */ - int x; - int y; - int width; - int height; - } redraw; - - enum fbtk_widgettype_e type; /**< The type of the widget */ - - - union { - /* toolkit base handle */ - struct { - nsfb_t *fb; - struct fbtk_widget_s *prev; /* previous widget pointer wasin */ - struct fbtk_widget_s *grabbed; /* widget that has grabbed pointer movement. */ - struct fbtk_widget_s *input; - - /* caret */ - struct { - struct fbtk_widget_s *owner; /* widget / NULL */ - int x; /* relative to owner */ - int y; /* relative to owner */ - int height; - void (*remove_cb)(fbtk_widget_t *widget); - } caret; - } root; - - /* bitmap */ - struct { - struct fbtk_bitmap *bitmap; - } bitmap; - - /* text */ - struct { - char* text; - bool outline; - fbtk_enter_t enter; - void *pw; - int idx; /* caret pos in text */ - int len; /* text length */ - int width; /* text width in px */ - int idx_offset; /* caret pos in pixels */ - } text; - - /* application driven widget */ - struct { - void *pw; /* private data for user widget */ - } user; - - struct { - int minimum; /* lowest value of scrollbar */ - int maximum; /* highest value of scrollbar */ - int thumb; /* size of bar representing a page */ - int page; /* amount to page document */ - int position; /* position of bar */ - int drag; /* offset to start of drag */ - int drag_position; /* indicator bar pos at drag start */ - struct fbtk_widget_s *btnul; /* scroll button up/left */ - struct fbtk_widget_s *btndr; /* scroll button down/right*/ - } scroll; - - } u; -}; - - -/* These functions are not considered part of the public API but are - * not static as they are used by the higher level widget provision - * routines - */ - - -/** creates a new widget and insert it into to hierachy. - * - * The widget is set to defaults of false, 0 or NULL. - * - * @param parent The parent widget. The new widget will be added with - * the shallowest z order relative to its siblings. - * @param type The type of the widget. - * @param x The x co-ordinate relative to the parent widget. - * @param y The y co-ordinate relative to the parent widget. - * @param width the widgets width. This will be clipped to the parent, if - * the value is 0 the largest extent which can fit within the parent - * is used, if the value is negative the largest value that will fit - * within the parent less the value given will be used. - * @param height the widgets width. This will be clipped to the parent, if - * the value is 0 the largest extent which can fit within the parent - * is used, if the value is negative the largest value that will fit - * within the parent less the value given will be used. - */ -fbtk_widget_t *fbtk_widget_new(fbtk_widget_t *parent, enum fbtk_widgettype_e type, int x, int y, int width, int height); - -/** find the root widget from any widget in the toolkit hierarchy. - * - * @param widget Any widget. - * @return The root widget or NULL if \a widget was not valid. - */ -fbtk_widget_t *fbtk_get_root_widget(fbtk_widget_t *widget); - -/** set pointer to bitmap in context. - * - * widget helper callback to set cursor image to the bitmap passed in - * the callbacks private data. - */ -int fbtk_set_ptr(fbtk_widget_t *widget, fbtk_callback_info *cbi); - -#endif - -/* - * Local Variables: - * c-basic-offset:8 - * End: - */ |