1 | // Copyright (c) 2004 - 2005 Kai Bader <baderk@in.tum.de> |
---|
2 | // |
---|
3 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
---|
4 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
---|
5 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE |
---|
6 | // AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN |
---|
7 | // AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN |
---|
8 | // CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. |
---|
9 | |
---|
10 | // CVS REVISION TAG -- $Revision: 8313 $ |
---|
11 | |
---|
12 | |
---|
13 | #include <time.h> |
---|
14 | #include "arb_interface.hxx" |
---|
15 | #include "config_dialog.hxx" |
---|
16 | |
---|
17 | |
---|
18 | /**************************************************************************** |
---|
19 | * CONFIG DIALOG - CONSTRUCTOR |
---|
20 | ****************************************************************************/ |
---|
21 | configDialog::configDialog(MDialog *d) |
---|
22 | : MDialog(d) |
---|
23 | { |
---|
24 | // PREDEFINE VARIABLES |
---|
25 | m_top= NULL; |
---|
26 | m_crosshairText= NULL; |
---|
27 | m_crosshairArea= NULL; |
---|
28 | m_unmarkedText= NULL; |
---|
29 | m_unmarkedArea= NULL; |
---|
30 | m_markedText= NULL; |
---|
31 | m_markedArea= NULL; |
---|
32 | m_selectedText= NULL; |
---|
33 | m_selectedArea= NULL; |
---|
34 | m_textText= NULL; |
---|
35 | m_textArea= NULL; |
---|
36 | m_ID_ProteinText= NULL; |
---|
37 | m_ID_GeneText= NULL; |
---|
38 | // |
---|
39 | m_crosshairColorString= NULL; |
---|
40 | m_unmarkedColorString= NULL; |
---|
41 | m_markedColorString= NULL; |
---|
42 | m_selectedColorString= NULL; |
---|
43 | m_textColorString= NULL; |
---|
44 | m_id_protein= NULL; |
---|
45 | m_id_gene= NULL; |
---|
46 | m_info_protein= NULL; |
---|
47 | m_info_gene= NULL; |
---|
48 | |
---|
49 | // CHECK THE PGT AWARS (SET DEFAULT IF NEEDED) |
---|
50 | checkCreateAWARS(); |
---|
51 | |
---|
52 | // CREATE SHELL FOR THIS DIALOG |
---|
53 | createShell(""); |
---|
54 | |
---|
55 | // CALL CREATE WINDOW FUNCTION |
---|
56 | createWindow(); |
---|
57 | |
---|
58 | // SET WINDOW WIDTH |
---|
59 | XtVaSetValues(m_shell, |
---|
60 | XmNwidth, 300, |
---|
61 | XmNheight, 500, |
---|
62 | NULL); |
---|
63 | |
---|
64 | // REALIZE WINDOW |
---|
65 | realizeShell(); |
---|
66 | |
---|
67 | // SET WINDOW LABEL |
---|
68 | setDialogTitle("PGT - Configuration"); |
---|
69 | |
---|
70 | // DESELECT ALL WINDOW BUTTONS EXCEPT CLOSE AND MOVE |
---|
71 | XtVaSetValues(m_shell, XmNmwmFunctions, MWM_FUNC_MOVE | MWM_FUNC_CLOSE, NULL); |
---|
72 | |
---|
73 | // FETCH CONFIGURATION (AWARS) |
---|
74 | getCONFIGS(); |
---|
75 | } |
---|
76 | |
---|
77 | |
---|
78 | /**************************************************************************** |
---|
79 | * CONFIG DIALOG - DESTRUCTOR |
---|
80 | ****************************************************************************/ |
---|
81 | configDialog::~configDialog() |
---|
82 | { |
---|
83 | // FREE UNNECESSARY STRINGS |
---|
84 | freeStrings(); |
---|
85 | } |
---|
86 | |
---|
87 | |
---|
88 | /**************************************************************************** |
---|
89 | * CONFIG DIALOG - FREE LOCAL STRINGS (IF NECESSARY) |
---|
90 | ****************************************************************************/ |
---|
91 | void configDialog::freeStrings() |
---|
92 | { |
---|
93 | if(m_crosshairColorString) free(m_crosshairColorString); |
---|
94 | if(m_unmarkedColorString) free(m_unmarkedColorString); |
---|
95 | if(m_markedColorString) free(m_markedColorString); |
---|
96 | if(m_textColorString) free(m_textColorString); |
---|
97 | if(m_id_protein) free(m_id_protein); |
---|
98 | if(m_id_gene) free(m_id_gene); |
---|
99 | if(m_info_protein) free(m_info_protein); |
---|
100 | if(m_info_gene) free(m_info_gene); |
---|
101 | } |
---|
102 | |
---|
103 | |
---|
104 | |
---|
105 | bool configDialog::setDefault(bool global) |
---|
106 | { |
---|
107 | // SET DEFAULT VALUES |
---|
108 | m_crosshairColorString= const_cast<char*>(DEFAULT_COLOR_CROSSHAIR); |
---|
109 | m_unmarkedColorString= const_cast<char*>(DEFAULT_COLOR_UNMARKED); |
---|
110 | m_markedColorString= const_cast<char*>(DEFAULT_COLOR_MARKED); |
---|
111 | m_selectedColorString= const_cast<char*>(DEFAULT_COLOR_SELECTED); |
---|
112 | m_textColorString= const_cast<char*>(DEFAULT_COLOR_TEXT); |
---|
113 | m_id_protein= const_cast<char*>(DEFAULT_ID_PROTEIN); |
---|
114 | m_id_gene= const_cast<char*>(DEFAULT_ID_GENE); |
---|
115 | m_info_protein= const_cast<char*>(DEFAULT_INFO_PROTEIN); |
---|
116 | m_info_gene= const_cast<char*>(DEFAULT_INFO_GENE); |
---|
117 | |
---|
118 | // SET GLOBAL SETTINGS ALSO TO DEFAULT? |
---|
119 | if(global) |
---|
120 | { |
---|
121 | set_CONFIG(CONFIG_PGT_COLOR_CROSSHAIR, m_crosshairColorString); |
---|
122 | set_CONFIG(CONFIG_PGT_COLOR_UNMARKED, m_unmarkedColorString); |
---|
123 | set_CONFIG(CONFIG_PGT_COLOR_MARKED, m_markedColorString); |
---|
124 | set_CONFIG(CONFIG_PGT_COLOR_SELECTED, m_selectedColorString); |
---|
125 | set_CONFIG(CONFIG_PGT_COLOR_TEXT, m_textColorString); |
---|
126 | set_CONFIG(CONFIG_PGT_ID_PROTEIN, m_id_protein); |
---|
127 | set_CONFIG(CONFIG_PGT_ID_GENE, m_id_gene); |
---|
128 | set_CONFIG(CONFIG_PGT_INFO_PROTEIN, m_info_protein); |
---|
129 | set_CONFIG(CONFIG_PGT_INFO_GENE, m_info_gene); |
---|
130 | } |
---|
131 | |
---|
132 | // UPDATE TEXT FIELD ENTRIES |
---|
133 | if(m_crosshairText) XtVaSetValues(m_crosshairText, XmNvalue, m_crosshairColorString, NULL); |
---|
134 | if(m_unmarkedText) XtVaSetValues(m_unmarkedText, XmNvalue, m_unmarkedColorString, NULL); |
---|
135 | if(m_markedText) XtVaSetValues(m_markedText, XmNvalue, m_markedColorString, NULL); |
---|
136 | if(m_selectedText) XtVaSetValues(m_selectedText, XmNvalue, m_selectedColorString, NULL); |
---|
137 | if(m_textText) XtVaSetValues(m_textText, XmNvalue, m_textColorString, NULL); |
---|
138 | if(m_ID_ProteinText) XtVaSetValues(m_ID_ProteinText, XmNvalue, m_id_protein, NULL); |
---|
139 | if(m_ID_GeneText) XtVaSetValues(m_ID_GeneText, XmNvalue, m_id_gene, NULL); |
---|
140 | if(m_info_ProteinText) XtVaSetValues(m_info_ProteinText, XmNvalue, m_info_protein, NULL); |
---|
141 | if(m_info_GeneText) XtVaSetValues(m_info_GeneText, XmNvalue, m_info_gene, NULL); |
---|
142 | |
---|
143 | // UPDATE THE DRAWING AREA COLORS |
---|
144 | updateColors(); |
---|
145 | |
---|
146 | return true; |
---|
147 | } |
---|
148 | |
---|
149 | |
---|
150 | void configDialog::updateColors() |
---|
151 | { |
---|
152 | if(!m_crosshairArea || !m_unmarkedArea || |
---|
153 | !m_markedArea || !m_selectedArea || !m_textArea) return; |
---|
154 | |
---|
155 | int r, g, b; |
---|
156 | |
---|
157 | if(hex2rgb(&r, &g, &b, m_crosshairColorString)) |
---|
158 | drawColoredSpot(m_crosshairArea, r, g, b); |
---|
159 | |
---|
160 | if(hex2rgb(&r, &g, &b, m_unmarkedColorString)) |
---|
161 | drawColoredSpot(m_unmarkedArea, r, g, b); |
---|
162 | |
---|
163 | if(hex2rgb(&r, &g, &b, m_markedColorString)) |
---|
164 | drawColoredSpot(m_markedArea, r, g, b); |
---|
165 | |
---|
166 | if(hex2rgb(&r, &g, &b, m_selectedColorString)) |
---|
167 | drawColoredSpot(m_selectedArea, r, g, b); |
---|
168 | |
---|
169 | if(hex2rgb(&r, &g, &b, m_textColorString)) |
---|
170 | drawColoredSpot(m_textArea, r, g, b); |
---|
171 | } |
---|
172 | |
---|
173 | |
---|
174 | /**************************************************************************** |
---|
175 | * IMAGE DIALOG - SET FOREGROUND COLOR |
---|
176 | ****************************************************************************/ |
---|
177 | void configDialog::setColor(Display *display, GC gc, int r, int g, int b) |
---|
178 | { |
---|
179 | XColor xc; |
---|
180 | |
---|
181 | xc.red= r << 8; xc.green= g << 8; xc.blue= b << 8; |
---|
182 | xc.flags = DoRed | DoGreen | DoBlue; |
---|
183 | XAllocColor(display, DefaultColormap(display, DefaultScreen(display)), &xc); |
---|
184 | XSetForeground(display, gc, xc.pixel); |
---|
185 | } |
---|
186 | |
---|
187 | |
---|
188 | void configDialog::drawColoredSpot(Widget area, int r , int g , int b) |
---|
189 | { |
---|
190 | if(!area) return; |
---|
191 | |
---|
192 | // GET DISPLAY + GC |
---|
193 | Display *display= XtDisplay(area); |
---|
194 | Window win = XtWindow(area); |
---|
195 | GC gc= XCreateGC(display, win, 0, 0); |
---|
196 | |
---|
197 | // GET BACKGROUND COLOR |
---|
198 | Pixel bg; |
---|
199 | XtVaGetValues(m_top, XmNbackground, &bg, NULL); |
---|
200 | |
---|
201 | // FILL BACKGROUND WITH COLOR BG |
---|
202 | XtVaSetValues(area, XmNbackground, bg, NULL); |
---|
203 | |
---|
204 | // DRAW THE FILLED CIRCLE |
---|
205 | setColor(display, gc, r, g, b); |
---|
206 | XFillArc(display, win, gc, 4, 4, 20, 20, 0, 360*64); |
---|
207 | |
---|
208 | // DRAW A BLACK BORDER AROUND THE CIRCLE |
---|
209 | setColor(display, gc, 0, 0, 0); |
---|
210 | XDrawArc(display, win, gc, 4, 4, 20, 20, 0, 360*64); |
---|
211 | |
---|
212 | XFlush(display); |
---|
213 | |
---|
214 | // FREE OUR GC AS WE DON'T NEED IT ANYMORE |
---|
215 | XFreeGC(display, gc); |
---|
216 | } |
---|
217 | |
---|
218 | |
---|
219 | void configDialog::getCONFIGS() |
---|
220 | { |
---|
221 | // FREE OLD STRING ENTRIES BEFORE ADDING NEW ONES |
---|
222 | freeStrings(); |
---|
223 | |
---|
224 | // FETCH AWARS |
---|
225 | m_crosshairColorString= get_CONFIG(CONFIG_PGT_COLOR_CROSSHAIR); |
---|
226 | m_unmarkedColorString= get_CONFIG(CONFIG_PGT_COLOR_UNMARKED); |
---|
227 | m_markedColorString= get_CONFIG(CONFIG_PGT_COLOR_MARKED); |
---|
228 | m_selectedColorString= get_CONFIG(CONFIG_PGT_COLOR_SELECTED); |
---|
229 | m_textColorString= get_CONFIG(CONFIG_PGT_COLOR_TEXT); |
---|
230 | m_id_protein= get_CONFIG(CONFIG_PGT_ID_PROTEIN); |
---|
231 | m_id_gene= get_CONFIG(CONFIG_PGT_ID_GENE); |
---|
232 | m_info_protein= get_CONFIG(CONFIG_PGT_INFO_PROTEIN); |
---|
233 | m_info_gene= get_CONFIG(CONFIG_PGT_INFO_GENE); |
---|
234 | |
---|
235 | // UPDATE TEXT FIELD ENTRIES |
---|
236 | if(m_crosshairText) XtVaSetValues(m_crosshairText, XmNvalue, m_crosshairColorString, NULL); |
---|
237 | if(m_unmarkedText) XtVaSetValues(m_unmarkedText, XmNvalue, m_unmarkedColorString, NULL); |
---|
238 | if(m_markedText) XtVaSetValues(m_markedText, XmNvalue, m_markedColorString, NULL); |
---|
239 | if(m_selectedText) XtVaSetValues(m_selectedText, XmNvalue, m_selectedColorString, NULL); |
---|
240 | if(m_textText) XtVaSetValues(m_textText, XmNvalue, m_textColorString, NULL); |
---|
241 | if(m_ID_ProteinText) XtVaSetValues(m_ID_ProteinText, XmNvalue, m_id_protein, NULL); |
---|
242 | if(m_ID_GeneText) XtVaSetValues(m_ID_GeneText, XmNvalue, m_id_gene, NULL); |
---|
243 | if(m_info_ProteinText) XtVaSetValues(m_info_ProteinText, XmNvalue, m_info_protein, NULL); |
---|
244 | if(m_info_GeneText) XtVaSetValues(m_info_GeneText, XmNvalue, m_info_gene, NULL); |
---|
245 | |
---|
246 | // UPDATE THE DRAWING AREA COLORS |
---|
247 | updateColors(); |
---|
248 | } |
---|
249 | |
---|
250 | |
---|
251 | void configDialog::setCONFIGS() |
---|
252 | { |
---|
253 | // CONFIGS - WRITE BACK |
---|
254 | set_CONFIG(CONFIG_PGT_COLOR_CROSSHAIR, m_crosshairColorString); |
---|
255 | set_CONFIG(CONFIG_PGT_COLOR_UNMARKED, m_unmarkedColorString); |
---|
256 | set_CONFIG(CONFIG_PGT_COLOR_MARKED, m_markedColorString); |
---|
257 | set_CONFIG(CONFIG_PGT_COLOR_SELECTED, m_selectedColorString); |
---|
258 | set_CONFIG(CONFIG_PGT_COLOR_TEXT, m_textColorString); |
---|
259 | set_CONFIG(CONFIG_PGT_ID_PROTEIN, m_id_protein); |
---|
260 | set_CONFIG(CONFIG_PGT_ID_GENE, m_id_gene); |
---|
261 | set_CONFIG(CONFIG_PGT_INFO_PROTEIN, m_info_protein); |
---|
262 | set_CONFIG(CONFIG_PGT_INFO_GENE, m_info_gene); |
---|
263 | |
---|
264 | // GET LOCAL TIME CODE (-> SET TIME OF LAST CHANGE) |
---|
265 | time_t ttime= time(NULL); |
---|
266 | char *stime= asctime(localtime(&ttime)); |
---|
267 | |
---|
268 | // TRIGGER SIGNAL: CONFIG HAS CHANGED... |
---|
269 | set_config_AWAR(stime); |
---|
270 | } |
---|
271 | |
---|
272 | |
---|
273 | /**************************************************************************** |
---|
274 | * CALLBACK - CANCEL BUTTON PRESSED |
---|
275 | * !!! CAUTION: THIS IS A WRAPPER FUNCTION !!! |
---|
276 | ****************************************************************************/ |
---|
277 | static void staticCancelButtonCallback(Widget, XtPointer clientData, XtPointer) |
---|
278 | { |
---|
279 | // GET POINTER OF THE ORIGINAL CALLER |
---|
280 | configDialog *cD= (configDialog *)clientData; |
---|
281 | |
---|
282 | // DESTROY OBJECT |
---|
283 | cD->~configDialog(); |
---|
284 | } |
---|
285 | |
---|
286 | |
---|
287 | /**************************************************************************** |
---|
288 | * CALLBACK - DEFAULT BUTTON PRESSED |
---|
289 | * !!! CAUTION: THIS IS A WRAPPER FUNCTION !!! |
---|
290 | ****************************************************************************/ |
---|
291 | static void staticDefaultButtonCallback(Widget, XtPointer clientData, XtPointer) |
---|
292 | { |
---|
293 | // GET POINTER OF THE ORIGINAL CALLER |
---|
294 | configDialog *cD= (configDialog *)clientData; |
---|
295 | |
---|
296 | // SET VALUES TO DEFAULT |
---|
297 | cD->setDefault(false); |
---|
298 | } |
---|
299 | |
---|
300 | |
---|
301 | /**************************************************************************** |
---|
302 | * CALLBACK - COLOR CHANGED |
---|
303 | * !!! CAUTION: THIS IS A WRAPPER FUNCTION !!! |
---|
304 | ****************************************************************************/ |
---|
305 | static void staticOkButtonCallback(Widget, XtPointer clientData, XtPointer) |
---|
306 | { |
---|
307 | // GET POINTER OF THE ORIGINAL CALLER |
---|
308 | configDialog *cD= (configDialog *)clientData; |
---|
309 | |
---|
310 | // SAVE AWARS TO ARB |
---|
311 | cD->setCONFIGS(); |
---|
312 | |
---|
313 | // DESTROY OBJECT |
---|
314 | cD->~configDialog(); |
---|
315 | } |
---|
316 | |
---|
317 | |
---|
318 | /**************************************************************************** |
---|
319 | * CALLBACK - COLOR/TEXT CHANGED |
---|
320 | * !!! CAUTION: THIS IS A WRAPPER FUNCTION !!! |
---|
321 | ****************************************************************************/ |
---|
322 | static void staticTextChangedCallback(Widget widget, XtPointer clientData, XtPointer) |
---|
323 | { |
---|
324 | // GET POINTER OF THE ORIGINAL CALLER |
---|
325 | configDialog *cD= (configDialog *)clientData; |
---|
326 | |
---|
327 | // CALL TEXT CHANGED FUNCTION |
---|
328 | cD->textChangedCallback(widget); |
---|
329 | } |
---|
330 | |
---|
331 | |
---|
332 | /**************************************************************************** |
---|
333 | * CALLBACK - COLOR/TEXT CHANGED |
---|
334 | ****************************************************************************/ |
---|
335 | |
---|
336 | inline void setColorFromTextWidget(Widget widget, char *& colorStringVar) { |
---|
337 | int r, g, b; // DUMMY RGB VALUES |
---|
338 | char *colorString = XmTextGetString(widget); |
---|
339 | if(hex2rgb(&r, &g, &b, colorString)) freeset(colorStringVar, colorString); |
---|
340 | else free(colorString); |
---|
341 | } |
---|
342 | |
---|
343 | void configDialog::textChangedCallback(Widget widget) { |
---|
344 | if (widget == m_crosshairText) setColorFromTextWidget(m_crosshairText, m_crosshairColorString); // CROSSHAIR TEXT-WIDGET CHANGED? |
---|
345 | else if (widget == m_unmarkedText) setColorFromTextWidget(m_unmarkedText, m_unmarkedColorString); // UNMARKED TEXT-WIDGET CHANGED? |
---|
346 | else if (widget == m_markedText) setColorFromTextWidget(m_markedText, m_markedColorString); // MARKED TEXT-WIDGET CHANGED? |
---|
347 | else if (widget == m_selectedText) setColorFromTextWidget(m_selectedText, m_selectedColorString); // SELECTED TEXT-WIDGET CHANGED? |
---|
348 | else if (widget == m_textText) setColorFromTextWidget(m_textText, m_textColorString); // INFOTEXT TEXT-WIDGET CHANGED? |
---|
349 | else if (widget == m_ID_ProteinText) freeset(m_id_protein, XmTextGetString(m_ID_ProteinText)); // PROTEIN-ID TEXT-WIDGET CHANGED? |
---|
350 | else if (widget == m_ID_GeneText) freeset(m_id_gene, XmTextGetString(m_ID_GeneText)); // GENE-ID TEXT-WIDGET CHANGED? |
---|
351 | else if (widget == m_info_ProteinText) freeset(m_info_protein, XmTextGetString(m_info_ProteinText)); // PROTEIN-TEXT TEXT-WIDGET CHANGED? |
---|
352 | else if (widget == m_info_GeneText) freeset(m_info_gene, XmTextGetString(m_info_GeneText)); // GENE-TEXT TEXT-WIDGET CHANGED? |
---|
353 | |
---|
354 | updateColors(); // UPDATE THE COLORS |
---|
355 | } |
---|
356 | |
---|
357 | |
---|
358 | /**************************************************************************** |
---|
359 | * CONVERT HEX STRING -> INT RGB |
---|
360 | ****************************************************************************/ |
---|
361 | bool hex2rgb(int *r, int *g, int *b, char *hex) |
---|
362 | { |
---|
363 | // SPLIT THE THREE COLORS |
---|
364 | if(sscanf(hex, "#%2X%2X%2X", r, g, b) != 3) return false; |
---|
365 | |
---|
366 | // RETURN TRUE IF SUCCESSFUL |
---|
367 | return true; |
---|
368 | } |
---|
369 | |
---|
370 | /**************************************************************************** |
---|
371 | * CONFIG DIALOG - CREATE WINDOW |
---|
372 | ****************************************************************************/ |
---|
373 | void configDialog::createWindow() |
---|
374 | { |
---|
375 | // TOP LEVEL WIDGET |
---|
376 | m_top= XtVaCreateManagedWidget("top", |
---|
377 | xmFormWidgetClass, m_shell, |
---|
378 | XmNorientation, XmVERTICAL, |
---|
379 | XmNmarginHeight, 0, |
---|
380 | XmNmarginWidth, 0, |
---|
381 | NULL); |
---|
382 | |
---|
383 | // LABEL WIDGET |
---|
384 | Widget label_01= XtVaCreateManagedWidget("label", |
---|
385 | xmLabelWidgetClass, m_top, |
---|
386 | XmNlabelString, CreateDlgString("VISUALIZATION COLORS (#RGB)"), |
---|
387 | XmNheight, 30, |
---|
388 | XmNalignment, XmALIGNMENT_CENTER, |
---|
389 | XmNtopAttachment, XmATTACH_FORM, |
---|
390 | XmNleftAttachment, XmATTACH_FORM, |
---|
391 | XmNrightAttachment, XmATTACH_FORM, |
---|
392 | NULL); |
---|
393 | |
---|
394 | // LABEL WIDGET (COLOR ROW 01 -- CROSSHAIR COLOR) |
---|
395 | Widget label_02= XtVaCreateManagedWidget("label", |
---|
396 | xmLabelWidgetClass, m_top, |
---|
397 | XmNlabelString, CreateDlgString("Crosshair color:"), |
---|
398 | XmNheight, 30, |
---|
399 | XmNwidth, 150, |
---|
400 | XmNalignment, XmALIGNMENT_BEGINNING, |
---|
401 | XmNtopAttachment, XmATTACH_WIDGET, |
---|
402 | XmNtopWidget, label_01, |
---|
403 | XmNleftAttachment, XmATTACH_FORM, |
---|
404 | NULL); |
---|
405 | |
---|
406 | // TEXT FIELD - CROSSHAIR COLOR |
---|
407 | m_crosshairText= XtVaCreateManagedWidget("textField", |
---|
408 | xmTextWidgetClass, m_top, |
---|
409 | XmNheight, 30, |
---|
410 | XmNwidth, 100, |
---|
411 | XmNtopAttachment, XmATTACH_WIDGET, |
---|
412 | XmNtopWidget, label_01, |
---|
413 | XmNleftAttachment, XmATTACH_WIDGET, |
---|
414 | XmNleftWidget, label_02, |
---|
415 | NULL); |
---|
416 | XtAddCallback(m_crosshairText, XmNvalueChangedCallback, staticTextChangedCallback, this); |
---|
417 | |
---|
418 | // DRAWING AREA WIDGET - CROSSHAIR COLOR |
---|
419 | m_crosshairArea= XtVaCreateManagedWidget("drawingArea", |
---|
420 | xmDrawingAreaWidgetClass, m_top, |
---|
421 | XmNheight, 30, |
---|
422 | XmNtopAttachment, XmATTACH_WIDGET, |
---|
423 | XmNtopWidget, label_01, |
---|
424 | XmNleftAttachment, XmATTACH_WIDGET, |
---|
425 | XmNleftWidget, m_crosshairText, |
---|
426 | XmNrightAttachment, XmATTACH_FORM, |
---|
427 | NULL); |
---|
428 | XtAddCallback(m_crosshairArea, XmNexposeCallback, staticTextChangedCallback, this); |
---|
429 | |
---|
430 | // LABEL WIDGET (COLOR ROW 02 -- UNMARKED COLOR) |
---|
431 | Widget label_03= XtVaCreateManagedWidget("label", |
---|
432 | xmLabelWidgetClass, m_top, |
---|
433 | XmNlabelString, CreateDlgString("Unmarked protein color:"), |
---|
434 | XmNheight, 30, |
---|
435 | XmNwidth, 150, |
---|
436 | XmNalignment, XmALIGNMENT_BEGINNING, |
---|
437 | XmNtopAttachment, XmATTACH_WIDGET, |
---|
438 | XmNtopWidget, label_02, |
---|
439 | XmNleftAttachment, XmATTACH_FORM, |
---|
440 | NULL); |
---|
441 | |
---|
442 | // TEXT FIELD - UNMARKED COLOR |
---|
443 | m_unmarkedText= XtVaCreateManagedWidget("textField", |
---|
444 | xmTextWidgetClass, m_top, |
---|
445 | XmNheight, 30, |
---|
446 | XmNwidth, 100, |
---|
447 | XmNtopAttachment, XmATTACH_WIDGET, |
---|
448 | XmNtopWidget, m_crosshairText, |
---|
449 | XmNleftAttachment, XmATTACH_WIDGET, |
---|
450 | XmNleftWidget, label_03, |
---|
451 | NULL); |
---|
452 | XtAddCallback(m_unmarkedText, XmNvalueChangedCallback, staticTextChangedCallback, this); |
---|
453 | |
---|
454 | // DRAWING AREA WIDGET - UNMARKED COLOR |
---|
455 | m_unmarkedArea= XtVaCreateManagedWidget("drawingArea", |
---|
456 | xmDrawingAreaWidgetClass, m_top, |
---|
457 | XmNheight, 30, |
---|
458 | XmNtopAttachment, XmATTACH_WIDGET, |
---|
459 | XmNtopWidget, m_crosshairArea, |
---|
460 | XmNleftAttachment, XmATTACH_WIDGET, |
---|
461 | XmNleftWidget, m_unmarkedText, |
---|
462 | XmNrightAttachment, XmATTACH_FORM, |
---|
463 | NULL); |
---|
464 | XtAddCallback(m_unmarkedArea, XmNexposeCallback, staticTextChangedCallback, this); |
---|
465 | |
---|
466 | // LABEL WIDGET (COLOR ROW 03 -- MARKED COLOR) |
---|
467 | Widget label_04= XtVaCreateManagedWidget("label", |
---|
468 | xmLabelWidgetClass, m_top, |
---|
469 | XmNlabelString, CreateDlgString("Marked protein color:"), |
---|
470 | XmNheight, 30, |
---|
471 | XmNwidth, 150, |
---|
472 | XmNalignment, XmALIGNMENT_BEGINNING, |
---|
473 | XmNtopAttachment, XmATTACH_WIDGET, |
---|
474 | XmNtopWidget, label_03, |
---|
475 | XmNleftAttachment, XmATTACH_FORM, |
---|
476 | NULL); |
---|
477 | |
---|
478 | // TEXT FIELD - MARKED COLOR |
---|
479 | m_markedText= XtVaCreateManagedWidget("textField", |
---|
480 | xmTextWidgetClass, m_top, |
---|
481 | XmNheight, 30, |
---|
482 | XmNwidth, 100, |
---|
483 | XmNtopAttachment, XmATTACH_WIDGET, |
---|
484 | XmNtopWidget, m_unmarkedText, |
---|
485 | XmNleftAttachment, XmATTACH_WIDGET, |
---|
486 | XmNleftWidget, label_04, |
---|
487 | NULL); |
---|
488 | XtAddCallback(m_markedText, XmNvalueChangedCallback, staticTextChangedCallback, this); |
---|
489 | |
---|
490 | // DRAWING AREA WIDGET - MARKED COLOR |
---|
491 | m_markedArea= XtVaCreateManagedWidget("drawingArea", |
---|
492 | xmDrawingAreaWidgetClass, m_top, |
---|
493 | XmNheight, 30, |
---|
494 | XmNtopAttachment, XmATTACH_WIDGET, |
---|
495 | XmNtopWidget, m_unmarkedArea, |
---|
496 | XmNleftAttachment, XmATTACH_WIDGET, |
---|
497 | XmNleftWidget, m_markedText, |
---|
498 | XmNrightAttachment, XmATTACH_FORM, |
---|
499 | NULL); |
---|
500 | XtAddCallback(m_markedArea, XmNexposeCallback, staticTextChangedCallback, this); |
---|
501 | |
---|
502 | // LABEL WIDGET (COLOR ROW 04 -- PROTEIN COLOR) |
---|
503 | Widget label_05= XtVaCreateManagedWidget("label", |
---|
504 | xmLabelWidgetClass, m_top, |
---|
505 | XmNlabelString, CreateDlgString("Selected protein color:"), |
---|
506 | XmNheight, 30, |
---|
507 | XmNwidth, 150, |
---|
508 | XmNalignment, XmALIGNMENT_BEGINNING, |
---|
509 | XmNtopAttachment, XmATTACH_WIDGET, |
---|
510 | XmNtopWidget, label_04, |
---|
511 | XmNleftAttachment, XmATTACH_FORM, |
---|
512 | NULL); |
---|
513 | |
---|
514 | // TEXT FIELD - CROSSHAIR COLOR |
---|
515 | m_selectedText= XtVaCreateManagedWidget("textField", |
---|
516 | xmTextWidgetClass, m_top, |
---|
517 | XmNheight, 30, |
---|
518 | XmNwidth, 100, |
---|
519 | XmNtopAttachment, XmATTACH_WIDGET, |
---|
520 | XmNtopWidget, m_markedText, |
---|
521 | XmNleftAttachment, XmATTACH_WIDGET, |
---|
522 | XmNleftWidget, label_05, |
---|
523 | NULL); |
---|
524 | XtAddCallback(m_selectedText, XmNvalueChangedCallback, staticTextChangedCallback, this); |
---|
525 | |
---|
526 | // DRAWING AREA WIDGET - CROSSHAIR COLOR |
---|
527 | m_selectedArea= XtVaCreateManagedWidget("drawingArea", |
---|
528 | xmDrawingAreaWidgetClass, m_top, |
---|
529 | XmNheight, 30, |
---|
530 | XmNtopAttachment, XmATTACH_WIDGET, |
---|
531 | XmNtopWidget, m_markedArea, |
---|
532 | XmNleftAttachment, XmATTACH_WIDGET, |
---|
533 | XmNleftWidget, m_selectedText, |
---|
534 | XmNrightAttachment, XmATTACH_FORM, |
---|
535 | NULL); |
---|
536 | XtAddCallback(m_selectedArea, XmNexposeCallback, staticTextChangedCallback, this); |
---|
537 | |
---|
538 | // LABEL WIDGET (COLOR ROW 05 -- TEXT COLOR) |
---|
539 | Widget label_0a= XtVaCreateManagedWidget("label", |
---|
540 | xmLabelWidgetClass, m_top, |
---|
541 | XmNlabelString, CreateDlgString("Text color:"), |
---|
542 | XmNheight, 30, |
---|
543 | XmNwidth, 150, |
---|
544 | XmNalignment, XmALIGNMENT_BEGINNING, |
---|
545 | XmNtopAttachment, XmATTACH_WIDGET, |
---|
546 | XmNtopWidget, label_05, |
---|
547 | XmNleftAttachment, XmATTACH_FORM, |
---|
548 | NULL); |
---|
549 | |
---|
550 | // TEXT FIELD - TEXT COLOR |
---|
551 | m_textText= XtVaCreateManagedWidget("textField", |
---|
552 | xmTextWidgetClass, m_top, |
---|
553 | XmNheight, 30, |
---|
554 | XmNwidth, 100, |
---|
555 | XmNtopAttachment, XmATTACH_WIDGET, |
---|
556 | XmNtopWidget, m_selectedText, |
---|
557 | XmNleftAttachment, XmATTACH_WIDGET, |
---|
558 | XmNleftWidget, label_0a, |
---|
559 | NULL); |
---|
560 | XtAddCallback(m_textText, XmNvalueChangedCallback, staticTextChangedCallback, this); |
---|
561 | |
---|
562 | // DRAWING AREA WIDGET - TEXT COLOR |
---|
563 | m_textArea= XtVaCreateManagedWidget("drawingArea", |
---|
564 | xmDrawingAreaWidgetClass, m_top, |
---|
565 | XmNheight, 30, |
---|
566 | XmNtopAttachment, XmATTACH_WIDGET, |
---|
567 | XmNtopWidget, m_selectedArea, |
---|
568 | XmNleftAttachment, XmATTACH_WIDGET, |
---|
569 | XmNleftWidget, m_textText, |
---|
570 | XmNrightAttachment, XmATTACH_FORM, |
---|
571 | NULL); |
---|
572 | XtAddCallback(m_textArea, XmNexposeCallback, staticTextChangedCallback, this); |
---|
573 | |
---|
574 | // CREATE HORIZONTAL SEPARATOR |
---|
575 | Widget separator_01= XtVaCreateManagedWidget("separator", |
---|
576 | xmSeparatorWidgetClass, m_top, |
---|
577 | XmNtopAttachment, XmATTACH_WIDGET, |
---|
578 | XmNtopWidget, label_0a, |
---|
579 | XmNleftAttachment, XmATTACH_FORM, |
---|
580 | XmNrightAttachment, XmATTACH_FORM, |
---|
581 | XmNorientation, XmHORIZONTAL, |
---|
582 | NULL); |
---|
583 | |
---|
584 | // LABEL WIDGET (PROTEIN ID TEXT) |
---|
585 | Widget label_06= XtVaCreateManagedWidget("label", |
---|
586 | xmLabelWidgetClass, m_top, |
---|
587 | XmNlabelString, CreateDlgString("PROTEIN IDENTIFIER"), |
---|
588 | XmNheight, 30, |
---|
589 | XmNwidth, 150, |
---|
590 | XmNalignment, XmALIGNMENT_CENTER, |
---|
591 | XmNtopAttachment, XmATTACH_WIDGET, |
---|
592 | XmNtopWidget, separator_01, |
---|
593 | XmNleftAttachment, XmATTACH_FORM, |
---|
594 | NULL); |
---|
595 | |
---|
596 | // LABEL WIDGET (GENE ID TEXT) |
---|
597 | Widget label_07= XtVaCreateManagedWidget("label", |
---|
598 | xmLabelWidgetClass, m_top, |
---|
599 | XmNlabelString, CreateDlgString("GENE IDENTIFIER"), |
---|
600 | XmNheight, 30, |
---|
601 | XmNwidth, 150, |
---|
602 | XmNalignment, XmALIGNMENT_CENTER, |
---|
603 | XmNtopAttachment, XmATTACH_WIDGET, |
---|
604 | XmNtopWidget, separator_01, |
---|
605 | XmNleftAttachment, XmATTACH_WIDGET, |
---|
606 | XmNleftWidget, label_06, |
---|
607 | XmNrightAttachment, XmATTACH_FORM, |
---|
608 | NULL); |
---|
609 | |
---|
610 | // TEXT FIELD - PROTEIN IDENTIFIER |
---|
611 | m_ID_ProteinText= XtVaCreateManagedWidget("textField", |
---|
612 | xmTextWidgetClass, m_top, |
---|
613 | XmNheight, 30, |
---|
614 | XmNwidth, 150, |
---|
615 | XmNtopAttachment, XmATTACH_WIDGET, |
---|
616 | XmNtopWidget, label_06, |
---|
617 | XmNleftAttachment, XmATTACH_FORM, |
---|
618 | NULL); |
---|
619 | XtAddCallback(m_ID_ProteinText, XmNvalueChangedCallback, staticTextChangedCallback, this); |
---|
620 | |
---|
621 | // TEXT FIELD - GENE IDENTIFIER |
---|
622 | m_ID_GeneText= XtVaCreateManagedWidget("textField", |
---|
623 | xmTextWidgetClass, m_top, |
---|
624 | XmNheight, 30, |
---|
625 | XmNwidth, 150, |
---|
626 | XmNtopAttachment, XmATTACH_WIDGET, |
---|
627 | XmNtopWidget, label_07, |
---|
628 | XmNleftAttachment, XmATTACH_WIDGET, |
---|
629 | XmNleftWidget, m_ID_ProteinText, |
---|
630 | XmNrightAttachment, XmATTACH_FORM, |
---|
631 | NULL); |
---|
632 | XtAddCallback(m_ID_GeneText, XmNvalueChangedCallback, staticTextChangedCallback, this); |
---|
633 | |
---|
634 | // CREATE HORIZONTAL SEPARATOR |
---|
635 | Widget separator_02= XtVaCreateManagedWidget("separator", |
---|
636 | xmSeparatorWidgetClass, m_top, |
---|
637 | XmNtopAttachment, XmATTACH_WIDGET, |
---|
638 | XmNtopWidget, m_ID_ProteinText, |
---|
639 | XmNleftAttachment, XmATTACH_FORM, |
---|
640 | XmNrightAttachment, XmATTACH_FORM, |
---|
641 | XmNorientation, XmHORIZONTAL, |
---|
642 | NULL); |
---|
643 | |
---|
644 | // LABEL WIDGET (PROTEIN INFORMATION) |
---|
645 | Widget label_08= XtVaCreateManagedWidget("label", |
---|
646 | xmLabelWidgetClass, m_top, |
---|
647 | XmNlabelString, CreateDlgString("DISPLAYED PROTEIN INFO"), |
---|
648 | XmNheight, 30, |
---|
649 | XmNalignment, XmALIGNMENT_CENTER, |
---|
650 | XmNtopAttachment, XmATTACH_WIDGET, |
---|
651 | XmNtopWidget, separator_02, |
---|
652 | XmNleftAttachment, XmATTACH_FORM, |
---|
653 | XmNrightAttachment, XmATTACH_FORM, |
---|
654 | NULL); |
---|
655 | |
---|
656 | // TEXT FIELD - PROTEIN INFORMATION |
---|
657 | m_info_ProteinText= XtVaCreateManagedWidget("textField", |
---|
658 | xmTextWidgetClass, m_top, |
---|
659 | XmNheight, 80, |
---|
660 | XmNeditMode, XmMULTI_LINE_EDIT, |
---|
661 | XmNtopAttachment, XmATTACH_WIDGET, |
---|
662 | XmNtopWidget, label_08, |
---|
663 | XmNleftAttachment, XmATTACH_FORM, |
---|
664 | XmNrightAttachment, XmATTACH_FORM, |
---|
665 | NULL); |
---|
666 | XtAddCallback(m_info_ProteinText, XmNvalueChangedCallback, staticTextChangedCallback, this); |
---|
667 | |
---|
668 | // LABEL WIDGET (GENE INFORMATION) |
---|
669 | Widget label_09= XtVaCreateManagedWidget("label", |
---|
670 | xmLabelWidgetClass, m_top, |
---|
671 | XmNlabelString, CreateDlgString("DISPLAYED GENE INFO"), |
---|
672 | XmNheight, 30, |
---|
673 | XmNalignment, XmALIGNMENT_CENTER, |
---|
674 | XmNtopAttachment, XmATTACH_WIDGET, |
---|
675 | XmNtopWidget, m_info_ProteinText, |
---|
676 | XmNleftAttachment, XmATTACH_FORM, |
---|
677 | XmNrightAttachment, XmATTACH_FORM, |
---|
678 | NULL); |
---|
679 | |
---|
680 | // TEXT FIELD - GENE INFORMATION |
---|
681 | m_info_GeneText= XtVaCreateManagedWidget("textField", |
---|
682 | xmTextWidgetClass, m_top, |
---|
683 | XmNheight, 80, |
---|
684 | XmNeditMode, XmMULTI_LINE_EDIT, |
---|
685 | XmNtopAttachment, XmATTACH_WIDGET, |
---|
686 | XmNtopWidget, label_09, |
---|
687 | XmNleftAttachment, XmATTACH_FORM, |
---|
688 | XmNrightAttachment, XmATTACH_FORM, |
---|
689 | NULL); |
---|
690 | XtAddCallback(m_info_GeneText, XmNvalueChangedCallback, staticTextChangedCallback, this); |
---|
691 | |
---|
692 | m_cancelButton= XtVaCreateManagedWidget("button", |
---|
693 | xmPushButtonWidgetClass, m_top, |
---|
694 | XmNlabelString, CreateDlgString("Cancel"), |
---|
695 | XmNwidth, 100, |
---|
696 | XmNheight, 30, |
---|
697 | XmNleftAttachment, XmATTACH_FORM, |
---|
698 | XmNbottomAttachment, XmATTACH_FORM, |
---|
699 | NULL); |
---|
700 | XtAddCallback(m_cancelButton, XmNactivateCallback, staticCancelButtonCallback, this); |
---|
701 | |
---|
702 | m_okButton= XtVaCreateManagedWidget("button", |
---|
703 | xmPushButtonWidgetClass, m_top, |
---|
704 | XmNlabelString, CreateDlgString("Ok"), |
---|
705 | XmNwidth, 100, |
---|
706 | XmNheight, 30, |
---|
707 | XmNrightAttachment, XmATTACH_FORM, |
---|
708 | XmNbottomAttachment, XmATTACH_FORM, |
---|
709 | NULL); |
---|
710 | XtAddCallback(m_okButton, XmNactivateCallback, staticOkButtonCallback, this); |
---|
711 | |
---|
712 | m_defaultButton= XtVaCreateManagedWidget("button", |
---|
713 | xmPushButtonWidgetClass, m_top, |
---|
714 | XmNlabelString, CreateDlgString("Default"), |
---|
715 | XmNwidth, 100, |
---|
716 | XmNheight, 30, |
---|
717 | XmNleftAttachment, XmATTACH_WIDGET, |
---|
718 | XmNleftWidget, m_cancelButton, |
---|
719 | XmNrightAttachment, XmATTACH_WIDGET, |
---|
720 | XmNrightWidget, m_okButton, |
---|
721 | XmNbottomAttachment, XmATTACH_FORM, |
---|
722 | NULL); |
---|
723 | XtAddCallback(m_defaultButton, XmNactivateCallback, staticDefaultButtonCallback, this); |
---|
724 | |
---|
725 | } |
---|