xref: /plan9/sys/src/libdraw/scroll.c (revision a84536681645e23c630ce4ef2e5c3b284d4c590b)
1*a8453668SDavid du Colombier #include <u.h>
2*a8453668SDavid du Colombier #include <libc.h>
3*a8453668SDavid du Colombier #include <draw.h>
4*a8453668SDavid du Colombier 
5*a8453668SDavid du Colombier int
mousescrollsize(int maxlines)6*a8453668SDavid du Colombier mousescrollsize(int maxlines)
7*a8453668SDavid du Colombier {
8*a8453668SDavid du Colombier 	static int lines, pcnt;
9*a8453668SDavid du Colombier 	char *mss;
10*a8453668SDavid du Colombier 
11*a8453668SDavid du Colombier 	if(lines == 0 && pcnt == 0){
12*a8453668SDavid du Colombier 		mss = getenv("mousescrollsize");
13*a8453668SDavid du Colombier 		if(mss){
14*a8453668SDavid du Colombier 			if(strchr(mss, '%') != nil)
15*a8453668SDavid du Colombier 				pcnt = atof(mss);
16*a8453668SDavid du Colombier 			else
17*a8453668SDavid du Colombier 				lines = atoi(mss);
18*a8453668SDavid du Colombier 			free(mss);
19*a8453668SDavid du Colombier 		}
20*a8453668SDavid du Colombier 		if(lines == 0 && pcnt == 0)
21*a8453668SDavid du Colombier 			lines = 1;
22*a8453668SDavid du Colombier 		if(pcnt>=100)
23*a8453668SDavid du Colombier 			pcnt = 100;
24*a8453668SDavid du Colombier 	}
25*a8453668SDavid du Colombier 
26*a8453668SDavid du Colombier 	if(lines)
27*a8453668SDavid du Colombier 		return lines;
28*a8453668SDavid du Colombier 	return pcnt * maxlines/100.0;
29*a8453668SDavid du Colombier }
30