diff options
Diffstat (limited to 'include/gwin')
-rw-r--r-- | include/gwin/gwidget.h | 2 | ||||
-rw-r--r-- | include/gwin/gwin.h | 21 | ||||
-rw-r--r-- | include/gwin/options.h | 7 |
3 files changed, 29 insertions, 1 deletions
diff --git a/include/gwin/gwidget.h b/include/gwin/gwidget.h index a18d69b6..fa40c51c 100644 --- a/include/gwin/gwidget.h +++ b/include/gwin/gwidget.h @@ -27,7 +27,7 @@ * @{ */ -// Forward definition +/* Forward definition */ struct GWidgetObject; /** diff --git a/include/gwin/gwin.h b/include/gwin/gwin.h index 96055376..b9d4f966 100644 --- a/include/gwin/gwin.h +++ b/include/gwin/gwin.h @@ -27,6 +27,9 @@ #if GFX_USE_GWIN || defined(__DOXYGEN__) +/* Forward declaration */ +typedef struct GWindowObject *GHandle; + /** * @brief A window object structure * @note Do not access the members directly. Treat it as a black-box and use the method functions. @@ -46,6 +49,11 @@ typedef struct GWindowObject { #if GDISP_NEED_TEXT font_t font; // @< The current font #endif + #if GWIN_NEED_HIERARCHY + GHandle *parent; // @< The pointer to the parent (or NULL) + GHandle *sibling; // @< The pointer to a widgets brother + GHandle *child; // @< The pointer to a widgets child + #endif } GWindowObject, * GHandle; /* @} */ @@ -377,6 +385,19 @@ extern "C" { */ void gwinRedraw(GHandle gh); + #if GWIN_NEED_HIERARCHY + /** + * @brief Add a child widget to a parent one + * + * @param[in] parent The parent widget (does not need to be parent yet) + * @param[in] child The child widget + * @param[in] last Should the child widget be added to the front or the back of the list? + * + * @api + */ + void gwinAddChild(GHandle parent, GHandle child, bool_t last); + #endif + #if GWIN_NEED_WINDOWMANAGER || defined (__DOXYGEN__) /** * @brief Redraw a window diff --git a/include/gwin/options.h b/include/gwin/options.h index e6d2a81e..83aaee2c 100644 --- a/include/gwin/options.h +++ b/include/gwin/options.h @@ -30,6 +30,13 @@ #define GWIN_NEED_WIDGET FALSE #endif /** + * @brief Should the widget hierarchy be included. This provides parent-child features. + * @details Defaults to FALSE + */ + #ifndef GWIN_NEED_HIERARCHY + #define GWIN_NEED_HIERARCHY FALSE + #endif + /** * @brief Should widget functions be included. Needed for any widget (eg Buttons, Sliders etc) * @details Defaults to FALSE */ |