diff options
| author | forsyth <forsyth@vitanuova.com> | 2010-03-22 14:41:55 +0000 |
|---|---|---|
| committer | forsyth <forsyth@vitanuova.com> | 2010-03-22 14:41:55 +0000 |
| commit | c9ccdbd573a9ae70f739fdca280e75da310a3324 (patch) | |
| tree | 7eff86774ac797770dffdc14bd933f0e805b3b18 | |
| parent | 0db9190e73bd2b1391b1108a354b8cf089ab5374 (diff) | |
20100322-1441
| -rw-r--r-- | libtk/canvs.c | 2 | ||||
| -rw-r--r-- | libtk/ebind.c | 18 | ||||
| -rw-r--r-- | libtk/entry.c | 2 | ||||
| -rw-r--r-- | libtk/listb.c | 2 | ||||
| -rw-r--r-- | libtk/menus.c | 4 | ||||
| -rw-r--r-- | libtk/parse.c | 19 | ||||
| -rw-r--r-- | libtk/scale.c | 35 | ||||
| -rw-r--r-- | libtk/scrol.c | 169 | ||||
| -rw-r--r-- | libtk/textw.c | 2 |
9 files changed, 99 insertions, 154 deletions
diff --git a/libtk/canvs.c b/libtk/canvs.c index 9d7cc4d1..06b8f93a 100644 --- a/libtk/canvs.c +++ b/libtk/canvs.c @@ -379,8 +379,6 @@ tkfreecanv(Tk *tk) } } -enum {Bufnone = 99}; - char* tkdrawcanv(Tk *tk, Point orig) { diff --git a/libtk/ebind.c b/libtk/ebind.c index e6068b44..4ef3c686 100644 --- a/libtk/ebind.c +++ b/libtk/ebind.c @@ -242,11 +242,9 @@ tkcmdbind(Tk *tk, int event, char *s, void *data) if (!(event & TkKey)) { if(event & (TkButton1P|TkButton1R)) v = 1; - else - if(event & (TkButton2P|TkButton2R)) + else if(event & (TkButton2P|TkButton2R)) v = 2; - else - if(event & (TkButton3P|TkButton3R)) + else if(event & (TkButton3P|TkButton3R)) v = 3; } c += snprint(c, len, "%d", v); @@ -260,11 +258,9 @@ tkcmdbind(Tk *tk, int event, char *s, void *data) case 's': if((event & TkKey)) c += snprint(c, len, "%d", TKKEY(event)); - else - if((event & (TkEmouse|TkEnter))) + else if((event & (TkEmouse|TkEnter))) c += snprint(c, len, "%d", m->b); - else - if((event & TkFocusin)) + else if((event & TkFocusin)) c += snprint(c, len, "%d", (int)data); else goto def; @@ -298,8 +294,7 @@ tkcmdbind(Tk *tk, int event, char *s, void *data) v = TKKEY(event); if(v == '{' || v == '}' || v == '\\') c += snprint(c, len, "\\%C", v); - else - if(v != '\0') + else if(v != '\0') c += snprint(c, len, "%C", v); break; case 'K': @@ -319,8 +314,7 @@ tkcmdbind(Tk *tk, int event, char *s, void *data) t->execdepth = 0; if(cmd[0] == '|') tkexec(t, cmd+1, nil); - else - if(cmd[0] != '\0') + else if(cmd[0] != '\0') e = tkexec(t, cmd, nil); t->execdepth = -1; diff --git a/libtk/entry.c b/libtk/entry.c index 344e39c4..cb7c2b63 100644 --- a/libtk/entry.c +++ b/libtk/entry.c @@ -245,7 +245,7 @@ tkentry(TkTop *t, char *arg, char **ret) return TkNomem; tk->relief = TKsunken; - tk->borderwidth = 2; + tk->borderwidth = 1; tk->flag |= Tktakefocus; tk->highlightwidth = 1; diff --git a/libtk/listb.c b/libtk/listb.c index af8850bd..df5eea0b 100644 --- a/libtk/listb.c +++ b/libtk/listb.c @@ -90,7 +90,7 @@ tklistbox(TkTop *t, char *arg, char **ret) tkl = TKobj(TkListbox, tk); tkl->sborderwidth = 1; tk->relief = TKsunken; - tk->borderwidth = 2; + tk->borderwidth = 1; tk->highlightwidth = 1; tk->flag |= Tktakefocus; tk->req.width = 170; diff --git a/libtk/menus.c b/libtk/menus.c index ca8f424c..4d4d55d4 100644 --- a/libtk/menus.c +++ b/libtk/menus.c @@ -359,7 +359,7 @@ mkchoicemenu(Tk *tkb) menu->relief = TKraised; menu->flag |= Tknograb; - menu->borderwidth = 2; + menu->borderwidth = 1; tkputenv(menu->env); menu->env = tkb->env; menu->env->ref++; @@ -662,7 +662,7 @@ tkmenu(TkTop *t, char *arg, char **ret) tkw->di = (void*)-1; // XXX tk->relief = TKraised; tk->flag |= Tknograb; - tk->borderwidth = 2; + tk->borderwidth = 1; tko[0].ptr = tk; tko[0].optab = tkgeneric; diff --git a/libtk/parse.c b/libtk/parse.c index d2a31dd3..32f9194a 100644 --- a/libtk/parse.c +++ b/libtk/parse.c @@ -97,15 +97,11 @@ tkword(TkTop *t, char *str, char *buf, char *ebuf, int *gotarg) if(c == '\\') { if(*str == '}' || *str == '{' || *str == '\\') c = *str++; - } - else - if(c == '}') { + } else if(c == '}') { lev--; if(lev == 0) break; - } - else - if(c == '{') + } else if(c == '{') lev++; *buf++ = c; } @@ -127,15 +123,11 @@ tkword(TkTop *t, char *str, char *buf, char *ebuf, int *gotarg) if(c == '\\') { if(*str == ']' || *str == '[' || *str == '\\') c = *str++; - } - else - if(c == ']') { + } else if(c == ']') { lev--; if(lev == 0) break; - } - else - if(c == '[') + } else if(c == '[') lev++; *p++ = c; } @@ -701,8 +693,7 @@ pbmap(TkTop *t, TkOption *o, void *place, char **str, char *buf, char *ebuf) if(buf[0] == '@') i = display_open(d, buf+1); - else - if(buf[0] == '<') { + else if(buf[0] == '<') { buf++; fd = strtoul(buf, &c, 0); if(c == buf) { diff --git a/libtk/scale.c b/libtk/scale.c index e32f7e69..cf2a15ac 100644 --- a/libtk/scale.c +++ b/libtk/scale.c @@ -81,7 +81,7 @@ enum { Scalewidth = 18, ScalePad = 2, - ScaleBW = 2, + ScaleBW = 1, ScaleSlider = 16, ScaleLen = 80, @@ -132,8 +132,7 @@ tksizescale(Tk *tk) w += p.x + ScalePad; if (tks->sv == BoolT) w += digits + ScalePad; - } - else { + } else { w = maximum(p.x, tks->len + ScaleBW + 2*ScalePad); h = Scalewidth + 2*ScalePad + 2*ScaleBW; fh = tk->env->font->height; @@ -280,7 +279,7 @@ tkscalehoriz(Tk *tk, Image *i) Image *d, *l; Rectangle r, r2, sr; Point p, q; - int fh, sh, sl, v, w, h, len; + int fh, sh, gh, sl, v, w, h, len; int fgnd; e = tk->env; @@ -347,7 +346,11 @@ tkscalehoriz(Tk *tk, Image *i) p.y = sr.min.y; q = p; q.x += tks->sl/2 + 1; - q.y++; + if(ScaleBW > 1) { + gh = sh; + q.y++; + } else + gh = sh-1; if(tk->flag & Tkactivated) { r2.min = p; r2.max.x = p.x+sl; @@ -357,11 +360,11 @@ tkscalehoriz(Tk *tk, Image *i) switch(tks->relief) { case TKsunken: tkbevel(i, p, tks->sl, sh, ScaleBW, d, l); - tkbevel(i, q, 0, sh, 1, l, d); + tkbevel(i, q, 0, gh, 1, l, d); break; case TKraised: tkbevel(i, p, tks->sl, sh, ScaleBW, l, d); - tkbevel(i, q, 0, sh, 1, d, l); + tkbevel(i, q, 0, gh, 1, d, l); break; } tks->pixpos = p.x; @@ -395,7 +398,7 @@ tkscalevert(Tk *tk, Image *i) Image *d, *l; Rectangle r, r2, sr; Point p, q; - int fh, v, sw, w, h, len, sl; + int fh, v, sw, gw, w, h, len, sl; int fgnd; e = tk->env; @@ -464,7 +467,11 @@ tkscalevert(Tk *tk, Image *i) p.y += ((vlong)v*h)/len; p.x = sr.min.x; q = p; - q.x++; + if(ScaleBW > 1) { + q.x++; + gw = sw; + } else + gw = sw-1; q.y += tks->sl/2 + 1; if(tk->flag & Tkactivated) { r2.min = p; @@ -475,11 +482,11 @@ tkscalevert(Tk *tk, Image *i) switch(tks->relief) { case TKsunken: tkbevel(i, p, sw, tks->sl, ScaleBW, d, l); - tkbevel(i, q, sw, 0, 1, l, d); + tkbevel(i, q, sw, 0, gw, l, d); break; case TKraised: tkbevel(i, p, sw, tks->sl, ScaleBW, l, d); - tkbevel(i, q, sw, 0, 1, d, l); + tkbevel(i, q, sw, 0, gw, d, l); break; } tks->pixpos = p.y; @@ -611,11 +618,9 @@ tkscaleposn(TkEnv *env, Tk *tk, char *arg, int *z) } if(x > tks->pixmin && x < tks->pixpos) return trough1; - else - if(x >= tks->pixpos && x < tks->pixpos+tks->sl+2*ScaleBW) + else if(x >= tks->pixpos && x < tks->pixpos+tks->sl+2*ScaleBW) return slider; - else - if(x >= tks->pixpos+tks->sl+2*ScaleBW && x < tks->pixmax) + else if(x >= tks->pixpos+tks->sl+2*ScaleBW && x < tks->pixmax) return trough2; return ""; diff --git a/libtk/scrol.c b/libtk/scrol.c index 29f51abd..cae26907 100644 --- a/libtk/scrol.c +++ b/libtk/scrol.c @@ -7,7 +7,9 @@ /* Layout constants */ enum { Triangle = 10, /* Height of scroll bar triangle */ - Elembw = 2, /* border around elements (triangles etc.) */ + Elembw = 1, /* border around elements (triangles etc.) */ + Scrollbw = 1, /* bevel border on scrollbar */ + Tribw= 1, /* shadow border on triangle */ }; typedef struct TkScroll TkScroll; @@ -103,8 +105,8 @@ tkscrollbar(TkTop *t, char *arg, char **ret) tks = TKobj(TkScroll, tk); - tk->relief = TKsunken; - tk->borderwidth = 2; + tk->relief = TKflat; + tk->borderwidth = 1; tks->activer = TKraised; tks->orient = Tkvertical; @@ -164,12 +166,59 @@ tkfreescrlb(Tk *tk) } static void +drawarrow(TkScroll *tks, Image *i, Point p[3], TkEnv *e, int activef, int buttonf) +{ + Image *l, *d, *t; + int bgnd; + + bgnd = TkCbackgnd; + if(tks->flag & (activef|buttonf)) { + bgnd = TkCactivebgnd; + fillpoly(i, p, 3, ~0, tkgc(e, bgnd), p[0]); + } + + l = tkgc(e, bgnd+TkLightshade); + d = tkgc(e, bgnd+TkDarkshade); + if(tks->flag & buttonf) { + t = d; + d = l; + l = t; + } + line(i, p[1], p[2], 0, 0, Tribw-1, d, p[1]); + line(i, p[2], p[0], 0, 0, Tribw-1, d, p[2]); + line(i, p[0], p[1], 0, 0, Tribw-1, l, p[0]); +} + +static void +drawslider(TkScroll *tks, Image *i, Point o, int w, int h, TkEnv *e) +{ + Image *l, *d, *t; + Rectangle r; + int bgnd; + + bgnd = TkCbackgnd; + if(tks->flag & (ActiveB1|ButtonB1)) { + r.min = o; + r.max.x = o.x + w + Elembw*2; + r.max.y = o.y + h + Elembw*2; + bgnd = TkCactivebgnd; + draw(i, r, tkgc(e, bgnd), nil, ZP); + } + + l = tkgc(e, bgnd+TkLightshade); + d = tkgc(e, bgnd+TkDarkshade); + if(tks->flag & ButtonB1) + tkbevel(i, o, w, h, Scrollbw, d, l); + else + tkbevel(i, o, w, h, Scrollbw, l, d); +} + +static void tkvscroll(Tk *tk, TkScroll *tks, Image *i, Point size) { TkEnv *e; - Rectangle r; Point p[3], o; - Image *d, *l, *t; + Image *d, *l; int bo, w, h, triangle, bgnd; e = tk->env; @@ -183,23 +232,7 @@ tkvscroll(Tk *tk, TkScroll *tks, Image *i, Point size) p[1].y = p[0].y + triangle; p[2].x = p[0].x + triangle/2; p[2].y = p[0].y + triangle; - - bgnd = TkCbackgnd; - if(tks->flag & (ActiveA1|ButtonA1)) { - bgnd = TkCactivebgnd; - fillpoly(i, p, 3, ~0, tkgc(e, bgnd), p[0]); - } - - l = tkgc(e, bgnd+TkLightshade); - d = tkgc(e, bgnd+TkDarkshade); - if(tks->flag & ButtonA1) { - t = d; - d = l; - l = t; - } - line(i, p[1], p[2], 0, 0, 1, d, p[1]); - line(i, p[2], p[0], 0, 0, 1, d, p[2]); - line(i, p[0], p[1], 0, 0, 1, l, p[0]); + drawarrow(tks, i, p, e, ActiveA1, ButtonA1); tks->a1 = p[2].y; h = p[2].y + Elembw; @@ -207,23 +240,7 @@ tkvscroll(Tk *tk, TkScroll *tks, Image *i, Point size) p[0].y = size.y - bo - 1; p[1].y = p[0].y - triangle; p[2].y = p[0].y - triangle; - - bgnd = TkCbackgnd; - if(tks->flag & (ActiveA2|ButtonA2)) { - bgnd = TkCactivebgnd; - fillpoly(i, p, 3, ~0, tkgc(e, bgnd), p[0]); - } - - l = tkgc(e, bgnd+TkLightshade); - d = tkgc(e, bgnd+TkDarkshade); - if(tks->flag & ButtonA2) { - t = d; - d = l; - l = t; - } - line(i, p[1], p[2], 0, 0, 1, l, p[1]); - line(i, p[2], p[0], 0, 0, 1, d, p[2]); - line(i, p[0], p[1], 0, 0, 1, l, p[0]); + drawarrow(tks, i, p, e, ActiveA2, ButtonA2); tks->a2 = p[2].y; @@ -236,32 +253,18 @@ tkvscroll(Tk *tk, TkScroll *tks, Image *i, Point size) h *= tks->bot - tks->top; h = TKF2I(h); - bgnd = TkCbackgnd; - if(tks->flag & (ActiveB1|ButtonB1)) { - r.min = o; - r.max.x = o.x + w + 2*2; - r.max.y = o.y + h + 2*2; - bgnd = TkCactivebgnd; - draw(i, r, tkgc(e, bgnd), nil, ZP); - } - tks->t1 = o.y - Elembw; tks->t2 = o.y + h + Elembw; - l = tkgc(e, bgnd+TkLightshade); - d = tkgc(e, bgnd+TkDarkshade); - if(tks->flag & ButtonB1) - tkbevel(i, o, w, h, 2, d, l); - else - tkbevel(i, o, w, h, 2, l, d); + + drawslider(tks, i, o, w, h, e); } static void tkhscroll(Tk *tk, TkScroll *tks, Image *i, Point size) { TkEnv *e; - Rectangle r; Point p[3], o; - Image *d, *l, *t; + Image *d, *l; int bo, w, h, triangle, bgnd; e = tk->env; @@ -275,24 +278,7 @@ tkhscroll(Tk *tk, TkScroll *tks, Image *i, Point size) p[1].y = p[0].y - triangle/2 + 1; p[2].x = p[0].x + triangle; p[2].y = p[0].y + triangle/2 - 2; - - bgnd = TkCbackgnd; - if(tks->flag & (ActiveA1|ButtonA1)) { - bgnd = TkCactivebgnd; - fillpoly(i, p, 3, ~0, tkgc(e, bgnd), p[0]); - } - - l = tkgc(e, bgnd+TkLightshade); - d = tkgc(e, bgnd+TkDarkshade); - - if(tks->flag & ButtonA1) { - t = d; - d = l; - l = t; - } - line(i, p[1], p[2], 0, 0, 1, d, p[1]); - line(i, p[2], p[0], 0, 0, 1, d, p[2]); - line(i, p[0], p[1], 0, 0, 1, l, p[0]); + drawarrow(tks, i, p, e, ActiveA1, ButtonA1); tks->a1 = p[2].x; w = p[2].x + Elembw; @@ -300,23 +286,7 @@ tkhscroll(Tk *tk, TkScroll *tks, Image *i, Point size) p[0].x = size.x - bo - 1; p[1].x = p[0].x - triangle; p[2].x = p[0].x - triangle; - - bgnd = TkCbackgnd; - if(tks->flag & (ActiveA2|ButtonA2)) { - bgnd = TkCactivebgnd; - fillpoly(i, p, 3, ~0, tkgc(e, bgnd), p[0]); - } - - l = tkgc(e, bgnd+TkLightshade); - d = tkgc(e, bgnd+TkDarkshade); - if(tks->flag & ButtonA2) { - t = d; - d = l; - l = t; - } - line(i, p[1], p[2], 0, 0, 1, l, p[1]); - line(i, p[2], p[0], 0, 0, 1, d, p[2]); - line(i, p[0], p[1], 0, 0, 1, l, p[0]); + drawarrow(tks, i, p, e, ActiveA2, ButtonA2); tks->a2 = p[2].x; @@ -329,23 +299,10 @@ tkhscroll(Tk *tk, TkScroll *tks, Image *i, Point size) w *= tks->bot - tks->top; w = TKF2I(w); - bgnd = TkCbackgnd; - if(tks->flag & (ActiveB1|ButtonB1)) { - r.min = o; - r.max.x = o.x + w + 2*2; - r.max.y = o.y + h + 2*2; - bgnd = TkCactivebgnd; - draw(i, r, tkgc(e, bgnd), nil, ZP); - } - tks->t1 = o.x - Elembw; tks->t2 = o.x + w + Elembw; - l = tkgc(e, bgnd+TkLightshade); - d = tkgc(e, bgnd+TkDarkshade); - if(tks->flag & ButtonB1) - tkbevel(i, o, w, h, 2, d, l); - else - tkbevel(i, o, w, h, 2, l, d); + + drawslider(tks, i, o, w, h, e); } char* diff --git a/libtk/textw.c b/libtk/textw.c index f17c9edb..7eac56bb 100644 --- a/libtk/textw.c +++ b/libtk/textw.c @@ -171,7 +171,7 @@ tktext(TkTop *t, char* arg, char **ret) tkt = TKobj(TkText, tk); tk->relief = TKsunken; - tk->borderwidth = 2; + tk->borderwidth = 1; tk->ipad.x = Textpadx * 2; tk->ipad.y = Textpady * 2; tk->flag |= Tktakefocus; |
