From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=0.2 required=5.0 tests=DKIM_ADSP_CUSTOM_MED, DKIM_INVALID,DKIM_SIGNED,FREEMAIL_FROM,T_SCC_BODY_TEXT_LINE autolearn=no autolearn_force=no version=3.4.4 Received: (qmail 22622 invoked from network); 6 Apr 2022 17:14:05 -0000 Received: from 4ess.inri.net (216.126.196.42) by inbox.vuxu.org with ESMTPUTF8; 6 Apr 2022 17:14:05 -0000 Received: from mail-wr1-f50.google.com ([209.85.221.50]) by 4ess; Wed Apr 6 12:49:42 -0400 2022 Received: by mail-wr1-f50.google.com with SMTP id h4so4074074wrc.13 for <9front@9front.org>; Wed, 06 Apr 2022 09:48:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:message-id:date:subject:to:mime-version :content-transfer-encoding; bh=fWWc045QxAb1cPKE0ICgKar/GDmGQlLOn0W5MfsFDwg=; b=aSw7l43cgmZcRByc3f16D7TlMqHwaFZ6VsDGiHUiiewW5rh75tOkzDIBPTKN+IduCn UYR9lIzgVqPTHtDuzexI/1ABBBpTBdIjiiFKwKhtaB1jyf1e7voT8ZFYsvzAHJbx20oN Paa/CF6cCd8Hzf1PZP67n7ygEXYWD5WJ+Sq+8ngPy6SChBN3bjiKY3Bt0tx5XQ0jj/N9 +qnn+S7RAegr25uXG/EtmpWiRrRv6c52NNikMDtIuXWTIigpGyoGCiJlccI8gLdMtIXW DLt4CL6T981qtNay08jpRczKONl1JgqWy7nB6Mu46wSju0cld1Jbu4ozQbkkDUASjhGl dddw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:message-id:date:subject:to:mime-version :content-transfer-encoding; bh=fWWc045QxAb1cPKE0ICgKar/GDmGQlLOn0W5MfsFDwg=; b=wPIM3HvUVW4VBNfW76TQaTjE7z+0Pu/jfjWQ9RHP5bx/JEkl/a9/x4x9fRf4vFlFYB 6Qk6hOPtxCLwwbU/uLZWDikPHxLCVojoMz8llfwjam4RyiGjltvYejD+NT/EhHNo5l8w gEz7jV7fbgVuhw0GBFT9vgQtLuB90uAVT9pNX2X/pCjOdKQgAb6MpB2dulTW/Ql9v5SL ZBEVSHUliFm/QaBsbUmrczz7NPiM9Jc+fYKBjf4jqoIftA0dsmXSlfcUpT2/q2LfULu7 EDEvJuBmv699w5ZAvLzcXAEefb2lf5eHPI5ADylPxW7trpFJZT4kI2kPQaYokKNnUZN4 yKpA== X-Gm-Message-State: AOAM5331EaM60inUe3Oy66X119qj3ChgHIvOlUyYHJ5E4Woa9je0b/Ir kVonh1l1ojIMCFyPTjhj7NbQFD4T84A= X-Google-Smtp-Source: ABdhPJyn+Crgtip/k1W37ftweEQ2rQ5ASTU7EDNpY7LlJUV0446UuGwr1xVcgsagpHk8xQt5JeqVyg== X-Received: by 2002:adf:f5c4:0:b0:205:2836:f1e5 with SMTP id k4-20020adff5c4000000b002052836f1e5mr7241817wrp.519.1649263717102; Wed, 06 Apr 2022 09:48:37 -0700 (PDT) Return-Path: Received: from hades (lfbn-idf1-1-2195-152.w92-151.abo.wanadoo.fr. [92.151.114.152]) by smtp.gmail.com with ESMTPSA id p125-20020a1c2983000000b0038e5ca446bcsm5402874wmp.5.2022.04.06.09.48.36 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Wed, 06 Apr 2022 09:48:36 -0700 (PDT) From: phil9 Message-ID: <9B11E8183922BC560845D6EBBB590E78@gmail.com> Date: Wed, 06 Apr 2022 16:46:58 +0000 To: 9front@9front.org MIME-Version: 1.0 Content-Type: text/plain; charset="US-ASCII" Content-Transfer-Encoding: 7bit List-ID: <9front.9front.org> List-Help: X-Glyph: ➈ X-Bullshit: proven event-oriented engine markup framework table Subject: [9front] [PATCH] mothra: make scrollbar style consistent with other applications Reply-To: 9front@9front.org Precedence: bulk Scrollbar was drawn using a wide dark gutter over a white background whereas other applications (window, sam, ...) use a thinner scrollbar with an inverse colorscheme. This makes the scrollbar more consistent with other 9front applications. --- diff 887366a22c1bc50c238668af61664112259a4365 c2a652e38079bbb0ab747af7c060e6d10e8b8042 --- a/sys/src/cmd/mothra/libpanel/draw.c Wed Apr 6 17:29:41 2022 +++ b/sys/src/cmd/mothra/libpanel/draw.c Wed Apr 6 18:46:58 2022 @@ -13,12 +13,13 @@ #define CKWID 1 /* width of frame around check mark */ #define CKINSET 1 /* space around check mark frame */ #define CKBORDER 2 /* space around X inside frame */ -static Image *pl_light, *pl_dark, *pl_tick, *pl_hilit; +static Image *pl_light, *pl_dark, *pl_scrl, *pl_tick, *pl_hilit; Image *pl_blue, *pl_white, *pl_black; int pl_drawinit(void){ pl_white=allocimage(display, Rect(0,0,1,1), screen->chan, 1, 0xFFFFFFFF); pl_light=allocimage(display, Rect(0,0,1,1), screen->chan, 1, 0xFFFFFFFF); pl_dark=allocimage(display, Rect(0,0,1,1), screen->chan, 1, 0x777777FF); + pl_scrl=allocimage(display, Rect(0,0,1,1), screen->chan, 1, 0x999999FF); 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); pl_blue=allocimage(display, Rect(0,0,1,1), RGB24, 1, 0x0000FFFF); @@ -28,7 +29,7 @@ draw(pl_tick, Rect(0, 0, TICKW, TICKW), pl_black, nil, ZP); draw(pl_tick, Rect(0, font->height-TICKW, TICKW, font->height), pl_black, nil, ZP); } - if(pl_white==0 || pl_light==0 || pl_black==0 || pl_dark==0 || pl_blue==0 || pl_tick==0) sysfatal("allocimage: %r"); + if(pl_white==0 || pl_light==0 || pl_black==0 || pl_dark==0 || pl_scrl==0 || pl_blue==0 || pl_tick==0) sysfatal("allocimage: %r"); return 1; } Rectangle pl_boxoutline(Image *b, Rectangle r, int style, int fill){ @@ -205,6 +206,19 @@ draw(b, r1, pl_light, 0, ZP); draw(b, r2, pl_dark, 0, ZP); draw(b, r3, pl_light, 0, ZP); +} +void pl_scrollupd(Image *b, Rectangle r, int lo, int hi) +{ + Rectangle sr; + if(lo<0) lo=0; + if(hi<=lo) hi=lo+1; + sr=r; + sr.min.y+=lo; + sr.max.x-=1; + sr.max.y=sr.min.y+hi; + if(sr.max.y>r.max.y) sr.max.y=r.max.y; + draw(b, r, pl_scrl, 0, ZP); + draw(b, sr, pl_light, 0, ZP); } void pl_draw1(Panel *p, Image *b); void pl_drawall(Panel *p, Image *b){ --- a/sys/src/cmd/mothra/libpanel/pldefs.h Wed Apr 6 17:29:41 2022 +++ b/sys/src/cmd/mothra/libpanel/pldefs.h Wed Apr 6 18:46:58 2022 @@ -68,6 +68,7 @@ Rectangle pl_radio(Image *, Rectangle, int); int pl_ckwid(void); void pl_sliderupd(Image *, Rectangle, int, int, int); +void pl_scrollupd(Image *, Rectangle, int, int); void pl_invis(Panel *, int); Point pl_iconsize(int, Icon *); void pl_highlight(Image *, Rectangle); --- a/sys/src/cmd/mothra/libpanel/scrollbar.c Wed Apr 6 17:29:41 2022 +++ b/sys/src/cmd/mothra/libpanel/scrollbar.c Wed Apr 6 18:46:58 2022 @@ -12,12 +12,12 @@ Rectangle interior; Point minsize; }; -#define SBWID 15 /* should come from draw.c? */ +#define SBWID 8 /* should come from draw.c? */ void pl_drawscrollbar(Panel *p){ Scrollbar *sp; sp=p->data; 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); + pl_scrollupd(p->b, sp->interior, sp->lo, sp->hi); } int pl_hitscrollbar(Panel *g, Mouse *m){ int oldstate, pos, len, dy; @@ -49,8 +49,7 @@ switch(m->buttons){ case 1: dy=pos*(sp->hi-sp->lo)/len; - pl_sliderupd(g->b, sp->interior, sp->dir, sp->lo-dy, - sp->hi-dy); + pl_scrollupd(g->b, sp->interior, sp->lo-dy, sp->hi-dy); break; case 2: if(g->scrollee && g->scrollee->scroll) @@ -59,8 +58,7 @@ break; case 4: dy=pos*(sp->hi-sp->lo)/len; - pl_sliderupd(g->b, sp->interior, sp->dir, sp->lo+dy, - sp->hi+dy); + pl_scrollupd(g->b, sp->interior, sp->lo+dy, sp->hi+dy); break; } } @@ -94,7 +92,6 @@ sp=p->data; ul=p->r.min; size=subpt(p->r.max, p->r.min); - pl_interior(p->state, &ul, &size); mylen=sp->dir==HORIZ?size.x:size.y; if(len==0) len=1; sp->lo=lo*mylen/len;