summaryrefslogtreecommitdiff
path: root/sys/src/cmd/mothra
diff options
context:
space:
mode:
authorstanley lieber <stanley.lieber@gmail.com>2020-04-25 21:53:54 -0400
committerstanley lieber <stanley.lieber@gmail.com>2020-04-25 21:53:54 -0400
commit9a7c5d56539b94a10ce75e63113b2d351e55e143 (patch)
treeec3dc11234f044d84843c2b5ee7a2ac4b9c10ce3 /sys/src/cmd/mothra
parent60c34ebb2da2b9716169ae4e6db4816d02c28910 (diff)
mothra: remove extraneous lines and decoration (fake 3d). patch extracted from my forked mess by Ori_B.
Diffstat (limited to 'sys/src/cmd/mothra')
-rw-r--r--sys/src/cmd/mothra/libpanel/draw.c21
-rw-r--r--sys/src/cmd/mothra/libpanel/event.c5
-rw-r--r--sys/src/cmd/mothra/libpanel/pldefs.h4
-rw-r--r--sys/src/cmd/mothra/libpanel/popup.c1
-rw-r--r--sys/src/cmd/mothra/libpanel/rtext.c17
-rw-r--r--sys/src/cmd/mothra/libpanel/scrollbar.c2
-rw-r--r--sys/src/cmd/mothra/libpanel/textview.c8
-rw-r--r--sys/src/cmd/mothra/libpanel/textwin.c2
8 files changed, 39 insertions, 21 deletions
diff --git a/sys/src/cmd/mothra/libpanel/draw.c b/sys/src/cmd/mothra/libpanel/draw.c
index 9f237d12b..9ae0cb929 100644
--- a/sys/src/cmd/mothra/libpanel/draw.c
+++ b/sys/src/cmd/mothra/libpanel/draw.c
@@ -19,7 +19,7 @@ int pl_drawinit(int ldepth){
plldepth=ldepth;
pl_white=allocimage(display, Rect(0,0,1,1), screen->chan, 1, 0xFFFFFFFF);
pl_light=allocimagemix(display, DPalebluegreen, DWhite);
- pl_dark =allocimage(display, Rect(0,0,1,1), screen->chan, 1, DPurpleblue);
+ pl_dark=allocimage(display, Rect(0,0,1,1), screen->chan, 1, DPurpleblue);
pl_black=allocimage(display, Rect(0,0,1,1), screen->chan, 1, 0x000000FF);
pl_hilit=allocimage(display, Rect(0,0,1,1), CHAN1(CAlpha,8), 1, 0x80);
if(pl_white==0 || pl_light==0 || pl_black==0 || pl_dark==0) return 0;
@@ -38,6 +38,13 @@ void pl_relief(Image *b, Image *ul, Image *lr, Rectangle r, int wid){
}
Rectangle pl_boxoutline(Image *b, Rectangle r, int style, int fill){
if(plldepth==0) switch(style){
+ case SUP:
+ case TUP:
+ pl_relief(b, pl_white, pl_white, r, BWID);
+ r=insetrect(r, BWID);
+ if(fill) draw(b, r, pl_white, 0, ZP);
+ else border(b, r, SPACE, pl_white, ZP);
+ break;
case UP:
pl_relief(b, pl_black, pl_black, r, BWID);
r=insetrect(r, BWID);
@@ -68,6 +75,13 @@ Rectangle pl_boxoutline(Image *b, Rectangle r, int style, int fill){
break;
}
else switch(style){
+ case SUP:
+ case TUP:
+ pl_relief(b, pl_white, pl_white, r, BWID);
+ r=insetrect(r, BWID);
+ if(fill) draw(b, r, pl_light, 0, ZP);
+ else border(b, r, SPACE, pl_white, ZP);
+ break;
case UP:
pl_relief(b, pl_white, pl_black, r, BWID);
r=insetrect(r, BWID);
@@ -97,7 +111,10 @@ Rectangle pl_boxoutline(Image *b, Rectangle r, int style, int fill){
else border(b, r, SPACE, pl_white, ZP);
break;
}
- return insetrect(r, SPACE);
+ switch(style){
+ case SUP: return insetrect(r, SPACE-SPACE);
+ default: return insetrect(r, SPACE);
+ }
}
Rectangle pl_outline(Image *b, Rectangle r, int style){
return pl_boxoutline(b, r, style, 0);
diff --git a/sys/src/cmd/mothra/libpanel/event.c b/sys/src/cmd/mothra/libpanel/event.c
index 4a9355d58..08dbf6bd1 100644
--- a/sys/src/cmd/mothra/libpanel/event.c
+++ b/sys/src/cmd/mothra/libpanel/event.c
@@ -9,8 +9,10 @@ void plgrabkb(Panel *g){
plkbfocus=g;
}
void plkeyboard(Rune c){
- if(plkbfocus)
+ if(plkbfocus){
plkbfocus->type(plkbfocus, c);
+ flushimage(display, 1);
+ }
}
/*
@@ -45,4 +47,5 @@ void plmouse(Panel *g, Mouse *m){
g->flags&=~REMOUSE;
g->lastmouse=hit;
}
+ flushimage(display, 1);
}
diff --git a/sys/src/cmd/mothra/libpanel/pldefs.h b/sys/src/cmd/mothra/libpanel/pldefs.h
index f5d461b3c..ec28cff6d 100644
--- a/sys/src/cmd/mothra/libpanel/pldefs.h
+++ b/sys/src/cmd/mothra/libpanel/pldefs.h
@@ -17,7 +17,9 @@ Rtext *pl_rthit(Rtext *, Point, Point, Point);
* States, also styles
*/
enum{
- UP,
+ SUP, // scrollbar
+ TUP, // textview
+ UP, // deprecated
DOWN1,
DOWN2,
DOWN3,
diff --git a/sys/src/cmd/mothra/libpanel/popup.c b/sys/src/cmd/mothra/libpanel/popup.c
index ea3bde177..a3007bbb8 100644
--- a/sys/src/cmd/mothra/libpanel/popup.c
+++ b/sys/src/cmd/mothra/libpanel/popup.c
@@ -65,6 +65,7 @@ int pl_hitpopup(Panel *g, Mouse *m){
if(g->state!=DOWN){
if(pp->save!=0){
draw(g->b, p->r, pp->save, 0, p->r.min);
+ flushimage(display, 1);
freeimage(pp->save);
pp->save=0;
}
diff --git a/sys/src/cmd/mothra/libpanel/rtext.c b/sys/src/cmd/mothra/libpanel/rtext.c
index 88495f2af..658831f8e 100644
--- a/sys/src/cmd/mothra/libpanel/rtext.c
+++ b/sys/src/cmd/mothra/libpanel/rtext.c
@@ -175,7 +175,9 @@ void pl_rtdraw(Image *b, Rectangle r, Rtext *t, Point offs){
Point lp, sp;
Rectangle dr;
Image *bb;
+ Image *pl_blue;
+ pl_blue=allocimage(display, Rect(0,0,1,1), RGB24, 1, 0x0000FFFF);
bb = b;
if(backup==0 || backup->chan!=b->chan || rectinrect(r, backup->r)==0){
freeimage(backup);
@@ -195,7 +197,6 @@ void pl_rtdraw(Image *b, Rectangle r, Rtext *t, Point offs){
&& dr.min.x<r.max.x){
if(t->b){
draw(b, insetrect(dr, BORD), t->b, 0, t->b->r.min);
- if(t->flags&PL_HOT) border(b, dr, 1, display->black, ZP);
if(t->flags&PL_STR) {
line(b, Pt(dr.min.x, dr.min.y), Pt(dr.max.x, dr.max.y),
Endsquare, Endsquare, 0,
@@ -214,7 +215,10 @@ void pl_rtdraw(Image *b, Rectangle r, Rtext *t, Point offs){
pl_stuffbitmap(t->p, bb);
}
else{
- string(b, dr.min, display->black, ZP, t->font, t->text);
+ if(t->flags&PL_HOT)
+ string(b, dr.min, pl_blue, ZP, t->font, t->text);
+ else
+ string(b, dr.min,display->black, ZP, t->font, t->text);
if(t->flags&PL_SEL)
pl_highlight(b, dr);
if(t->flags&PL_STR){
@@ -227,15 +231,6 @@ void pl_rtdraw(Image *b, Rectangle r, Rtext *t, Point offs){
sp = Pt(dr.max.x, y);
} else
sp = ZP;
- if(t->flags&PL_HOT){
- int y = dr.max.y - 1;
- if(lp.y != y)
- lp = Pt(dr.min.x, y);
- line(b, lp, Pt(dr.max.x, y),
- Endsquare, Endsquare, 0,
- display->black, ZP);
- lp = Pt(dr.max.x, y);
- } else
lp = ZP;
continue;
}
diff --git a/sys/src/cmd/mothra/libpanel/scrollbar.c b/sys/src/cmd/mothra/libpanel/scrollbar.c
index 8515d53ff..18daaf43a 100644
--- a/sys/src/cmd/mothra/libpanel/scrollbar.c
+++ b/sys/src/cmd/mothra/libpanel/scrollbar.c
@@ -16,7 +16,7 @@ struct Scrollbar{
void pl_drawscrollbar(Panel *p){
Scrollbar *sp;
sp=p->data;
- sp->interior=pl_outline(p->b, p->r, p->state);
+ sp->interior=pl_outline(p->b, p->r, SUP); /* SUP was p->state */
pl_sliderupd(p->b, sp->interior, sp->dir, sp->lo, sp->hi);
}
int pl_hitscrollbar(Panel *g, Mouse *m){
diff --git a/sys/src/cmd/mothra/libpanel/textview.c b/sys/src/cmd/mothra/libpanel/textview.c
index 6d561660e..f93cb8ef0 100644
--- a/sys/src/cmd/mothra/libpanel/textview.c
+++ b/sys/src/cmd/mothra/libpanel/textview.c
@@ -47,7 +47,7 @@ void pl_drawtextview(Panel *p){
Point size;
tp=p->data;
- r=pl_outline(p->b, p->r, UP);
+ r=pl_outline(p->b, p->r, TUP);
twid=r.max.x-r.min.x;
if(twid!=tp->twid){
tp->twid=twid;
@@ -80,7 +80,7 @@ int pl_hittextview(Panel *p, Mouse *m){
if(oldhitword==oldhitfirst)
pl_passon(oldhitword, m);
if(m->buttons&OUT)
- p->state=UP;
+ p->state=PASSIVE;
else if(m->buttons&7){
p->state=DOWN;
tp->buttons=m->buttons;
@@ -100,7 +100,7 @@ int pl_hittextview(Panel *p, Mouse *m){
}
else{
if(p->state==DOWN) hitme=1;
- p->state=UP;
+ p->state=PASSIVE;
}
if(tp->hitfirst!=oldhitfirst || tp->hitword!=oldhitword){
plrtseltext(tp->text, tp->hitword, tp->hitfirst);
@@ -214,7 +214,7 @@ void plinittextview(Panel *v, int flags, Point minsize, Rtext *t, void (*hit)(Pa
Textview *tp;
tp=v->data;
v->flags=flags|LEAF;
- v->state=UP;
+ v->state=PASSIVE;
v->draw=pl_drawtextview;
v->hit=pl_hittextview;
v->type=pl_typetextview;
diff --git a/sys/src/cmd/mothra/libpanel/textwin.c b/sys/src/cmd/mothra/libpanel/textwin.c
index cf49b1e46..f999867aa 100644
--- a/sys/src/cmd/mothra/libpanel/textwin.c
+++ b/sys/src/cmd/mothra/libpanel/textwin.c
@@ -136,7 +136,7 @@ void tw_draw(Textwin *t, int first, int last){
er=t->text+last;
for(r=t->text+first,lp=t->loc+(first-t->top);r!=er;r++,lp++){
if(lp->y+t->hgt>t->r.max.y){
- fprint(2, "chr %C, index %ld of %d, loc %d %d, off bottom\n",
+ fprint(2, "chr %C, index %lld of %d, loc %d %d, off bottom\n",
*r, lp-t->loc, t->bot-t->top, lp->x, lp->y);
return;
}