source: tags/old_import_filter/PGT/config_dialog.cxx

Last change on this file was 8313, checked in by westram, 12 years ago
  • removed dead code

(partly reverted by [8316])

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 26.2 KB
Line 
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****************************************************************************/
21configDialog::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****************************************************************************/
81configDialog::~configDialog()
82{
83    // FREE UNNECESSARY STRINGS
84    freeStrings();
85}
86
87
88/****************************************************************************
89*  CONFIG DIALOG - FREE LOCAL STRINGS (IF NECESSARY)
90****************************************************************************/
91void 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
105bool 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
150void 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****************************************************************************/
177void 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
188void 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
219void 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
251void 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****************************************************************************/
277static 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****************************************************************************/
291static 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****************************************************************************/
305static 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****************************************************************************/
322static 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
336inline 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
343void 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****************************************************************************/
361bool 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****************************************************************************/
373void 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}
Note: See TracBrowser for help on using the repository browser.