aboutsummaryrefslogtreecommitdiffstats
path: root/src/gwin/frame.c
diff options
context:
space:
mode:
authorJoel Bodenmann <joel@unormal.org>2014-01-06 21:53:43 +0100
committerJoel Bodenmann <joel@unormal.org>2014-01-06 21:53:43 +0100
commit6f5dd9035467b6a57189c8382cf911993d596388 (patch)
tree9f5481c4ddaa236e37895b5b2ade18e81d05e444 /src/gwin/frame.c
parentb479a1038345752ad1f9bcebbd382a5261f01aa8 (diff)
downloaduGFX-6f5dd9035467b6a57189c8382cf911993d596388.tar.gz
uGFX-6f5dd9035467b6a57189c8382cf911993d596388.tar.bz2
uGFX-6f5dd9035467b6a57189c8382cf911993d596388.zip
frame cleanup
Diffstat (limited to 'src/gwin/frame.c')
-rw-r--r--src/gwin/frame.c23
1 files changed, 11 insertions, 12 deletions
diff --git a/src/gwin/frame.c b/src/gwin/frame.c
index 0a8f0a6e..1699a3c2 100644
--- a/src/gwin/frame.c
+++ b/src/gwin/frame.c
@@ -141,7 +141,6 @@ GHandle gwinGFrameCreate(GDisplay *g, GFrameObject *fo, GWidgetInit *pInit, uint
wi.text = "_";
fo->btnMax = gwinButtonCreate(NULL, &wi);
gwinAddChild((GHandle)fo, fo->btnMax, FALSE);
-
}
gwinSetVisible(&fo->w.g, pInit->g.show);
@@ -202,6 +201,7 @@ void gwinFrameDraw_Std(GWidgetObject *gw, void *param) {
gdispGSetClip(gw->g.display, gw->g.x, gw->g.y, gw->g.width, gw->g.height);
#endif
+ // Render the actual frame (with border, if any)
if (gw->g.flags & GWIN_FRAME_BORDER) {
gdispGFillArea(gw->g.display, gw->g.x, gw->g.y, gw->g.width, gw->g.height, border);
gdispGFillArea(gw->g.display, gw->g.x + BORDER_X, gw->g.y + BORDER_Y, gw->g.width - 2*BORDER_X, gw->g.width - BORDER_Y - BORDER_X, background);
@@ -210,21 +210,20 @@ void gwinFrameDraw_Std(GWidgetObject *gw, void *param) {
gdispGFillArea(gw->g.display, gw->g.x + BORDER_X, gw->g.y + BORDER_Y, gw->g.width, gw->g.height, background);
}
+ // Render frame title - if any
+ if (gw->text != NULL) {
+ coord_t text_y;
+
+ text_y = ((BORDER_Y - gdispGetFontMetric(gw->g.font, fontHeight))/2);
+
+ gdispGDrawString(gw->g.display, gw->g.x + BORDER_X, gw->g.y + text_y, gw->text, gw->g.font, pcol->text);
+ }
+
#if GDISP_NEED_CLIP
gdispGUnsetClip(gw->g.display);
#endif
- // redraw buttons if necessary - this should be done due the parent-child relationship but that is buggy...
- if (gw->g.flags & GWIN_FRAME_CLOSE_BTN) {
- gwinRedraw(((GFrameObject*)gw)->btnClose);
- }
- if (gw->g.flags & GWIN_FRAME_MINMAX_BTN) {
- gwinRedraw(((GFrameObject*)gw)->btnMin);
- gwinRedraw(((GFrameObject*)gw)->btnMax);
- }
-
- // FixMe...
- //gwinRedraw(gw);
+ gwinRedrawChildren((GHandle)gw);
}
#endif /* (GFX_USE_GWIN && GWIN_NEED_FRAME) || defined(__DOXYGEN__) */