Make the enabled state available to all GWIN's - not just widgets.

ugfx_release_2.6
inmarket 2013-07-04 00:59:12 +10:00
parent a7198b53ff
commit f9eed6036d
4 changed files with 51 additions and 30 deletions

View File

@ -83,19 +83,6 @@ typedef struct GWidgetInit {
extern "C" {
#endif
/**
* @brief Enable or disable a widget
*
* @param[in] gh The widget handle
* @param[in] enabled Enable or disable the widget
*
* @note The widget is automatically redrawn.
* @note Non-widgets will ignore this call.
*
* @api
*/
void gwinSetEnabled(GHandle gh, bool_t enabled);
/**
* @brief Set the text of a widget.
*

View File

@ -297,6 +297,29 @@ extern "C" {
*/
bool_t gwinGetVisible(GHandle gh);
/**
* @brief Enable or disable a window
*
* @param[in] gh The window handle
* @param[in] enabled Enable or disable the window
*
* @note The window is automatically redrawn if it
* supports self-redrawing.
*
* @api
*/
void gwinSetEnabled(GHandle gh, bool_t enabled);
/**
* @brief Gets the enabled state of a window
* @return TRUE if enabled
*
* @param[in] gh The window
*
* @api
*/
bool_t gwinGetEnabled(GHandle gh);
/**
* @brief Move a window
*

View File

@ -226,23 +226,6 @@ void _gwidgetRedraw(GHandle gh) {
gw->fnDraw(gw, gw->fnParam);
}
void gwinSetEnabled(GHandle gh, bool_t enabled) {
if (!(gh->flags & GWIN_FLG_WIDGET))
return;
if (enabled) {
if (!(gh->flags & GWIN_FLG_ENABLED)) {
gh->flags |= GWIN_FLG_ENABLED;
_gwidgetRedraw(gh);
}
} else {
if ((gh->flags & GWIN_FLG_ENABLED)) {
gh->flags &= ~GWIN_FLG_ENABLED;
_gwidgetRedraw(gh);
}
}
}
void gwinSetText(GHandle gh, const char *txt, bool_t useAlloc) {
if (!(gh->flags & GWIN_FLG_WIDGET))
return;

View File

@ -223,6 +223,34 @@ bool_t gwinGetVisible(GHandle gh) {
return (gh->flags & GWIN_FLG_VISIBLE) ? TRUE : FALSE;
}
void gwinSetEnabled(GHandle gh, bool_t enabled) {
if (enabled) {
if (!(gh->flags & GWIN_FLG_ENABLED)) {
gh->flags |= GWIN_FLG_ENABLED;
if (gh->vmt->Redraw) {
#if GDISP_NEED_CLIP
gdispSetClip(gh->x, gh->y, gh->width, gh->height);
#endif
gh->vmt->Redraw(gh);
}
}
} else {
if ((gh->flags & GWIN_FLG_ENABLED)) {
gh->flags &= ~GWIN_FLG_ENABLED;
if (gh->vmt->Redraw) {
#if GDISP_NEED_CLIP
gdispSetClip(gh->x, gh->y, gh->width, gh->height);
#endif
gh->vmt->Redraw(gh);
}
}
}
}
bool_t gwinGetEnabled(GHandle gh) {
return (gh->flags & GWIN_FLG_ENABLED) ? TRUE : FALSE;
}
void gwinMove(GHandle gh, coord_t x, coord_t y) {
#if GWIN_NEED_WINDOWMANAGER
cwm->vmt->Redim(gh, x, y, gh->width, gh->height);