X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?a=blobdiff_plain;f=src%2Fwindow.c;h=cd392845da8ef8db1fe64b9e899082d5960e65b4;hb=526fc352816f21f1cbfa8110262a58224c14d208;hp=d0d8d74e8faf724bf5b4ae7e6825812b51d381e5;hpb=b012c112e391964e63247dcbb55988855b0fc95e;p=windtk diff --git a/src/window.c b/src/window.c index d0d8d74..cd39284 100644 --- a/src/window.c +++ b/src/window.c @@ -20,10 +20,62 @@ wt_widget *wt_window(wt_widget *par, const char *title, int style, int x, int y, return w; } +#define FRMTHICK 1 +#define FRMBEVEL 1 +#define FRMOFFS (FRMTHICK + FRMBEVEL * 2) +#define TBARTHICK 12 /* TODO: base it on font metrics */ +#define TBAROFFS (TBARTHICK + FRMBEVEL * 2) + static void draw_win(wt_widget *w, struct wt_graphics *gfx) { + struct wt_rect fr, tmprect; + int frmcol = COL_FFRM;//wt->focuswin == w ? COL_FFRM : COL_FRM; + wt_gfx_color(COL_BG); wt_gfx_fillrect(&w->rect); + + fr.x = w->rect.x - FRMOFFS; + fr.y = w->rect.y - TBAROFFS - FRMOFFS; + fr.width = w->rect.width + FRMOFFS * 2; + fr.height = w->rect.height + TBAROFFS + FRMOFFS * 2; + + wt_gfx_frame(&fr, FRM_OUT | FRM_NOFILL, frmcol); /* outer bevel */ + + /* draw main frame */ + wt_gfx_color(frmcol); + + fr.x += FRMBEVEL; + fr.y += FRMBEVEL; + fr.width -= FRMBEVEL * 2; + fr.height -= FRMBEVEL * 2; + + tmprect = fr; + tmprect.width = FRMTHICK; + wt_gfx_fillrect(&tmprect); /* left bar */ + tmprect.x += fr.width - FRMTHICK; + wt_gfx_fillrect(&tmprect); /* right bar */ + + tmprect = fr; + tmprect.height = FRMTHICK; + tmprect.x += FRMTHICK; + tmprect.width -= FRMTHICK * 2; + wt_gfx_fillrect(&tmprect); /* top bar */ + tmprect.y += fr.height - FRMTHICK; + wt_gfx_fillrect(&tmprect); /* bottom bar */ + + /* inner bevel */ + fr.x += FRMTHICK; + fr.y += FRMTHICK; + fr.width -= FRMTHICK * 2; + fr.height -= FRMTHICK * 2; + wt_gfx_frame(&fr, FRM_IN | FRM_NOFILL, frmcol); + + /* titlebar */ + fr.x = w->rect.x; + fr.width = w->rect.width; + fr.y += FRMBEVEL; + fr.height = TBARTHICK + FRMBEVEL * 2; + wt_gfx_frame(&fr, FRM_OUT, frmcol); } static void use_theme(wt_widget *w, struct wt_theme *theme)