Mercurial > hg > xemacs-beta
comparison lwlib/lwlib-Xlw.c @ 165:5a88923fcbfe r20-3b9
Import from CVS: tag r20-3b9
author | cvs |
---|---|
date | Mon, 13 Aug 2007 09:44:42 +0200 |
parents | 0132846995bd |
children | f220cc83d72e |
comparison
equal
deleted
inserted
replaced
164:4e0740e5aab2 | 165:5a88923fcbfe |
---|---|
104 | 104 |
105 /* creation functions */ | 105 /* creation functions */ |
106 static Widget | 106 static Widget |
107 xlw_create_menubar (widget_instance* instance) | 107 xlw_create_menubar (widget_instance* instance) |
108 { | 108 { |
109 Widget widget = | 109 Arg al [1]; |
110 XtVaCreateWidget (instance->info->name, xlwMenuWidgetClass, | 110 Widget widget; |
111 instance->parent, | 111 |
112 XtNmenu, instance->info->val, | 112 XtSetArg (al [0], XtNmenu, instance->info->val); |
113 NULL); | 113 widget = XtCreateWidget (instance->info->name, xlwMenuWidgetClass, |
114 instance->parent, al, 1); | |
114 XtAddCallback (widget, XtNopen, pre_hook, (XtPointer)instance); | 115 XtAddCallback (widget, XtNopen, pre_hook, (XtPointer)instance); |
115 XtAddCallback (widget, XtNselect, pick_hook, (XtPointer)instance); | 116 XtAddCallback (widget, XtNselect, pick_hook, (XtPointer)instance); |
116 return widget; | 117 return widget; |
117 } | 118 } |
118 | 119 |
119 static Widget | 120 static Widget |
120 xlw_create_popup_menu (widget_instance* instance) | 121 xlw_create_popup_menu (widget_instance* instance) |
121 { | 122 { |
122 Widget popup_shell = | 123 Arg al [2]; |
123 XtCreatePopupShell (instance->info->name, overrideShellWidgetClass, | 124 Widget popup_shell, widget; |
124 instance->parent, NULL, 0); | |
125 | 125 |
126 Widget widget = | 126 popup_shell = XtCreatePopupShell (instance->info->name, |
127 XtVaCreateManagedWidget ("popup", xlwMenuWidgetClass, | 127 overrideShellWidgetClass, |
128 popup_shell, | 128 instance->parent, NULL, 0); |
129 XtNmenu, instance->info->val, | 129 XtSetArg (al [0], XtNmenu, instance->info->val); |
130 XtNhorizontal, False, | 130 XtSetArg (al [1], XtNhorizontal, False); |
131 NULL); | 131 widget = XtCreateManagedWidget ("popup", xlwMenuWidgetClass, |
132 | 132 popup_shell, al, 2); |
133 XtAddCallback (widget, XtNselect, pick_hook, (XtPointer)instance); | 133 XtAddCallback (widget, XtNselect, pick_hook, (XtPointer)instance); |
134 | 134 |
135 return popup_shell; | 135 return popup_shell; |
136 } | 136 } |
137 #endif /* MENUBARS_LUCID */ | 137 #endif /* MENUBARS_LUCID */ |
260 { | 260 { |
261 scrollbar_values *data = val->scrollbar_data; | 261 scrollbar_values *data = val->scrollbar_data; |
262 int widget_sliderSize, widget_val; | 262 int widget_sliderSize, widget_val; |
263 int new_sliderSize, new_value; | 263 int new_sliderSize, new_value; |
264 double percent; | 264 double percent; |
265 Arg al [4]; | |
265 | 266 |
266 /* First size and position the scrollbar widget. */ | 267 /* First size and position the scrollbar widget. */ |
267 XtVaSetValues (widget, | 268 XtSetArg (al [0], XtNx, data->scrollbar_x); |
268 XtNx, data->scrollbar_x, | 269 XtSetArg (al [1], XtNy, data->scrollbar_y); |
269 XtNy, data->scrollbar_y, | 270 XtSetArg (al [2], XtNwidth, data->scrollbar_width); |
270 XtNwidth, data->scrollbar_width, | 271 XtSetArg (al [3], XtNheight, data->scrollbar_height); |
271 XtNheight, data->scrollbar_height, | 272 XtSetValues (widget, al, 4); |
272 NULL); | |
273 | 273 |
274 /* Now size the scrollbar's slider. */ | 274 /* Now size the scrollbar's slider. */ |
275 XtVaGetValues (widget, | 275 XtSetArg (al [0], XmNsliderSize, &widget_sliderSize); |
276 XmNsliderSize, &widget_sliderSize, | 276 XtSetArg (al [1], XmNvalue, &widget_val); |
277 XmNvalue, &widget_val, | 277 XtGetValues (widget, al, 2); |
278 NULL); | |
279 | 278 |
280 percent = (double) data->slider_size / | 279 percent = (double) data->slider_size / |
281 (double) (data->maximum - data->minimum); | 280 (double) (data->maximum - data->minimum); |
282 percent = (percent > 1.0 ? 1.0 : percent); | 281 percent = (percent > 1.0 ? 1.0 : percent); |
283 new_sliderSize = (int) ((double) (INT_MAX - 1) * percent); | 282 new_sliderSize = (int) ((double) (INT_MAX - 1) * percent); |
286 (double) (data->maximum - data->minimum); | 285 (double) (data->maximum - data->minimum); |
287 percent = (percent > 1.0 ? 1.0 : percent); | 286 percent = (percent > 1.0 ? 1.0 : percent); |
288 new_value = (int) ((double) (INT_MAX - 1) * percent); | 287 new_value = (int) ((double) (INT_MAX - 1) * percent); |
289 | 288 |
290 if (new_sliderSize > INT_MAX - 1) | 289 if (new_sliderSize > INT_MAX - 1) |
291 new_sliderSize = INT_MAX - 1; | 290 new_sliderSize = INT_MAX - 1; |
292 if (new_sliderSize < 1) | 291 else if (new_sliderSize < 1) |
293 new_sliderSize = 1; | 292 new_sliderSize = 1; |
294 | 293 |
295 if (new_value > (INT_MAX - new_sliderSize)) | 294 if (new_value > (INT_MAX - new_sliderSize)) |
296 new_value = INT_MAX - new_sliderSize; | 295 new_value = INT_MAX - new_sliderSize; |
297 else if (new_value < 1) | 296 else if (new_value < 1) |
298 new_value = 1; | 297 new_value = 1; |
299 | 298 |
300 if (new_sliderSize != widget_sliderSize || new_value != widget_val) | 299 if (new_sliderSize != widget_sliderSize || new_value != widget_val) |
301 XlwScrollBarSetValues (widget, new_value, new_sliderSize, 1, 1, False); | 300 XlwScrollBarSetValues (widget, new_value, new_sliderSize, 1, 1, False); |
302 } | 301 } |
303 } | 302 } |
351 ; | 350 ; |
352 #ifdef MENUBARS_LUCID | 351 #ifdef MENUBARS_LUCID |
353 else if (class == xlwMenuWidgetClass) | 352 else if (class == xlwMenuWidgetClass) |
354 { | 353 { |
355 XlwMenuWidget mw; | 354 XlwMenuWidget mw; |
355 Arg al [1]; | |
356 if (XtIsShell (widget)) | 356 if (XtIsShell (widget)) |
357 mw = (XlwMenuWidget)((CompositeWidget)widget)->composite.children [0]; | 357 mw = (XlwMenuWidget)((CompositeWidget)widget)->composite.children [0]; |
358 else | 358 else |
359 mw = (XlwMenuWidget)widget; | 359 mw = (XlwMenuWidget)widget; |
360 XtVaSetValues (widget, XtNmenu, val, NULL); | 360 XtSetArg (al [0], XtNmenu, val); |
361 XtSetValues (widget, al, 1); | |
361 } | 362 } |
362 #endif | 363 #endif |
363 #ifdef SCROLLBARS_LUCID | 364 #ifdef SCROLLBARS_LUCID |
364 else if (class == xlwScrollBarWidgetClass) | 365 else if (class == xlwScrollBarWidgetClass) |
365 { | 366 { |