1 /*****************************************************************************
2 FILE : $Source: /projects/higgs1/SNNS/CVS/SNNS/xgui/sources/ui_setup.c,v $
3 SHORTNAME : setup.c
4 SNNS VERSION : 4.2
5
6 PURPOSE :
7 NOTES :
8
9 AUTHOR : Tilman Sommer
10 DATE : 26.6.1990
11
12 CHANGED BY :
13 RCS VERSION : $Revision: 2.10 $
14 LAST CHANGE : $Date: 1998/03/03 14:10:43 $
15
16 Copyright (c) 1990-1995 SNNS Group, IPVR, Univ. Stuttgart, FRG
17 Copyright (c) 1996-1998 SNNS Group, WSI, Univ. Tuebingen, FRG
18
19 ******************************************************************************/
20 #include <config.h>
21
22
23 #include <stdio.h>
24
25 #include "ui.h"
26
27 #include <X11/Xaw3d/Form.h>
28 #include <X11/Xaw3d/Box.h>
29 #include <X11/Xaw3d/Toggle.h>
30 #include <X11/Xaw3d/Cardinals.h>
31 #include <X11/Xaw3d/SimpleMenu.h>
32 #include <X11/Xaw3d/SmeBSB.h>
33 #include <X11/Xaw3d/SmeLine.h>
34
35 #include "ui_xWidgets.h"
36 #include "ui_setupP.h"
37 #include "ui_display.h"
38 #include "ui_colEdit.h"
39
40 #include "ui_main.h" /* ui_labelFontWidth */
41 #include "ui_mainP.h"
42 #include "ui_color.h"
43 #include "ui_action.h"
44
45 #include "ui_setup.ph"
46
47
48 /*****************************************************************************
49 FUNCTION : ui_set_initData
50
51 PURPOSE : init setup data of specified display
52 RETURNS : void
53 NOTES :
54
55 UPDATE : 1.2.1990
56 ******************************************************************************/
57
ui_set_initData(struct Ui_DisplayType * displayPtr)58 void ui_set_initData (struct Ui_DisplayType *displayPtr)
59
60 {
61 (displayPtr->setup).showLinkFlg = FALSE;
62 (displayPtr->setup).showDirectionFlg = FALSE;
63 (displayPtr->setup).showWeightFlg = FALSE;
64 (displayPtr->setup).showValue = UI_ACTIVATION;
65 (displayPtr->setup).showTitle = UI_NUMBER;
66 (displayPtr->setup).showTitleFlg = TRUE;
67 (displayPtr->setup).showValueFlg = TRUE;
68 (displayPtr->setup).linkNegTrigger = 0.0;
69 (displayPtr->setup).linkPosTrigger = 0.0;
70 (displayPtr->setup).unitScaleFactor = 1.0;
71 (displayPtr->setup).linkScaleFactor = 5.0;
72 if (NOT ui_col_monochromeMode) {
73 (displayPtr->setup).backgroundColorIndex = ui_initalBackgroundColorIndex;
74 (displayPtr->setup).selectionColorIndex = ui_initalSelectionColorIndex;
75 (displayPtr->setup).textColorIndex = ui_initalTextColorIndex;
76 }
77 else {
78 (displayPtr->setup).backgroundColorIndex = UI_WHITE;
79 (displayPtr->setup).selectionColorIndex = UI_YELLOW;
80 (displayPtr->setup).textColorIndex = UI_BLACK;
81 }
82 sprintf((displayPtr->setup).siteName," ");
83 }
84
85
86 /*****************************************************************************
87 FUNCTION : ui_xCreateSetupPanel
88
89 PURPOSE : creates a form widget for for all setup elements
90 RETURNS : void
91 NOTES : some constants are used (see below) to get a relativ positioning
92 of the items. This is VERY useful after changings.
93
94 UPDATE : 28.8.1991
95 *****************************************************************************/
96
ui_xCreateSetupPanel(Widget parent,struct Ui_DisplayType * displayPtr)97 void ui_xCreateSetupPanel (Widget parent, struct Ui_DisplayType *displayPtr)
98
99 {
100 /* tabs for data fields and small buttons */
101
102 Widget topLabel, bottomLabel, lLabel, toggle, toggleLabel, scrollbar;
103 Widget button, mButton, menu, entry;
104 char buf[80];
105 float topOfThumb;
106 /*
107 int fontWidth = 8;
108 */
109 int titelWidth = 15 * ui_labelFontWidth;
110 int noWidth = 4 * ui_labelFontWidth;
111 int numberWidth = 8 * ui_labelFontWidth;
112 int nameWidth = 15 * ui_labelFontWidth;
113
114 /***************************************************************************/
115
116 ui_setupPanel =
117 XtCreateManagedWidget("sPanel", formWidgetClass, parent, NULL, ZERO);
118
119 /* which display is to setup ? */
120 ui_set_displayPtr = displayPtr;
121
122
123 /***************************** OPTIONS ***********************************/
124
125 topLabel =
126 ui_xCreateLabelItem("units top :", ui_setupPanel,
127 titelWidth, NULL, NULL);
128
129
130 toggle =
131 ui_xCreateToggleItem("on", ui_setupPanel,
132 NULL, topLabel, NULL);
133 ui_xSetToggleState(toggle, (ui_set_displayPtr->setup).showTitleFlg);
134 XtAddCallback(toggle, XtNcallback, (XtCallbackProc) ui_set_getSetupData,
135 (caddr_t) UI_UNIT_TOP_GENERAL);
136
137 mButton =
138 ui_xCreateMenuButtonItem("show", ui_setupPanel,
139 toggle, NULL);
140
141 menu =
142 XtCreatePopupShell("menu", simpleMenuWidgetClass, mButton,
143 NULL, ZERO);
144
145 entry =
146 XtCreateManagedWidget("name", smeBSBObjectClass, menu,
147 NULL, ZERO);
148 XtAddCallback(entry, XtNcallback, (XtCallbackProc) ui_set_showProc, (caddr_t) UI_NAME);
149 entry =
150 XtCreateManagedWidget("number", smeBSBObjectClass, menu,
151 NULL, ZERO);
152 XtAddCallback(entry, XtNcallback, (XtCallbackProc) ui_set_showProc, (caddr_t) UI_NUMBER);
153 entry =
154 XtCreateManagedWidget("z-value", smeBSBObjectClass, menu,
155 NULL, ZERO);
156 XtAddCallback(entry, XtNcallback, (XtCallbackProc) ui_set_showProc, (caddr_t) UI_ZVALUE);
157
158 entry =
159 XtCreateManagedWidget("winner", smeBSBObjectClass, menu,
160 NULL, ZERO);
161 XtAddCallback(entry, XtNcallback, (XtCallbackProc) ui_set_showProc, (caddr_t) UI_WINNER);
162
163 ui_showTopLabel =
164 ui_xCreateLabelItem(" ", ui_setupPanel,
165 nameWidth, mButton, NULL);
166
167 ui_set_showProc(NULL, (ui_set_displayPtr->setup).showTitle, NULL);
168 /* initial value */
169
170
171 bottomLabel =
172 ui_xCreateLabelItem(" bottom :", ui_setupPanel,
173 titelWidth, NULL, topLabel);
174
175 toggle =
176 ui_xCreateToggleItem("on", ui_setupPanel,
177 NULL, bottomLabel, topLabel);
178 ui_xSetToggleState(toggle, (ui_set_displayPtr->setup).showValueFlg);
179 XtAddCallback(toggle, XtNcallback, (XtCallbackProc) ui_set_getSetupData,
180 (caddr_t) UI_UNIT_BOTTOM_GENERAL);
181
182 mButton =
183 ui_xCreateMenuButtonItem("show", ui_setupPanel,
184 toggle, topLabel);
185
186 menu =
187 XtCreatePopupShell("menu", simpleMenuWidgetClass, mButton,
188 NULL, ZERO);
189
190 entry =
191 XtCreateManagedWidget("activation", smeBSBObjectClass, menu,
192 NULL, ZERO);
193 XtAddCallback(entry, XtNcallback, (XtCallbackProc) ui_set_showProc,
194 (caddr_t) UI_ACTIVATION);
195 entry =
196 XtCreateManagedWidget("initial act.", smeBSBObjectClass, menu,
197 NULL, ZERO);
198 XtAddCallback(entry, XtNcallback, (XtCallbackProc) ui_set_showProc,
199 (caddr_t) UI_INITIAL_ACTIVATION);
200 entry =
201 XtCreateManagedWidget("output", smeBSBObjectClass, menu,
202 NULL, ZERO);
203 XtAddCallback(entry, XtNcallback, (XtCallbackProc) ui_set_showProc, (caddr_t) UI_OUTPUT);
204 entry =
205 XtCreateManagedWidget("bias", smeBSBObjectClass, menu,
206 NULL, ZERO);
207 XtAddCallback(entry, XtNcallback, (XtCallbackProc) ui_set_showProc, (caddr_t) UI_BIAS);
208
209 ui_showBottomLabel =
210 ui_xCreateLabelItem(" ", ui_setupPanel,
211 nameWidth, mButton, topLabel);
212 ui_set_showProc(NULL, (ui_set_displayPtr->setup).showValue, NULL);
213 /* initial value */
214
215
216 lLabel =
217 ui_xCreateLabelItem("links :", ui_setupPanel,
218 titelWidth, NULL, bottomLabel);
219
220 toggle =
221 ui_xCreateToggleItem("on", ui_setupPanel,
222 NULL, lLabel, bottomLabel);
223 ui_xSetToggleState(toggle, (ui_set_displayPtr->setup).showLinkFlg);
224 XtAddCallback(toggle, XtNcallback, (XtCallbackProc) ui_set_getSetupData,
225 (caddr_t) UI_LINK_GENERAL);
226 toggle =
227 ui_xCreateToggleItem("value", ui_setupPanel,
228 NULL, toggle, bottomLabel);
229 ui_xSetToggleState(toggle, (ui_set_displayPtr->setup).showWeightFlg);
230 XtAddCallback(toggle, XtNcallback, (XtCallbackProc) ui_set_getSetupData,
231 (caddr_t) UI_LINK_VALUE);
232
233 toggle =
234 ui_xCreateToggleItem("direction", ui_setupPanel,
235 NULL, toggle, bottomLabel);
236 ui_xSetToggleState(toggle, (ui_set_displayPtr->setup).showDirectionFlg);
237 XtAddCallback(toggle, XtNcallback, (XtCallbackProc) ui_set_getSetupData,
238 (caddr_t) UI_LINK_DIRECTION);
239
240
241 button =
242 ui_xCreateButtonItem("layers", ui_setupPanel,
243 NULL, toggle);
244 XtAddCallback(button, XtNcallback, (XtCallbackProc) ui_set_assignLayers, NULL);
245
246 if (ui_col_colorDisplay) {
247 mButton =
248 ui_xCreateButtonItem("color", ui_setupPanel,
249 button, toggle);
250 XtAddCallback(mButton, XtNcallback, (XtCallbackProc) ui_createColorEditPannel,
251 (Widget) mButton);
252 } else {
253 mButton =
254 ui_xCreateMenuButtonItem("color", ui_setupPanel,
255 button, toggle);
256 menu =
257 XtCreatePopupShell("menu", simpleMenuWidgetClass, mButton,
258 NULL, ZERO);
259
260 entry =
261 XtCreateManagedWidget("black on white", smeBSBObjectClass, menu,
262 NULL, ZERO);
263 XtAddCallback(entry, XtNcallback, (XtCallbackProc) ui_set_colorProc,
264 (caddr_t) UI_PALETTE_MONO);
265 entry =
266 XtCreateManagedWidget("white on black", smeBSBObjectClass, menu,
267 NULL, ZERO);
268 XtAddCallback(entry, XtNcallback, (XtCallbackProc) ui_set_colorProc,
269 (caddr_t) UI_PALETTE_MONO_INVERSE);
270 }
271
272 /* lLabel =
273 ui_xCreateLabelItem("units positiv: ", ui_setupPanel,
274 titelWidth, NULL, button);
275
276 topOfThumb = (float) ((ui_set_displayPtr->setup).unitPosTrigger / ui_maxAct);
277 scrollbar =
278 ui_xCreateScrollbarItem("trigger", ui_setupPanel, 200, topOfThumb,
279 topLabel, button);
280 XtAddCallback(scrollbar, XtNjumpProc, (XtCallbackProc) ui_thumbed, (caddr_t) UNITS_POS);
281
282
283 toggleLabel =
284 ui_xCreateLabelItem("units negativ:", ui_setupPanel,
285 titelWidth, NULL, scrollbar);
286
287 topOfThumb = (ui_set_displayPtr->setup).unitNegTrigger / ui_minAct;
288 scrollbar =
289 ui_xCreateScrollbarItem("trigger", ui_setupPanel, 200, topOfThumb,
290 topLabel, scrollbar);
291 XtAddCallback(scrollbar, XtNjumpProc, (XtCallbackProc) ui_thumbed, (caddr_t) UNITS_NEG);
292 */
293
294 toggleLabel =
295 ui_xCreateLabelItem("links positiv:", ui_setupPanel,
296 titelWidth, NULL, button);
297
298 topOfThumb = (float) (ui_set_displayPtr->setup).linkPosTrigger / ui_maxWeight;
299 scrollbar =
300 ui_xCreateScrollbarItem("trigger", ui_setupPanel, 200, topOfThumb,
301 topLabel, button);
302 XtAddCallback(scrollbar, XtNjumpProc, (XtCallbackProc) ui_thumbed, (caddr_t) UI_LINKS_POS);
303
304
305 toggleLabel =
306 ui_xCreateLabelItem("links negativ:", ui_setupPanel,
307 titelWidth, NULL, scrollbar);
308
309 topOfThumb = (float) (ui_set_displayPtr->setup).linkNegTrigger / ui_minWeight;
310 scrollbar =
311 ui_xCreateScrollbarItem("trigger", ui_setupPanel, 200, topOfThumb,
312 topLabel, scrollbar);
313 XtAddCallback(scrollbar, XtNjumpProc, (XtCallbackProc) ui_thumbed, (caddr_t) UI_LINKS_NEG);
314
315
316 if (ui_col_colorDisplay) {
317 toggleLabel =
318 ui_xCreateLabelItem("links scale :", ui_setupPanel,
319 titelWidth, NULL, scrollbar);
320
321 topOfThumb =
322 (float) (ui_set_displayPtr->setup).linkScaleFactor / 10.0;
323 scrollbar =
324 ui_xCreateScrollbarItem("trigger", ui_setupPanel, 200, topOfThumb,
325 topLabel, scrollbar);
326 XtAddCallback(scrollbar, XtNjumpProc, (XtCallbackProc) ui_thumbed,
327 (caddr_t) UI_SCALE_LINKS);
328 }
329
330 toggleLabel =
331 ui_xCreateLabelItem("units scale :", ui_setupPanel,
332 titelWidth, NULL, scrollbar);
333
334 topOfThumb = (float) (ui_set_displayPtr->setup).unitScaleFactor / ui_maxAct;
335 scrollbar =
336 ui_xCreateScrollbarItem("trigger", ui_setupPanel, 200, topOfThumb,
337 topLabel, scrollbar);
338 XtAddCallback(scrollbar, XtNjumpProc, (XtCallbackProc) ui_thumbed, (caddr_t) UI_SCALE_FACTOR);
339
340
341 toggleLabel =
342 ui_xCreateLabelItem("grid width :", ui_setupPanel,
343 titelWidth, NULL, scrollbar);
344
345 sprintf(buf,"%d", ui_set_displayPtr->gridSize);
346 ui_set_gridWidthWidget =
347 ui_xCreateDialogItem("gridWidth", ui_setupPanel, buf, noWidth,
348 topLabel, scrollbar);
349
350
351 toggleLabel =
352 ui_xCreateLabelItem("origin (grid):", ui_setupPanel,
353 titelWidth, NULL, toggleLabel);
354
355 sprintf(buf,"%d", ui_set_displayPtr->origin.x);
356 ui_set_originXWidget =
357 ui_xCreateDialogItem("origin", ui_setupPanel, buf, numberWidth,
358 topLabel, ui_set_gridWidthWidget);
359
360 sprintf(buf,"%d", ui_set_displayPtr->origin.y);
361 ui_set_originYWidget =
362 ui_xCreateDialogItem("origin", ui_setupPanel, buf, numberWidth,
363 ui_set_originXWidget, ui_set_gridWidthWidget);
364
365 toggleLabel =
366 ui_xCreateLabelItem("subnet number:", ui_setupPanel,
367 titelWidth, NULL, toggleLabel);
368
369 sprintf(buf,"%d", ui_set_displayPtr->subNetNo);
370 ui_set_subnetWidget =
371 ui_xCreateDialogItem("subnetNo", ui_setupPanel, buf, numberWidth,
372 toggleLabel, ui_set_originXWidget);
373
374
375 toggleLabel =
376 ui_xCreateLabelItem("z-value :", ui_setupPanel,
377 titelWidth, NULL, toggleLabel);
378
379 sprintf(buf,"%d", ui_actualZvalue);
380 ui_set_zWidget =
381 ui_xCreateDialogItem("zValue", ui_setupPanel, buf, numberWidth,
382 toggleLabel, ui_set_subnetWidget);
383
384
385 /***************************************************************************/
386
387 XawFormDoLayout(ui_setupPanel, TRUE);
388 ui_setupIsCreated = TRUE;
389 }
390
391
392
393
394
395
396
397
398
399 /* end of file */
400 /* lines: 403 */
401