From 813751d7549110861174912c9c12ea01dae0d084 Mon Sep 17 00:00:00 2001 From: rsc Date: Thu, 10 May 2007 19:08:09 +0000 Subject: add frdrawseltick --- man/man3/frame.3 | 20 +++++++++++++++++++- src/libframe/frdraw.c | 10 ++++++++-- 2 files changed, 27 insertions(+), 3 deletions(-) diff --git a/man/man3/frame.3 b/man/man3/frame.3 index 1e063802..d4eecddf 100644 --- a/man/man3/frame.3 +++ b/man/man3/frame.3 @@ -1,6 +1,6 @@ .TH FRAME 3 .SH NAME -frinit, frsetrects, frinittick, frclear, frcharofpt, frptofchar, frinsert, frdelete, frselect, frtick, frselectpaint, frdrawsel, frdrawsel0, frgetmouse \- frames of text +frinit, frsetrects, frinittick, frclear, frcharofpt, frptofchar, frinsert, frdelete, frselect, frtick, frselectpaint, frdrawsel, frdrawsel0, frdrawseltick, frgetmouse \- frames of text .SH SYNOPSIS .nf .B @@ -55,6 +55,11 @@ void frdrawsel(Frame *f, Point pt0, ulong p0, ulong p1, int highlighted) .PP .B +void frdrawseltick(Frame *f, Point pt0, ulong p0, ulong p1, +.B + int highlighted, int ticked) +.PP +.B void frdrawsel0(Frame *f, Point pt0, ulong p0, ulong p1, .B Image *back, Image *text) @@ -339,6 +344,19 @@ on the screen; like all of the selection-helper routines' .B Point arguments, it must be a value generated by .IR frptofchar . +.I Frdrawseltick +is identical to +.I frdrawsel +except that the +.I ticked +flag controls whether to draw the tick +when +.I highlighted +is non-zero and +.I p0 +and +.I p1 +are equal. .I Frdrawsel0 is a lower-level routine, taking as arguments a background color, .IR back , diff --git a/src/libframe/frdraw.c b/src/libframe/frdraw.c index 5f0ae016..0592ec9c 100644 --- a/src/libframe/frdraw.c +++ b/src/libframe/frdraw.c @@ -32,7 +32,7 @@ nbytes(char *s0, int nr) } void -frdrawsel(Frame *f, Point pt, ulong p0, ulong p1, int issel) +frdrawseltick(Frame *f, Point pt, ulong p0, ulong p1, int issel, int ticked) { Image *back, *text; @@ -40,7 +40,7 @@ frdrawsel(Frame *f, Point pt, ulong p0, ulong p1, int issel) frtick(f, frptofchar(f, f->p0), 0); if(p0 == p1){ - frtick(f, pt, issel); + frtick(f, pt, issel && ticked); return; } @@ -55,6 +55,12 @@ frdrawsel(Frame *f, Point pt, ulong p0, ulong p1, int issel) frdrawsel0(f, pt, p0, p1, back, text); } +void +frdrawsel(Frame *f, Point pt, ulong p0, ulong p1, int issel) +{ + frdrawseltick(f, pt, p0, p1, issel, issel); +} + void frdrawsel0(Frame *f, Point pt, ulong p0, ulong p1, Image *back, Image *text) { -- cgit v1.2.3