… | |
… | |
7 | |
7 | |
8 | #define R_SB_NEXT 1 |
8 | #define R_SB_NEXT 1 |
9 | #define R_SB_XTERM 2 |
9 | #define R_SB_XTERM 2 |
10 | #define R_SB_PLAIN 4 |
10 | #define R_SB_PLAIN 4 |
11 | #define R_SB_RXVT 8 |
11 | #define R_SB_RXVT 8 |
|
|
12 | |
|
|
13 | #define R_SB_ALIGN_CENTRE 0 |
|
|
14 | #define R_SB_ALIGN_TOP 1 |
|
|
15 | #define R_SB_ALIGN_BOTTOM 2 |
|
|
16 | |
|
|
17 | #define SB_WIDTH_NEXT 19 |
|
|
18 | #define SB_WIDTH_XTERM 15 |
|
|
19 | #define SB_WIDTH_PLAIN 7 |
|
|
20 | #ifndef SB_WIDTH_RXVT |
|
|
21 | # define SB_WIDTH_RXVT 10 |
|
|
22 | #endif |
|
|
23 | |
|
|
24 | /* |
|
|
25 | * NeXT scrollbar defines |
|
|
26 | */ |
|
|
27 | #define SB_PADDING 1 |
|
|
28 | #define SB_BORDER_WIDTH 1 |
|
|
29 | #define SB_BEVEL_WIDTH_UPPER_LEFT 1 |
|
|
30 | #define SB_BEVEL_WIDTH_LOWER_RIGHT 2 |
|
|
31 | #define SB_LEFT_PADDING (SB_PADDING + SB_BORDER_WIDTH) |
|
|
32 | #define SB_MARGIN_SPACE (SB_PADDING * 2) |
|
|
33 | #define SB_BUTTON_WIDTH (SB_WIDTH_NEXT - SB_MARGIN_SPACE - SB_BORDER_WIDTH) |
|
|
34 | #define SB_BUTTON_HEIGHT (SB_BUTTON_WIDTH) |
|
|
35 | #define SB_BUTTON_SINGLE_HEIGHT (SB_BUTTON_HEIGHT + SB_PADDING) |
|
|
36 | #define SB_BUTTON_BOTH_HEIGHT (SB_BUTTON_SINGLE_HEIGHT * 2) |
|
|
37 | #define SB_BUTTON_TOTAL_HEIGHT (SB_BUTTON_BOTH_HEIGHT + SB_PADDING) |
|
|
38 | #define SB_BUTTON_BEVEL_X (SB_LEFT_PADDING) |
|
|
39 | #define SB_BUTTON_FACE_X (SB_BUTTON_BEVEL_X + SB_BEVEL_WIDTH_UPPER_LEFT) |
|
|
40 | #define SB_THUMB_MIN_HEIGHT (SB_BUTTON_WIDTH - (SB_PADDING * 2)) |
12 | |
41 | |
13 | enum sb_state { |
42 | enum sb_state { |
14 | STATE_IDLE = 1, |
43 | STATE_IDLE = 1, |
15 | STATE_MOTION, |
44 | STATE_MOTION, |
16 | STATE_UP, |
45 | STATE_UP, |
… | |
… | |
52 | return y > end + width + 1; |
81 | return y > end + width + 1; |
53 | if (style == R_SB_RXVT) |
82 | if (style == R_SB_RXVT) |
54 | return y > end; |
83 | return y > end; |
55 | return false; |
84 | return false; |
56 | } |
85 | } |
|
|
86 | unsigned min_height () |
|
|
87 | { |
|
|
88 | return style == R_SB_NEXT ? SB_THUMB_MIN_HEIGHT : 10; |
|
|
89 | } |
|
|
90 | unsigned size () |
|
|
91 | { |
|
|
92 | return end - beg - min_height (); |
|
|
93 | } |
|
|
94 | unsigned total_width () |
|
|
95 | { |
|
|
96 | return width + shadow * 2; |
|
|
97 | } |
57 | }; |
98 | }; |
58 | |
99 | |
59 | #define scrollbar_TotalWidth() (scrollBar.width + scrollBar.shadow * 2) |
|
|
60 | |
|
|
61 | #define SCROLLNEXT_MINHEIGHT SB_THUMB_MIN_HEIGHT |
|
|
62 | #define SCROLLRXVT_MINHEIGHT 10 |
|
|
63 | |
|
|
64 | #define scrollbar_minheight() (scrollBar.style == R_SB_NEXT \ |
|
|
65 | ? SCROLLNEXT_MINHEIGHT \ |
|
|
66 | : SCROLLRXVT_MINHEIGHT) |
|
|
67 | #define scrollbar_above_slider(y) ((y) < scrollBar.top) |
100 | #define scrollbar_above_slider(y) ((y) < scrollBar.top) |
68 | #define scrollbar_below_slider(y) ((y) > scrollBar.bot) |
101 | #define scrollbar_below_slider(y) ((y) > scrollBar.bot) |
69 | #define scrollbar_position(y) ((y) - scrollBar.beg) |
102 | #define scrollbar_position(y) ((y) - scrollBar.beg) |
70 | #define scrollbar_size() (scrollBar.end - scrollBar.beg \ |
|
|
71 | - scrollbar_minheight ()) |
|
|
72 | |
103 | |
73 | #define R_SB_ALIGN_CENTRE 0 |
|
|
74 | #define R_SB_ALIGN_TOP 1 |
|
|
75 | #define R_SB_ALIGN_BOTTOM 2 |
|
|
76 | |
|
|
77 | #define SB_WIDTH_NEXT 19 |
|
|
78 | #define SB_WIDTH_XTERM 15 |
|
|
79 | #define SB_WIDTH_PLAIN 7 |
|
|
80 | #ifndef SB_WIDTH_RXVT |
|
|
81 | # define SB_WIDTH_RXVT 10 |
|
|
82 | #endif |
|
|
83 | |
|
|
84 | /* |
|
|
85 | * NeXT scrollbar defines |
|
|
86 | */ |
|
|
87 | #define SB_PADDING 1 |
|
|
88 | #define SB_BORDER_WIDTH 1 |
|
|
89 | #define SB_BEVEL_WIDTH_UPPER_LEFT 1 |
|
|
90 | #define SB_BEVEL_WIDTH_LOWER_RIGHT 2 |
|
|
91 | #define SB_LEFT_PADDING (SB_PADDING + SB_BORDER_WIDTH) |
|
|
92 | #define SB_MARGIN_SPACE (SB_PADDING * 2) |
|
|
93 | #define SB_BUTTON_WIDTH (SB_WIDTH_NEXT - SB_MARGIN_SPACE - SB_BORDER_WIDTH) |
|
|
94 | #define SB_BUTTON_HEIGHT (SB_BUTTON_WIDTH) |
|
|
95 | #define SB_BUTTON_SINGLE_HEIGHT (SB_BUTTON_HEIGHT + SB_PADDING) |
|
|
96 | #define SB_BUTTON_BOTH_HEIGHT (SB_BUTTON_SINGLE_HEIGHT * 2) |
|
|
97 | #define SB_BUTTON_TOTAL_HEIGHT (SB_BUTTON_BOTH_HEIGHT + SB_PADDING) |
|
|
98 | #define SB_BUTTON_BEVEL_X (SB_LEFT_PADDING) |
|
|
99 | #define SB_BUTTON_FACE_X (SB_BUTTON_BEVEL_X + SB_BEVEL_WIDTH_UPPER_LEFT) |
|
|
100 | #define SB_THUMB_MIN_HEIGHT (SB_BUTTON_WIDTH - (SB_PADDING * 2)) |
|
|
101 | /* |
104 | /* |
102 | * +-------------+ |
105 | * +-------------+ |
103 | * | | <---< SB_PADDING |
106 | * | | <---< SB_PADDING |
104 | * | ::::::::::: | |
107 | * | ::::::::::: | |
105 | * | ::::::::::: | |
108 | * | ::::::::::: | |