diff options
author | Joel Bodenmann <joel@unormal.org> | 2014-01-05 04:02:03 +0100 |
---|---|---|
committer | Joel Bodenmann <joel@unormal.org> | 2014-01-05 04:02:03 +0100 |
commit | a6b81192eb2ce4df34b04253c28b50e797aaccc9 (patch) | |
tree | 6fb56ccceb17da16fc6f2be6ca40f8b17bbcead6 /src/gwin/checkbox.c | |
parent | 9f5d14cf5d17ac0b2b16943da4a1347f695d109b (diff) | |
download | uGFX-a6b81192eb2ce4df34b04253c28b50e797aaccc9.tar.gz uGFX-a6b81192eb2ce4df34b04253c28b50e797aaccc9.tar.bz2 uGFX-a6b81192eb2ce4df34b04253c28b50e797aaccc9.zip |
some progress
Diffstat (limited to 'src/gwin/checkbox.c')
-rw-r--r-- | src/gwin/checkbox.c | 32 |
1 files changed, 20 insertions, 12 deletions
diff --git a/src/gwin/checkbox.c b/src/gwin/checkbox.c index 13730d50..4e487196 100644 --- a/src/gwin/checkbox.c +++ b/src/gwin/checkbox.c @@ -153,44 +153,52 @@ static const GColorSet *getDrawColors(GWidgetObject *gw) { void gwinCheckboxDraw_CheckOnLeft(GWidgetObject *gw, void *param) { #define gcw ((GCheckboxObject *)gw) - coord_t ld, df; + coord_t ld, df, abs_x, abs_y; const GColorSet * pcol; (void) param; - if (gw->g.vmt != (gwinVMT *)&checkboxVMT) return; + if (gw->g.vmt != (gwinVMT *)&checkboxVMT) + return; + + gwinGetAbsoluteCoordinates((GHandle)gw, &abs_x, &abs_y); + pcol = getDrawColors(gw); ld = gw->g.width < gw->g.height ? gw->g.width : gw->g.height; - gdispGFillArea(gw->g.display, gw->g.x+1, gw->g.y+1, ld, ld-2, gw->pstyle->background); - gdispGDrawBox(gw->g.display, gw->g.x, gw->g.y, ld, ld, pcol->edge); + gdispGFillArea(gw->g.display, abs_x+1, abs_y+1, ld, ld-2, gw->pstyle->background); + gdispGDrawBox(gw->g.display, abs_x, abs_y, ld, ld, pcol->edge); df = ld < 4 ? 1 : 2; if (gw->g.flags & GCHECKBOX_FLG_CHECKED) - gdispGFillArea(gw->g.display, gw->g.x+df, gw->g.y+df, ld-2*df, ld-2*df, pcol->fill); + gdispGFillArea(gw->g.display, abs_x+df, abs_y+df, ld-2*df, ld-2*df, pcol->fill); - gdispGFillStringBox(gw->g.display, gw->g.x+ld+1, gw->g.y, gw->g.width-ld-1, gw->g.height, gw->text, gw->g.font, pcol->text, gw->pstyle->background, justifyLeft); + gdispGFillStringBox(gw->g.display, abs_x+ld+1, abs_y, gw->g.width-ld-1, gw->g.height, gw->text, gw->g.font, pcol->text, gw->pstyle->background, justifyLeft); #undef gcw } void gwinCheckboxDraw_CheckOnRight(GWidgetObject *gw, void *param) { #define gcw ((GCheckboxObject *)gw) - coord_t ep, ld, df; + coord_t ep, ld, df, abs_x, abs_y; const GColorSet * pcol; (void) param; - if (gw->g.vmt != (gwinVMT *)&checkboxVMT) return; + if (gw->g.vmt != (gwinVMT *)&checkboxVMT) + return; + + gwinGetAbsoluteCoordinates((GHandle)gw, &abs_x, &abs_y); + pcol = getDrawColors(gw); ld = gw->g.width < gw->g.height ? gw->g.width : gw->g.height; ep = gw->g.width-ld-1; - gdispGFillArea(gw->g.display, gw->g.x+ep-1, gw->g.y+1, ld, ld-2, gw->pstyle->background); - gdispGDrawBox(gw->g.display, gw->g.x+ep, gw->g.y, ld, ld, pcol->edge); + gdispGFillArea(gw->g.display, abs_x+ep-1, abs_y+1, ld, ld-2, gw->pstyle->background); + gdispGDrawBox(gw->g.display, abs_x+ep, abs_y, ld, ld, pcol->edge); df = ld < 4 ? 1 : 2; if (gw->g.flags & GCHECKBOX_FLG_CHECKED) - gdispGFillArea(gw->g.display, gw->g.x+ep+df, gw->g.y+df, ld-2*df, ld-2*df, pcol->fill); + gdispGFillArea(gw->g.display, abs_x+ep+df, abs_y+df, ld-2*df, ld-2*df, pcol->fill); - gdispGFillStringBox(gw->g.display, gw->g.x, gw->g.y, ep-1, gw->g.height, gw->text, gw->g.font, pcol->text, gw->pstyle->background, justifyRight); + gdispGFillStringBox(gw->g.display, abs_x, abs_y, ep-1, gw->g.height, gw->text, gw->g.font, pcol->text, gw->pstyle->background, justifyRight); #undef gcw } |