summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libtk/canvs.c2
-rw-r--r--libtk/ebind.c18
-rw-r--r--libtk/entry.c2
-rw-r--r--libtk/listb.c2
-rw-r--r--libtk/menus.c4
-rw-r--r--libtk/parse.c19
-rw-r--r--libtk/scale.c35
-rw-r--r--libtk/scrol.c169
-rw-r--r--libtk/textw.c2
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;