ui/motif/entry.c

Sun, 07 Dec 2025 15:50:20 +0100

author
Olaf Wintermann <olaf.wintermann@gmail.com>
date
Sun, 07 Dec 2025 15:50:20 +0100
changeset 971
0224108bd8c2
parent 966
e411ed7c5f10
permissions
-rw-r--r--

rename tree.h to list.h

897
0d488f04078d add spinbox (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
1 /*
0d488f04078d add spinbox (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
2 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
0d488f04078d add spinbox (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
3 *
0d488f04078d add spinbox (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
4 * Copyright 2025 Olaf Wintermann. All rights reserved.
0d488f04078d add spinbox (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
5 *
0d488f04078d add spinbox (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
6 * Redistribution and use in source and binary forms, with or without
0d488f04078d add spinbox (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
7 * modification, are permitted provided that the following conditions are met:
0d488f04078d add spinbox (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
8 *
0d488f04078d add spinbox (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
9 * 1. Redistributions of source code must retain the above copyright
0d488f04078d add spinbox (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
10 * notice, this list of conditions and the following disclaimer.
0d488f04078d add spinbox (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
11 *
0d488f04078d add spinbox (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
12 * 2. Redistributions in binary form must reproduce the above copyright
0d488f04078d add spinbox (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
13 * notice, this list of conditions and the following disclaimer in the
0d488f04078d add spinbox (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
14 * documentation and/or other materials provided with the distribution.
0d488f04078d add spinbox (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
15 *
0d488f04078d add spinbox (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
16 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
0d488f04078d add spinbox (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
17 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
0d488f04078d add spinbox (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
18 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
0d488f04078d add spinbox (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
19 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
0d488f04078d add spinbox (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
20 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
0d488f04078d add spinbox (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
21 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
0d488f04078d add spinbox (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
22 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
0d488f04078d add spinbox (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
23 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
0d488f04078d add spinbox (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
24 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
0d488f04078d add spinbox (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
25 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
0d488f04078d add spinbox (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
26 * POSSIBILITY OF SUCH DAMAGE.
0d488f04078d add spinbox (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
27 */
0d488f04078d add spinbox (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
28
0d488f04078d add spinbox (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
29 #include "entry.h"
0d488f04078d add spinbox (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
30
0d488f04078d add spinbox (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
31
0d488f04078d add spinbox (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
32 UIWIDGET ui_spinbox_create(UiObject *obj, UiSpinBoxArgs *args) {
0d488f04078d add spinbox (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
33 Arg xargs[16];
0d488f04078d add spinbox (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
34 int n = 0;
0d488f04078d add spinbox (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
35
0d488f04078d add spinbox (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
36 double min = args->min;
0d488f04078d add spinbox (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
37 double max = args->max != 0 ? args->max : 1000;
0d488f04078d add spinbox (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
38
0d488f04078d add spinbox (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
39 UiVar *var = NULL;
0d488f04078d add spinbox (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
40 UiVarType vartype = 0;
0d488f04078d add spinbox (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
41 if(args->varname) {
0d488f04078d add spinbox (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
42 var = uic_get_var(obj->ctx, args->varname);
0d488f04078d add spinbox (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
43 if(var) {
0d488f04078d add spinbox (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
44 vartype = var->type;
0d488f04078d add spinbox (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
45 } else {
0d488f04078d add spinbox (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
46 var = uic_widget_var(obj->ctx, obj->ctx, args->rangevalue, args->varname, UI_VAR_RANGE);
0d488f04078d add spinbox (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
47 vartype = UI_VAR_RANGE;
0d488f04078d add spinbox (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
48 }
0d488f04078d add spinbox (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
49 }
0d488f04078d add spinbox (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
50
0d488f04078d add spinbox (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
51 if(!var) {
0d488f04078d add spinbox (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
52 if(args->intvalue) {
0d488f04078d add spinbox (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
53 var = uic_widget_var(obj->ctx, obj->ctx, args->intvalue, NULL, UI_VAR_INTEGER);
0d488f04078d add spinbox (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
54 vartype = UI_VAR_INTEGER;
0d488f04078d add spinbox (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
55 } else if(args->doublevalue) {
0d488f04078d add spinbox (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
56 var = uic_widget_var(obj->ctx, obj->ctx, args->doublevalue, NULL, UI_VAR_DOUBLE);
0d488f04078d add spinbox (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
57 vartype = UI_VAR_DOUBLE;
0d488f04078d add spinbox (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
58 } else if(args->rangevalue) {
0d488f04078d add spinbox (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
59 var = uic_widget_var(obj->ctx, obj->ctx, args->rangevalue, NULL, UI_VAR_RANGE);
0d488f04078d add spinbox (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
60 vartype = UI_VAR_RANGE;
0d488f04078d add spinbox (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
61 }
0d488f04078d add spinbox (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
62 }
0d488f04078d add spinbox (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
63
0d488f04078d add spinbox (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
64 if(vartype == UI_VAR_RANGE) {
0d488f04078d add spinbox (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
65 UiRange *r = var->value;
0d488f04078d add spinbox (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
66 min = r->min;
0d488f04078d add spinbox (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
67 max = r->max;
0d488f04078d add spinbox (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
68 }
0d488f04078d add spinbox (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
69 if(args->step == 0) {
0d488f04078d add spinbox (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
70 args->step = 1;
0d488f04078d add spinbox (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
71 }
0d488f04078d add spinbox (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
72
0d488f04078d add spinbox (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
73 UiContainerPrivate *ctn = ui_obj_container(obj);
0d488f04078d add spinbox (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
74 UiLayout layout = UI_ARGS2LAYOUT(args);
0d488f04078d add spinbox (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
75
0d488f04078d add spinbox (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
76
0d488f04078d add spinbox (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
77 XtSetArg(xargs[n], XmNminimumValue, 0); n++;
0d488f04078d add spinbox (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
78 XtSetArg(xargs[n], XmNmaximumValue, 100); n++;
0d488f04078d add spinbox (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
79 XtSetArg(xargs[n], XmNincrementValue, 1); n++;
0d488f04078d add spinbox (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
80 XtSetArg(xargs[n], XmNspinBoxChildType, XmNUMERIC); n++;
0d488f04078d add spinbox (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
81
0d488f04078d add spinbox (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
82 Widget parent = ui_container_prepare(ctn, &layout, xargs, &n);
0d488f04078d add spinbox (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
83
0d488f04078d add spinbox (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
84 char *name = args->name ? (char*)args->name : "button";
0d488f04078d add spinbox (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
85 Widget spinbox = XmCreateSimpleSpinBox(parent, name, xargs, n);
0d488f04078d add spinbox (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
86 XtManageChild(spinbox);
0d488f04078d add spinbox (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
87 ui_container_add(ctn, spinbox);
0d488f04078d add spinbox (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
88
966
e411ed7c5f10 rename groups to states
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 899
diff changeset
89 ui_set_widget_groups(obj->ctx, spinbox, args->states);
897
0d488f04078d add spinbox (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
90
0d488f04078d add spinbox (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
91 WidgetList children;
0d488f04078d add spinbox (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
92 Cardinal num_children;
0d488f04078d add spinbox (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
93 unsigned char type;
0d488f04078d add spinbox (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
94
0d488f04078d add spinbox (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
95 Widget textfield = NULL;
0d488f04078d add spinbox (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
96 XtVaGetValues(
0d488f04078d add spinbox (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
97 spinbox,
0d488f04078d add spinbox (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
98 XmNchildren, &children,
0d488f04078d add spinbox (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
99 XmNnumChildren, &num_children,
0d488f04078d add spinbox (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
100 NULL);
0d488f04078d add spinbox (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
101
0d488f04078d add spinbox (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
102 for(int i = 0;i<num_children;i++) {
0d488f04078d add spinbox (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
103 XtVaGetValues(children[i], XmNspinBoxChildType, &type, NULL);
0d488f04078d add spinbox (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
104 Widget w = children[i];
0d488f04078d add spinbox (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
105 if(type == XmNUMERIC) {
0d488f04078d add spinbox (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
106 textfield = children[i];
0d488f04078d add spinbox (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
107 }
0d488f04078d add spinbox (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
108 }
898
0484fc666c1d implement spinbox value binding (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 897
diff changeset
109
897
0d488f04078d add spinbox (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
110 UiSpinBox *data = malloc(sizeof(UiSpinBox));
0d488f04078d add spinbox (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
111 data->obj = obj;
0d488f04078d add spinbox (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
112 data->textfield = textfield;
0d488f04078d add spinbox (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
113 data->var = var;
0d488f04078d add spinbox (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
114 data->vartype = vartype;
898
0484fc666c1d implement spinbox value binding (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 897
diff changeset
115 data->obs = NULL;
897
0d488f04078d add spinbox (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
116 data->onchange = args->onchange;
0d488f04078d add spinbox (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
117 data->onchangedata = args->onchangedata;
898
0484fc666c1d implement spinbox value binding (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 897
diff changeset
118 data->value = 0;
897
0d488f04078d add spinbox (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
119 data->min = min;
0d488f04078d add spinbox (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
120 data->max = max;
0d488f04078d add spinbox (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
121 data->increment = args->step;
0d488f04078d add spinbox (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
122 data->digits = args->digits;
0d488f04078d add spinbox (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
123
898
0484fc666c1d implement spinbox value binding (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 897
diff changeset
124 UiObserver **obs = NULL;
0484fc666c1d implement spinbox value binding (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 897
diff changeset
125 if(var) {
0484fc666c1d implement spinbox value binding (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 897
diff changeset
126 double value = 0;
0484fc666c1d implement spinbox value binding (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 897
diff changeset
127 switch(vartype) {
0484fc666c1d implement spinbox value binding (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 897
diff changeset
128 default: break;
0484fc666c1d implement spinbox value binding (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 897
diff changeset
129 case UI_VAR_INTEGER: {
0484fc666c1d implement spinbox value binding (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 897
diff changeset
130 UiInteger *i = var->value;
0484fc666c1d implement spinbox value binding (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 897
diff changeset
131 i->get = ui_spinbutton_getint;
0484fc666c1d implement spinbox value binding (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 897
diff changeset
132 i->set = ui_spinbutton_setint;
0484fc666c1d implement spinbox value binding (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 897
diff changeset
133 i->obj = data;
0484fc666c1d implement spinbox value binding (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 897
diff changeset
134 value = (double)i->value;
0484fc666c1d implement spinbox value binding (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 897
diff changeset
135 obs = &i->observers;
0484fc666c1d implement spinbox value binding (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 897
diff changeset
136 break;
0484fc666c1d implement spinbox value binding (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 897
diff changeset
137 }
0484fc666c1d implement spinbox value binding (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 897
diff changeset
138 case UI_VAR_DOUBLE: {
0484fc666c1d implement spinbox value binding (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 897
diff changeset
139 UiDouble *d = var->value;
0484fc666c1d implement spinbox value binding (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 897
diff changeset
140 d->get = ui_spinbutton_getdouble;
0484fc666c1d implement spinbox value binding (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 897
diff changeset
141 d->set = ui_spinbutton_setdouble;
0484fc666c1d implement spinbox value binding (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 897
diff changeset
142 d->obj = data;
0484fc666c1d implement spinbox value binding (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 897
diff changeset
143 value = d->value;
0484fc666c1d implement spinbox value binding (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 897
diff changeset
144 obs = &d->observers;
0484fc666c1d implement spinbox value binding (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 897
diff changeset
145 break;
0484fc666c1d implement spinbox value binding (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 897
diff changeset
146 }
0484fc666c1d implement spinbox value binding (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 897
diff changeset
147 case UI_VAR_RANGE: {
0484fc666c1d implement spinbox value binding (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 897
diff changeset
148 UiRange *r = var->value;
0484fc666c1d implement spinbox value binding (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 897
diff changeset
149 r->get = ui_spinbutton_getrangeval;
0484fc666c1d implement spinbox value binding (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 897
diff changeset
150 r->set = ui_spinbutton_setrangeval;
0484fc666c1d implement spinbox value binding (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 897
diff changeset
151 r->setrange = ui_spinbutton_setrange;
0484fc666c1d implement spinbox value binding (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 897
diff changeset
152 r->setextent = ui_spinbutton_setextent;
0484fc666c1d implement spinbox value binding (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 897
diff changeset
153 r->obj = data;
0484fc666c1d implement spinbox value binding (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 897
diff changeset
154 value = r->value;
0484fc666c1d implement spinbox value binding (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 897
diff changeset
155 obs = &r->observers;
0484fc666c1d implement spinbox value binding (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 897
diff changeset
156 break;
0484fc666c1d implement spinbox value binding (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 897
diff changeset
157 }
0484fc666c1d implement spinbox value binding (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 897
diff changeset
158 }
0484fc666c1d implement spinbox value binding (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 897
diff changeset
159 ui_spinbox_set_value(data, value);
0484fc666c1d implement spinbox value binding (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 897
diff changeset
160 }
0484fc666c1d implement spinbox value binding (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 897
diff changeset
161 data->obs = obs;
0484fc666c1d implement spinbox value binding (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 897
diff changeset
162
897
0d488f04078d add spinbox (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
163 XtAddCallback(
0d488f04078d add spinbox (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
164 spinbox,
0d488f04078d add spinbox (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
165 XmNvalueChangedCallback,
0d488f04078d add spinbox (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
166 (XtCallbackProc)ui_spinbox_value_changed,
0d488f04078d add spinbox (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
167 data);
0d488f04078d add spinbox (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
168
898
0484fc666c1d implement spinbox value binding (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 897
diff changeset
169 XtAddCallback(
0484fc666c1d implement spinbox value binding (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 897
diff changeset
170 spinbox,
0484fc666c1d implement spinbox value binding (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 897
diff changeset
171 XmNdestroyCallback,
0484fc666c1d implement spinbox value binding (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 897
diff changeset
172 (XtCallbackProc)ui_destroy_data,
0484fc666c1d implement spinbox value binding (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 897
diff changeset
173 data);
0484fc666c1d implement spinbox value binding (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 897
diff changeset
174
897
0d488f04078d add spinbox (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
175 XmTextFieldSetString(textfield, "0");
0d488f04078d add spinbox (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
176
0d488f04078d add spinbox (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
177
0d488f04078d add spinbox (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
178 return spinbox;
0d488f04078d add spinbox (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
179 }
0d488f04078d add spinbox (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
180
898
0484fc666c1d implement spinbox value binding (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 897
diff changeset
181 void ui_spinbox_set_value(UiSpinBox *spinbox, double value) {
0484fc666c1d implement spinbox value binding (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 897
diff changeset
182 if(value < spinbox->min) {
0484fc666c1d implement spinbox value binding (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 897
diff changeset
183 value = spinbox->min;
0484fc666c1d implement spinbox value binding (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 897
diff changeset
184 }
0484fc666c1d implement spinbox value binding (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 897
diff changeset
185 if(value > spinbox->max) {
0484fc666c1d implement spinbox value binding (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 897
diff changeset
186 value = spinbox->max;
0484fc666c1d implement spinbox value binding (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 897
diff changeset
187 }
0484fc666c1d implement spinbox value binding (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 897
diff changeset
188
0484fc666c1d implement spinbox value binding (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 897
diff changeset
189 char buf[32];
0484fc666c1d implement spinbox value binding (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 897
diff changeset
190 snprintf(buf, 32, "%.*f", spinbox->digits, spinbox->value);
0484fc666c1d implement spinbox value binding (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 897
diff changeset
191 XmTextFieldSetString(spinbox->textfield, buf);
0484fc666c1d implement spinbox value binding (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 897
diff changeset
192 spinbox->value = value;
0484fc666c1d implement spinbox value binding (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 897
diff changeset
193 }
0484fc666c1d implement spinbox value binding (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 897
diff changeset
194
897
0d488f04078d add spinbox (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
195 void ui_spinbox_value_changed(Widget widget, UiSpinBox *spinbox, XmSpinBoxCallbackStruct *cb) {
898
0484fc666c1d implement spinbox value binding (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 897
diff changeset
196 Boolean update_value = TRUE;
0484fc666c1d implement spinbox value binding (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 897
diff changeset
197 double value = spinbox->value;
897
0d488f04078d add spinbox (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
198 switch(cb->reason) {
898
0484fc666c1d implement spinbox value binding (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 897
diff changeset
199 case XmCR_OK: {
0484fc666c1d implement spinbox value binding (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 897
diff changeset
200 update_value = FALSE;
897
0d488f04078d add spinbox (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
201 break;
0d488f04078d add spinbox (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
202 }
898
0484fc666c1d implement spinbox value binding (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 897
diff changeset
203 case XmCR_SPIN_NEXT: {
0484fc666c1d implement spinbox value binding (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 897
diff changeset
204 value += spinbox->increment;
0484fc666c1d implement spinbox value binding (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 897
diff changeset
205 break;
0484fc666c1d implement spinbox value binding (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 897
diff changeset
206 }
0484fc666c1d implement spinbox value binding (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 897
diff changeset
207 case XmCR_SPIN_PRIOR: {
0484fc666c1d implement spinbox value binding (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 897
diff changeset
208 value -= spinbox->increment;
897
0d488f04078d add spinbox (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
209 break;
0d488f04078d add spinbox (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
210 }
0d488f04078d add spinbox (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
211 }
898
0484fc666c1d implement spinbox value binding (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 897
diff changeset
212
0484fc666c1d implement spinbox value binding (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 897
diff changeset
213 if(update_value) {
0484fc666c1d implement spinbox value binding (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 897
diff changeset
214 ui_spinbox_set_value(spinbox, value);
899
7e153ce81477 implement spinbox callbacks (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 898
diff changeset
215
7e153ce81477 implement spinbox callbacks (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 898
diff changeset
216 UiEvent event;
7e153ce81477 implement spinbox callbacks (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 898
diff changeset
217 event.obj = spinbox->obj;
7e153ce81477 implement spinbox callbacks (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 898
diff changeset
218 event.window = event.obj->window;
7e153ce81477 implement spinbox callbacks (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 898
diff changeset
219 event.document = event.obj->ctx->document;
7e153ce81477 implement spinbox callbacks (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 898
diff changeset
220 event.eventdata = NULL;
7e153ce81477 implement spinbox callbacks (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 898
diff changeset
221 event.eventdatatype = 0;
7e153ce81477 implement spinbox callbacks (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 898
diff changeset
222 event.intval = (int64_t)value;
7e153ce81477 implement spinbox callbacks (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 898
diff changeset
223 event.set = ui_get_setop();
7e153ce81477 implement spinbox callbacks (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 898
diff changeset
224
7e153ce81477 implement spinbox callbacks (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 898
diff changeset
225 if(spinbox->onchange) {
7e153ce81477 implement spinbox callbacks (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 898
diff changeset
226 spinbox->onchange(&event, spinbox->onchangedata);
7e153ce81477 implement spinbox callbacks (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 898
diff changeset
227 }
7e153ce81477 implement spinbox callbacks (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 898
diff changeset
228
7e153ce81477 implement spinbox callbacks (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 898
diff changeset
229 UiObserver *obs = *spinbox->obs;
7e153ce81477 implement spinbox callbacks (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 898
diff changeset
230 ui_notify_evt(*spinbox->obs, &event);
898
0484fc666c1d implement spinbox value binding (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 897
diff changeset
231 }
897
0d488f04078d add spinbox (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff changeset
232 }
898
0484fc666c1d implement spinbox value binding (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 897
diff changeset
233
0484fc666c1d implement spinbox value binding (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 897
diff changeset
234 int64_t ui_spinbutton_getint(UiInteger *i) {
0484fc666c1d implement spinbox value binding (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 897
diff changeset
235 UiSpinBox *spinbox = i->obj;
0484fc666c1d implement spinbox value binding (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 897
diff changeset
236 i->value = (int64_t)spinbox->value;
0484fc666c1d implement spinbox value binding (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 897
diff changeset
237 return i->value;
0484fc666c1d implement spinbox value binding (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 897
diff changeset
238 }
0484fc666c1d implement spinbox value binding (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 897
diff changeset
239
0484fc666c1d implement spinbox value binding (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 897
diff changeset
240 void ui_spinbutton_setint(UiInteger *i, int64_t val) {
0484fc666c1d implement spinbox value binding (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 897
diff changeset
241 UiSpinBox *spinbox = i->obj;
0484fc666c1d implement spinbox value binding (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 897
diff changeset
242 ui_spinbox_set_value(spinbox, (double)val);
0484fc666c1d implement spinbox value binding (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 897
diff changeset
243 i->value = spinbox->value;
0484fc666c1d implement spinbox value binding (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 897
diff changeset
244 }
0484fc666c1d implement spinbox value binding (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 897
diff changeset
245
0484fc666c1d implement spinbox value binding (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 897
diff changeset
246 double ui_spinbutton_getdouble(UiDouble *d) {
0484fc666c1d implement spinbox value binding (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 897
diff changeset
247 UiSpinBox *spinbox = d->obj;
0484fc666c1d implement spinbox value binding (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 897
diff changeset
248 d->value = spinbox->value;
0484fc666c1d implement spinbox value binding (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 897
diff changeset
249 return d->value;
0484fc666c1d implement spinbox value binding (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 897
diff changeset
250 }
0484fc666c1d implement spinbox value binding (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 897
diff changeset
251
0484fc666c1d implement spinbox value binding (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 897
diff changeset
252 void ui_spinbutton_setdouble(UiDouble *d, double val) {
0484fc666c1d implement spinbox value binding (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 897
diff changeset
253 UiSpinBox *spinbox = d->obj;
0484fc666c1d implement spinbox value binding (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 897
diff changeset
254 ui_spinbox_set_value(spinbox, val);
0484fc666c1d implement spinbox value binding (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 897
diff changeset
255 d->value = spinbox->value;
0484fc666c1d implement spinbox value binding (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 897
diff changeset
256 }
0484fc666c1d implement spinbox value binding (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 897
diff changeset
257
0484fc666c1d implement spinbox value binding (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 897
diff changeset
258 double ui_spinbutton_getrangeval(UiRange *r) {
0484fc666c1d implement spinbox value binding (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 897
diff changeset
259 UiSpinBox *spinbox = r->obj;
0484fc666c1d implement spinbox value binding (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 897
diff changeset
260 r->value = spinbox->value;
0484fc666c1d implement spinbox value binding (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 897
diff changeset
261 return r->value;
0484fc666c1d implement spinbox value binding (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 897
diff changeset
262 }
0484fc666c1d implement spinbox value binding (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 897
diff changeset
263
0484fc666c1d implement spinbox value binding (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 897
diff changeset
264 void ui_spinbutton_setrangeval(UiRange *r, double val) {
0484fc666c1d implement spinbox value binding (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 897
diff changeset
265 UiSpinBox *spinbox = r->obj;
0484fc666c1d implement spinbox value binding (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 897
diff changeset
266 ui_spinbox_set_value(spinbox, val);
0484fc666c1d implement spinbox value binding (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 897
diff changeset
267 r->value = spinbox->value;
0484fc666c1d implement spinbox value binding (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 897
diff changeset
268 }
0484fc666c1d implement spinbox value binding (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 897
diff changeset
269 void ui_spinbutton_setrange(UiRange *r, double min, double max) {
0484fc666c1d implement spinbox value binding (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 897
diff changeset
270 UiSpinBox *spinbox = r->obj;
0484fc666c1d implement spinbox value binding (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 897
diff changeset
271 spinbox->min = min;
0484fc666c1d implement spinbox value binding (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 897
diff changeset
272 spinbox->max = max;
0484fc666c1d implement spinbox value binding (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 897
diff changeset
273 r->min = min;
0484fc666c1d implement spinbox value binding (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 897
diff changeset
274 r->max = max;
0484fc666c1d implement spinbox value binding (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 897
diff changeset
275 }
0484fc666c1d implement spinbox value binding (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 897
diff changeset
276
0484fc666c1d implement spinbox value binding (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 897
diff changeset
277 void ui_spinbutton_setextent(UiRange *r, double extent) {
0484fc666c1d implement spinbox value binding (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 897
diff changeset
278 UiSpinBox *spinbox = r->obj;
0484fc666c1d implement spinbox value binding (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 897
diff changeset
279 spinbox->increment = extent;
0484fc666c1d implement spinbox value binding (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 897
diff changeset
280 r->extent = extent;
0484fc666c1d implement spinbox value binding (Motif)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents: 897
diff changeset
281 }

mercurial