Mercurial > hg > xemacs-beta
comparison lwlib/lwlib-Xlw.c @ 80:1ce6082ce73f r20-0b90
Import from CVS: tag r20-0b90
author | cvs |
---|---|
date | Mon, 13 Aug 2007 09:06:37 +0200 |
parents | c7528f8e288d |
children | 6b37e6ddd302 |
comparison
equal
deleted
inserted
replaced
79:5b0a5bbffab6 | 80:1ce6082ce73f |
---|---|
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 } |
284 XtNy, data->scrollbar_y, | 266 XtNy, data->scrollbar_y, |
285 XtNwidth, data->scrollbar_width, | 267 XtNwidth, data->scrollbar_width, |
286 XtNheight, data->scrollbar_height, | 268 XtNheight, data->scrollbar_height, |
287 0); | 269 0); |
288 | 270 |
289 /* Now the size the scrollbar's slider. */ | 271 /* Now size the scrollbar's slider. */ |
290 | |
291 XtVaGetValues (widget, | 272 XtVaGetValues (widget, |
292 XmNsliderSize, &widget_sliderSize, | 273 XmNsliderSize, &widget_sliderSize, |
293 XmNvalue, &widget_val, | 274 XmNvalue, &widget_val, |
294 0); | 275 0); |
295 | 276 |
296 percent = (double) data->slider_size / | 277 percent = (double) data->slider_size / |
297 (double) (data->maximum - data->minimum); | 278 (double) (data->maximum - data->minimum); |
298 percent = (percent > 1.0 ? 1.0 : percent); | 279 percent = (percent > 1.0 ? 1.0 : percent); |
301 percent = (double) (data->slider_position - data->minimum) / | 282 percent = (double) (data->slider_position - data->minimum) / |
302 (double) (data->maximum - data->minimum); | 283 (double) (data->maximum - data->minimum); |
303 percent = (percent > 1.0 ? 1.0 : percent); | 284 percent = (percent > 1.0 ? 1.0 : percent); |
304 new_value = (int) ((double) (INT_MAX - 1) * percent); | 285 new_value = (int) ((double) (INT_MAX - 1) * percent); |
305 | 286 |
306 if (new_sliderSize > (INT_MAX - 1)) | 287 if (new_sliderSize > INT_MAX - 1) |
307 new_sliderSize = INT_MAX - 1; | 288 new_sliderSize = INT_MAX - 1; |
308 if (new_sliderSize < 1) | 289 if (new_sliderSize < 1) |
309 new_sliderSize = 1; | 290 new_sliderSize = 1; |
310 | 291 |
311 if (new_value > (INT_MAX - new_sliderSize)) | 292 if (new_value > (INT_MAX - new_sliderSize)) |
312 new_value = INT_MAX - new_sliderSize; | 293 new_value = INT_MAX - new_sliderSize; |
313 else if (new_value < 1) | 294 else if (new_value < 1) |
314 new_value = 1; | 295 new_value = 1; |
315 | 296 |
316 if (new_sliderSize != widget_sliderSize || new_value != widget_val) | 297 if (new_sliderSize != widget_sliderSize || new_value != widget_val) |
317 XlwScrollBarSetValues (widget, new_value, new_sliderSize, 1, 1, False); | 298 XlwScrollBarSetValues (widget, new_value, new_sliderSize, 1, 1, False); |
318 } | 299 } |
319 } | 300 } |
420 xlw_destroy_instance (widget_instance* instance) | 401 xlw_destroy_instance (widget_instance* instance) |
421 { | 402 { |
422 if (instance->widget) | 403 if (instance->widget) |
423 XtDestroyWidget (instance->widget); | 404 XtDestroyWidget (instance->widget); |
424 } | 405 } |
425 |