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