Mercurial > hg > xemacs-beta
comparison lwlib/lwlib-Xlw.c @ 14:9ee227acff29 r19-15b90
Import from CVS: tag r19-15b90
author | cvs |
---|---|
date | Mon, 13 Aug 2007 08:48:42 +0200 |
parents | bcdc7deadc19 |
children | 131b0175ea99 |
comparison
equal
deleted
inserted
replaced
13:13c6d0aaafe5 | 14:9ee227acff29 |
---|---|
12 but WITHOUT ANY WARRANTY; without even the implied warranty of | 12 but WITHOUT ANY WARRANTY; without even the implied warranty of |
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | 13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
14 GNU General Public License for more details. | 14 GNU General Public License for more details. |
15 | 15 |
16 You should have received a copy of the GNU General Public License | 16 You should have received a copy of the GNU General Public License |
17 along with GNU Emacs; see the file COPYING. If not, write to | 17 along with XEmacs; see the file COPYING. If not, write to |
18 the Free Software Foundation, Inc., 59 Temple Place - Suite 330, | 18 the Free Software Foundation, Inc., 59 Temple Place - Suite 330, |
19 Boston, MA 02111-1307, USA. */ | 19 Boston, MA 02111-1307, USA. */ |
20 | 20 |
21 #include <stdlib.h> /* for abort () */ | 21 #include <stdlib.h> /* for abort () */ |
22 #include <limits.h> | 22 #include <limits.h> |
106 Widget widget = | 106 Widget widget = |
107 XtVaCreateWidget (instance->info->name, xlwMenuWidgetClass, | 107 XtVaCreateWidget (instance->info->name, xlwMenuWidgetClass, |
108 instance->parent, | 108 instance->parent, |
109 XtNmenu, instance->info->val, | 109 XtNmenu, instance->info->val, |
110 0); | 110 0); |
111 XtAddCallback (widget, XtNopen, pre_hook, (XtPointer)instance); | 111 XtAddCallback (widget, XtNopen, pre_hook, (XtPointer)instance); |
112 XtAddCallback (widget, XtNselect, pick_hook, (XtPointer)instance); | 112 XtAddCallback (widget, XtNselect, pick_hook, (XtPointer)instance); |
113 return widget; | 113 return widget; |
114 } | 114 } |
115 | 115 |
116 static Widget | 116 static Widget |
153 | 153 |
154 percent = (double) (data->value - 1) / (double) (INT_MAX - 1); | 154 percent = (double) (data->value - 1) / (double) (INT_MAX - 1); |
155 event_data.slider_value = | 155 event_data.slider_value = |
156 (int) (percent * (double) (val->maximum - val->minimum)) + val->minimum; | 156 (int) (percent * (double) (val->maximum - val->minimum)) + val->minimum; |
157 | 157 |
158 if (event_data.slider_value > (val->maximum - val->slider_size)) | 158 if (event_data.slider_value > val->maximum - val->slider_size) |
159 event_data.slider_value = val->maximum - val->slider_size; | 159 event_data.slider_value = val->maximum - val->slider_size; |
160 else if (event_data.slider_value < val->minimum) | 160 else if (event_data.slider_value < val->minimum) |
161 event_data.slider_value = val->minimum; | 161 event_data.slider_value = val->minimum; |
162 | 162 |
163 if (data->event) | 163 if (data->event) |
164 { | 164 { |
165 switch (data->event->type) | 165 switch (data->event->type) |
166 { | 166 { |
187 else | 187 else |
188 event_data.time = 0; | 188 event_data.time = 0; |
189 | 189 |
190 switch (data->reason) | 190 switch (data->reason) |
191 { | 191 { |
192 case XmCR_DECREMENT: | 192 case XmCR_DECREMENT: event_data.action = SCROLLBAR_LINE_UP; break; |
193 event_data.action = SCROLLBAR_LINE_UP; | 193 case XmCR_INCREMENT: event_data.action = SCROLLBAR_LINE_DOWN; break; |
194 break; | 194 case XmCR_PAGE_DECREMENT: event_data.action = SCROLLBAR_PAGE_UP; break; |
195 case XmCR_INCREMENT: | 195 case XmCR_PAGE_INCREMENT: event_data.action = SCROLLBAR_PAGE_DOWN; break; |
196 event_data.action = SCROLLBAR_LINE_DOWN; | 196 case XmCR_TO_TOP: event_data.action = SCROLLBAR_TOP; break; |
197 break; | 197 case XmCR_TO_BOTTOM: event_data.action = SCROLLBAR_BOTTOM; break; |
198 case XmCR_PAGE_DECREMENT: | 198 case XmCR_DRAG: event_data.action = SCROLLBAR_DRAG; break; |
199 event_data.action = SCROLLBAR_PAGE_UP; | 199 case XmCR_VALUE_CHANGED: event_data.action = SCROLLBAR_CHANGE; break; |
200 break; | 200 default: event_data.action = SCROLLBAR_CHANGE; break; |
201 case XmCR_PAGE_INCREMENT: | |
202 event_data.action = SCROLLBAR_PAGE_DOWN; | |
203 break; | |
204 case XmCR_TO_TOP: | |
205 event_data.action = SCROLLBAR_TOP; | |
206 break; | |
207 case XmCR_TO_BOTTOM: | |
208 event_data.action = SCROLLBAR_BOTTOM; | |
209 break; | |
210 case XmCR_DRAG: | |
211 event_data.action = SCROLLBAR_DRAG; | |
212 break; | |
213 case XmCR_VALUE_CHANGED: | |
214 event_data.action = SCROLLBAR_CHANGE; | |
215 break; | |
216 default: | |
217 event_data.action = SCROLLBAR_CHANGE; | |
218 break; | |
219 } | 201 } |
220 | 202 |
221 if (instance->info->pre_activate_cb) | 203 if (instance->info->pre_activate_cb) |
222 instance->info->pre_activate_cb (widget, id, (XtPointer) &event_data); | 204 instance->info->pre_activate_cb (widget, id, (XtPointer) &event_data); |
223 } | 205 } |
285 XtNy, data->scrollbar_y, | 267 XtNy, data->scrollbar_y, |
286 XtNwidth, data->scrollbar_width, | 268 XtNwidth, data->scrollbar_width, |
287 XtNheight, data->scrollbar_height, | 269 XtNheight, data->scrollbar_height, |
288 0); | 270 0); |
289 | 271 |
290 /* Now the size the scrollbar's slider. */ | 272 /* Now size the scrollbar's slider. */ |
291 | |
292 XtVaGetValues (widget, | 273 XtVaGetValues (widget, |
293 XmNsliderSize, &widget_sliderSize, | 274 XmNsliderSize, &widget_sliderSize, |
294 XmNvalue, &widget_val, | 275 XmNvalue, &widget_val, |
295 0); | 276 0); |
296 | 277 |
297 percent = (double) data->slider_size / | 278 percent = (double) data->slider_size / |
298 (double) (data->maximum - data->minimum); | 279 (double) (data->maximum - data->minimum); |
299 percent = (percent > 1.0 ? 1.0 : percent); | 280 percent = (percent > 1.0 ? 1.0 : percent); |
302 percent = (double) (data->slider_position - data->minimum) / | 283 percent = (double) (data->slider_position - data->minimum) / |
303 (double) (data->maximum - data->minimum); | 284 (double) (data->maximum - data->minimum); |
304 percent = (percent > 1.0 ? 1.0 : percent); | 285 percent = (percent > 1.0 ? 1.0 : percent); |
305 new_value = (int) ((double) (INT_MAX - 1) * percent); | 286 new_value = (int) ((double) (INT_MAX - 1) * percent); |
306 | 287 |
307 if (new_sliderSize > (INT_MAX - 1)) | 288 if (new_sliderSize > INT_MAX - 1) |
308 new_sliderSize = INT_MAX - 1; | 289 new_sliderSize = INT_MAX - 1; |
309 if (new_sliderSize < 1) | 290 if (new_sliderSize < 1) |
310 new_sliderSize = 1; | 291 new_sliderSize = 1; |
311 | 292 |
312 if (new_value > (INT_MAX - new_sliderSize)) | 293 if (new_value > (INT_MAX - new_sliderSize)) |
313 new_value = INT_MAX - new_sliderSize; | 294 new_value = INT_MAX - new_sliderSize; |
314 else if (new_value < 1) | 295 else if (new_value < 1) |
315 new_value = 1; | 296 new_value = 1; |
316 | 297 |
317 if (new_sliderSize != widget_sliderSize || new_value != widget_val) | 298 if (new_sliderSize != widget_sliderSize || new_value != widget_val) |
318 XlwScrollBarSetValues (widget, new_value, new_sliderSize, 1, 1, False); | 299 XlwScrollBarSetValues (widget, new_value, new_sliderSize, 1, 1, False); |
319 } | 300 } |
320 } | 301 } |
421 xlw_destroy_instance (widget_instance* instance) | 402 xlw_destroy_instance (widget_instance* instance) |
422 { | 403 { |
423 if (instance->widget) | 404 if (instance->widget) |
424 XtDestroyWidget (instance->widget); | 405 XtDestroyWidget (instance->widget); |
425 } | 406 } |
426 |