diff options
author | Russ Cox <rsc@swtch.com> | 2012-11-25 23:48:19 -0500 |
---|---|---|
committer | Russ Cox <rsc@swtch.com> | 2012-11-25 23:48:19 -0500 |
commit | cc9547960e7cf12129e84c9489eb5dcd6235144b (patch) | |
tree | fafffafefcb6f8594dec50f499be5493d8d20717 /src/libframe/frinit.c | |
parent | ffaaaf9dae8de3c58c0d13f94926ddc363fdaf97 (diff) | |
download | plan9port-cc9547960e7cf12129e84c9489eb5dcd6235144b.tar.gz plan9port-cc9547960e7cf12129e84c9489eb5dcd6235144b.tar.bz2 plan9port-cc9547960e7cf12129e84c9489eb5dcd6235144b.zip |
libframe: auto scale tick for retina
R=rsc
http://codereview.appspot.com/6850102
Diffstat (limited to 'src/libframe/frinit.c')
-rw-r--r-- | src/libframe/frinit.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/src/libframe/frinit.c b/src/libframe/frinit.c index c178ede1..90931f25 100644 --- a/src/libframe/frinit.c +++ b/src/libframe/frinit.c @@ -31,11 +31,14 @@ frinittick(Frame *f) Image *b; Font *ft; + if(f->cols[BACK] == nil || f->display == nil) + return; + f->tickscale = scalesize(f->display, 1); b = f->display->screenimage; ft = f->font; if(f->tick) freeimage(f->tick); - f->tick = allocimage(f->display, Rect(0, 0, FRTICKW, ft->height), b->chan, 0, DWhite); + f->tick = allocimage(f->display, Rect(0, 0, f->tickscale*FRTICKW, ft->height), b->chan, 0, DWhite); if(f->tick == nil) return; if(f->tickback) @@ -49,10 +52,10 @@ frinittick(Frame *f) /* background color */ draw(f->tick, f->tick->r, f->cols[BACK], nil, ZP); /* vertical line */ - draw(f->tick, Rect(FRTICKW/2, 0, FRTICKW/2+1, ft->height), f->display->black, nil, ZP); + draw(f->tick, Rect(f->tickscale*(FRTICKW/2), 0, f->tickscale*(FRTICKW/2+1), ft->height), f->display->black, nil, ZP); /* box on each end */ - draw(f->tick, Rect(0, 0, FRTICKW, FRTICKW), f->cols[TEXT], nil, ZP); - draw(f->tick, Rect(0, ft->height-FRTICKW, FRTICKW, ft->height), f->cols[TEXT], nil, ZP); + draw(f->tick, Rect(0, 0, f->tickscale*FRTICKW, f->tickscale*FRTICKW), f->cols[TEXT], nil, ZP); + draw(f->tick, Rect(0, ft->height-f->tickscale*FRTICKW, f->tickscale*FRTICKW, ft->height), f->cols[TEXT], nil, ZP); } void |