annotate pkg-src/tree-x/intf.c @ 169:15872534500d r20-3b11

Import from CVS: tag r20-3b11
author cvs
date Mon, 13 Aug 2007 09:46:53 +0200
parents 85ec50267440
children 8eaf7971accc
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1 /* ----------------------------------------------------------------------------
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
2 * File : intf.c
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
3 * Purpose : X11/Athena interface code
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
4 * ----------------------------------------------------------------------------
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
5 */
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
6
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
7 #ifdef HAVE_CONFIG_H
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
8 #include "config.h"
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
9 #endif
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
10
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
11 #ifdef HAVE_USLEEP
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
12 #ifdef HAVE_UNISTD_H
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
13 #include <unistd.h>
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
14 #endif /* HAVE_UNISTD_H */
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
15 #else
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
16 int usleep(unsigned long microSeconds);
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
17 #endif /* HAVE_USLEEP */
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
18
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
19 #define GLOBALS 1
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
20
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
21 #include <stdio.h>
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
22 #include <stdlib.h>
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
23 #include <string.h>
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
24 #include <fcntl.h>
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
25
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
26 #include <X11/IntrinsicP.h>
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
27 #include <X11/ShellP.h>
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
28
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
29 #include <X11/Intrinsic.h>
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
30 #include <X11/StringDefs.h>
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
31
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
32 #ifdef XAW3D
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
33 #include <X11/Xaw3d/Box.h>
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
34 #include <X11/Xaw3d/Simple.h>
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
35 #include <X11/Xaw3d/MenuButton.h>
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
36 #include <X11/Xaw3d/SimpleMenu.h>
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
37 #include <X11/Xaw3d/SmeBSB.h>
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
38 #include <X11/Xaw3d/SmeLine.h>
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
39 #include <X11/Xaw3d/Form.h>
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
40 #include <X11/Xaw3d/Label.h>
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
41 #include <X11/Xaw3d/Dialog.h>
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
42 #include <X11/Xaw3d/AsciiText.h>
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
43 #include <X11/Xaw3d/AsciiSrc.h>
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
44 #include <X11/Xaw3d/Viewport.h>
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
45 #include <X11/Xaw3d/Scrollbar.h>
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
46 #include <X11/Xaw3d/Paned.h>
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
47 #include <X11/Xaw3d/Panner.h>
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
48 #include <X11/Xaw3d/Reports.h>
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
49 #else
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
50 #include <X11/Xaw/Box.h>
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
51 #include <X11/Xaw/Simple.h>
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
52 #include <X11/Xaw/MenuButton.h>
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
53 #include <X11/Xaw/SimpleMenu.h>
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
54 #include <X11/Xaw/SmeBSB.h>
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
55 #include <X11/Xaw/SmeLine.h>
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
56 #include <X11/Xaw/Form.h>
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
57 #include <X11/Xaw/Label.h>
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
58 #include <X11/Xaw/Dialog.h>
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
59 #include <X11/Xaw/AsciiText.h>
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
60 #include <X11/Xaw/AsciiSrc.h>
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
61 #include <X11/Xaw/Viewport.h>
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
62 #include <X11/Xaw/Scrollbar.h>
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
63 #include <X11/Xaw/Paned.h>
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
64 #include <X11/Xaw/Panner.h>
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
65 #include <X11/Xaw/Reports.h>
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
66 #endif
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
67
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
68 #include "defs.h"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
69 #include "tree.h"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
70 #include "dbl.h"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
71 #include "intf.h"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
72 #include "rsrc.h"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
73 #include "input.h"
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
74 #include "help.h"
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
75 #include "dissolve.h"
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
76
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
77 #include <X11/cursorfont.h>
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
78
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
79 /* ------------------------------------------------------------------------- */
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
80 /* Global Variables */
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
81 /* ------------------------------------------------------------------------- */
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
82
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
83 extern char *EnvNm; /* Stores name of current Envir file */
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
84
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
85 Widget TreeTopLevel;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
86 Widget TreeDrawingArea;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
87 Display *TreeDisplay;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
88 XtAppContext app;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
89 int TreeScreen;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
90 int TreeContourWidth;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
91 int TreeBorderSize = BORDER_SIZE;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
92 int TreeParentDistance = PARENT_DISTANCE;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
93 XFontStruct *TreeLabelFont;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
94 DoubleBuffer *TreeDrawingAreaDB;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
95 ContourOption TreeShowContourOption = NoContours;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
96 DensityOption TreeLayoutDensity = Fixed;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
97 char TreeShowSteps = FALSE;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
98 char TreeAlignNodes = FALSE;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
99 char PauseAfterStep = FALSE;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
100
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
101 /* ------------------------------------------------------------------------- */
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
102 /* Local Variables */
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
103 /* ------------------------------------------------------------------------- */
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
104
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
105 static Tree *PopupNode; /* node selected for popup */
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
106 static NodePosition NodePos;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
107
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
108 static Widget statusText;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
109
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
110 static Widget scrolledWindow;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
111
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
112 static Widget helpShell;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
113 static Widget helpForm;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
114 static Widget helpText;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
115 static Widget helpDoneButton;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
116 static Widget helpTitle;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
117
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
118 static Widget treeMenus[NUM_MENUS];
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
119 static Widget treeMenuBtns[NUM_MENUS - 1]; /* don't need button for */
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
120 /* node popup menu */
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
121
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
122 static Widget treeMenuItems[TREE_MENU_ITEMS];
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
123 static Widget layoutMenuItems[LAYOUT_MENU_ITEMS];
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
124 static Widget nodeMenuItems[NODE_MENU_ITEMS];
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
125 static Widget helpBtn;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
126
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
127 static String labelStr[NUM_MENU_STRS];
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
128 static String errStr[NUM_ERRS];
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
129
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
130 static Widget dialog[NUM_DLG];
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
131
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
132 /* globals used for state values */
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
133
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
134 static Widget dlgLevelScale, dlgLevelValuator,
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
135 dlgSiblingValuator, dlgSiblingScale;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
136 static int dlgLevelValue;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
137 static int dlgSiblingValue;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
138 static int loading_file = 0;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
139
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
140 static Pixmap check_pixmap, slider_pixmap;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
141
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
142 static Boolean nodeFound;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
143
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
144 static int PauseTime = ANIMATION_SPEED_FAST;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
145 static Cursor PauseCursor;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
146
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
147 static XtResource applRsrcsDesc[] = {
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
148 {
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
149 TrNbackgroundColor, TrCBackgroundColor,
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
150 XtRPixel, sizeof(Pixel),
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
151 XtOffset(ApplRsrcDataPtr, background_color),
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
152 XtRString, TrDefaultBackgroundColor
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
153 },
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
154 {
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
155 TrNtreeColor, TrCTreeColor,
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
156 XtRPixel, sizeof(Pixel),
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
157 XtOffset(ApplRsrcDataPtr, tree_color),
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
158 XtRString, TrDefaultTreeColor
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
159 },
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
160 {
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
161 TrNcontourColor, TrCContourColor,
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
162 XtRPixel, sizeof(Pixel),
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
163 XtOffset(ApplRsrcDataPtr, contour_color),
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
164 XtRString, TrDefaultContourColor
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
165 },
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
166 {
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
167 TrNsplitColor, TrCSplitColor,
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
168 XtRPixel, sizeof(Pixel),
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
169 XtOffset(ApplRsrcDataPtr, split_color),
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
170 XtRString, TrDefaultSplitColor
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
171 },
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
172 {
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
173 TrNhighlightColor, TrCHighlightColor,
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
174 XtRPixel, sizeof(Pixel),
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
175 XtOffset(ApplRsrcDataPtr, highlight_color),
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
176 XtRString, TrDefaultHighlightColor
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
177 },
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
178 {
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
179 TrNactionColor, TrCActionColor,
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
180 XtRPixel, sizeof(Pixel),
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
181 XtOffset(ApplRsrcDataPtr, action_color),
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
182 XtRString, TrDefaultActionColor
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
183 },
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
184 {
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
185 TrNcontourWidth, TrCContourWidth,
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
186 XtRInt, sizeof(int),
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
187 XtOffset(ApplRsrcDataPtr, contour_width),
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
188 XtRImmediate, (XtPointer) TrDefaultContourWidth
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
189 },
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
190 };
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
191
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
192 static void popdown_action (Widget, XEvent *, String *, Cardinal *);
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
193 static void activate_action (Widget, XEvent *, String *, Cardinal *);
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
194 static void quit_action (Widget, XEvent *, String *, Cardinal *);
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
195
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
196 static void select_action (Widget, XEvent *, String *, Cardinal *);
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
197 static void button_action (Widget, XEvent *, String *, Cardinal *);
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
198 static void menu_popup_action (Widget, XEvent *, String *, Cardinal *);
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
199
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
200 static void set_levelscale_CB (Widget, XtPointer, XtPointer);
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
201 static void levelscale_CB (Widget, XtPointer, XtPointer);
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
202 static void set_levelvalue_CB (Widget, XtPointer, XtPointer);
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
203 static void levelvalue_CB (Widget, XtPointer, XtPointer);
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
204 static void set_siblingscale_CB (Widget, XtPointer, XtPointer);
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
205 static void siblingscale_CB (Widget, XtPointer, XtPointer);
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
206 static void set_siblingvalue_CB (Widget, XtPointer, XtPointer);
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
207 static void siblingvalue_CB (Widget, XtPointer, XtPointer);
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
208
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
209 static void center_widget(Widget w, int x, int y);
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
210
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
211 static XtActionsRec local_actions[] = {
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
212 {"wmpopdown", popdown_action},
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
213 {"dlg_activate", activate_action},
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
214 {"node_select", select_action},
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
215 {"node_menu_prepare", button_action},
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
216 {"maybe_menu_popup", menu_popup_action},
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
217 {"quit", quit_action},
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
218 };
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
219
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
220 String fallback_resources[] = {
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
221 "*statusText.width: 310",
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
222 "*treeDrawingArea.width: 310",
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
223 "*treeDrawingArea.height: 400",
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
224 "*Text.Font: -*-lucidatypewriter-medium-r-*-*-12-*-*-*-*-*-iso8859-1",
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
225 "*Label.Font: -*-helvetica-medium-r-*-*-12-*-*-*-*-*-iso8859-1",
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
226 "*Command.Font: -*-helvetica-bold-r-*-*-12-*-*-*-*-*-iso8859-1",
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
227 "*SimpleMenu.Font: -*-helvetica-bold-r-*-*-12-*-*-*-*-*-iso8859-1",
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
228 "*SmeBSB.Font: -*-helvetica-bold-r-*-*-12-*-*-*-*-*-iso8859-1",
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
229 "*MenuButton.Font: -*-helvetica-bold-r-*-*-12-*-*-*-*-*-iso8859-1",
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
230 "*List.Font: -*-helvetica-bold-r-*-*-12-*-*-*-*-*-iso8859-1",
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
231 "*treeMenuBtn.label: Tree",
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
232 "*layoutMenuBtn.label: Layout",
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
233 "*helpBtn.label: Help...",
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
234 "*treeMenu*treeMenuNew.label: New Tree",
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
235 "*treeMenu*treeMenuLoad.label: Load Tree",
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
236 "*treeMenu*treeMenuSave.label: Save Tree",
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
237 "*treeMenu*treeMenuQuit.label: Quit",
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
238 "*layoutMenu*layoutMenuFixed.label: Fixed",
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
239 "*layoutMenu*layoutMenuVariable.label: Variable",
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
240 "*layoutMenu*layoutMenuSpacing.label: Spacing...",
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
241 "*layoutMenu*layoutMenuAlignNodes.label: Align Nodes on Level",
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
242 "*dlgNewTree.title: New Tree",
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
243 "*dlgNodeName.title: Node Name",
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
244 "*dlgInfo.title: Information",
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
245 "*dlgError.title: Error!",
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
246 "*dlgSpacing.title: Tree Node Spacing",
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
247 "*helpShell.title: Help",
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
248 "*dlgNewTreeForm.label: Enter name of root node:",
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
249 "*dlgNodeNameForm.label: Enter name of new node:",
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
250 "*dlgFileForm.label: Enter name of file:",
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
251 "*dlgInfoForm.label: Information:",
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
252 "*dlgErrorForm.label: Error:",
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
253 "*dlgSpacing.label: Spacing Dialog",
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
254 "*dlgLevelLabel.label: Level spacing:",
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
255 "*dlgSiblingLabel.label: Sibling spacing:",
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
256 "*dlgLevelValuator.width: 40",
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
257 "*dlgLevelValuator.width: 40",
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
258 "*dlgNewTreeOk.label: Ok",
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
259 "*dlgNewTreeCancel.label: Cancel",
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
260 "*dlgFileOk.label: Ok",
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
261 "*dlgFileCancel.label: Cancel",
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
262 "*dlgInfoButton.label: Acknowledged",
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
263 "*dlgErrorButton.label: Acknowledged",
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
264 "*dlgOkButton.label: Ok",
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
265 "*dlgCancelButton.label: Cancel",
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
266 "*dlgNodeNameOk.label: Ok",
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
267 "*dlgNodeNameCancel.label: Cancel",
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
268 "*helpDoneButton.label: Dismiss",
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
269 "*helpTitle.label: Help for Drawing Dynamic Trees",
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
270 "*treeDrawingArea.Translations: #override \\n\
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
271 <Btn1Down>: node_select(EDIT)\\n\
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
272 <Btn2Down>: node_select(VIEW)\\n\
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
273 <Btn3Down>: XawPositionSimpleMenu(nodeMenu)node_menu_prepare()XtMenuPopup(nodeMenu)\\n",
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
274 NULL,
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
275 };
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
276
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
277 static ApplRsrcData applRsrcs;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
278 static ApplRsrcDataPtr applRsrcsPtr;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
279
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
280 /* included bitmaps */
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
281
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
282 #define gray_width 8
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
283 #define gray_height 8
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
284 static unsigned char gray_bits[] = {
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
285 0x55, 0xaa, 0x55, 0xaa, 0x55, 0xaa, 0x55, 0xaa
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
286 };
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
287
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
288 /* This is a check mark stolen from the xmh application. :) */
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
289 #define check_width 9
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
290 #define check_height 8
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
291 static unsigned char check_bits[] = {
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
292 0x00, 0x01, 0x80, 0x01, 0xc0, 0x00, 0x60, 0x00,
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
293 0x31, 0x00, 0x1b, 0x00, 0x0e, 0x00, 0x04, 0x00
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
294 };
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
295
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
296 #define slider_pixmap_width 4
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
297 #define slider_pixmap_height 4
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
298 static unsigned char slider_pixmap_bits[] = {
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
299 0x05, 0x0a, 0x05, 0x0a
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
300 };
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
301
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
302 /* ------------------------------------------------------------------------- */
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
303 /* Forward Function Declarations */
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
304 /* ------------------------------------------------------------------------- */
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
305
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
306 static void popup_dialog(Widget, XtGrabKind );
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
307
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
308 static void Help_CB (Widget, XtPointer, XtPointer);
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
309 static void HelpDone_CB (Widget, XtPointer, XtPointer);
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
310 static void Scale_CB (Widget, XtPointer, XtPointer);
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
311
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
312 static void TreeMenu_CB (Widget, XtPointer, XtPointer);
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
313 static void LayoutMenu_CB (Widget, XtPointer, XtPointer);
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
314 static void NodeMenu_CB (Widget, XtPointer, XtPointer);
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
315
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
316 static void NodeLabel_CB (Widget, XtPointer, XtPointer);
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
317 static void NewTree_CB (Widget, XtPointer, XtPointer);
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
318 static void File_CB (Widget, XtPointer, XtPointer);
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
319
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
320 static void Popdown_CB (Widget, XtPointer, XtPointer);
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
321
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
322 /* ------------------------------------------------------------------------- */
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
323 /* Functions */
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
324 /* ------------------------------------------------------------------------- */
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
325
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
326 /* ----------------------------------------------------------------------------
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
327 *
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
328 * Status() displays the specified text in the status area.
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
329 * 'urgent' overrides the value of TreeShowSteps.
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
330 *
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
331 * ----------------------------------------------------------------------------
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
332 */
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
333
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
334 void
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
335 StatusMsg(char *msg, int urgent)
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
336 {
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
337 if (TreeShowSteps || urgent)
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
338 {
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
339 Arg al [1];
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
340 XtSetArg (al [0], XtNlabel, msg);
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
341 XtSetValues(statusText, al, 1);
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
342 }
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
343 }
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
344
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
345
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
346 /* ----------------------------------------------------------------------------
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
347 *
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
348 * Pause is a trivial function, for the benefit of interface-dependent code
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
349 * inside tree.c. This avoids having to include X11 stuff inside that file.
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
350 * PauseTime is expected to contain an integer indicating 1/10ths of a sec.
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
351 *
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
352 * ----------------------------------------------------------------------------
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
353 */
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
354
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
355 void
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
356 Pause(void)
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
357 {
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
358 XEvent event;
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
359
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
360 if (PauseAfterStep) {
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
361 XGrabKeyboard(TreeDisplay, XtWindow(TreeTopLevel), False,
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
362 GrabModeAsync, GrabModeAsync, CurrentTime);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
363 XGrabPointer(TreeDisplay, XtWindow(TreeTopLevel), False,
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
364 ButtonPressMask | ButtonReleaseMask,
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
365 GrabModeAsync, GrabModeAsync, None,
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
366 PauseCursor, CurrentTime);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
367 XMaskEvent(TreeDisplay, ButtonPressMask | KeyPress, &event);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
368 XUngrabPointer(TreeDisplay, CurrentTime);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
369 XUngrabKeyboard(TreeDisplay, CurrentTime);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
370 }
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
371 else if (TreeShowSteps) {
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
372 XSync(TreeDisplay, 0);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
373 usleep(PauseTime * 100000);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
374 }
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
375 }
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
376
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
377 /* ----------------------------------------------------------------------------
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
378 *
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
379 * BuildPopupMenus() builds the popup menus for use in the application
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
380 * window.
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
381 *
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
382 * ----------------------------------------------------------------------------
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
383 */
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
384
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
385 static void
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
386 BuildPopupMenus(Widget parent)
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
387 {
169
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
388 Arg al[2];
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
389
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
390 labelStr[STR_NODE_COLLAPSE] = "Collapse Node";
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
391 labelStr[STR_NODE_EXPAND] = "Expand Node";
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
392
169
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
393 XtSetArg (al [0], XtNlabel, " ");
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
394 treeMenus[NODE_MENU] =
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
395 XtCreatePopupShell("nodeMenu", simpleMenuWidgetClass, parent, al, 1);
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
396
169
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
397 XtCreateManagedWidget("nodeMenuAddChild", smeLineObjectClass,
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
398 treeMenus[NODE_MENU], NULL, 0);
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
399
169
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
400 XtSetArg (al [0], XtNlabel, "Add Child");
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
401 nodeMenuItems[NODE_MENU_ADD_CHILD] =
169
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
402 XtCreateManagedWidget("nodeMenuAddChild", smeBSBObjectClass,
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
403 treeMenus[NODE_MENU], al, 1);
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
404 XtAddCallback(nodeMenuItems[NODE_MENU_ADD_CHILD],
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
405 XtNcallback, NodeMenu_CB, (XtPointer) NODE_MENU_ADD_CHILD);
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
406
169
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
407 XtSetArg (al [0], XtNlabel, "Add Sibling Before");
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
408 nodeMenuItems[NODE_MENU_ADD_BEFORE] =
169
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
409 XtCreateManagedWidget("nodeMenuAddSiblingBefore", smeBSBObjectClass,
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
410 treeMenus[NODE_MENU], al, 1);
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
411 XtAddCallback(nodeMenuItems[NODE_MENU_ADD_BEFORE],
169
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
412 XtNcallback, NodeMenu_CB, (XtPointer) NODE_MENU_ADD_BEFORE);
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
413
169
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
414 XtSetArg (al [0], XtNlabel, "Add Sibling After");
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
415 nodeMenuItems[NODE_MENU_ADD_AFTER] =
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
416 XtCreateManagedWidget("nodeMenuAddSiblingAfter", smeBSBObjectClass,
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
417 treeMenus[NODE_MENU], al, 1);
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
418 XtAddCallback(nodeMenuItems[NODE_MENU_ADD_AFTER],
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
419 XtNcallback, NodeMenu_CB, (XtPointer) NODE_MENU_ADD_AFTER);
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
420
169
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
421 XtSetArg (al [0], XtNlabel, labelStr[STR_NODE_COLLAPSE]);
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
422 nodeMenuItems[NODE_MENU_ELISION] =
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
423 XtCreateManagedWidget("nodeMenuElision", smeBSBObjectClass,
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
424 treeMenus[NODE_MENU], al, 1);
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
425 XtAddCallback(nodeMenuItems[NODE_MENU_ELISION],
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
426 XtNcallback, NodeMenu_CB, (XtPointer) NODE_MENU_ELISION);
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
427
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
428
169
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
429 XtSetArg (al [0], XtNlabel, "Delete Node");
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
430 nodeMenuItems[NODE_MENU_DELETE] =
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
431 XtCreateManagedWidget("nodeMenuDeleteNode", smeBSBObjectClass,
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
432 treeMenus[NODE_MENU], al, 1);
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
433 XtAddCallback(nodeMenuItems[NODE_MENU_DELETE],
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
434 XtNcallback, NodeMenu_CB, (XtPointer) NODE_MENU_DELETE);
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
435 }
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
436
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
437 /* ----------------------------------------------------------------------------
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
438 *
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
439 * BuildMenubar() builds the menubar that appears in the main window.
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
440 *
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
441 * ----------------------------------------------------------------------------
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
442 */
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
443
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
444
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
445 static void
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
446 BuildMenubar(Widget parent)
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
447 {
169
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
448 Arg al[4];
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
449 Widget box;
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
450
169
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
451 XtSetArg (al [0], XtNshowGrip, FALSE);
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
452 XtSetArg (al [1], XtNborderWidth, 0);
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
453 box = XtCreateManagedWidget("menuBox", boxWidgetClass, parent, al, 2);
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
454
169
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
455 /* menu button widgets */
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
456 XtSetArg (al [0], XtNmenuName, "treeMenu");
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
457 treeMenuBtns[TREE_MENU] =
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
458 XtCreateManagedWidget("treeMenuBtn", menuButtonWidgetClass, box, al, 1);
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
459 XtSetArg (al [0], XtNmenuName, "layoutMenu");
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
460 treeMenuBtns[LAYOUT_MENU] =
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
461 XtCreateManagedWidget("layoutMenuBtn", menuButtonWidgetClass, box, al, 1);
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
462
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
463 helpBtn = XtCreateManagedWidget("helpBtn", commandWidgetClass, box, NULL, 0);
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
464
169
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
465 XtAddCallback(helpBtn, XtNcallback, Help_CB, NULL);
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
466
169
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
467 /* create pulldown menus */
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
468
169
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
469 treeMenus[TREE_MENU] =
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
470 XtCreatePopupShell("treeMenu", simpleMenuWidgetClass,
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
471 treeMenuBtns[TREE_MENU], NULL, 0);
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
472
169
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
473 treeMenus[LAYOUT_MENU] =
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
474 XtCreatePopupShell("layoutMenu", simpleMenuWidgetClass,
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
475 treeMenuBtns[LAYOUT_MENU], NULL, 0);
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
476
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
477
169
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
478 /* adding menu entries */
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
479
169
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
480 /* Tree menu */
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
481
169
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
482 treeMenuItems[TREE_MENU_NEW] =
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
483 XtCreateManagedWidget("treeMenuNew", smeBSBObjectClass,
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
484 treeMenus[TREE_MENU], NULL, 0);
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
485 XtAddCallback(treeMenuItems[TREE_MENU_NEW],
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
486 XtNcallback, TreeMenu_CB, TREE_MENU_NEW);
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
487
169
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
488 treeMenuItems[TREE_MENU_LOAD] =
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
489 XtCreateManagedWidget("treeMenuLoad", smeBSBObjectClass,
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
490 treeMenus[TREE_MENU], NULL, 0);
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
491 XtAddCallback(treeMenuItems[TREE_MENU_LOAD],
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
492 XtNcallback, TreeMenu_CB, (XtPointer) TREE_MENU_LOAD);
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
493
169
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
494 treeMenuItems[TREE_MENU_SAVE] =
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
495 XtCreateManagedWidget("treeMenuSave", smeBSBObjectClass,
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
496 treeMenus[TREE_MENU], NULL, 0);
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
497 XtAddCallback(treeMenuItems[TREE_MENU_SAVE],
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
498 XtNcallback, TreeMenu_CB, (XtPointer) TREE_MENU_SAVE);
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
499
169
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
500 treeMenuItems[TREE_MENU_SEP1] =
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
501 XtCreateManagedWidget("treeMenuSep1", smeLineObjectClass,
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
502 treeMenus[TREE_MENU], NULL, 0);
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
503
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
504 #ifdef COMMENT
169
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
505 XtSetArg (al [0], XtNlabel, labelStr[STR_SHOW_STATS]);
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
506 treeMenuItems[TREE_MENU_STATS] =
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
507 XtCreateManagedWidget("treeMenuStats", smeBSBObjectClass,
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
508 treeMenus[TREE_MENU], al, 1);
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
509 XtAddCallback(treeMenuItems[TREE_MENU_STATS],
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
510 XtNcallback, TreeMenu_CB, (XtPointer) TREE_MENU_STATS);
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
511 XtSetSensitive(treeMenuItems[TREE_MENU_STATS], FALSE);
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
512
169
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
513 treeMenuItems[TREE_MENU_SEP2] =
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
514 XtCreateManagedWidget("treeMenuSep2", smeLineObjectClass,
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
515 treeMenus[TREE_MENU], NULL, 0);
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
516 #endif /* COMMENT */
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
517
169
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
518 treeMenuItems[TREE_MENU_QUIT] =
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
519 XtCreateManagedWidget("treeMenuQuit", smeBSBObjectClass,
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
520 treeMenus[TREE_MENU], NULL, 0);
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
521 XtAddCallback(treeMenuItems[TREE_MENU_QUIT],
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
522 XtNcallback, TreeMenu_CB, (XtPointer) TREE_MENU_QUIT);
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
523
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
524
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
525
169
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
526 /* Layout menu */
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
527
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
528 #ifdef COMMENT
169
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
529 XtSetArg (al [0], XtNleftMargin, 18);
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
530 treeMenuItems[LAYOUT_MENU_FIXED] =
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
531 XtCreateManagedWidget("layoutMenuFixed", smeBSBObjectClass,
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
532 treeMenus[LAYOUT_MENU], al, 1);
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
533
169
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
534 XtAddCallback(treeMenuItems[LAYOUT_MENU_FIXED],
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
535 XtNcallback, LayoutMenu_CB, (XtPointer) LAYOUT_MENU_FIXED);
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
536
169
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
537 XtSetArg (al [0], XtNleftMargin, 18);
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
538 treeMenuItems[LAYOUT_MENU_VARIABLE] =
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
539 XtCreateManagedWidget("layoutMenuVariable", smeBSBObjectClass,
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
540 treeMenus[LAYOUT_MENU], al, 1);
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
541
169
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
542 XtAddCallback(treeMenuItems[LAYOUT_MENU_VARIABLE],
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
543 XtNcallback, LayoutMenu_CB, (XtPointer) LAYOUT_MENU_VARIABLE);
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
544
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
545
169
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
546 treeMenuItems[LAYOUT_MENU_SEP1] =
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
547 XtCreateManagedWidget("layoutSep1", smeLineObjectClass,
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
548 treeMenus[LAYOUT_MENU], NULL, 0)
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
549 #endif /* COMMENT */
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
550
169
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
551 XtSetArg (al [0], XtNleftMargin, 18);
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
552 treeMenuItems[LAYOUT_MENU_SPACING] =
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
553 XtCreateManagedWidget("layoutMenuSpacing", smeBSBObjectClass,
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
554 treeMenus[LAYOUT_MENU], al, 1);
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
555 XtAddCallback(treeMenuItems[LAYOUT_MENU_SPACING],
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
556 XtNcallback, LayoutMenu_CB, (XtPointer) LAYOUT_MENU_SPACING);
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
557
169
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
558 treeMenuItems[LAYOUT_MENU_SEP2] =
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
559 XtCreateManagedWidget("layoutMenuSep2", smeLineObjectClass,
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
560 treeMenus[LAYOUT_MENU], NULL, 0);
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
561
169
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
562 /* the following is a toggle button - we hack it using a bitmap */
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
563 XtSetArg (al [0], XtNleftMargin, 18);
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
564 treeMenuItems[LAYOUT_MENU_ALIGN_NODES] =
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
565 XtCreateManagedWidget("layoutMenuAlignNodes", smeBSBObjectClass,
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
566 treeMenus[LAYOUT_MENU], al, 1);
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
567 XtAddCallback(treeMenuItems[LAYOUT_MENU_ALIGN_NODES],
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
568 XtNcallback, LayoutMenu_CB,
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
569 (XtPointer) LAYOUT_MENU_ALIGN_NODES);
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
570 }
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
571
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
572 /* ----------------------------------------------------------------------------
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
573 *
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
574 * BuildDialogs() builds all the dialogs used in this application.
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
575 *
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
576 * ----------------------------------------------------------------------------
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
577 */
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
578
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
579 static void
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
580 BuildDialogs (Widget parent)
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
581 {
169
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
582 Arg al [20]; int ac;
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
583 Widget
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
584 tmpwidget, dlgForm, dlgValue,
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
585 dlgLevelLabel, dlgSiblingLabel,
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
586 dlgOkButton, dlgCancelButton;
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
587
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
588 labelStr[STR_LOAD_FILE] = "Name of file to load:";
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
589 labelStr[STR_SAVE_FILE] = "Name of file to save:";
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
590
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
591 errStr[ERR_OPENFAIL] = "Failed to open file.";
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
592 errStr[ERR_EMPTYFILE] = "Input file is empty.";
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
593 errStr[ERR_MEMALLOC] = "Memory allocation failed.";
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
594 errStr[ERR_NOBEGIN] = "End of list does not have a matching beginning.";
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
595 errStr[ERR_NOEND] = "Beginning of list does not have a matching end.";
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
596 errStr[ERR_NOROOT] = "Input file does not have a root label.";
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
597 errStr[ERR_MANYROOT] = "Input file has more than one root label.";
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
598
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
599
169
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
600 XtSetArg (al [0], XtNresizable, TRUE);
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
601 dialog[DLG_NEW] = XtCreatePopupShell("dlgNewTree", transientShellWidgetClass,
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
602 parent, al, 1);
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
603
169
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
604 XtSetArg (al [0], XtNresizable, TRUE);
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
605 XtSetArg (al [1], XtNvalue, "");
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
606 tmpwidget = XtCreateManagedWidget("dlgNewTreeForm", dialogWidgetClass,
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
607 dialog[DLG_NEW], al, 2);
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
608
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
609 XawDialogAddButton(tmpwidget, "dlgNewTreeOk", NewTree_CB,
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
610 (XtPointer) TRUE);
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
611 XawDialogAddButton(tmpwidget, "dlgNewTreeCancel", NewTree_CB,
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
612 (XtPointer) FALSE);
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
613
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
614 dlgValue = XtNameToWidget(tmpwidget, "value");
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
615
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
616 XtOverrideTranslations
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
617 (dlgValue, XtParseTranslationTable
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
618 ("<Key>Return:dlg_activate(dlgNewTreeOk)\n"));
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
619
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
620
169
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
621 XtSetArg (al [0], XtNresizable, TRUE);
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
622 dialog[DLG_NODE_NAME] = XtCreatePopupShell("dlgNodeName",
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
623 transientShellWidgetClass,
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
624 TreeTopLevel, al, 1);
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
625
169
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
626 XtSetArg (al [0], XtNresizable, TRUE);
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
627 XtSetArg (al [1], XtNvalue, "");
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
628 tmpwidget= XtCreateManagedWidget("dlgNodeNameForm", dialogWidgetClass,
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
629 dialog[DLG_NODE_NAME], al, 2);
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
630
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
631 XawDialogAddButton(tmpwidget, "dlgNodeNameOk", NodeLabel_CB,
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
632 (XtPointer) TRUE);
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
633 XawDialogAddButton(tmpwidget, "dlgNodeNameCancel", NodeLabel_CB,
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
634 (XtPointer) FALSE);
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
635
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
636 dlgValue = XtNameToWidget(tmpwidget, "value");
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
637
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
638 XtOverrideTranslations
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
639 (dlgValue, XtParseTranslationTable
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
640 ("<Key>Return: dlg_activate(dlgNodeNameOk)\n"));
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
641
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
642
169
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
643 XtSetArg (al [0], XtNresizable, TRUE);
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
644 dialog[DLG_FILE] = XtCreatePopupShell("dlgFile",
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
645 transientShellWidgetClass,
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
646 TreeTopLevel, al, 1);
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
647
169
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
648 XtSetArg (al [0], XtNresizable, TRUE);
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
649 XtSetArg (al [1], XtNvalue, "");
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
650 tmpwidget = XtCreateManagedWidget("dlgFileForm", dialogWidgetClass,
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
651 dialog[DLG_FILE], al, 2);
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
652
169
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
653 XawDialogAddButton(tmpwidget, "dlgFileOk", File_CB, (XtPointer) TRUE);
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
654 XawDialogAddButton(tmpwidget, "dlgFileCancel", File_CB, (XtPointer) FALSE);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
655
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
656 dlgValue = XtNameToWidget(tmpwidget, "value");
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
657
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
658 XtOverrideTranslations
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
659 (dlgValue, XtParseTranslationTable
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
660 ("<Key>Return:dlg_activate(dlgFileOk)\n"));
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
661
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
662
169
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
663 XtSetArg (al [0], XtNresizable, TRUE);
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
664 dialog[DLG_INFO] = XtCreatePopupShell("dlgInfo",
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
665 transientShellWidgetClass,
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
666 TreeTopLevel, al, 1);
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
667
169
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
668 XtSetArg (al [0], XtNresizable, TRUE);
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
669 XtSetArg (al [1], XtNvalue, "");
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
670 tmpwidget = XtCreatePopupShell("dlgInfoForm",
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
671 dialogWidgetClass,
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
672 dialog[DLG_INFO], al, 2);
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
673
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
674 XawDialogAddButton(tmpwidget, "dlgInfoButton", Popdown_CB,
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
675 (XtPointer) dialog[DLG_INFO]);
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
676
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
677
169
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
678 XtSetArg (al [0], XtNresizable, TRUE);
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
679 dialog[DLG_ERROR] = XtCreatePopupShell("dlgError",
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
680 transientShellWidgetClass,
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
681 TreeTopLevel, al, 1);
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
682
169
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
683 XtSetArg (al [0], XtNresizable, TRUE);
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
684 XtSetArg (al [1], XtNvalue, "");
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
685 tmpwidget = XtCreateManagedWidget("dlgErrorForm",
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
686 dialogWidgetClass,
169
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
687 dialog[DLG_ERROR], al, 2);
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
688
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
689 XawDialogAddButton(tmpwidget, "dlgErrorButton", Popdown_CB,
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
690 (XtPointer) dialog[DLG_ERROR]);
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
691
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
692
169
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
693 XtSetArg (al [0], XtNresizable, FALSE);
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
694 dialog[DLG_SPACING] = XtCreatePopupShell("dlgSpacing",
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
695 transientShellWidgetClass,
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
696 TreeTopLevel, al, 1);
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
697
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
698 XtSetArg (al [0], XtNresizable, FALSE);
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
699 dlgForm = XtCreateManagedWidget("dlgSpacingForm",
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
700 formWidgetClass,
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
701 dialog[DLG_SPACING], al, 1);
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
702
169
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
703 ac = 0;
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
704 XtSetArg (al [ac], XtNfromVert, NULL); ac++;
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
705 XtSetArg (al [ac], XtNfromHoriz, NULL); ac++;
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
706 XtSetArg (al [ac], XtNtop, XawChainTop); ac++;
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
707 XtSetArg (al [ac], XtNbottom, XawChainTop); ac++;
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
708 XtSetArg (al [ac], XtNleft, XawChainLeft); ac++;
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
709 XtSetArg (al [ac], XtNright, XawChainLeft); ac++;
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
710 XtSetArg (al [ac], XtNborderWidth, 0); ac++;
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
711 dlgLevelLabel = XtCreateManagedWidget("dlgLevelLabel", labelWidgetClass,
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
712 dlgForm, al, ac);
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
713
169
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
714 ac = 0;
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
715 XtSetArg (al [ac], XtNfromVert, NULL); ac++;
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
716 XtSetArg (al [ac], XtNfromHoriz, dlgLevelLabel); ac++;
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
717 XtSetArg (al [ac], XtNtop, XawChainTop); ac++;
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
718 XtSetArg (al [ac], XtNbottom, XawChainTop); ac++;
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
719 XtSetArg (al [ac], XtNleft, XawChainLeft); ac++;
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
720 XtSetArg (al [ac], XtNright, XawChainLeft); ac++;
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
721 XtSetArg (al [ac], XtNlabel, " "); ac++;
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
722 dlgLevelValuator = XtCreateManagedWidget("dlgLevelValuator",
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
723 labelWidgetClass,
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
724 dlgForm, al, ac);
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
725
169
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
726 ac = 0;
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
727 XtSetArg (al [ac], XtNfromVert, dlgLevelLabel); ac++;
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
728 XtSetArg (al [ac], XtNfromHoriz, NULL); ac++;
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
729 XtSetArg (al [ac], XtNtop, XawChainTop); ac++;
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
730 XtSetArg (al [ac], XtNbottom, XawChainTop); ac++;
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
731 XtSetArg (al [ac], XtNleft, XawChainLeft); ac++;
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
732 XtSetArg (al [ac], XtNright, XawChainLeft); ac++;
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
733 XtSetArg (al [ac], XtNcanvasWidth, 110); ac++;
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
734 XtSetArg (al [ac], XtNdefaultScale, 1); ac++;
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
735 XtSetArg (al [ac], XtNinternalSpace, 1); ac++;
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
736 XtSetArg (al [ac], XtNrubberBand, FALSE); ac++;
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
737 XtSetArg (al [ac], XtNshadowThickness, 0); ac++;
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
738 XtSetArg (al [ac], XtNallowOff, FALSE); ac++;
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
739 XtSetArg (al [ac], XtNwidth, 200); ac++;
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
740 XtSetArg (al [ac], XtNsliderWidth, 10); ac++;
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
741 XtSetArg (al [ac], XtNheight, 15); ac++;
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
742 dlgLevelScale = XtCreateManagedWidget("dlgLevelScale",
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
743 pannerWidgetClass,
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
744 dlgForm, al, ac);
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
745
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
746 XtOverrideTranslations(dlgLevelScale, XtParseTranslationTable("\
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
747 <Btn2Down>: start()\n\
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
748 <Btn2Motion>: move()\n\
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
749 <Btn2Up>: notify()stop()\n\
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
750 <Btn3Down>: abort()\n"));
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
751
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
752 XtAddCallback(dlgLevelScale, XtNreportCallback, levelscale_CB,
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
753 (XtPointer) dlgLevelValuator);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
754 XtAddCallback(dlgLevelScale, XtNreportCallback, levelvalue_CB,
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
755 (XtPointer) &dlgLevelValue);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
756
169
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
757 ac = 0;
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
758 XtSetArg (al [ac], XtNfromVert, dlgLevelScale); ac++;
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
759 XtSetArg (al [ac], XtNfromHoriz, NULL); ac++;
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
760 XtSetArg (al [ac], XtNtop, XawChainTop); ac++;
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
761 XtSetArg (al [ac], XtNbottom, XawChainTop); ac++;
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
762 XtSetArg (al [ac], XtNleft, XawChainLeft); ac++;
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
763 XtSetArg (al [ac], XtNright, XawChainLeft); ac++;
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
764 XtSetArg (al [ac], XtNborderWidth, 0); ac++;
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
765 dlgSiblingLabel = XtCreateManagedWidget("dlgSiblingLabel",
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
766 labelWidgetClass,
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
767 dlgForm, al, ac);
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
768
169
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
769 ac = 0;
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
770 XtSetArg (al [ac], XtNfromVert, dlgLevelScale); ac++;
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
771 XtSetArg (al [ac], XtNfromHoriz, dlgSiblingLabel); ac++;
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
772 XtSetArg (al [ac], XtNtop, XawChainTop); ac++;
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
773 XtSetArg (al [ac], XtNbottom, XawChainTop); ac++;
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
774 XtSetArg (al [ac], XtNleft, XawChainLeft); ac++;
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
775 XtSetArg (al [ac], XtNright, XawChainLeft); ac++;
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
776 XtSetArg (al [ac], XtNlabel, " "); ac++;
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
777 dlgSiblingValuator = XtCreateManagedWidget("dlgLevelValuator",
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
778 labelWidgetClass,
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
779 dlgForm, al, ac);
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
780
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
781 ac = 0;
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
782 XtSetArg (al [ac], XtNfromVert, dlgSiblingLabel); ac++;
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
783 XtSetArg (al [ac], XtNfromHoriz, NULL); ac++;
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
784 XtSetArg (al [ac], XtNtop, XawChainTop); ac++;
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
785 XtSetArg (al [ac], XtNbottom, XawChainTop); ac++;
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
786 XtSetArg (al [ac], XtNleft, XawChainLeft); ac++;
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
787 XtSetArg (al [ac], XtNright, XawChainLeft); ac++;
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
788 XtSetArg (al [ac], XtNcanvasWidth, 110); ac++;
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
789 XtSetArg (al [ac], XtNdefaultScale, 1); ac++;
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
790 XtSetArg (al [ac], XtNinternalSpace, 1); ac++;
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
791 XtSetArg (al [ac], XtNrubberBand, FALSE); ac++;
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
792 XtSetArg (al [ac], XtNshadowThickness, 0); ac++;
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
793 XtSetArg (al [ac], XtNallowOff, FALSE); ac++;
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
794 XtSetArg (al [ac], XtNwidth, 200); ac++;
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
795 XtSetArg (al [ac], XtNsliderWidth, 10); ac++;
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
796 XtSetArg (al [ac], XtNheight, 15); ac++;
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
797 dlgSiblingScale = XtCreateManagedWidget("dlgSiblingScale",
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
798 pannerWidgetClass,
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
799 dlgForm, al, ac);
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
800
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
801 XtOverrideTranslations(dlgSiblingScale, XtParseTranslationTable("\
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
802 <Btn2Down>: start()\n\
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
803 <Btn2Motion>: move()\n\
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
804 <Btn2Up>: notify()stop()\n\
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
805 <Btn3Down>: abort()\n"));
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
806
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
807 XtAddCallback(dlgSiblingScale, XtNreportCallback, siblingscale_CB,
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
808 (XtPointer) dlgSiblingValuator);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
809 XtAddCallback(dlgSiblingScale, XtNreportCallback, siblingvalue_CB,
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
810 (XtPointer) &dlgSiblingValue);
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
811
169
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
812 ac = 0;
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
813 XtSetArg (al [ac], XtNfromVert, dlgSiblingLabel); ac++;
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
814 XtSetArg (al [ac], XtNfromHoriz, NULL); ac++;
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
815 XtSetArg (al [ac], XtNtop, XawChainTop); ac++;
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
816 XtSetArg (al [ac], XtNbottom, XawChainTop); ac++;
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
817 XtSetArg (al [ac], XtNleft, XawChainLeft); ac++;
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
818 XtSetArg (al [ac], XtNright, XawChainLeft); ac++;
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
819 XtSetArg (al [ac], XtNlabel, " "); ac++;
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
820 dlgOkButton = XtCreateManagedWidget("dlgOkButton", commandWidgetClass,
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
821 dlgForm, al, ac);
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
822
169
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
823 ac = 0;
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
824 XtSetArg (al [ac], XtNfromVert, dlgSiblingScale); ac++;
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
825 XtSetArg (al [ac], XtNfromHoriz, dlgOkButton); ac++;
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
826 XtSetArg (al [ac], XtNtop, XawChainTop); ac++;
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
827 XtSetArg (al [ac], XtNbottom, XawChainTop); ac++;
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
828 XtSetArg (al [ac], XtNleft, XawChainLeft); ac++;
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
829 XtSetArg (al [ac], XtNright, XawChainLeft); ac++;
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
830 dlgCancelButton = XtCreateManagedWidget("dlgCancelButton",
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
831 commandWidgetClass,
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
832 dlgForm, al, ac);
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
833
169
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
834 XtAddCallback(dlgOkButton, XtNcallback, Scale_CB, (XtPointer) TRUE);
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
835 XtAddCallback(dlgCancelButton, XtNcallback, Scale_CB, (XtPointer) FALSE);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
836 }
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
837
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
838 /* ----------------------------------------------------------------------------
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
839 *
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
840 * BuildHelpWindow() builds the help window that is displayed when the
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
841 * Help button on the application main window is pressed.
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
842 *
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
843 * ----------------------------------------------------------------------------
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
844 */
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
845
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
846
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
847 static void
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
848 BuildHelpWindow(Widget parent)
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
849 {
169
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
850 Arg al [20]; int ac;
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
851
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
852 helpShell = XtCreatePopupShell("helpShell", transientShellWidgetClass,
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
853 parent, NULL, 0);
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
854
169
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
855 helpForm = XtCreateManagedWidget("helpForm", formWidgetClass,
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
856 helpShell, NULL, 0);
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
857
169
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
858 ac = 0;
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
859 XtSetArg (al [ac], XtNfromVert, NULL); ac++;
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
860 XtSetArg (al [ac], XtNfromHoriz, NULL); ac++;
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
861 XtSetArg (al [ac], XtNtop, XawChainTop); ac++;
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
862 XtSetArg (al [ac], XtNbottom, XawChainTop); ac++;
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
863 XtSetArg (al [ac], XtNleft, XawChainLeft); ac++;
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
864 XtSetArg (al [ac], XtNright, XawChainLeft); ac++;
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
865 helpDoneButton = XtCreateManagedWidget("helpDoneButton",
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
866 commandWidgetClass,
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
867 helpForm, al, ac);
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
868
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
869 XtAddCallback(helpDoneButton, XtNcallback, Popdown_CB,
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
870 (XtPointer) helpShell);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
871
169
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
872 ac = 0;
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
873 XtSetArg (al [ac], XtNfromVert, NULL); ac++;
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
874 XtSetArg (al [ac], XtNfromHoriz, helpDoneButton); ac++;
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
875 XtSetArg (al [ac], XtNtop, XawChainTop); ac++;
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
876 XtSetArg (al [ac], XtNbottom, XawChainTop); ac++;
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
877 XtSetArg (al [ac], XtNleft, XawChainLeft); ac++;
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
878 XtSetArg (al [ac], XtNright, XawChainLeft); ac++;
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
879 XtSetArg (al [ac], XtNborderWidth, 0); ac++;
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
880 XtSetArg (al [ac], XtNlabel, " "); ac++;
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
881 helpTitle = XtCreateManagedWidget("helpTitle", labelWidgetClass,
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
882 helpForm, al, ac);
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
883
169
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
884
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
885 ac = 0;
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
886 XtSetArg (al [ac], XtNfromVert, helpDoneButton); ac++;
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
887 XtSetArg (al [ac], XtNfromHoriz, NULL); ac++;
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
888 XtSetArg (al [ac], XtNtop, XawChainTop); ac++;
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
889 XtSetArg (al [ac], XtNbottom, XawChainBottom); ac++;
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
890 XtSetArg (al [ac], XtNleft, XawChainLeft); ac++;
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
891 XtSetArg (al [ac], XtNright, XawChainRight); ac++;
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
892 XtSetArg (al [ac], XtNeditType, XawtextRead); ac++;
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
893 XtSetArg (al [ac], XtNdisplayCaret, FALSE); ac++;
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
894 XtSetArg (al [ac], XtNuseStringInPlace, TRUE); ac++;
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
895 XtSetArg (al [ac], XtNstring, help_text); ac++;
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
896 XtSetArg (al [ac], XtNwidth, 530); ac++;
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
897 XtSetArg (al [ac], XtNheight, 650); ac++;
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
898 XtSetArg (al [ac], XtNscrollVertical, XawtextScrollAlways); ac++;
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
899 XtSetArg (al [ac], XtNscrollHorizontal, XawtextScrollWhenNeeded); ac++;
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
900 helpText = XtCreateManagedWidget("helpText", asciiTextWidgetClass,
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
901 helpForm, al, ac);
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
902 }
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
903
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
904 /* ----------------------------------------------------------------------------
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
905 *
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
906 * BuildApplicationWindow() assumes that TreeTopLevel has been initialized
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
907 * by XtInitialize(). TreeDrawingArea is set to the drawing area in this
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
908 * application window.
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
909 *
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
910 * ----------------------------------------------------------------------------
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
911 */
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
912
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
913
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
914 static void
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
915 BuildApplicationWindow(Widget parent)
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
916 {
169
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
917 Widget topPane;
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
918 Arg al [20]; int ac;
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
919
169
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
920 XtSetArg (al [0], XtNorientation, XtorientVertical);
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
921 topPane = XtCreateManagedWidget("topPane", panedWidgetClass, parent, al, 1);
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
922
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
923 BuildMenubar(topPane);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
924
169
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
925 XtSetArg (al [0], XtNborderWidth, 0);
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
926 statusText = XtCreateManagedWidget("statusText", labelWidgetClass,
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
927 topPane, al, 1);
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
928
169
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
929 ac = 0;
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
930 XtSetArg (al [ac], XtNshowGrip, FALSE); ac++;
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
931 XtSetArg (al [ac], XtNallowHoriz, TRUE); ac++;
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
932 XtSetArg (al [ac], XtNallowVert, TRUE); ac++;
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
933 XtSetArg (al [ac], XtNuseBottom, TRUE); ac++;
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
934 XtSetArg (al [ac], XtNuseRight, TRUE); ac++;
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
935 scrolledWindow = XtCreateManagedWidget("scrolledWindow", viewportWidgetClass,
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
936 topPane, al, ac);
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
937
169
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
938 TreeDrawingArea = XtCreateManagedWidget("treeDrawingArea", simpleWidgetClass,
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
939 scrolledWindow, NULL, 0);
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
940 }
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
941
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
942 /* ----------------------------------------------------------------------------
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
943 *
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
944 * HandleError() is used when ReadTreeFromFile() or SaveTreeToFile() returns
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
945 * an error.
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
946 *
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
947 * ----------------------------------------------------------------------------
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
948 */
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
949
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
950 static void
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
951 HandleError(ErrCode error, Tree *tree)
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
952 {
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
953 Widget dlg, text;
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
954
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
955 dlg = tree ?
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
956 XtNameToWidget(dialog[DLG_INFO], "dlgInfoForm") :
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
957 XtNameToWidget(dialog[DLG_ERROR], "dlgErrorForm");
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
958
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
959 if (dlg) {
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
960 Arg al [2];
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
961 XtSetArg (al [0], XtNvalue, errStr[error]);
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
962 XtSetArg (al [1], XtNwidth, 200);
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
963 XtSetValues(dlg, al, 2);
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
964 text = XtNameToWidget(dlg, "value");
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
965 if (text) {
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
966 XtSetArg (al [0], XtNdisplayCaret, FALSE);
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
967 XtSetValues(text, al, 1);
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
968 XtSetArg (al [0], XtNeditType, XawtextRead);
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
969 XtSetValues(XawTextGetSource(text), al, 1);
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
970 }
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
971 }
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
972 popup_dialog (tree ? dialog[DLG_INFO] : dialog[DLG_ERROR], XtGrabExclusive);
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
973 }
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
974
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
975
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
976 /* ----------------------------------------------------------------------------
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
977 *
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
978 * InitializeInterface() initializes the environment for displaying
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
979 * the tree and creates the necessary supporting structures for interaction
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
980 * and display. This function should be called only once.
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
981 *
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
982 * ----------------------------------------------------------------------------
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
983 */
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
984
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
985 static void
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
986 InitializeInterface(int *argc, char *argv[])
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
987 {
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
988 XrmValue rmvalue;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
989 char *rmtype;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
990 Window win;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
991 Pixel background;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
992 XColor colors[NUM_COLORS];
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
993 Colormap cmap;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
994 Pixmap gray_pixmap;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
995 Atom wm_delete_window;
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
996 Arg al [2];
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
997
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
998 /* XtSetLanguageProc is broken on some systems.
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
999 The symptom is an error of the form:
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1000 Warning: X locale modifiers not supported, using default
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1001 so don't use this call:
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1002
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1003 XtSetLanguageProc(NULL, NULL, NULL);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1004 */
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1005
169
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
1006 TreeTopLevel = XtAppInitialize(&app, "Xoobr",
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
1007 NULL, 0,
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
1008 argc, argv,
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
1009 fallback_resources,
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
1010 NULL, 0);
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1011
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1012 ASSERT(TreeTopLevel, "failed to open connection to X server");
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1013
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1014 TreeDisplay = XtDisplay(TreeTopLevel);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1015 TreeScreen = DefaultScreen(TreeDisplay);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1016
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1017 /* set up color resources */
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1018 applRsrcsPtr = &applRsrcs;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1019 XtGetApplicationResources(TreeTopLevel, applRsrcsPtr,
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1020 applRsrcsDesc, XtNumber(applRsrcsDesc),
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1021 NULL, 0);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1022
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1023 /* add actions */
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1024 XtAppAddActions(app, local_actions, 6);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1025 XawSimpleMenuAddGlobalActions(app);
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1026
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1027 TreeContourWidth = applRsrcsPtr->contour_width;
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1028
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1029 /* set up label font info */
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1030 if (XrmGetResource(XtDatabase(TreeDisplay),
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1031 X11_FONT_RESOURCE, X11_FONT_CLASS_RESOURCE,
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1032 &rmtype, &rmvalue)) {
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1033 if (! (TreeLabelFont = XLoadQueryFont(TreeDisplay, rmvalue.addr)) ) {
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1034 WARN_4("cannot load user-specified font:", rmvalue.addr,
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1035 "using font:", X11_DEFAULT_FONT);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1036 TreeLabelFont = XLoadQueryFont(TreeDisplay, X11_DEFAULT_FONT);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1037 }
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1038 }
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1039 else
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1040 TreeLabelFont = XLoadQueryFont(TreeDisplay, X11_DEFAULT_FONT);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1041 TreeLabelFont = XLoadQueryFont(TreeDisplay, "fixed");
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1042
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1043 check_pixmap =
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1044 XCreateBitmapFromData(TreeDisplay, RootWindow(TreeDisplay, TreeScreen),
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1045 (char *) check_bits, check_width, check_height);
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1046
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1047 slider_pixmap =
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1048 XCreateBitmapFromData(TreeDisplay, RootWindow(TreeDisplay, TreeScreen),
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1049 (char *) slider_pixmap_bits, slider_pixmap_width,
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1050 slider_pixmap_height);
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1051
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1052 BuildApplicationWindow(TreeTopLevel);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1053 BuildHelpWindow(TreeTopLevel);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1054 BuildPopupMenus(TreeTopLevel);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1055 BuildDialogs(TreeTopLevel);
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1056
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1057
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1058 XtAddEventHandler(TreeDrawingArea, ExposureMask, FALSE,
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1059 ExposeHandler, (XtPointer) NULL);
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1060
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1061 XtSetArg (al [0], XtNbackground, applRsrcsPtr->background_color);
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1062 XtSetValues(TreeDrawingArea, al, 1);
169
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
1063
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1064 XtRealizeWidget(TreeTopLevel);
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1065
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1066 XtOverrideTranslations
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1067 (TreeTopLevel,
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1068 XtParseTranslationTable("<Message>WM_PROTOCOLS: quit()"));
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1069
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1070 wm_delete_window = XInternAtom(TreeDisplay, "WM_DELETE_WINDOW", FALSE);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1071 (void) XSetWMProtocols(TreeDisplay, XtWindow(TreeTopLevel),
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1072 &wm_delete_window, 1);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1073
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1074
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1075 win = XtWindow(TreeDrawingArea);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1076 cmap = DefaultColormap(TreeDisplay, TreeScreen);
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1077
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1078 /* set up double buffer */
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1079 colors[BACKGROUND_COLOR].pixel = applRsrcsPtr->background_color;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1080 XQueryColor(TreeDisplay, cmap, &(colors[BACKGROUND_COLOR]));
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1081 colors[TREE_COLOR].pixel = applRsrcsPtr->tree_color;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1082 XQueryColor(TreeDisplay, cmap, &(colors[TREE_COLOR]));
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1083 colors[CONTOUR_COLOR].pixel = applRsrcsPtr->contour_color;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1084 XQueryColor(TreeDisplay, cmap, &(colors[CONTOUR_COLOR]));
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1085 colors[HIGHLIGHT_COLOR].pixel = applRsrcsPtr->highlight_color;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1086 XQueryColor(TreeDisplay, cmap, &(colors[HIGHLIGHT_COLOR]));
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1087 colors[SPLIT_COLOR].pixel = applRsrcsPtr->split_color;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1088 XQueryColor(TreeDisplay, cmap, &(colors[SPLIT_COLOR]));
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1089 colors[ACTION_COLOR].pixel = applRsrcsPtr->action_color;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1090 XQueryColor(TreeDisplay, cmap, &(colors[ACTION_COLOR]));
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1091
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1092 TreeDrawingAreaDB =
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1093 DBLcreate_double_buffer(TreeDisplay,
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1094 XtWindow(TreeDrawingArea), TRUE,
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1095 colors, NUM_COLORS);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1096
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1097 ASSERT(TreeDrawingAreaDB, "could not create double buffer");
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1098
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1099 background = DBLinq_background(TreeDrawingAreaDB);
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1100
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1101
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1102 XtSetArg(al [0], XtNbackground, background);
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1103 XtSetValues(TreeDrawingArea, al, 1);
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1104
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1105 /* also set the scrolledWindow background to same color */
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1106 XtSetArg(al [0], XtNbackground, background);
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1107 XtSetValues(XtParent(TreeDrawingArea), al, 1);
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1108
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1109 XSetFont(TreeDrawingAreaDB->display, TreeDrawingAreaDB->gc,
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1110 TreeLabelFont->fid);
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1111
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1112 gray_pixmap =
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1113 XCreatePixmapFromBitmapData(TreeDisplay, XtWindow(TreeDrawingArea),
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1114 (char *)gray_bits, gray_width, gray_height,
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1115 TreeDrawingAreaDB->colors[TREE_COLOR],
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1116 background,
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1117 DefaultDepth(TreeDisplay, TreeScreen));
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1118
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1119 #ifdef COMMENT
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1120 XtSetArg(al [0], XtNleftBitmap, check_pixmap);
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1121 XtSetValues(treeMenuItems[LAYOUT_MENU_VARIABLE], al, 1);
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1122 #endif
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1123
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1124 XSetTile(TreeDrawingAreaDB->display, TreeDrawingAreaDB->gc, gray_pixmap);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1125 SetDrawColor(TREE_COLOR);
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1126
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1127 InitializeDissolveEffect(TreeDisplay, XtWindow(TreeDrawingArea),
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1128 TreeDrawingAreaDB->colors[TREE_COLOR], background);
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1129
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1130 PauseCursor = XCreateFontCursor(TreeDisplay, XC_watch);
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1131
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1132 StatusMsg("Ready", TRUE);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1133 }
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1134
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1135
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1136 /* ----------------------------------------------------------------------------
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1137 *
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1138 * UserEventLoop() is called after InitializeInterface() to handle
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1139 * processing of events.
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1140 *
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1141 * ----------------------------------------------------------------------------
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1142 */
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1143
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1144 static void
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1145 UserEventLoop(void)
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1146 {
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1147 XtAppMainLoop(app);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1148 }
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1149
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1150
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1151 /* ------------------------------------------------------------------------- */
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1152 /* Callback Routines */
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1153 /* ------------------------------------------------------------------------- */
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1154
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1155 static void
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1156 TreeMenu_CB(Widget w, XtPointer client_data, XtPointer call_data)
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1157 {
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1158 long menuItem = (long) client_data;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1159 Widget dlgFileForm;
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1160 Arg al [2];
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1161
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1162 switch (menuItem) {
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1163 case TREE_MENU_NEW:
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1164 popup_dialog(dialog[DLG_NEW], XtGrabExclusive);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1165 break;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1166 case TREE_MENU_LOAD:
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1167 loading_file = 1;
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1168 XtSetArg (al [0], XtNtitle, "Load File");
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1169 XtSetValues(dialog[DLG_FILE], al, 1);
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1170 dlgFileForm = XtNameToWidget(dialog[DLG_FILE], "dlgFileForm");
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1171 XtSetArg (al [0], XtNvalue, "");
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1172 XtSetValues(dlgFileForm, al, 1);
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1173 popup_dialog(dialog[DLG_FILE], XtGrabExclusive);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1174 break;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1175 case TREE_MENU_SAVE:
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1176 loading_file = 0;
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1177 XtSetArg (al [0], XtNtitle, "Save File");
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1178 XtSetValues(dialog[DLG_FILE], al, 1);
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1179 dlgFileForm = XtNameToWidget(dialog[DLG_FILE], "dlgFileForm");
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1180 XtSetArg (al [0], XtNvalue, "");
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1181 XtSetValues(dlgFileForm, al, 1);
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1182 popup_dialog(dialog[DLG_FILE], XtGrabExclusive);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1183 break;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1184 case TREE_MENU_QUIT:
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1185 exit(0);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1186 break;
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1187
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1188 default:
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1189 WARN("unknown menu item in TreeMenu_CB");
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1190 }
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1191 }
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1192
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1193
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1194 /* ------------------------------------------------------------------------- */
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1195
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1196 static void
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1197 LayoutMenu_CB(Widget w, XtPointer client_data, XtPointer call_data)
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1198 {
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1199 long menuItem = (long) client_data;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1200 char tmpstr[10];
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1201 Arg al [2];
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1202
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1203 switch (menuItem) {
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1204 #ifdef COMMENT
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1205 case LAYOUT_MENU_FIXED:
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1206 XtSetArg (al [0], XtNleftBitmap, None);
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1207 XtSetValues(layoutMenuItems[LAYOUT_MENU_VARIABLE], al, 1);
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1208
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1209 XtSetArg (al [0], XtNleftBitmap, check_pixmap);
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1210 XtSetValues(layoutMenuItems[LAYOUT_MENU_FIXED], al, 1);
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1211
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1212 if (TreeLayoutDensity != Fixed) {
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1213 TreeLayoutDensity = Fixed;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1214 DeleteTree(TheTree, TRUE);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1215 SetupTree(TheTree);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1216 }
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1217 break;
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1218 case LAYOUT_MENU_VARIABLE:
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1219 XtSetArg (al [0], XtNleftBitmap, check_pixmap);
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1220 XtSetValues(layoutMenuItems[LAYOUT_MENU_VARIABLE], al, 1);
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1221
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1222 XtSetArg (al [0], XtNleftBitmap, None);
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1223 XtSetValues(layoutMenuItems[LAYOUT_MENU_FIXED], al, 1);
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1224
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1225 if (TreeLayoutDensity != Variable) {
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1226 TreeLayoutDensity = Variable;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1227 DeleteTree(TheTree, TRUE);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1228 SetupTree(TheTree);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1229 }
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1230 break;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1231 #endif COMMENT
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1232 case LAYOUT_MENU_SPACING:
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1233 dlgLevelValue = TreeParentDistance;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1234 dlgSiblingValue = TreeBorderSize;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1235 sprintf(tmpstr, "%d ", dlgLevelValue);
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1236 XtSetArg (al [0], XtNlabel, tmpstr);
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1237 XtSetValues(dlgLevelValuator, al, 1);
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1238
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1239 /* These setvalues need some adjustments... */
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1240 XtSetArg (al [0], XtNsliderX, dlgLevelValue * 2);
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1241 XtSetValues(dlgLevelScale, al, 1);
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1242 sprintf(tmpstr, "%d ", dlgSiblingValue);
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1243 XtSetArg (al [0], XtNlabel, tmpstr);
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1244 XtSetValues(dlgSiblingValuator, al, 1);
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1245 XtSetArg (al [0], XtNsliderX, dlgSiblingValue * 4);
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1246 XtSetValues(dlgSiblingScale, al, 1);
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1247 popup_dialog(dialog[DLG_SPACING], XtGrabNone);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1248 break;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1249 case LAYOUT_MENU_ALIGN_NODES:
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1250 TreeAlignNodes = !TreeAlignNodes;
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1251 XtSetArg (al [0], XtNleftBitmap, TreeAlignNodes ? check_pixmap : None);
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1252 XtSetValues(treeMenuItems[LAYOUT_MENU_ALIGN_NODES], al, 1);
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1253 DeleteTree(TheTree, TRUE);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1254 ResetLabels(TheTree);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1255 SetupTree(TheTree);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1256 break;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1257 default:
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1258 WARN("unknown menu item in LayoutMenu_CB");
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1259 }
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1260 }
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1261
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1262
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1263 /* ------------------------------------------------------------------------- */
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1264
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1265 static void
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1266 NodeMenu_CB(Widget w, XtPointer client_data, XtPointer call_data)
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1267 {
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1268 long menuItem = (long) client_data;
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1269
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1270 switch (menuItem) {
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1271 case NODE_MENU_ADD_CHILD:
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1272 NodePos = Child;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1273 popup_dialog(dialog[DLG_NODE_NAME], XtGrabExclusive);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1274 break;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1275 case NODE_MENU_ADD_BEFORE:
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1276 NodePos = Before;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1277 popup_dialog(dialog[DLG_NODE_NAME], XtGrabExclusive);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1278 break;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1279 case NODE_MENU_ADD_AFTER:
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1280 NodePos = After;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1281 popup_dialog(dialog[DLG_NODE_NAME], XtGrabExclusive);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1282 break;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1283 case NODE_MENU_ELISION:
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1284 ExpandCollapseNode(PopupNode);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1285 break;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1286 case NODE_MENU_DELETE:
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1287 DeleteNode(PopupNode);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1288 if (TheTree == NULL)
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1289 XtSetSensitive(treeMenuItems[TREE_MENU_SAVE], FALSE);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1290 break;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1291 default:
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1292 WARN("unknown menu item in NodeMenu_CB");
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1293 }
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1294 }
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1295
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1296
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1297 /* ------------------------------------------------------------------------- */
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1298
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1299 static void
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1300 Help_CB(Widget w, XtPointer client_data, XtPointer call_data)
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1301 {
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1302 popup_dialog(helpShell, XtGrabNone);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1303 }
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1304
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1305
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1306 /* ------------------------------------------------------------------------- */
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1307
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1308 static void
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1309 HelpDone_CB(Widget w, XtPointer client_data, XtPointer call_data)
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1310 {
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1311 XtPopdown(helpShell);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1312 }
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1313
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1314
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1315 /* ------------------------------------------------------------------------- */
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1316
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1317 static void
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1318 NodeLabel_CB(Widget w, XtPointer client_data, XtPointer call_data)
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1319 {
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1320 char *node_label;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1321
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1322 XtPopdown(dialog[DLG_NODE_NAME]);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1323 if (client_data == (XtPointer) TRUE) {
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1324 node_label = XtMalloc(strlen(XawDialogGetValueString(XtParent(w)))
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1325 * sizeof(char));
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1326 node_label = strcpy(node_label, XawDialogGetValueString(XtParent(w)));
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1327 if (*node_label)
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1328 InsertNode(PopupNode, NodePos, node_label);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1329 }
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1330 }
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1331
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1332
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1333 /* ------------------------------------------------------------------------- */
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1334
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1335 static void
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1336 NewTree_CB(Widget w, XtPointer client_data, XtPointer call_data)
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1337 {
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1338 char *node_label;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1339 Tree *tree;
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1340
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1341 XtPopdown(dialog[DLG_NEW]);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1342 if (client_data == (XtPointer) TRUE) {
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1343 node_label = XtMalloc((strlen(XawDialogGetValueString(XtParent(w))) + 1)
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1344 * sizeof(char));
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1345 node_label = strcpy(node_label, XawDialogGetValueString(XtParent(w)));
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1346 if (*node_label) {
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1347 if (TheTree) {
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1348 Delete(TheTree);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1349 XtSetSensitive(treeMenuItems[TREE_MENU_SAVE], FALSE);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1350 }
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1351 tree = MakeNode();
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1352 SetNodeLabel(tree, node_label);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1353 SetupTree(tree);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1354 XtSetSensitive(treeMenuItems[TREE_MENU_SAVE], TRUE);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1355 }
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1356 }
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1357 XSync(TreeDisplay, FALSE);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1358 }
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1359
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1360
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1361 /* ------------------------------------------------------------------------- */
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1362
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1363 static void
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1364 File_CB(Widget w, XtPointer client_data, XtPointer call_data)
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1365 {
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1366 char *fname;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1367 Tree *tree;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1368 ErrCode error;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1369 int menuItem;
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1370
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1371 if (client_data == (XtPointer) TRUE) {
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1372 fname = XawDialogGetValueString(XtParent(w));
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1373 if (*fname) {
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1374
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1375 if (loading_file == 1) {
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1376 if (TheTree) {
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1377 Delete(TheTree);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1378 XtSetSensitive(treeMenuItems[TREE_MENU_SAVE], FALSE);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1379 }
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1380 tree = ReadTreeFromFile(fname, &error);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1381 XtPopdown(dialog[DLG_FILE]);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1382 if (error != ERR_NONE)
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1383 HandleError(error, tree);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1384 XSync(TreeDisplay, 0);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1385 if (tree) {
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1386 SetupTree(tree);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1387 XtSetSensitive(treeMenuItems[TREE_MENU_SAVE], TRUE);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1388 } else {
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1389 SetDrawingTree(NULL);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1390 BeginFrame();
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1391 EndFrame();
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1392 }
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1393 } else if (menuItem == TREE_MENU_SAVE) {
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1394 if (!SaveTreeToFile(TheTree, fname)) {
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1395 XtPopdown(dialog[DLG_FILE]);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1396 HandleError(ERR_OPENFAIL, NULL);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1397 } else
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1398 XtPopdown(dialog[DLG_FILE]);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1399 }
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1400 } else
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1401 XtPopdown(dialog[DLG_FILE]);
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1402 } else
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1403 XtPopdown(dialog[DLG_FILE]);
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1404 }
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1405
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1406
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1407 /* ------------------------------------------------------------------------- */
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1408
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1409 static void
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1410 Scale_CB(Widget w, XtPointer client_data, XtPointer call_data)
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1411 {
169
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
1412 int level_value, sibling_value;
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1413
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1414 XtPopdown(dialog[DLG_SPACING]);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1415
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1416 /* check if OK button was selected */
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1417 if (client_data) {
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1418 level_value = dlgLevelValue;
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1419
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1420 sibling_value = dlgSiblingValue;
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1421
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1422 if (level_value != TreeParentDistance ||
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1423 sibling_value != TreeBorderSize) {
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1424
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1425 TreeParentDistance = level_value;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1426 TreeBorderSize = sibling_value;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1427 XSync(TreeDisplay, 0);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1428 if (TheTree) {
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1429 DeleteTree(TheTree, TRUE);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1430 if (TreeAlignNodes)
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1431 ResetLabels(TheTree);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1432 SetupTree(TheTree);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1433 }
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1434 }
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1435 }
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1436 }
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1437
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1438
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1439 /* ------------------------------------------------------------------------- */
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1440 /* */
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1441 /* Auxilary actions and callback functions */
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1442 /* */
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1443 /* ------------------------------------------------------------------------- */
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1444
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1445 static void
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1446 Popdown_CB(Widget w, XtPointer client_data, XtPointer call_data)
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1447 {
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1448 Widget widget = (Widget) client_data;
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1449
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1450 XtPopdown(widget);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1451 }
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1452
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1453 static void
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1454 activate_action(Widget w, XEvent *event, String *params, Cardinal *num_params)
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1455 {
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1456 if (*num_params == 1) {
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1457 Widget button = XtNameToWidget(XtParent(w), params[0]);
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1458
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1459 if (button)
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1460 XtCallCallbacks(button, XtNcallback, (XtPointer) TRUE);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1461 }
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1462 }
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1463
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1464 static void
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1465 quit_action(Widget w, XEvent *event, String *params, Cardinal *num_params)
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1466 {
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1467 exit(0);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1468 }
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1469
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1470
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1471
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1472 /* ------------------------------------------------------------------------- */
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1473
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1474 static void
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1475 select_action(Widget w, XEvent *event, String *params, Cardinal *num_params)
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1476 {
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1477 Tree *node;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1478 Boolean edit = FALSE;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1479
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1480 if ((*num_params > 0) &&
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1481 (!strcmp(params[0], "EDIT") ||
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1482 !strcmp(params[0], "edit")))
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1483 edit = TRUE;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1484
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1485 if (SearchTree(TheTree, event->xbutton.x, event->xbutton.y, &node)) {
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1486 static Tree *PrevNode = NULL;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1487 Tree *ParNode = NULL;
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1488
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1489 PopupNode = node;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1490 if (PrevNode != NULL)
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1491 DrawNode(PrevNode, New);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1492 PrevNode = PopupNode;
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1493
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1494 printf("%s^^%s^^%s\n",
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1495 EnvNm,
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1496 edit ? "br-edit" : "br-view",
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1497 (PopupNode->value) ? PopupNode->value : PopupNode->label.text);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1498
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1499 StatusMsg(PopupNode->label.text, 1);
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1500
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1501 ParNode = PopupNode->parent;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1502 PopupNode->parent = NULL;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1503 HiliteNode(PopupNode, New);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1504 PopupNode->parent = ParNode;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1505 }
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1506 }
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1507
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1508 static void
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1509 menu_popup_action(Widget w, XEvent *event, String *params, Cardinal *num_params)
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1510 {
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1511 char *strargs[] = {"nodeMenu", NULL};
169
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
1512 /* Widget menu = XtNameToWidget(TreeTopLevel, params[0]); */
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
1513 /* Boolean popup; */
15872534500d Import from CVS: tag r20-3b11
cvs
parents: 167
diff changeset
1514 /* ShellWidget shell_widget = (ShellWidget) menu; */
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1515
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1516 if (nodeFound) {
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1517
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1518 /* This is giving me a headache.
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1519 * Why do popup menus come up unselectable?
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1520 */
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1521
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1522 XtCallActionProc(TreeDrawingArea,
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1523 "XtMenuPopup",
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1524 event,
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1525 strargs,
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1526 1);
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1527
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1528 /*
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1529 XtSetSensitive(menu, TRUE);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1530 XtPopupSpringLoaded(menu);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1531 */
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1532
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1533 /* if (!XtIsShell(menu)) {
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1534 printf("error: not shell widget!\n");
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1535 } else {
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1536 if (! shell_widget->shell.popped_up) {
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1537
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1538 XtGrabKind call_data = XtGrabExclusive;
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1539
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1540 XtCallCallbacks(menu, XtNpopupCallback, (XtPointer) &call_data);
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1541
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1542 shell_widget->shell.popped_up = TRUE;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1543 shell_widget->shell.grab_kind = XtGrabExclusive;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1544 shell_widget->shell.spring_loaded = TRUE;
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1545
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1546 if (shell_widget->shell.create_popup_child_proc != NULL) {
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1547 (*(shell_widget->shell.create_popup_child_proc))(menu);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1548 }
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1549
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1550 XtAddGrab(menu, TRUE, TRUE);
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1551
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1552 XtRealizeWidget(menu);
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1553
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1554 XMapRaised(XtDisplay(menu), XtWindow(menu));
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1555
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1556 } else
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1557 XRaiseWindow(XtDisplay(menu), XtWindow(menu));
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1558 }
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1559 */
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1560 }
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1561 }
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1562
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1563
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1564 static void
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1565 button_action(Widget w, XEvent *event, String *params, Cardinal *num_params)
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1566 {
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1567 Tree *node;
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1568 Arg al [2];
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1569
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1570 if (SearchTree(TheTree, event->xbutton.x, event->xbutton.y, &node)) {
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1571
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1572 nodeFound = TRUE;
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1573
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1574 XtSetSensitive(nodeMenuItems[NODE_MENU_DELETE], TRUE);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1575
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1576 XtSetArg (al [0], XtNlabel, node->label.text);
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1577 XtSetValues(treeMenus[NODE_MENU], al, 1);
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1578
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1579 PopupNode = node;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1580 if (IS_LEAF(node)) {
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1581
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1582 XtSetSensitive(nodeMenuItems[NODE_MENU_ELISION], FALSE);
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1583
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1584 XtSetArg (al [0], XtNlabel, labelStr[STR_NODE_COLLAPSE]);
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1585 XtSetValues(nodeMenuItems[NODE_MENU_ELISION], al, 1);
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1586
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1587 } else {
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1588
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1589 XtSetSensitive(nodeMenuItems[NODE_MENU_ELISION], TRUE);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1590 if (node->elision) {
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1591 XtSetArg (al [0], XtNlabel, labelStr[STR_NODE_EXPAND]);
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1592 XtSetValues(nodeMenuItems[NODE_MENU_ELISION], al, 1);
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1593 } else {
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1594 XtSetArg (al [0], XtNlabel, labelStr[STR_NODE_COLLAPSE]);
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1595 XtSetValues(nodeMenuItems[NODE_MENU_ELISION], al, 1);
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1596 }
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1597 }
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1598
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1599 if (node->parent) {
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1600 XtSetSensitive(nodeMenuItems[NODE_MENU_ADD_BEFORE], TRUE);
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1601 XtSetSensitive(nodeMenuItems[NODE_MENU_ADD_AFTER] , TRUE);
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1602 } else {
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1603 XtSetSensitive(nodeMenuItems[NODE_MENU_ADD_BEFORE], FALSE);
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1604 XtSetSensitive(nodeMenuItems[NODE_MENU_ADD_AFTER] , FALSE);
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1605 }
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1606
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1607 if (node->elision) {
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1608 XtSetSensitive(nodeMenuItems[NODE_MENU_ADD_CHILD], FALSE);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1609 } else {
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1610 XtSetSensitive(nodeMenuItems[NODE_MENU_ADD_CHILD], TRUE);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1611 }
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1612
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1613 } else {
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1614 nodeFound = FALSE;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1615
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1616 XtSetArg (al [0], XtNlabel, " ");
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1617 XtSetValues(treeMenus[NODE_MENU], al, 1);
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1618
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1619 XtSetSensitive(nodeMenuItems[NODE_MENU_ADD_BEFORE], FALSE);
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1620 XtSetSensitive(nodeMenuItems[NODE_MENU_ADD_AFTER], FALSE);
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1621 XtSetSensitive(nodeMenuItems[NODE_MENU_ADD_CHILD], FALSE);
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1622 XtSetSensitive(nodeMenuItems[NODE_MENU_ELISION], FALSE);
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1623 XtSetSensitive(nodeMenuItems[NODE_MENU_DELETE], FALSE);
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1624 }
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1625 }
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1626
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1627
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1628 /* ------------------------------------------------------------------------- */
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1629 /* */
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1630 /* General purpose popdown widget callback (for dialog popdown buttons) */
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1631 /* */
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1632 /* ------------------------------------------------------------------------- */
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1633
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1634 static void center_widget(Widget w, int x, int y)
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1635 {
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1636 Dimension width, height, border;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1637 Position max_x, max_y;
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1638 Arg al [3];
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1639
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1640 XtSetArg (al [0], XtNwidth, &width);
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1641 XtSetArg (al [1], XtNheight, &height);
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1642 XtSetArg (al [2], XtNborderWidth, &border);
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1643 XtGetValues(w, al, 3);
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1644
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1645 width += 2 * border;
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1646 height += 2 * border;
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1647
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1648 x -= ((Position) width / 2);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1649 y -= ((Position) height / 2);
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1650
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1651 if (x < 0) x = 0;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1652 if (y < 0) y = 0;
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1653
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1654 if (x > (max_x = (Position) (XtScreen(w)->width - width)) )
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1655 x = max_x;
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1656
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1657 if (y > (max_y = (Position) (XtScreen(w)->height - height)) )
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1658 y = max_y;
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1659
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1660 XtSetArg (al [0], XtNx, x);
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1661 XtSetArg (al [1], XtNy, y);
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1662 XtSetValues(w, al, 2);
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1663 }
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1664
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1665 #define shell_translations "<Message>WM_PROTOCOLS: wmpopdown()\n"
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1666
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1667 static void
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1668 popup_dialog(Widget shell, XtGrabKind grab_kind)
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1669 {
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1670 int idummy, x, y;
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1671 unsigned int uidummy;
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1672 Window wdummy;
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1673 Atom wm_delete_window;
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1674
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1675 XtOverrideTranslations(shell, XtParseTranslationTable(shell_translations));
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1676 XtRealizeWidget(shell);
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1677 wm_delete_window = XInternAtom(XtDisplay(shell), "WM_DELETE_WINDOW",
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1678 FALSE);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1679 (void) XSetWMProtocols(XtDisplay(shell), XtWindow(shell),
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1680 &wm_delete_window, 1);
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1681
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1682 XQueryPointer(TreeDisplay, DefaultRootWindow(TreeDisplay),
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1683 &wdummy, &wdummy,
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1684 &x, &y, &idummy, &idummy, &uidummy);
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1685
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1686 center_widget(shell, x, y);
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1687
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1688 XtPopup(shell, grab_kind);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1689 }
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1690
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1691 static void
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1692 popdown_action(Widget widget, XEvent *event, String *params, Cardinal *num_params)
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1693 {
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1694 XtPopdown(widget);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1695 }
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1696
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1697 static void
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1698 set_siblingscale_CB(Widget widget, XtPointer w, XtPointer percent_ptr)
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1699 {
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1700 char tmpstr[10];
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1701 Arg al [1];
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1702
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1703 sprintf(tmpstr, "%d ", (int) (*(float*) percent_ptr*MAX_BORDER_SIZE));
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1704
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1705 XtSetArg (al [0], XtNlabel, tmpstr);
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1706 XtSetValues((Widget) w, al, 1);
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1707 }
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1708
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1709 static void
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1710 siblingscale_CB(Widget widget, XtPointer w, XtPointer call_data)
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1711 {
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1712 char tmpstr[10];
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1713 XawPannerReport *report = (XawPannerReport *) call_data;
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1714 Arg al [1];
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1715
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1716 sprintf(tmpstr, "%d ", (int)
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1717 ((float) report->slider_x / report->slider_width
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1718 * MAX_BORDER_SIZE / 10));
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1719
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1720 XtSetArg (al [0], XtNlabel, tmpstr);
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1721 XtSetValues((Widget) w, al, 1);
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1722 }
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1723
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1724 static void
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1725 set_levelscale_CB(Widget widget, XtPointer w, XtPointer percent_ptr)
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1726 {
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1727 char tmpstr[10];
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1728 Arg al [1];
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1729
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1730 sprintf(tmpstr, "%d ", (int) (*(float*) percent_ptr*MAX_PARENT_DISTANCE));
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1731
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1732 XtSetArg (al [0], XtNlabel, tmpstr);
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1733 XtSetValues((Widget) w, al, 1);
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1734 }
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1735
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1736 static void
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1737 levelscale_CB(Widget widget, XtPointer w, XtPointer call_data)
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1738 {
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1739 char tmpstr[10];
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1740 XawPannerReport *report = (XawPannerReport *) call_data;
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1741 Arg al [1];
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1742
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1743 sprintf(tmpstr, "%d ", (int)
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1744 ((float) report->slider_x / report->slider_width
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1745 * MAX_PARENT_DISTANCE / 10));
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1746
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1747 XtSetArg (al [0], XtNlabel, tmpstr);
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1748 XtSetValues((Widget) w, al, 1);
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1749 }
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1750
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1751 static void
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1752 set_siblingvalue_CB(Widget widget, XtPointer var_ptr, XtPointer percent_ptr)
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1753 {
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1754 * (int *)var_ptr = (int) (*(float*) percent_ptr*MAX_BORDER_SIZE);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1755 }
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1756
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1757 static void
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1758 set_levelvalue_CB(Widget widget, XtPointer var_ptr, XtPointer percent_ptr)
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1759 {
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1760 * (int *)var_ptr = (int) (*(float*) percent_ptr*MAX_PARENT_DISTANCE);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1761 }
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1762
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1763
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1764 static void
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1765 siblingvalue_CB(Widget widget, XtPointer var_ptr, XtPointer call_data)
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1766 {
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1767 XawPannerReport *report = (XawPannerReport *) call_data;
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1768
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1769 * (int *) var_ptr = (int)
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1770 ((float) report->slider_x / report->slider_width
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1771 * MAX_BORDER_SIZE / 10);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1772 }
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1773
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1774 static void
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1775 levelvalue_CB(Widget widget, XtPointer var_ptr, XtPointer call_data)
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1776 {
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1777 XawPannerReport *report = (XawPannerReport *) call_data;
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1778
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1779 * (int *) var_ptr = (int)
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1780 ((float) report->slider_x / report->slider_width
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1781 * MAX_PARENT_DISTANCE / 10);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1782 }
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1783
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1784
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1785 /* ----------------------------------------------------------------------------
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1786 *
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1787 * Main routine
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1788 *
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1789 * ----------------------------------------------------------------------------
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1790 */
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1791
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1792 int
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1793 main(int argc, char *argv[])
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1794 {
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1795 Tree *tree = NULL;
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1796 ErrCode error = ERR_NONE;
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1797
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1798 ProgramName = strdup(argv[0]);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1799 if (ProgramName == NULL) {
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1800 fprintf(stderr, "%s: insufficient memory available\n", argv[0]);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1801 exit(0);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1802 }
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1803
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1804 InitializeInterface(&argc, argv);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1805 XSync(TreeDisplay, 0);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1806
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1807 if (argc >= 2) {
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1808 tree = ReadTreeFromFile(argv[1], &error);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1809 if (tree) StatusMsg(argv[1], TRUE);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1810 if (argc > 2)
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1811 WARN("extraneous arguments ignored");
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1812 }
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1813
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1814 if (tree) {
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1815 SetupTree(tree);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1816 XtSetSensitive(treeMenuItems[TREE_MENU_SAVE], TRUE);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1817 } else {
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1818 SetDrawingTree(NULL);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1819 XtSetSensitive(treeMenuItems[TREE_MENU_SAVE], FALSE);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1820 }
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1821
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1822 if (error != ERR_NONE)
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1823 HandleError(error, tree);
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1824
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1825 StatusMsg("Left = Edit Node; Mid = View Node; Right = Node Menu", 1);
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1826 UserEventLoop();
167
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1827
85ec50267440 Import from CVS: tag r20-3b10
cvs
parents: 163
diff changeset
1828 return 0;
163
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1829 }
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1830
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1831 /* ------------------------------------------------------------------------- */
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1832 /* End of File */
0132846995bd Import from CVS: tag r20-3b8
cvs
parents:
diff changeset
1833 /* ------------------------------------------------------------------------- */