Mercurial > hg > xemacs-beta
comparison src/scrollbar-msw.c @ 442:abe6d1db359e r21-2-36
Import from CVS: tag r21-2-36
author | cvs |
---|---|
date | Mon, 13 Aug 2007 11:35:02 +0200 |
parents | 3ecd8885ac67 |
children | 5aa1854ad537 |
comparison
equal
deleted
inserted
replaced
441:72a7cfa4a488 | 442:abe6d1db359e |
---|---|
22 Boston, MA 02111-1307, USA. */ | 22 Boston, MA 02111-1307, USA. */ |
23 | 23 |
24 /* Synched up with: Not in FSF. */ | 24 /* Synched up with: Not in FSF. */ |
25 | 25 |
26 #include <config.h> | 26 #include <config.h> |
27 #include <limits.h> | |
28 #include "lisp.h" | 27 #include "lisp.h" |
29 | 28 |
30 #include "console-msw.h" | 29 #include "console-msw.h" |
31 #include "events.h" | 30 #include "events.h" |
32 #include "frame.h" | 31 #include "frame.h" |
46 static void | 45 static void |
47 mswindows_create_scrollbar_instance (struct frame *f, int vertical, | 46 mswindows_create_scrollbar_instance (struct frame *f, int vertical, |
48 struct scrollbar_instance *sb) | 47 struct scrollbar_instance *sb) |
49 { | 48 { |
50 int orientation; | 49 int orientation; |
51 | 50 |
52 sb->scrollbar_data = xnew_and_zero (struct mswindows_scrollbar_data); | 51 sb->scrollbar_data = xnew_and_zero (struct mswindows_scrollbar_data); |
53 | 52 |
54 if (vertical) | 53 if (vertical) |
55 orientation = SBS_VERT; | 54 orientation = SBS_VERT; |
56 else | 55 else |
57 orientation = SBS_HORZ; | 56 orientation = SBS_HORZ; |
58 | 57 |
59 SCROLLBAR_MSW_HANDLE (sb) = | 58 SCROLLBAR_MSW_HANDLE (sb) = |
60 CreateWindowEx(0, "SCROLLBAR", 0, orientation|WS_CHILD, | 59 CreateWindowEx(0, "SCROLLBAR", 0, orientation|WS_CHILD, |
61 CW_USEDEFAULT, CW_USEDEFAULT, | 60 CW_USEDEFAULT, CW_USEDEFAULT, |
62 CW_USEDEFAULT, CW_USEDEFAULT, | 61 CW_USEDEFAULT, CW_USEDEFAULT, |
63 FRAME_MSWINDOWS_HANDLE (f), | 62 FRAME_MSWINDOWS_HANDLE (f), |
82 | 81 |
83 static void | 82 static void |
84 mswindows_free_scrollbar_instance (struct scrollbar_instance *sb) | 83 mswindows_free_scrollbar_instance (struct scrollbar_instance *sb) |
85 { | 84 { |
86 DestroyWindow (SCROLLBAR_MSW_HANDLE (sb)); | 85 DestroyWindow (SCROLLBAR_MSW_HANDLE (sb)); |
87 if (sb->scrollbar_data) | 86 if (sb->scrollbar_data) |
88 xfree (sb->scrollbar_data); | 87 xfree (sb->scrollbar_data); |
89 } | 88 } |
90 | 89 |
91 static void | 90 static void |
92 mswindows_release_scrollbar_instance (struct scrollbar_instance *sb) | 91 mswindows_release_scrollbar_instance (struct scrollbar_instance *sb) |
145 UPDATE_POS_FIELD (scrollbar_x); | 144 UPDATE_POS_FIELD (scrollbar_x); |
146 UPDATE_POS_FIELD (scrollbar_y); | 145 UPDATE_POS_FIELD (scrollbar_y); |
147 UPDATE_POS_FIELD (scrollbar_width); | 146 UPDATE_POS_FIELD (scrollbar_width); |
148 UPDATE_POS_FIELD (scrollbar_height); | 147 UPDATE_POS_FIELD (scrollbar_height); |
149 | 148 |
150 if (pos_changed) | 149 if (pos_changed) |
151 { | 150 { |
152 MoveWindow(SCROLLBAR_MSW_HANDLE (sb), | 151 MoveWindow(SCROLLBAR_MSW_HANDLE (sb), |
153 new_scrollbar_x, new_scrollbar_y, | 152 new_scrollbar_x, new_scrollbar_y, |
154 new_scrollbar_width, new_scrollbar_height, | 153 new_scrollbar_width, new_scrollbar_height, |
155 TRUE); | 154 TRUE); |
185 win = real_window (sb->mirror, 1); | 184 win = real_window (sb->mirror, 1); |
186 frame = XWINDOW (win)->frame; | 185 frame = XWINDOW (win)->frame; |
187 f = XFRAME (frame); | 186 f = XFRAME (frame); |
188 | 187 |
189 /* SB_LINEDOWN == SB_CHARLEFT etc. This is the way they will | 188 /* SB_LINEDOWN == SB_CHARLEFT etc. This is the way they will |
190 always be - any Windows is binary compatible backward with | 189 always be - any Windows is binary compatible backward with |
191 old programs */ | 190 old programs */ |
192 | 191 |
193 switch (code) | 192 switch (code) |
194 { | 193 { |
195 case SB_LINEDOWN: | 194 case SB_LINEDOWN: |
196 mswindows_enqueue_misc_user_event | 195 mswindows_enqueue_misc_user_event |
197 (frame, vert ? Qscrollbar_line_down : Qscrollbar_char_right, win); | 196 (frame, vert ? Qscrollbar_line_down : Qscrollbar_char_right, win); |
198 break; | 197 break; |
199 | 198 |
200 case SB_LINEUP: | 199 case SB_LINEUP: |
201 mswindows_enqueue_misc_user_event | 200 mswindows_enqueue_misc_user_event |
202 (frame, vert ? Qscrollbar_line_up : Qscrollbar_char_left, win); | 201 (frame, vert ? Qscrollbar_line_up : Qscrollbar_char_left, win); |
203 break; | 202 break; |
204 | 203 |
205 case SB_PAGEDOWN: | 204 case SB_PAGEDOWN: |
206 mswindows_enqueue_misc_user_event | 205 mswindows_enqueue_misc_user_event |
207 (win, vert ? Qscrollbar_page_down : Qscrollbar_page_right, | 206 (win, vert ? Qscrollbar_page_down : Qscrollbar_page_right, |
208 vert ? Fcons (win, Qnil) : win); | 207 vert ? Fcons (win, Qnil) : win); |
209 break; | 208 break; |
212 mswindows_enqueue_misc_user_event | 211 mswindows_enqueue_misc_user_event |
213 (frame, | 212 (frame, |
214 vert ? Qscrollbar_page_up : Qscrollbar_page_left, | 213 vert ? Qscrollbar_page_up : Qscrollbar_page_left, |
215 vert ? Fcons (win, Qnil) : win); | 214 vert ? Fcons (win, Qnil) : win); |
216 break; | 215 break; |
217 | 216 |
218 case SB_BOTTOM: | 217 case SB_BOTTOM: |
219 mswindows_enqueue_misc_user_event | 218 mswindows_enqueue_misc_user_event |
220 (frame, vert ? Qscrollbar_to_bottom : Qscrollbar_to_right, win); | 219 (frame, vert ? Qscrollbar_to_bottom : Qscrollbar_to_right, win); |
221 break; | 220 break; |
222 | 221 |
275 } | 274 } |
276 | 275 |
277 int | 276 int |
278 mswindows_handle_mousewheel_event (Lisp_Object frame, int keys, int delta) | 277 mswindows_handle_mousewheel_event (Lisp_Object frame, int keys, int delta) |
279 { | 278 { |
280 int hasVertBar, hasHorzBar; /* Indicates prescence of scroll bars */ | 279 int hasVertBar, hasHorzBar; /* Indicates presence of scroll bars */ |
281 unsigned wheelScrollLines = 0; /* Number of lines per wheel notch */ | 280 unsigned wheelScrollLines = 0; /* Number of lines per wheel notch */ |
282 | 281 |
283 /* Find the currently selected window */ | 282 /* Find the currently selected window */ |
284 Lisp_Object win = FRAME_SELECTED_WINDOW (XFRAME (frame)); | 283 Lisp_Object win = FRAME_SELECTED_WINDOW (XFRAME (frame)); |
285 struct window* w = XWINDOW (win); | 284 struct window* w = XWINDOW (win); |