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 {