Main Page | Namespace List | Class Hierarchy | Class List | File List | Class Members | File Members

src/aclvis/MainWindow.cpp

Go to the documentation of this file.
00001 // -*- C++ -*-
00002 /***************************************************************************
00003  *
00004  * The IPPL Framework
00005  * 
00006  * This program was prepared by PSI. 
00007  * All rights in the program are reserved by PSI.
00008  * Neither PSI nor the author(s)
00009  * makes any warranty, express or implied, or assumes any liability or
00010  * responsibility for the use of this software
00011  *
00012  * Visit http://www.acl.lanl.gov/POOMS for more details
00013  *
00014  ***************************************************************************/
00015 
00016 // -*- C++ -*-
00017 /***************************************************************************
00018  *
00019  * The IPPL Framework
00020  * 
00021  *
00022  * Visit http://people.web.psi.ch/adelmann/ for more details
00023  *
00024  ***************************************************************************/
00025 
00026 //
00027 // README: Portions of this file are merged at file generation
00028 // time. Edits can be made *only* in between specified code blocks, look
00029 // for keywords <Begin user code> and <End user code>.
00030 //
00032 //
00033 // Source file for MainWindow
00034 //
00035 //    Created by Builder Xcessory 4.0.
00036 //    Generated by Code Generator Xcessory 2.0 (09/09/96).
00037 //
00038 //    This class is a user interface "component", as described
00039 //    in "Object-Oriented Programming with C++ and OSF/Motif",
00040 //    by Douglas Young, Prentice Hall, 1992. ISBN 0-13-630252-1
00041 //
00043 #include <X11/StringDefs.h>
00044 #include <Xm/MainW.h>
00045 #include <Xm/Form.h>
00046 #include <Xm/Frame.h>
00047 #include <Xm/DialogS.h>
00048 #include <Xm/MwmUtil.h>
00049 #include <Xm/BulletinB.h>
00050 #include <Xm/TextF.h>
00051 #include <Xm/Label.h>
00052 #include <Xm/Scale.h>
00053 #include <Xm/RowColumn.h>
00054 #include <Xm/ToggleB.h>
00055 #include <Xm/CascadeB.h>
00056 #include <Xm/PushB.h>
00057 #include <Xm/DrawingA.h>
00058 #include <Xm/ScrolledW.h>
00059 #include <Xm/List.h>
00060 #include "MainWindow.h"
00061 
00062 //
00063 // Common constant and pixmap declarations.
00064 //
00065 #include "defsC.h"
00066 
00067 //
00068 // Convenience functions from utilities file.
00069 //
00070 extern void RegisterBxConverters(XtAppContext);
00071 extern XtPointer CONVERT(Widget, char *, char *, int, Boolean *);
00072 extern XtPointer DOUBLE(double);
00073 extern XtPointer SINGLE(float);
00074 extern void MENU_POST(Widget, XtPointer, XEvent *, Boolean *);
00075 extern Pixmap XPM_PIXMAP(Widget, char**);
00076 extern void SET_BACKGROUND_COLOR(Widget, ArgList, Cardinal*, Pixel);
00077 
00078 
00079 // Begin user code block <head>
00080 #include <assert.h>
00081 #include "Profile/Profiler.h"
00082 #include "aclvis/vizCallbackImpl.h"
00083 #include <X11/keysymdef.h>
00084 
00085 extern VizTool *current_viztool;
00086 extern vtkXRenderWindow *renWin;
00087 
00088 
00089 char *BrowseListGetSelectedString(Widget list) {
00090   TAU_PROFILE("BrowseListGetSelectedString()", "char * (Widget )", TAU_VIZ);
00091 
00092   int *pos_list, pos_cnt;
00093   XmString *strlist;
00094   char *text;
00095   int count;
00096   
00097   if (!XmListGetSelectedPos(list, &pos_list, &pos_cnt)) {
00098     XtWarning("No selected item.");
00099     return(NULL);
00100   } else {
00101     // cerr << "Select position in is:" <<pos_list[0] << "\n";
00102     // get the current entries (and number of entries) from the List 
00103     XtVaGetValues (list,
00104                    XmNitemCount, &count,
00105                    XmNitems,     &strlist,
00106                    NULL);
00107     
00108     XmStringGetLtoR(strlist[pos_list[0]-1], XmFONTLIST_DEFAULT_TAG, &text);
00109     // cerr << "Select string in is:" << text << "\n";
00110     XtFree((char *)pos_list);
00111     return(text);
00112   }
00113 
00114 }
00115 
00116 int BrowseListGetSelectedIndex(Widget list) {
00117   TAU_PROFILE("BrowseListGetSelectedIndex()", "int (Widget )", TAU_VIZ);
00118 
00119   int *pos_list, pos_cnt;
00120   //  XmString *strlist;
00121   //  int count;
00122   
00123   if (!XmListGetSelectedPos(list, &pos_list, &pos_cnt)) {
00124     XtWarning("No selected item.");
00125     return(0);
00126   } else {
00127     // cerr << "Select position in is:" << pos_list[0] << endl;
00128     int retval = pos_list[0];
00129     XtFree((char *)pos_list);
00130     return retval;
00131   }
00132 }
00133 // End user code block <head>
00134 
00135 //
00136 // This table is used to define class resources that are placed
00137 // in app-defaults. This table is necessary so each instance
00138 // of this class has the proper default resource values set.
00139 // This eliminates the need for each instance to have
00140 // its own app-defaults values. This table must be NULL terminated.
00141 //
00142 #if defined(cxx_bx_compat)
00143 
00144 Boolean MainWindow::_initAppDefaults = True;
00145 UIAppDefault  MainWindow::_appDefaults[] = {
00146     {NULL, NULL, NULL, NULL}
00147 };
00148 #endif
00149 
00150 // These are default resources for widgets in objects of this class
00151 // All resources will be prepended by *<name> at instantiation,
00152 // where <name> is the name of the specific instance, as well as the
00153 // name of the baseWidget. These are only defaults, and may be overriden
00154 // in a resource file by providing a more specific resource name
00155 
00156 String  MainWindow::_defaultMainWindowResources[] = {
00157         NULL
00158 };
00159 
00160 //
00161 // Old style constructor, for compatibility only.
00162 //
00163 MainWindow::MainWindow(const char *name, Widget parent) : 
00164     UIComponent(name)
00165 
00166 // Begin user code block <alt_superclass>
00167 // End user code block <alt_superclass>
00168 {
00169     
00170     // Begin user code block <alt_constructor>
00171     // End user code block <alt_constructor>
00172     create(parent);
00173 }
00174 
00175 //
00176 // Class Constructor.
00177 //
00178 MainWindow::MainWindow(const char *name) : UIComponent(name)
00179 
00180 // Begin user code block <superclass>
00181 // End user code block <superclass>
00182 {
00183     
00184     // Begin user code block <constructor>
00185     // End user code block <constructor>
00186 }
00187 
00188 
00189 //
00190 // Minimal Destructor. Base class destroys widgets.
00191 //
00192 MainWindow::~MainWindow() 
00193 {
00194     
00195     // Begin user code block <destructor>
00196     // End user code block <destructor>
00197     delete []  _clientDataStructs;
00198 }
00199 
00200 //
00201 // Handle creation of all widgets in the class.
00202 //
00203 void MainWindow::create(Widget parent) 
00204 {
00205     Arg      args[256];
00206     Cardinal ac=0;
00207     Cardinal cdc=0;
00208     Boolean  argok=False;
00209     
00210     _clientDataStructs = new UICallbackStruct[50];
00211     
00212     //
00213     // Load any class-defaulted resources for this object.
00214     //
00215     setDefaultResources(parent, _defaultMainWindowResources);
00216     
00217 #if defined(cxx_bx_compat)
00218     //
00219     // Setup app-defaults fallback table if not already done.
00220     //
00221     if (_initAppDefaults)
00222     {
00223         initAppDefaults(parent, "MainWindow", _appDefaults);
00224         _initAppDefaults = False;
00225     }
00226     //
00227     // Now set the app-defaults for this instance.
00228     //
00229     setAppDefaults(parent, _appDefaults, (const char *)NULL);
00230 #endif
00231     
00232     //
00233     // Register the converters for the widgets.
00234     //
00235     RegisterBxConverters(XtWidgetToApplicationContext(parent)); 
00236     XtInitializeWidgetClass(xmMainWindowWidgetClass);
00237     XtInitializeWidgetClass(xmFormWidgetClass);
00238     XtInitializeWidgetClass(xmFrameWidgetClass);
00239     XtInitializeWidgetClass(xmDialogShellWidgetClass);
00240     XtInitializeWidgetClass(xmBulletinBoardWidgetClass);
00241     XtInitializeWidgetClass(xmTextFieldWidgetClass);
00242     XtInitializeWidgetClass(xmBulletinBoardWidgetClass);
00243     XtInitializeWidgetClass(xmLabelWidgetClass);
00244     XtInitializeWidgetClass(xmScaleWidgetClass);
00245     XtInitializeWidgetClass(xmRowColumnWidgetClass);
00246     XtInitializeWidgetClass(xmToggleButtonWidgetClass);
00247     XtInitializeWidgetClass(xmRowColumnWidgetClass);
00248     XtInitializeWidgetClass(xmCascadeButtonWidgetClass);
00249     XtInitializeWidgetClass(xmRowColumnWidgetClass);
00250     XtInitializeWidgetClass(xmPushButtonWidgetClass);
00251     XtInitializeWidgetClass(xmDrawingAreaWidgetClass);
00252     XtInitializeWidgetClass(xmScrolledWindowWidgetClass);
00253     XtInitializeWidgetClass(xmListWidgetClass);
00254     
00255     //
00256     // Create an unmanaged widget as the top of the hierarchy.
00257     //
00258     
00259     ac = 0;
00260     XtSetArg(args[ac], XmNx, 970); ac++;
00261     XtSetArg(args[ac], XmNy, 114); ac++;
00262     XtSetArg(args[ac], XmNwidth, 769); ac++;
00263     XtSetArg(args[ac], XmNheight, 584); ac++;
00264     XtSetArg(args[ac], XmNbackground, 
00265         CONVERT(parent, "gray86", 
00266         XmRPixel, 0, &argok)); if (argok) ac++;
00267     _MainWindow = XmCreateMainWindow(parent,
00268         _name,
00269         args, 
00270         ac);
00271     
00272     _w = _MainWindow;
00273     //
00274     // Install callback to guard against unexpected widget destruction..
00275     //
00276     installDestroyHandler();
00277     
00278     ac = 0;
00279     XtSetArg(args[ac], XmNresizePolicy, XmRESIZE_GROW); ac++;
00280     XtSetArg(args[ac], XmNwidth, 769); ac++;
00281     XtSetArg(args[ac], XmNheight, 584); ac++;
00282     XtSetArg(args[ac], XmNbackground, 
00283         CONVERT(_MainWindow, "gray86", 
00284         XmRPixel, 0, &argok)); if (argok) ac++;
00285     _form = XmCreateForm(_MainWindow,
00286         "form",
00287         args, 
00288         ac);
00289     XtManageChild(_form);
00290     
00291     ac = 0;
00292     XtSetArg(args[ac], XmNx, 10); ac++;
00293     XtSetArg(args[ac], XmNy, 49); ac++;
00294     XtSetArg(args[ac], XmNwidth, 220); ac++;
00295     XtSetArg(args[ac], XmNheight, 516); ac++;
00296     XtSetArg(args[ac], XmNbackground, 
00297         CONVERT(_form, "gray86", 
00298         XmRPixel, 0, &argok)); if (argok) ac++;
00299     _frame1 = XmCreateFrame(_form,
00300         "frame1",
00301         args, 
00302         ac);
00303     XtManageChild(_frame1);
00304     
00305     ac = 0;
00306     XtSetArg(args[ac], XmNx, 1099); ac++;
00307     XtSetArg(args[ac], XmNy, 241); ac++;
00308     XtSetArg(args[ac], XmNwidth, 173); ac++;
00309     XtSetArg(args[ac], XmNheight, 333); ac++;
00310     _xmDialogShell = XtCreatePopupShell("xmDialogShell",
00311         xmDialogShellWidgetClass,
00312         _frame1,
00313         args, 
00314         ac);
00315     
00316     ac = 0;
00317     XtSetArg(args[ac], XmNresizePolicy, XmRESIZE_GROW); ac++;
00318     XtSetArg(args[ac], XmNx, 1099); ac++;
00319     XtSetArg(args[ac], XmNy, 241); ac++;
00320     XtSetArg(args[ac], XmNwidth, 173); ac++;
00321     XtSetArg(args[ac], XmNheight, 333); ac++;
00322     _bulletinBoard = XmCreateBulletinBoard(_xmDialogShell,
00323         "bulletinBoard",
00324         args, 
00325         ac);
00326     
00327     ac = 0;
00328     XtSetArg(args[ac], XmNx, 20); ac++;
00329     XtSetArg(args[ac], XmNy, 50); ac++;
00330     XtSetArg(args[ac], XmNwidth, 129); ac++;
00331     XtSetArg(args[ac], XmNheight, 36); ac++;
00332     _scratchTextField = XmCreateTextField(_bulletinBoard,
00333         "scratchTextField",
00334         args, 
00335         ac);
00336     XtManageChild(_scratchTextField);
00337     
00338     ac = 0;
00339     XtSetArg(args[ac], XmNresizePolicy, XmRESIZE_GROW); ac++;
00340     XtSetArg(args[ac], XmNx, 3); ac++;
00341     XtSetArg(args[ac], XmNy, 3); ac++;
00342     XtSetArg(args[ac], XmNwidth, 212); ac++;
00343     XtSetArg(args[ac], XmNheight, 504); ac++;
00344     XtSetArg(args[ac], XmNbackground, 
00345         CONVERT(_frame1, "gray86", 
00346         XmRPixel, 0, &argok)); if (argok) ac++;
00347     _misoBulletinBoard = XmCreateBulletinBoard(_frame1,
00348         "misoBulletinBoard",
00349         args, 
00350         ac);
00351     
00352     ac = 0;
00353     XtSetArg(args[ac], XmNx, 70); ac++;
00354     XtSetArg(args[ac], XmNy, 230); ac++;
00355     XtSetArg(args[ac], XmNwidth, 76); ac++;
00356     XtSetArg(args[ac], XmNheight, 30); ac++;
00357     XtSetArg(args[ac], XmNfontList, 
00358         CONVERT(_misoBulletinBoard, "-*-helvetica-bold-r-*-*-*-100-*-*-*-*-iso8859-1", 
00359         XmRFontList, 0, &argok)); if (argok) ac++;
00360     XtSetArg(args[ac], XmNbackground, 
00361         CONVERT(_misoBulletinBoard, "gray86", 
00362         XmRPixel, 0, &argok)); if (argok) ac++;
00363     _misoNumContoursTextField = XmCreateTextField(_misoBulletinBoard,
00364         "misoNumContoursTextField",
00365         args, 
00366         ac);
00367     XtManageChild(_misoNumContoursTextField);
00368     _clientDataStructs[cdc].object = this;
00369     _clientDataStructs[cdc].client_data = (XtPointer)0;
00370     XtAddCallback(_misoNumContoursTextField,
00371         XmNactivateCallback,
00372         MainWindow::misoNumContoursTextFieldActivateCallback,
00373         (XtPointer)&_clientDataStructs[cdc]);
00374     cdc++;
00375     
00376     ac = 0;
00377     XtSetArg(args[ac], XmNlabelString, 
00378         CONVERT(_misoBulletinBoard, "Number of Isos", 
00379         XmRXmString, 0, &argok)); if (argok) ac++;
00380     XtSetArg(args[ac], XmNx, 40); ac++;
00381     XtSetArg(args[ac], XmNy, 200); ac++;
00382     XtSetArg(args[ac], XmNwidth, 130); ac++;
00383     XtSetArg(args[ac], XmNheight, 30); ac++;
00384     XtSetArg(args[ac], XmNfontList, 
00385         CONVERT(_misoBulletinBoard, "-*-helvetica-bold-r-*-*-*-100-*-*-*-*-iso8859-1", 
00386         XmRFontList, 0, &argok)); if (argok) ac++;
00387     XtSetArg(args[ac], XmNbackground, 
00388         CONVERT(_misoBulletinBoard, "gray86", 
00389         XmRPixel, 0, &argok)); if (argok) ac++;
00390     _label13 = XmCreateLabel(_misoBulletinBoard,
00391         "label13",
00392         args, 
00393         ac);
00394     XtManageChild(_label13);
00395     
00396     ac = 0;
00397     XtSetArg(args[ac], XmNx, 90); ac++;
00398     XtSetArg(args[ac], XmNy, 130); ac++;
00399     XtSetArg(args[ac], XmNwidth, 76); ac++;
00400     XtSetArg(args[ac], XmNheight, 30); ac++;
00401     XtSetArg(args[ac], XmNfontList, 
00402         CONVERT(_misoBulletinBoard, "-*-helvetica-bold-r-*-*-*-100-*-*-*-*-iso8859-1", 
00403         XmRFontList, 0, &argok)); if (argok) ac++;
00404     XtSetArg(args[ac], XmNbackground, 
00405         CONVERT(_misoBulletinBoard, "gray86", 
00406         XmRPixel, 0, &argok)); if (argok) ac++;
00407     _misoContourRangeMaxTextField = XmCreateTextField(_misoBulletinBoard,
00408         "misoContourRangeMaxTextField",
00409         args, 
00410         ac);
00411     XtManageChild(_misoContourRangeMaxTextField);
00412     _clientDataStructs[cdc].object = this;
00413     _clientDataStructs[cdc].client_data = (XtPointer)0;
00414     XtAddCallback(_misoContourRangeMaxTextField,
00415         XmNactivateCallback,
00416         MainWindow::misoContourRangeMaxTextFieldActivateCallback,
00417         (XtPointer)&_clientDataStructs[cdc]);
00418     cdc++;
00419     
00420     ac = 0;
00421     XtSetArg(args[ac], XmNlabelString, 
00422         CONVERT(_misoBulletinBoard, "Max", 
00423         XmRXmString, 0, &argok)); if (argok) ac++;
00424     XtSetArg(args[ac], XmNx, 50); ac++;
00425     XtSetArg(args[ac], XmNy, 130); ac++;
00426     XtSetArg(args[ac], XmNwidth, 40); ac++;
00427     XtSetArg(args[ac], XmNheight, 30); ac++;
00428     XtSetArg(args[ac], XmNfontList, 
00429         CONVERT(_misoBulletinBoard, "-*-helvetica-bold-r-*-*-*-100-*-*-*-*-iso8859-1", 
00430         XmRFontList, 0, &argok)); if (argok) ac++;
00431     XtSetArg(args[ac], XmNbackground, 
00432         CONVERT(_misoBulletinBoard, "gray86", 
00433         XmRPixel, 0, &argok)); if (argok) ac++;
00434     _label15 = XmCreateLabel(_misoBulletinBoard,
00435         "label15",
00436         args, 
00437         ac);
00438     XtManageChild(_label15);
00439     
00440     ac = 0;
00441     XtSetArg(args[ac], XmNx, 90); ac++;
00442     XtSetArg(args[ac], XmNy, 95); ac++;
00443     XtSetArg(args[ac], XmNwidth, 76); ac++;
00444     XtSetArg(args[ac], XmNheight, 30); ac++;
00445     XtSetArg(args[ac], XmNfontList, 
00446         CONVERT(_misoBulletinBoard, "-*-helvetica-bold-r-*-*-*-100-*-*-*-*-iso8859-1", 
00447         XmRFontList, 0, &argok)); if (argok) ac++;
00448     XtSetArg(args[ac], XmNbackground, 
00449         CONVERT(_misoBulletinBoard, "gray86", 
00450         XmRPixel, 0, &argok)); if (argok) ac++;
00451     _misoContourRangeMinTextField = XmCreateTextField(_misoBulletinBoard,
00452         "misoContourRangeMinTextField",
00453         args, 
00454         ac);
00455     XtManageChild(_misoContourRangeMinTextField);
00456     _clientDataStructs[cdc].object = this;
00457     _clientDataStructs[cdc].client_data = (XtPointer)0;
00458     XtAddCallback(_misoContourRangeMinTextField,
00459         XmNactivateCallback,
00460         MainWindow::misoContourRangeMinTextFieldActivateCallback,
00461         (XtPointer)&_clientDataStructs[cdc]);
00462     cdc++;
00463     
00464     ac = 0;
00465     XtSetArg(args[ac], XmNlabelString, 
00466         CONVERT(_misoBulletinBoard, "Min ", 
00467         XmRXmString, 0, &argok)); if (argok) ac++;
00468     XtSetArg(args[ac], XmNx, 50); ac++;
00469     XtSetArg(args[ac], XmNy, 100); ac++;
00470     XtSetArg(args[ac], XmNwidth, 40); ac++;
00471     XtSetArg(args[ac], XmNheight, 20); ac++;
00472     XtSetArg(args[ac], XmNfontList, 
00473         CONVERT(_misoBulletinBoard, "-*-helvetica-bold-r-*-*-*-100-*-*-*-*-iso8859-1", 
00474         XmRFontList, 0, &argok)); if (argok) ac++;
00475     XtSetArg(args[ac], XmNbackground, 
00476         CONVERT(_misoBulletinBoard, "gray86", 
00477         XmRPixel, 0, &argok)); if (argok) ac++;
00478     _label14 = XmCreateLabel(_misoBulletinBoard,
00479         "label14",
00480         args, 
00481         ac);
00482     XtManageChild(_label14);
00483     
00484     ac = 0;
00485     XtSetArg(args[ac], XmNlabelString, 
00486         CONVERT(_misoBulletinBoard, "Iso Value Range", 
00487         XmRXmString, 0, &argok)); if (argok) ac++;
00488     XtSetArg(args[ac], XmNx, 30); ac++;
00489     XtSetArg(args[ac], XmNy, 65); ac++;
00490     XtSetArg(args[ac], XmNwidth, 150); ac++;
00491     XtSetArg(args[ac], XmNheight, 30); ac++;
00492     XtSetArg(args[ac], XmNfontList, 
00493         CONVERT(_misoBulletinBoard, "-*-helvetica-bold-r-*-*-*-100-*-*-*-*-iso8859-1", 
00494         XmRFontList, 0, &argok)); if (argok) ac++;
00495     XtSetArg(args[ac], XmNbackground, 
00496         CONVERT(_misoBulletinBoard, "gray86", 
00497         XmRPixel, 0, &argok)); if (argok) ac++;
00498     _label16 = XmCreateLabel(_misoBulletinBoard,
00499         "label16",
00500         args, 
00501         ac);
00502     XtManageChild(_label16);
00503     
00504     ac = 0;
00505     XtSetArg(args[ac], XmNlabelString, 
00506         CONVERT(_misoBulletinBoard, "Min: 0.0  Max: 0.0", 
00507         XmRXmString, 0, &argok)); if (argok) ac++;
00508     XtSetArg(args[ac], XmNx, 20); ac++;
00509     XtSetArg(args[ac], XmNy, 330); ac++;
00510     XtSetArg(args[ac], XmNwidth, 170); ac++;
00511     XtSetArg(args[ac], XmNheight, 30); ac++;
00512     XtSetArg(args[ac], XmNfontList, 
00513         CONVERT(_misoBulletinBoard, "-*-helvetica-bold-r-*-*-*-100-*-*-*-*-iso8859-1", 
00514         XmRFontList, 0, &argok)); if (argok) ac++;
00515     XtSetArg(args[ac], XmNbackground, 
00516         CONVERT(_misoBulletinBoard, "gray86", 
00517         XmRPixel, 0, &argok)); if (argok) ac++;
00518     _misoColorRangeLabel = XmCreateLabel(_misoBulletinBoard,
00519         "misoColorRangeLabel",
00520         args, 
00521         ac);
00522     XtManageChild(_misoColorRangeLabel);
00523     
00524     ac = 0;
00525     XtSetArg(args[ac], XmNlabelString, 
00526         CONVERT(_misoBulletinBoard, "Color Map Range", 
00527         XmRXmString, 0, &argok)); if (argok) ac++;
00528     XtSetArg(args[ac], XmNx, 30); ac++;
00529     XtSetArg(args[ac], XmNy, 300); ac++;
00530     XtSetArg(args[ac], XmNwidth, 150); ac++;
00531     XtSetArg(args[ac], XmNheight, 30); ac++;
00532     XtSetArg(args[ac], XmNfontList, 
00533         CONVERT(_misoBulletinBoard, "-*-helvetica-bold-r-*-*-*-100-*-*-*-*-iso8859-1", 
00534         XmRFontList, 0, &argok)); if (argok) ac++;
00535     XtSetArg(args[ac], XmNbackground, 
00536         CONVERT(_misoBulletinBoard, "gray86", 
00537         XmRPixel, 0, &argok)); if (argok) ac++;
00538     _label12 = XmCreateLabel(_misoBulletinBoard,
00539         "label12",
00540         args, 
00541         ac);
00542     XtManageChild(_label12);
00543     
00544     ac = 0;
00545     XtSetArg(args[ac], XmNfontList, 
00546         CONVERT(_misoBulletinBoard, "-*-helvetica-bold-o-*-*-*-120-*-*-*-*-iso8859-1", 
00547         XmRFontList, 0, &argok)); if (argok) ac++;
00548     XtSetArg(args[ac], XmNlabelString, 
00549         CONVERT(_misoBulletinBoard, "M-Iso Tool", 
00550         XmRXmString, 0, &argok)); if (argok) ac++;
00551     XtSetArg(args[ac], XmNx, 20); ac++;
00552     XtSetArg(args[ac], XmNy, 10); ac++;
00553     XtSetArg(args[ac], XmNwidth, 170); ac++;
00554     XtSetArg(args[ac], XmNheight, 30); ac++;
00555     XtSetArg(args[ac], XmNbackground, 
00556         CONVERT(_misoBulletinBoard, "gray86", 
00557         XmRPixel, 0, &argok)); if (argok) ac++;
00558     _misoTitleLabel = XmCreateLabel(_misoBulletinBoard,
00559         "misoTitleLabel",
00560         args, 
00561         ac);
00562     XtManageChild(_misoTitleLabel);
00563     
00564     ac = 0;
00565     XtSetArg(args[ac], XmNresizePolicy, XmRESIZE_ANY); ac++;
00566     XtSetArg(args[ac], XmNx, 3); ac++;
00567     XtSetArg(args[ac], XmNy, 3); ac++;
00568     XtSetArg(args[ac], XmNwidth, 214); ac++;
00569     XtSetArg(args[ac], XmNheight, 508); ac++;
00570     XtSetArg(args[ac], XmNbackground, 
00571         CONVERT(_frame1, "gray86", 
00572         XmRPixel, 0, &argok)); if (argok) ac++;
00573     _sliceBulletinBoard = XmCreateBulletinBoard(_frame1,
00574         "sliceBulletinBoard",
00575         args, 
00576         ac);
00577     
00578     ac = 0;
00579     XtSetArg(args[ac], XmNorientation, XmHORIZONTAL); ac++;
00580     XtSetArg(args[ac], XmNshowValue, True); ac++;
00581     XtSetArg(args[ac], XmNx, 30); ac++;
00582     XtSetArg(args[ac], XmNy, 220); ac++;
00583     XtSetArg(args[ac], XmNwidth, 160); ac++;
00584     XtSetArg(args[ac], XmNheight, 20); ac++;
00585     XtSetArg(args[ac], XmNfontList, 
00586         CONVERT(_sliceBulletinBoard, "-*-helvetica-bold-r-*-*-*-100-*-*-*-*-iso8859-1", 
00587         XmRFontList, 0, &argok)); if (argok) ac++;
00588     XtSetArg(args[ac], XmNbackground, 
00589         CONVERT(_sliceBulletinBoard, "gray86", 
00590         XmRPixel, 0, &argok)); if (argok) ac++;
00591     _sliceValueScale = XmCreateScale(_sliceBulletinBoard,
00592         "sliceValueScale",
00593         args, 
00594         ac);
00595     XtManageChild(_sliceValueScale);
00596     _clientDataStructs[cdc].object = this;
00597     _clientDataStructs[cdc].client_data = (XtPointer)0;
00598     XtAddCallback(_sliceValueScale,
00599         XmNvalueChangedCallback,
00600         MainWindow::sliceValueScaleChangedCallback,
00601         (XtPointer)&_clientDataStructs[cdc]);
00602     cdc++;
00603     
00604     ac = 0;
00605     XtSetArg(args[ac], XmNisHomogeneous, False); ac++;
00606     XtSetArg(args[ac], XmNx, 87); ac++;
00607     XtSetArg(args[ac], XmNy, 280); ac++;
00608     XtSetArg(args[ac], XmNwidth, 45); ac++;
00609     XtSetArg(args[ac], XmNheight, 78); ac++;
00610     XtSetArg(args[ac], XmNbackground, 
00611         CONVERT(_sliceBulletinBoard, "gray86", 
00612         XmRPixel, 0, &argok)); if (argok) ac++;
00613     _sliceRadioBox = XmCreateRadioBox(_sliceBulletinBoard,
00614         "sliceRadioBox",
00615         args, 
00616         ac);
00617     XtManageChild(_sliceRadioBox);
00618     
00619     ac = 0;
00620     XtSetArg(args[ac], XmNhighlightOnEnter, False); ac++;
00621     XtSetArg(args[ac], XmNlabelString, 
00622         CONVERT(_sliceRadioBox, "XY", 
00623         XmRXmString, 0, &argok)); if (argok) ac++;
00624     XtSetArg(args[ac], XmNset, True); ac++;
00625     XtSetArg(args[ac], XmNindicatorOn, True); ac++;
00626     XtSetArg(args[ac], XmNwidth, 39); ac++;
00627     XtSetArg(args[ac], XmNheight, 22); ac++;
00628     XtSetArg(args[ac], XmNfontList, 
00629         CONVERT(_sliceRadioBox, "-*-helvetica-bold-r-*-*-*-100-*-*-*-*-iso8859-1", 
00630         XmRFontList, 0, &argok)); if (argok) ac++;
00631     XtSetArg(args[ac], XmNbackground, 
00632         CONVERT(_sliceRadioBox, "gray86", 
00633         XmRPixel, 0, &argok)); if (argok) ac++;
00634     _sliceXYToggleButton = XmCreateToggleButton(_sliceRadioBox,
00635         "sliceXYToggleButton",
00636         args, 
00637         ac);
00638     XtManageChild(_sliceXYToggleButton);
00639     _clientDataStructs[cdc].object = this;
00640     _clientDataStructs[cdc].client_data = (XtPointer)0;
00641     XtAddCallback(_sliceXYToggleButton,
00642         XmNvalueChangedCallback,
00643         MainWindow::sliceXYChangedCallback,
00644         (XtPointer)&_clientDataStructs[cdc]);
00645     cdc++;
00646     
00647     ac = 0;
00648     XtSetArg(args[ac], XmNlabelString, 
00649         CONVERT(_sliceRadioBox, "YZ", 
00650         XmRXmString, 0, &argok)); if (argok) ac++;
00651     XtSetArg(args[ac], XmNwidth, 39); ac++;
00652     XtSetArg(args[ac], XmNheight, 22); ac++;
00653     XtSetArg(args[ac], XmNfontList, 
00654         CONVERT(_sliceRadioBox, "-*-helvetica-bold-r-*-*-*-100-*-*-*-*-iso8859-1", 
00655         XmRFontList, 0, &argok)); if (argok) ac++;
00656     XtSetArg(args[ac], XmNbackground, 
00657         CONVERT(_sliceRadioBox, "gray86", 
00658         XmRPixel, 0, &argok)); if (argok) ac++;
00659     _sliceYZToggleButton = XmCreateToggleButton(_sliceRadioBox,
00660         "sliceYZToggleButton",
00661         args, 
00662         ac);
00663     XtManageChild(_sliceYZToggleButton);
00664     _clientDataStructs[cdc].object = this;
00665     _clientDataStructs[cdc].client_data = (XtPointer)0;
00666     XtAddCallback(_sliceYZToggleButton,
00667         XmNvalueChangedCallback,
00668         MainWindow::sliceYZchangedCallback,
00669         (XtPointer)&_clientDataStructs[cdc]);
00670     cdc++;
00671     
00672     ac = 0;
00673     XtSetArg(args[ac], XmNlabelString, 
00674         CONVERT(_sliceRadioBox, "XZ", 
00675         XmRXmString, 0, &argok)); if (argok) ac++;
00676     XtSetArg(args[ac], XmNwidth, 39); ac++;
00677     XtSetArg(args[ac], XmNheight, 22); ac++;
00678     XtSetArg(args[ac], XmNfontList, 
00679         CONVERT(_sliceRadioBox, "-*-helvetica-bold-r-*-*-*-100-*-*-*-*-iso8859-1", 
00680         XmRFontList, 0, &argok)); if (argok) ac++;
00681     XtSetArg(args[ac], XmNbackground, 
00682         CONVERT(_sliceRadioBox, "gray86", 
00683         XmRPixel, 0, &argok)); if (argok) ac++;
00684     _sliceXZToggleButton = XmCreateToggleButton(_sliceRadioBox,
00685         "sliceXZToggleButton",
00686         args, 
00687         ac);
00688     XtManageChild(_sliceXZToggleButton);
00689     _clientDataStructs[cdc].object = this;
00690     _clientDataStructs[cdc].client_data = (XtPointer)0;
00691     XtAddCallback(_sliceXZToggleButton,
00692         XmNvalueChangedCallback,
00693         MainWindow::sliceXZChangedCallback,
00694         (XtPointer)&_clientDataStructs[cdc]);
00695     cdc++;
00696     
00697     ac = 0;
00698     XtSetArg(args[ac], XmNlabelString, 
00699         CONVERT(_sliceBulletinBoard, "Min:0.0  Max:0.0", 
00700         XmRXmString, 0, &argok)); if (argok) ac++;
00701     XtSetArg(args[ac], XmNx, 20); ac++;
00702     XtSetArg(args[ac], XmNy, 100); ac++;
00703     XtSetArg(args[ac], XmNwidth, 180); ac++;
00704     XtSetArg(args[ac], XmNheight, 27); ac++;
00705     XtSetArg(args[ac], XmNfontList, 
00706         CONVERT(_sliceBulletinBoard, "-*-helvetica-bold-r-*-*-*-100-*-*-*-*-iso8859-1", 
00707         XmRFontList, 0, &argok)); if (argok) ac++;
00708     XtSetArg(args[ac], XmNbackground, 
00709         CONVERT(_sliceBulletinBoard, "gray86", 
00710         XmRPixel, 0, &argok)); if (argok) ac++;
00711     _sliceRangeLabel = XmCreateLabel(_sliceBulletinBoard,
00712         "sliceRangeLabel",
00713         args, 
00714         ac);
00715     XtManageChild(_sliceRangeLabel);
00716     
00717     ac = 0;
00718     XtSetArg(args[ac], XmNlabelString, 
00719         CONVERT(_sliceBulletinBoard, "Slice Location Range", 
00720         XmRXmString, 0, &argok)); if (argok) ac++;
00721     XtSetArg(args[ac], XmNx, 40); ac++;
00722     XtSetArg(args[ac], XmNy, 70); ac++;
00723     XtSetArg(args[ac], XmNwidth, 140); ac++;
00724     XtSetArg(args[ac], XmNheight, 30); ac++;
00725     XtSetArg(args[ac], XmNfontList, 
00726         CONVERT(_sliceBulletinBoard, "-*-helvetica-bold-r-*-*-*-100-*-*-*-*-iso8859-1", 
00727         XmRFontList, 0, &argok)); if (argok) ac++;
00728     XtSetArg(args[ac], XmNbackground, 
00729         CONVERT(_sliceBulletinBoard, "gray86", 
00730         XmRPixel, 0, &argok)); if (argok) ac++;
00731     _label3 = XmCreateLabel(_sliceBulletinBoard,
00732         "label3",
00733         args, 
00734         ac);
00735     XtManageChild(_label3);
00736     
00737     ac = 0;
00738     XtSetArg(args[ac], XmNlabelString, 
00739         CONVERT(_sliceBulletinBoard, "Color Map Range", 
00740         XmRXmString, 0, &argok)); if (argok) ac++;
00741     XtSetArg(args[ac], XmNx, 40); ac++;
00742     XtSetArg(args[ac], XmNy, 400); ac++;
00743     XtSetArg(args[ac], XmNwidth, 140); ac++;
00744     XtSetArg(args[ac], XmNheight, 30); ac++;
00745     XtSetArg(args[ac], XmNfontList, 
00746         CONVERT(_sliceBulletinBoard, "-*-helvetica-bold-r-*-*-*-100-*-*-*-*-iso8859-1", 
00747         XmRFontList, 0, &argok)); if (argok) ac++;
00748     XtSetArg(args[ac], XmNbackground, 
00749         CONVERT(_sliceBulletinBoard, "gray86", 
00750         XmRPixel, 0, &argok)); if (argok) ac++;
00751     _label10 = XmCreateLabel(_sliceBulletinBoard,
00752         "label10",
00753         args, 
00754         ac);
00755     XtManageChild(_label10);
00756     
00757     ac = 0;
00758     XtSetArg(args[ac], XmNfontList, 
00759         CONVERT(_sliceBulletinBoard, "-*-helvetica-bold-o-*-*-*-120-*-*-*-*-iso8859-1", 
00760         XmRFontList, 0, &argok)); if (argok) ac++;
00761     XtSetArg(args[ac], XmNlabelString, 
00762         CONVERT(_sliceBulletinBoard, "Slice Tool", 
00763         XmRXmString, 0, &argok)); if (argok) ac++;
00764     XtSetArg(args[ac], XmNx, 20); ac++;
00765     XtSetArg(args[ac], XmNy, 10); ac++;
00766     XtSetArg(args[ac], XmNwidth, 170); ac++;
00767     XtSetArg(args[ac], XmNheight, 30); ac++;
00768     XtSetArg(args[ac], XmNbackground, 
00769         CONVERT(_sliceBulletinBoard, "gray86", 
00770         XmRPixel, 0, &argok)); if (argok) ac++;
00771     _sliceTitleLabel = XmCreateLabel(_sliceBulletinBoard,
00772         "sliceTitleLabel",
00773         args, 
00774         ac);
00775     XtManageChild(_sliceTitleLabel);
00776     
00777     ac = 0;
00778     XtSetArg(args[ac], XmNx, 70); ac++;
00779     XtSetArg(args[ac], XmNy, 180); ac++;
00780     XtSetArg(args[ac], XmNwidth, 76); ac++;
00781     XtSetArg(args[ac], XmNheight, 30); ac++;
00782     XtSetArg(args[ac], XmNfontList, 
00783         CONVERT(_sliceBulletinBoard, "-*-helvetica-bold-r-*-*-*-100-*-*-*-*-iso8859-1", 
00784         XmRFontList, 0, &argok)); if (argok) ac++;
00785     XtSetArg(args[ac], XmNbackground, 
00786         CONVERT(_sliceBulletinBoard, "gray86", 
00787         XmRPixel, 0, &argok)); if (argok) ac++;
00788     _sliceValueTextField = XmCreateTextField(_sliceBulletinBoard,
00789         "sliceValueTextField",
00790         args, 
00791         ac);
00792     XtManageChild(_sliceValueTextField);
00793     _clientDataStructs[cdc].object = this;
00794     _clientDataStructs[cdc].client_data = (XtPointer)0;
00795     XtAddCallback(_sliceValueTextField,
00796         XmNactivateCallback,
00797         MainWindow::sliceValueTextFieldActivateCallback,
00798         (XtPointer)&_clientDataStructs[cdc]);
00799     cdc++;
00800     
00801     ac = 0;
00802     XtSetArg(args[ac], XmNlabelString, 
00803         CONVERT(_sliceBulletinBoard, "Slice Location Value", 
00804         XmRXmString, 0, &argok)); if (argok) ac++;
00805     XtSetArg(args[ac], XmNx, 40); ac++;
00806     XtSetArg(args[ac], XmNy, 150); ac++;
00807     XtSetArg(args[ac], XmNwidth, 140); ac++;
00808     XtSetArg(args[ac], XmNheight, 30); ac++;
00809     XtSetArg(args[ac], XmNfontList, 
00810         CONVERT(_sliceBulletinBoard, "-*-helvetica-bold-r-*-*-*-100-*-*-*-*-iso8859-1", 
00811         XmRFontList, 0, &argok)); if (argok) ac++;
00812     XtSetArg(args[ac], XmNbackground, 
00813         CONVERT(_sliceBulletinBoard, "gray86", 
00814         XmRPixel, 0, &argok)); if (argok) ac++;
00815     _label6 = XmCreateLabel(_sliceBulletinBoard,
00816         "label6",
00817         args, 
00818         ac);
00819     XtManageChild(_label6);
00820     
00821     ac = 0;
00822     XtSetArg(args[ac], XmNlabelString, 
00823         CONVERT(_sliceBulletinBoard, "Min:0.0  Max:0.0", 
00824         XmRXmString, 0, &argok)); if (argok) ac++;
00825     XtSetArg(args[ac], XmNx, 20); ac++;
00826     XtSetArg(args[ac], XmNy, 430); ac++;
00827     XtSetArg(args[ac], XmNwidth, 180); ac++;
00828     XtSetArg(args[ac], XmNheight, 27); ac++;
00829     XtSetArg(args[ac], XmNfontList, 
00830         CONVERT(_sliceBulletinBoard, "-*-helvetica-bold-r-*-*-*-100-*-*-*-*-iso8859-1", 
00831         XmRFontList, 0, &argok)); if (argok) ac++;
00832     XtSetArg(args[ac], XmNbackground, 
00833         CONVERT(_sliceBulletinBoard, "gray86", 
00834         XmRPixel, 0, &argok)); if (argok) ac++;
00835     _sliceColorRangeLabel = XmCreateLabel(_sliceBulletinBoard,
00836         "sliceColorRangeLabel",
00837         args, 
00838         ac);
00839     XtManageChild(_sliceColorRangeLabel);
00840     
00841     ac = 0;
00842     XtSetArg(args[ac], XmNresizePolicy, XmRESIZE_GROW); ac++;
00843     XtSetArg(args[ac], XmNx, 3); ac++;
00844     XtSetArg(args[ac], XmNy, 3); ac++;
00845     XtSetArg(args[ac], XmNwidth, 214); ac++;
00846     XtSetArg(args[ac], XmNheight, 510); ac++;
00847     XtSetArg(args[ac], XmNbackground, 
00848         CONVERT(_frame1, "gray86", 
00849         XmRPixel, 0, &argok)); if (argok) ac++;
00850     _isoBulletinBoard = XmCreateBulletinBoard(_frame1,
00851         "isoBulletinBoard",
00852         args, 
00853         ac);
00854     
00855     ac = 0;
00856     XtSetArg(args[ac], XmNx, 70); ac++;
00857     XtSetArg(args[ac], XmNy, 310); ac++;
00858     XtSetArg(args[ac], XmNwidth, 70); ac++;
00859     XtSetArg(args[ac], XmNheight, 30); ac++;
00860     XtSetArg(args[ac], XmNfontList, 
00861         CONVERT(_isoBulletinBoard, "-*-helvetica-bold-r-*-*-*-100-*-*-*-*-iso8859-1", 
00862         XmRFontList, 0, &argok)); if (argok) ac++;
00863     XtSetArg(args[ac], XmNbackground, 
00864         CONVERT(_isoBulletinBoard, "gray86", 
00865         XmRPixel, 0, &argok)); if (argok) ac++;
00866     _isoTransparencyTextField = XmCreateTextField(_isoBulletinBoard,
00867         "isoTransparencyTextField",
00868         args, 
00869         ac);
00870     XtManageChild(_isoTransparencyTextField);
00871     _clientDataStructs[cdc].object = this;
00872     _clientDataStructs[cdc].client_data = (XtPointer)0;
00873     XtAddCallback(_isoTransparencyTextField,
00874         XmNactivateCallback,
00875         MainWindow::IsoTransparencyTextFieldActivateCallback,
00876         (XtPointer)&_clientDataStructs[cdc]);
00877     cdc++;
00878     
00879     ac = 0;
00880     XtSetArg(args[ac], XmNlabelString, 
00881         CONVERT(_isoBulletinBoard, "Min: 0.0  Max:0.0", 
00882         XmRXmString, 0, &argok)); if (argok) ac++;
00883     XtSetArg(args[ac], XmNx, 25); ac++;
00884     XtSetArg(args[ac], XmNy, 430); ac++;
00885     XtSetArg(args[ac], XmNwidth, 160); ac++;
00886     XtSetArg(args[ac], XmNheight, 30); ac++;
00887     XtSetArg(args[ac], XmNfontList, 
00888         CONVERT(_isoBulletinBoard, "-*-helvetica-bold-r-*-*-*-100-*-*-*-*-iso8859-1", 
00889         XmRFontList, 0, &argok)); if (argok) ac++;
00890     XtSetArg(args[ac], XmNbackground, 
00891         CONVERT(_isoBulletinBoard, "gray86", 
00892         XmRPixel, 0, &argok)); if (argok) ac++;
00893     _isoColorRangeLabel = XmCreateLabel(_isoBulletinBoard,
00894         "isoColorRangeLabel",
00895         args, 
00896         ac);
00897     XtManageChild(_isoColorRangeLabel);
00898     
00899     ac = 0;
00900     XtSetArg(args[ac], XmNlabelString, 
00901         CONVERT(_isoBulletinBoard, "Color Map Range", 
00902         XmRXmString, 0, &argok)); if (argok) ac++;
00903     XtSetArg(args[ac], XmNx, 25); ac++;
00904     XtSetArg(args[ac], XmNy, 400); ac++;
00905     XtSetArg(args[ac], XmNwidth, 160); ac++;
00906     XtSetArg(args[ac], XmNheight, 30); ac++;
00907     XtSetArg(args[ac], XmNfontList, 
00908         CONVERT(_isoBulletinBoard, "-*-helvetica-bold-r-*-*-*-100-*-*-*-*-iso8859-1", 
00909         XmRFontList, 0, &argok)); if (argok) ac++;
00910     XtSetArg(args[ac], XmNbackground, 
00911         CONVERT(_isoBulletinBoard, "gray86", 
00912         XmRPixel, 0, &argok)); if (argok) ac++;
00913     _label5 = XmCreateLabel(_isoBulletinBoard,
00914         "label5",
00915         args, 
00916         ac);
00917     XtManageChild(_label5);
00918     
00919     ac = 0;
00920     XtSetArg(args[ac], XmNlabelString, 
00921         CONVERT(_isoBulletinBoard, "Min: 0.0  Max:0.0", 
00922         XmRXmString, 0, &argok)); if (argok) ac++;
00923     XtSetArg(args[ac], XmNx, 20); ac++;
00924     XtSetArg(args[ac], XmNy, 100); ac++;
00925     XtSetArg(args[ac], XmNwidth, 170); ac++;
00926     XtSetArg(args[ac], XmNheight, 30); ac++;
00927     XtSetArg(args[ac], XmNfontList, 
00928         CONVERT(_isoBulletinBoard, "-*-helvetica-bold-r-*-*-*-100-*-*-*-*-iso8859-1", 
00929         XmRFontList, 0, &argok)); if (argok) ac++;
00930     XtSetArg(args[ac], XmNbackground, 
00931         CONVERT(_isoBulletinBoard, "gray86", 
00932         XmRPixel, 0, &argok)); if (argok) ac++;
00933     _isoValueRangeLabel = XmCreateLabel(_isoBulletinBoard,
00934         "isoValueRangeLabel",
00935         args, 
00936         ac);
00937     XtManageChild(_isoValueRangeLabel);
00938     
00939     ac = 0;
00940     XtSetArg(args[ac], XmNlabelString, 
00941         CONVERT(_isoBulletinBoard, "Transparency", 
00942         XmRXmString, 0, &argok)); if (argok) ac++;
00943     XtSetArg(args[ac], XmNx, 50); ac++;
00944     XtSetArg(args[ac], XmNy, 280); ac++;
00945     XtSetArg(args[ac], XmNwidth, 109); ac++;
00946     XtSetArg(args[ac], XmNheight, 26); ac++;
00947     XtSetArg(args[ac], XmNfontList, 
00948         CONVERT(_isoBulletinBoard, "-*-helvetica-bold-r-*-*-*-100-*-*-*-*-iso8859-1", 
00949         XmRFontList, 0, &argok)); if (argok) ac++;
00950     XtSetArg(args[ac], XmNbackground, 
00951         CONVERT(_isoBulletinBoard, "gray86", 
00952         XmRPixel, 0, &argok)); if (argok) ac++;
00953     _label20 = XmCreateLabel(_isoBulletinBoard,
00954         "label20",
00955         args, 
00956         ac);
00957     XtManageChild(_label20);
00958     
00959     ac = 0;
00960     XtSetArg(args[ac], XmNlabelString, 
00961         CONVERT(_isoBulletinBoard, "Iso Value Range", 
00962         XmRXmString, 0, &argok)); if (argok) ac++;
00963     XtSetArg(args[ac], XmNx, 50); ac++;
00964     XtSetArg(args[ac], XmNy, 70); ac++;
00965     XtSetArg(args[ac], XmNwidth, 109); ac++;
00966     XtSetArg(args[ac], XmNheight, 26); ac++;
00967     XtSetArg(args[ac], XmNfontList, 
00968         CONVERT(_isoBulletinBoard, "-*-helvetica-bold-r-*-*-*-100-*-*-*-*-iso8859-1", 
00969         XmRFontList, 0, &argok)); if (argok) ac++;
00970     XtSetArg(args[ac], XmNbackground, 
00971         CONVERT(_isoBulletinBoard, "gray86", 
00972         XmRPixel, 0, &argok)); if (argok) ac++;
00973     _label19 = XmCreateLabel(_isoBulletinBoard,
00974         "label19",
00975         args, 
00976         ac);
00977     XtManageChild(_label19);
00978     
00979     ac = 0;
00980     XtSetArg(args[ac], XmNalignment, XmALIGNMENT_CENTER); ac++;
00981     XtSetArg(args[ac], XmNfontList, 
00982         CONVERT(_isoBulletinBoard, "-*-helvetica-bold-o-*-*-*-120-*-*-*-*-iso8859-1;-*-*-medium-r-*-*-*-*-*-*-*-*-iso8859-1:", 
00983         XmRFontList, 0, &argok)); if (argok) ac++;
00984     XtSetArg(args[ac], XmNlabelString, 
00985         CONVERT(_isoBulletinBoard, "Iso Tool", 
00986         XmRXmString, 0, &argok)); if (argok) ac++;
00987     XtSetArg(args[ac], XmNx, 20); ac++;
00988     XtSetArg(args[ac], XmNy, 10); ac++;
00989     XtSetArg(args[ac], XmNwidth, 170); ac++;
00990     XtSetArg(args[ac], XmNheight, 30); ac++;
00991     XtSetArg(args[ac], XmNbackground, 
00992         CONVERT(_isoBulletinBoard, "gray86", 
00993         XmRPixel, 0, &argok)); if (argok) ac++;
00994     _isoTitleLabel = XmCreateLabel(_isoBulletinBoard,
00995         "isoTitleLabel",
00996         args, 
00997         ac);
00998     XtManageChild(_isoTitleLabel);
00999     
01000     ac = 0;
01001     XtSetArg(args[ac], XmNlabelString, 
01002         CONVERT(_isoBulletinBoard, "Iso Value", 
01003         XmRXmString, 0, &argok)); if (argok) ac++;
01004     XtSetArg(args[ac], XmNx, 30); ac++;
01005     XtSetArg(args[ac], XmNy, 170); ac++;
01006     XtSetArg(args[ac], XmNwidth, 70); ac++;
01007     XtSetArg(args[ac], XmNheight, 30); ac++;
01008     XtSetArg(args[ac], XmNfontList, 
01009         CONVERT(_isoBulletinBoard, "-*-helvetica-bold-r-*-*-*-100-*-*-*-*-iso8859-1", 
01010         XmRFontList, 0, &argok)); if (argok) ac++;
01011     XtSetArg(args[ac], XmNbackground, 
01012         CONVERT(_isoBulletinBoard, "gray86", 
01013         XmRPixel, 0, &argok)); if (argok) ac++;
01014     _label17 = XmCreateLabel(_isoBulletinBoard,
01015         "label17",
01016         args, 
01017         ac);
01018     XtManageChild(_label17);
01019     
01020     ac = 0;
01021     XtSetArg(args[ac], XmNorientation, XmHORIZONTAL); ac++;
01022     XtSetArg(args[ac], XmNshowValue, True); ac++;
01023     XtSetArg(args[ac], XmNx, 20); ac++;
01024     XtSetArg(args[ac], XmNy, 210); ac++;
01025     XtSetArg(args[ac], XmNwidth, 171); ac++;
01026     XtSetArg(args[ac], XmNheight, 20); ac++;
01027     XtSetArg(args[ac], XmNfontList, 
01028         CONVERT(_isoBulletinBoard, "-*-helvetica-bold-r-*-*-*-100-*-*-*-*-iso8859-1", 
01029         XmRFontList, 0, &argok)); if (argok) ac++;
01030     XtSetArg(args[ac], XmNbackground, 
01031         CONVERT(_isoBulletinBoard, "gray86", 
01032         XmRPixel, 0, &argok)); if (argok) ac++;
01033     _isoIsoValueScale = XmCreateScale(_isoBulletinBoard,
01034         "isoIsoValueScale",
01035         args, 
01036         ac);
01037     XtManageChild(_isoIsoValueScale);
01038     _clientDataStructs[cdc].object = this;
01039     _clientDataStructs[cdc].client_data = (XtPointer)0;
01040     XtAddCallback(_isoIsoValueScale,
01041         XmNvalueChangedCallback,
01042         MainWindow::isoValueScaleChangedCallbackCallback,
01043         (XtPointer)&_clientDataStructs[cdc]);
01044     cdc++;
01045     
01046     ac = 0;
01047     XtSetArg(args[ac], XmNx, 100); ac++;
01048     XtSetArg(args[ac], XmNy, 170); ac++;
01049     XtSetArg(args[ac], XmNwidth, 80); ac++;
01050     XtSetArg(args[ac], XmNheight, 30); ac++;
01051     XtSetArg(args[ac], XmNfontList, 
01052         CONVERT(_isoBulletinBoard, "-*-helvetica-bold-r-*-*-*-100-*-*-*-*-iso8859-1", 
01053         XmRFontList, 0, &argok)); if (argok) ac++;
01054     XtSetArg(args[ac], XmNbackground, 
01055         CONVERT(_isoBulletinBoard, "gray86", 
01056         XmRPixel, 0, &argok)); if (argok) ac++;
01057     _isoValueTextField = XmCreateTextField(_isoBulletinBoard,
01058         "isoValueTextField",
01059         args, 
01060         ac);
01061     XtManageChild(_isoValueTextField);
01062     _clientDataStructs[cdc].object = this;
01063     _clientDataStructs[cdc].client_data = (XtPointer)0;
01064     XtAddCallback(_isoValueTextField,
01065         XmNactivateCallback,
01066         MainWindow::IsoValueTextFieldActivateCallback,
01067         (XtPointer)&_clientDataStructs[cdc]);
01068     cdc++;
01069     
01070     ac = 0;
01071     XtSetArg(args[ac], XmNresizePolicy, XmRESIZE_GROW); ac++;
01072     XtSetArg(args[ac], XmNx, 3); ac++;
01073     XtSetArg(args[ac], XmNy, 3); ac++;
01074     XtSetArg(args[ac], XmNwidth, 214); ac++;
01075     XtSetArg(args[ac], XmNheight, 510); ac++;
01076     XtSetArg(args[ac], XmNbackground, 
01077         CONVERT(_frame1, "gray86", 
01078         XmRPixel, 0, &argok)); if (argok) ac++;
01079     _pointBulletinBoard = XmCreateBulletinBoard(_frame1,
01080         "pointBulletinBoard",
01081         args, 
01082         ac);
01083     
01084     ac = 0;
01085     XtSetArg(args[ac], XmNlabelString, 
01086         CONVERT(_pointBulletinBoard, "Min: 0.0  Max:0.0", 
01087         XmRXmString, 0, &argok)); if (argok) ac++;
01088     XtSetArg(args[ac], XmNx, 20); ac++;
01089     XtSetArg(args[ac], XmNy, 450); ac++;
01090     XtSetArg(args[ac], XmNwidth, 170); ac++;
01091     XtSetArg(args[ac], XmNheight, 30); ac++;
01092     XtSetArg(args[ac], XmNfontList, 
01093         CONVERT(_pointBulletinBoard, "-*-helvetica-bold-r-*-*-*-100-*-*-*-*-iso8859-1", 
01094         XmRFontList, 0, &argok)); if (argok) ac++;
01095     XtSetArg(args[ac], XmNbackground, 
01096         CONVERT(_pointBulletinBoard, "gray86", 
01097         XmRPixel, 0, &argok)); if (argok) ac++;
01098     _pointColorRangeLabel = XmCreateLabel(_pointBulletinBoard,
01099         "pointColorRangeLabel",
01100         args, 
01101         ac);
01102     XtManageChild(_pointColorRangeLabel);
01103     
01104     ac = 0;
01105     XtSetArg(args[ac], XmNlabelString, 
01106         CONVERT(_pointBulletinBoard, "Color Map Range", 
01107         XmRXmString, 0, &argok)); if (argok) ac++;
01108     XtSetArg(args[ac], XmNx, 20); ac++;
01109     XtSetArg(args[ac], XmNy, 420); ac++;
01110     XtSetArg(args[ac], XmNwidth, 170); ac++;
01111     XtSetArg(args[ac], XmNheight, 30); ac++;
01112     XtSetArg(args[ac], XmNfontList, 
01113         CONVERT(_pointBulletinBoard, "-*-helvetica-bold-r-*-*-*-100-*-*-*-*-iso8859-1", 
01114         XmRFontList, 0, &argok)); if (argok) ac++;
01115     XtSetArg(args[ac], XmNbackground, 
01116         CONVERT(_pointBulletinBoard, "gray86", 
01117         XmRPixel, 0, &argok)); if (argok) ac++;
01118     _label7 = XmCreateLabel(_pointBulletinBoard,
01119         "label7",
01120         args, 
01121         ac);
01122     XtManageChild(_label7);
01123     
01124     ac = 0;
01125     XtSetArg(args[ac], XmNlabelString, 
01126         CONVERT(_pointBulletinBoard, "Min: 0.0  Max:0.0", 
01127         XmRXmString, 0, &argok)); if (argok) ac++;
01128     XtSetArg(args[ac], XmNx, 20); ac++;
01129     XtSetArg(args[ac], XmNy, 90); ac++;
01130     XtSetArg(args[ac], XmNwidth, 170); ac++;
01131     XtSetArg(args[ac], XmNheight, 30); ac++;
01132     XtSetArg(args[ac], XmNfontList, 
01133         CONVERT(_pointBulletinBoard, "-*-helvetica-bold-r-*-*-*-100-*-*-*-*-iso8859-1", 
01134         XmRFontList, 0, &argok)); if (argok) ac++;
01135     XtSetArg(args[ac], XmNbackground, 
01136         CONVERT(_pointBulletinBoard, "gray86", 
01137         XmRPixel, 0, &argok)); if (argok) ac++;
01138     _pointValueRangeLabel = XmCreateLabel(_pointBulletinBoard,
01139         "pointValueRangeLabel",
01140         args, 
01141         ac);
01142     XtManageChild(_pointValueRangeLabel);
01143     
01144     ac = 0;
01145     XtSetArg(args[ac], XmNlabelString, 
01146         CONVERT(_pointBulletinBoard, "Data Value Range", 
01147         XmRXmString, 0, &argok)); if (argok) ac++;
01148     XtSetArg(args[ac], XmNx, 50); ac++;
01149     XtSetArg(args[ac], XmNy, 60); ac++;
01150     XtSetArg(args[ac], XmNwidth, 109); ac++;
01151     XtSetArg(args[ac], XmNheight, 26); ac++;
01152     XtSetArg(args[ac], XmNfontList, 
01153         CONVERT(_pointBulletinBoard, "-*-helvetica-bold-r-*-*-*-100-*-*-*-*-iso8859-1", 
01154         XmRFontList, 0, &argok)); if (argok) ac++;
01155     XtSetArg(args[ac], XmNbackground, 
01156         CONVERT(_pointBulletinBoard, "gray86", 
01157         XmRPixel, 0, &argok)); if (argok) ac++;
01158     _label9 = XmCreateLabel(_pointBulletinBoard,
01159         "label9",
01160         args, 
01161         ac);
01162     XtManageChild(_label9);
01163     
01164     ac = 0;
01165     XtSetArg(args[ac], XmNalignment, XmALIGNMENT_CENTER); ac++;
01166     XtSetArg(args[ac], XmNfontList, 
01167         CONVERT(_pointBulletinBoard, "-*-helvetica-bold-o-*-*-*-120-*-*-*-*-iso8859-1;-*-*-medium-r-*-*-*-*-*-*-*-*-iso8859-1:", 
01168         XmRFontList, 0, &argok)); if (argok) ac++;
01169     XtSetArg(args[ac], XmNlabelString, 
01170         CONVERT(_pointBulletinBoard, "Point Tool", 
01171         XmRXmString, 0, &argok)); if (argok) ac++;
01172     XtSetArg(args[ac], XmNx, 20); ac++;
01173     XtSetArg(args[ac], XmNy, 10); ac++;
01174     XtSetArg(args[ac], XmNwidth, 170); ac++;
01175     XtSetArg(args[ac], XmNheight, 30); ac++;
01176     XtSetArg(args[ac], XmNbackground, 
01177         CONVERT(_pointBulletinBoard, "gray86", 
01178         XmRPixel, 0, &argok)); if (argok) ac++;
01179     _pointTitleLabel = XmCreateLabel(_pointBulletinBoard,
01180         "pointTitleLabel",
01181         args, 
01182         ac);
01183     XtManageChild(_pointTitleLabel);
01184     
01185     ac = 0;
01186     XtSetArg(args[ac], XmNresizePolicy, XmRESIZE_GROW); ac++;
01187     XtSetArg(args[ac], XmNx, 3); ac++;
01188     XtSetArg(args[ac], XmNy, 3); ac++;
01189     XtSetArg(args[ac], XmNwidth, 214); ac++;
01190     XtSetArg(args[ac], XmNheight, 510); ac++;
01191     XtSetArg(args[ac], XmNbackground, 
01192         CONVERT(_frame1, "gray86", 
01193         XmRPixel, 0, &argok)); if (argok) ac++;
01194     _sphereBulletinBoard = XmCreateBulletinBoard(_frame1,
01195         "sphereBulletinBoard",
01196         args, 
01197         ac);
01198     
01199     ac = 0;
01200     XtSetArg(args[ac], XmNlabelString, 
01201         CONVERT(_sphereBulletinBoard, "Trace Number", 
01202         XmRXmString, 0, &argok)); if (argok) ac++;
01203     XtSetArg(args[ac], XmNx, 18); ac++;
01204     XtSetArg(args[ac], XmNy, 303); ac++;
01205     XtSetArg(args[ac], XmNwidth, 180); ac++;
01206     XtSetArg(args[ac], XmNheight, 30); ac++;
01207     XtSetArg(args[ac], XmNfontList, 
01208         CONVERT(_sphereBulletinBoard, "-*-helvetica-bold-r-*-*-*-100-*-*-*-*-iso8859-1", 
01209         XmRFontList, 0, &argok)); if (argok) ac++;
01210     XtSetArg(args[ac], XmNbackground, 
01211         CONVERT(_sphereBulletinBoard, "gray86", 
01212         XmRPixel, 0, &argok)); if (argok) ac++;
01213     _sphereToolTraceNumberLabel = XmCreateLabel(_sphereBulletinBoard,
01214         "sphereToolTraceNumberLabel",
01215         args, 
01216         ac);
01217     XtManageChild(_sphereToolTraceNumberLabel);
01218     
01219     ac = 0;
01220     XtSetArg(args[ac], XmNx, 68); ac++;
01221     XtSetArg(args[ac], XmNy, 337); ac++;
01222     XtSetArg(args[ac], XmNwidth, 80); ac++;
01223     XtSetArg(args[ac], XmNheight, 30); ac++;
01224     XtSetArg(args[ac], XmNfontList, 
01225         CONVERT(_sphereBulletinBoard, "-*-helvetica-bold-r-*-*-*-100-*-*-*-*-iso8859-1", 
01226         XmRFontList, 0, &argok)); if (argok) ac++;
01227     XtSetArg(args[ac], XmNbackground, 
01228         CONVERT(_sphereBulletinBoard, "gray86", 
01229         XmRPixel, 0, &argok)); if (argok) ac++;
01230     _sphereTraceNumberTextField = XmCreateTextField(_sphereBulletinBoard,
01231         "sphereTraceNumberTextField",
01232         args, 
01233         ac);
01234     XtManageChild(_sphereTraceNumberTextField);
01235     _clientDataStructs[cdc].object = this;
01236     _clientDataStructs[cdc].client_data = (XtPointer)0;
01237     XtAddCallback(_sphereTraceNumberTextField,
01238         XmNactivateCallback,
01239         MainWindow::sphereToolTraceNumTextFieldActivateCallback,
01240         (XtPointer)&_clientDataStructs[cdc]);
01241     cdc++;
01242     
01243     ac = 0;
01244     XtSetArg(args[ac], XmNlabelString, 
01245         CONVERT(_sphereBulletinBoard, "Resolution", 
01246         XmRXmString, 0, &argok)); if (argok) ac++;
01247     XtSetArg(args[ac], XmNx, 18); ac++;
01248     XtSetArg(args[ac], XmNy, 220); ac++;
01249     XtSetArg(args[ac], XmNwidth, 180); ac++;
01250     XtSetArg(args[ac], XmNheight, 30); ac++;
01251     XtSetArg(args[ac], XmNfontList, 
01252         CONVERT(_sphereBulletinBoard, "-*-helvetica-bold-r-*-*-*-100-*-*-*-*-iso8859-1", 
01253         XmRFontList, 0, &argok)); if (argok) ac++;
01254     XtSetArg(args[ac], XmNbackground, 
01255         CONVERT(_sphereBulletinBoard, "gray86", 
01256         XmRPixel, 0, &argok)); if (argok) ac++;
01257     _label21 = XmCreateLabel(_sphereBulletinBoard,
01258         "label21",
01259         args, 
01260         ac);
01261     XtManageChild(_label21);
01262     
01263     ac = 0;
01264     XtSetArg(args[ac], XmNlabelString, 
01265         CONVERT(_sphereBulletinBoard, "Radius", 
01266         XmRXmString, 0, &argok)); if (argok) ac++;
01267     XtSetArg(args[ac], XmNx, 54); ac++;
01268     XtSetArg(args[ac], XmNy, 140); ac++;
01269     XtSetArg(args[ac], XmNwidth, 109); ac++;
01270     XtSetArg(args[ac], XmNheight, 26); ac++;
01271     XtSetArg(args[ac], XmNfontList, 
01272         CONVERT(_sphereBulletinBoard, "-*-helvetica-bold-r-*-*-*-100-*-*-*-*-iso8859-1", 
01273         XmRFontList, 0, &argok)); if (argok) ac++;
01274     XtSetArg(args[ac], XmNbackground, 
01275         CONVERT(_sphereBulletinBoard, "gray86", 
01276         XmRPixel, 0, &argok)); if (argok) ac++;
01277     _label18 = XmCreateLabel(_sphereBulletinBoard,
01278         "label18",
01279         args, 
01280         ac);
01281     XtManageChild(_label18);
01282     
01283     ac = 0;
01284     XtSetArg(args[ac], XmNx, 68); ac++;
01285     XtSetArg(args[ac], XmNy, 250); ac++;
01286     XtSetArg(args[ac], XmNwidth, 80); ac++;
01287     XtSetArg(args[ac], XmNheight, 30); ac++;
01288     XtSetArg(args[ac], XmNfontList, 
01289         CONVERT(_sphereBulletinBoard, "-*-helvetica-bold-r-*-*-*-100-*-*-*-*-iso8859-1", 
01290         XmRFontList, 0, &argok)); if (argok) ac++;
01291     XtSetArg(args[ac], XmNbackground, 
01292         CONVERT(_sphereBulletinBoard, "gray86", 
01293         XmRPixel, 0, &argok)); if (argok) ac++;
01294     _sphereResTextField = XmCreateTextField(_sphereBulletinBoard,
01295         "sphereResTextField",
01296         args, 
01297         ac);
01298     XtManageChild(_sphereResTextField);
01299     _clientDataStructs[cdc].object = this;
01300     _clientDataStructs[cdc].client_data = (XtPointer)0;
01301     XtAddCallback(_sphereResTextField,
01302         XmNactivateCallback,
01303         MainWindow::sphereResTextFieldActivateCallback,
01304         (XtPointer)&_clientDataStructs[cdc]);
01305     cdc++;
01306     
01307     ac = 0;
01308     XtSetArg(args[ac], XmNx, 68); ac++;
01309     XtSetArg(args[ac], XmNy, 170); ac++;
01310     XtSetArg(args[ac], XmNwidth, 80); ac++;
01311     XtSetArg(args[ac], XmNheight, 30); ac++;
01312     XtSetArg(args[ac], XmNfontList, 
01313         CONVERT(_sphereBulletinBoard, "-*-helvetica-bold-r-*-*-*-100-*-*-*-*-iso8859-1", 
01314         XmRFontList, 0, &argok)); if (argok) ac++;
01315     XtSetArg(args[ac], XmNbackground, 
01316         CONVERT(_sphereBulletinBoard, "gray86", 
01317         XmRPixel, 0, &argok)); if (argok) ac++;
01318     _sphereRadiusTextField = XmCreateTextField(_sphereBulletinBoard,
01319         "sphereRadiusTextField",
01320         args, 
01321         ac);
01322     XtManageChild(_sphereRadiusTextField);
01323     _clientDataStructs[cdc].object = this;
01324     _clientDataStructs[cdc].client_data = (XtPointer)0;
01325     XtAddCallback(_sphereRadiusTextField,
01326         XmNactivateCallback,
01327         MainWindow::sphereRadiusTextFieldActivateCallback,
01328         (XtPointer)&_clientDataStructs[cdc]);
01329     cdc++;
01330     
01331     ac = 0;
01332     XtSetArg(args[ac], XmNlabelString, 
01333         CONVERT(_sphereBulletinBoard, "Min: 0.0  Max:0.0", 
01334         XmRXmString, 0, &argok)); if (argok) ac++;
01335     XtSetArg(args[ac], XmNx, 20); ac++;
01336     XtSetArg(args[ac], XmNy, 440); ac++;
01337     XtSetArg(args[ac], XmNwidth, 170); ac++;
01338     XtSetArg(args[ac], XmNheight, 30); ac++;
01339     XtSetArg(args[ac], XmNfontList, 
01340         CONVERT(_sphereBulletinBoard, "-*-helvetica-bold-r-*-*-*-100-*-*-*-*-iso8859-1", 
01341         XmRFontList, 0, &argok)); if (argok) ac++;
01342     XtSetArg(args[ac], XmNbackground, 
01343         CONVERT(_sphereBulletinBoard, "gray86", 
01344         XmRPixel, 0, &argok)); if (argok) ac++;
01345     _sphereColorRangeLabel = XmCreateLabel(_sphereBulletinBoard,
01346         "sphereColorRangeLabel",
01347         args, 
01348         ac);
01349     XtManageChild(_sphereColorRangeLabel);
01350     
01351     ac = 0;
01352     XtSetArg(args[ac], XmNlabelString, 
01353         CONVERT(_sphereBulletinBoard, "Color Map Range", 
01354         XmRXmString, 0, &argok)); if (argok) ac++;
01355     XtSetArg(args[ac], XmNx, 20); ac++;
01356     XtSetArg(args[ac], XmNy, 410); ac++;
01357     XtSetArg(args[ac], XmNwidth, 170); ac++;
01358     XtSetArg(args[ac], XmNheight, 30); ac++;
01359     XtSetArg(args[ac], XmNfontList, 
01360         CONVERT(_sphereBulletinBoard, "-*-helvetica-bold-r-*-*-*-100-*-*-*-*-iso8859-1", 
01361         XmRFontList, 0, &argok)); if (argok) ac++;
01362     XtSetArg(args[ac], XmNbackground, 
01363         CONVERT(_sphereBulletinBoard, "gray86", 
01364         XmRPixel, 0, &argok)); if (argok) ac++;
01365     _label11 = XmCreateLabel(_sphereBulletinBoard,
01366         "label11",
01367         args, 
01368         ac);
01369     XtManageChild(_label11);
01370     
01371     ac = 0;
01372     XtSetArg(args[ac], XmNlabelString, 
01373         CONVERT(_sphereBulletinBoard, "Min: 0.0  Max:0.0", 
01374         XmRXmString, 0, &argok)); if (argok) ac++;
01375     XtSetArg(args[ac], XmNx, 20); ac++;
01376     XtSetArg(args[ac], XmNy, 90); ac++;
01377     XtSetArg(args[ac], XmNwidth, 170); ac++;
01378     XtSetArg(args[ac], XmNheight, 30); ac++;
01379     XtSetArg(args[ac], XmNfontList, 
01380         CONVERT(_sphereBulletinBoard, "-*-helvetica-bold-r-*-*-*-100-*-*-*-*-iso8859-1", 
01381         XmRFontList, 0, &argok)); if (argok) ac++;
01382     XtSetArg(args[ac], XmNbackground, 
01383         CONVERT(_sphereBulletinBoard, "gray86", 
01384         XmRPixel, 0, &argok)); if (argok) ac++;
01385     _sphereValueRangeLabel = XmCreateLabel(_sphereBulletinBoard,
01386         "sphereValueRangeLabel",
01387         args, 
01388         ac);
01389     XtManageChild(_sphereValueRangeLabel);
01390     
01391     ac = 0;
01392     XtSetArg(args[ac], XmNlabelString, 
01393         CONVERT(_sphereBulletinBoard, "Data Value Range", 
01394         XmRXmString, 0, &argok)); if (argok) ac++;
01395     XtSetArg(args[ac], XmNx, 50); ac++;
01396     XtSetArg(args[ac], XmNy, 60); ac++;
01397     XtSetArg(args[ac], XmNwidth, 109); ac++;
01398     XtSetArg(args[ac], XmNheight, 26); ac++;
01399     XtSetArg(args[ac], XmNfontList, 
01400         CONVERT(_sphereBulletinBoard, "-*-helvetica-bold-r-*-*-*-100-*-*-*-*-iso8859-1", 
01401         XmRFontList, 0, &argok)); if (argok) ac++;
01402     XtSetArg(args[ac], XmNbackground, 
01403         CONVERT(_sphereBulletinBoard, "gray86", 
01404         XmRPixel, 0, &argok)); if (argok) ac++;
01405     _label8 = XmCreateLabel(_sphereBulletinBoard,
01406         "label8",
01407         args, 
01408         ac);
01409     XtManageChild(_label8);
01410     
01411     ac = 0;
01412     XtSetArg(args[ac], XmNalignment, XmALIGNMENT_CENTER); ac++;
01413     XtSetArg(args[ac], XmNfontList, 
01414         CONVERT(_sphereBulletinBoard, "-*-helvetica-bold-o-*-*-*-120-*-*-*-*-iso8859-1;-*-*-medium-r-*-*-*-*-*-*-*-*-iso8859-1:", 
01415         XmRFontList, 0, &argok)); if (argok) ac++;
01416     XtSetArg(args[ac], XmNlabelString, 
01417         CONVERT(_sphereBulletinBoard, "Sphere Tool", 
01418         XmRXmString, 0, &argok)); if (argok) ac++;
01419     XtSetArg(args[ac], XmNx, 20); ac++;
01420     XtSetArg(args[ac], XmNy, 10); ac++;
01421     XtSetArg(args[ac], XmNwidth, 170); ac++;
01422     XtSetArg(args[ac], XmNheight, 30); ac++;
01423     XtSetArg(args[ac], XmNbackground, 
01424         CONVERT(_sphereBulletinBoard, "gray86", 
01425         XmRPixel, 0, &argok)); if (argok) ac++;
01426     _sphereTitleLabel = XmCreateLabel(_sphereBulletinBoard,
01427         "sphereTitleLabel",
01428         args, 
01429         ac);
01430     XtManageChild(_sphereTitleLabel);
01431     
01432     ac = 0;
01433     XtSetArg(args[ac], XmNresizePolicy, XmRESIZE_GROW); ac++;
01434     XtSetArg(args[ac], XmNx, 3); ac++;
01435     XtSetArg(args[ac], XmNy, 3); ac++;
01436     XtSetArg(args[ac], XmNwidth, 214); ac++;
01437     XtSetArg(args[ac], XmNheight, 510); ac++;
01438     XtSetArg(args[ac], XmNbackground, 
01439         CONVERT(_frame1, "gray86", 
01440         XmRPixel, 0, &argok)); if (argok) ac++;
01441     _axesBulletinBoard = XmCreateBulletinBoard(_frame1,
01442         "axesBulletinBoard",
01443         args, 
01444         ac);
01445     
01446     ac = 0;
01447     XtSetArg(args[ac], XmNlabelString, 
01448         CONVERT(_axesBulletinBoard, "Z - Green", 
01449         XmRXmString, 0, &argok)); if (argok) ac++;
01450     XtSetArg(args[ac], XmNx, 55); ac++;
01451     XtSetArg(args[ac], XmNy, 168); ac++;
01452     XtSetArg(args[ac], XmNwidth, 109); ac++;
01453     XtSetArg(args[ac], XmNheight, 26); ac++;
01454     XtSetArg(args[ac], XmNfontList, 
01455         CONVERT(_axesBulletinBoard, "-*-helvetica-bold-r-*-*-*-100-*-*-*-*-iso8859-1", 
01456         XmRFontList, 0, &argok)); if (argok) ac++;
01457     XtSetArg(args[ac], XmNbackground, 
01458         CONVERT(_axesBulletinBoard, "gray86", 
01459         XmRPixel, 0, &argok)); if (argok) ac++;
01460     _axesLabel3 = XmCreateLabel(_axesBulletinBoard,
01461         "axesLabel3",
01462         args, 
01463         ac);
01464     XtManageChild(_axesLabel3);
01465     
01466     ac = 0;
01467     XtSetArg(args[ac], XmNlabelString, 
01468         CONVERT(_axesBulletinBoard, "Y - Yellow", 
01469         XmRXmString, 0, &argok)); if (argok) ac++;
01470     XtSetArg(args[ac], XmNx, 55); ac++;
01471     XtSetArg(args[ac], XmNy, 139); ac++;
01472     XtSetArg(args[ac], XmNwidth, 109); ac++;
01473     XtSetArg(args[ac], XmNheight, 26); ac++;
01474     XtSetArg(args[ac], XmNfontList, 
01475         CONVERT(_axesBulletinBoard, "-*-helvetica-bold-r-*-*-*-100-*-*-*-*-iso8859-1", 
01476         XmRFontList, 0, &argok)); if (argok) ac++;
01477     XtSetArg(args[ac], XmNbackground, 
01478         CONVERT(_axesBulletinBoard, "gray86", 
01479         XmRPixel, 0, &argok)); if (argok) ac++;
01480     _axesLabel2 = XmCreateLabel(_axesBulletinBoard,
01481         "axesLabel2",
01482         args, 
01483         ac);
01484     XtManageChild(_axesLabel2);
01485     
01486     ac = 0;
01487     XtSetArg(args[ac], XmNlabelString, 
01488         CONVERT(_axesBulletinBoard, "X - Red     ", 
01489         XmRXmString, 0, &argok)); if (argok) ac++;
01490     XtSetArg(args[ac], XmNx, 55); ac++;
01491     XtSetArg(args[ac], XmNy, 116); ac++;
01492     XtSetArg(args[ac], XmNwidth, 109); ac++;
01493     XtSetArg(args[ac], XmNheight, 22); ac++;
01494     XtSetArg(args[ac], XmNfontList, 
01495         CONVERT(_axesBulletinBoard, "-*-helvetica-bold-r-*-*-*-100-*-*-*-*-iso8859-1", 
01496         XmRFontList, 0, &argok)); if (argok) ac++;
01497     XtSetArg(args[ac], XmNbackground, 
01498         CONVERT(_axesBulletinBoard, "gray86", 
01499         XmRPixel, 0, &argok)); if (argok) ac++;
01500     _axesLabel1 = XmCreateLabel(_axesBulletinBoard,
01501         "axesLabel1",
01502         args, 
01503         ac);
01504     XtManageChild(_axesLabel1);
01505     
01506     ac = 0;
01507     XtSetArg(args[ac], XmNalignment, XmALIGNMENT_CENTER); ac++;
01508     XtSetArg(args[ac], XmNfontList, 
01509         CONVERT(_axesBulletinBoard, "-*-helvetica-bold-o-*-*-*-120-*-*-*-*-iso8859-1;-*-*-medium-r-*-*-*-*-*-*-*-*-iso8859-1:", 
01510         XmRFontList, 0, &argok)); if (argok) ac++;
01511     XtSetArg(args[ac], XmNlabelString, 
01512         CONVERT(_axesBulletinBoard, "Axes Tool", 
01513         XmRXmString, 0, &argok)); if (argok) ac++;
01514     XtSetArg(args[ac], XmNx, 20); ac++;
01515     XtSetArg(args[ac], XmNy, 10); ac++;
01516     XtSetArg(args[ac], XmNwidth, 170); ac++;
01517     XtSetArg(args[ac], XmNheight, 30); ac++;
01518     XtSetArg(args[ac], XmNbackground, 
01519         CONVERT(_axesBulletinBoard, "gray86", 
01520         XmRPixel, 0, &argok)); if (argok) ac++;
01521     _axesTitleLabel = XmCreateLabel(_axesBulletinBoard,
01522         "axesTitleLabel",
01523         args, 
01524         ac);
01525     XtManageChild(_axesTitleLabel);
01526     
01527     ac = 0;
01528     XtSetArg(args[ac], XmNlabelString, 
01529         CONVERT(_axesBulletinBoard, "Axes Length", 
01530         XmRXmString, 0, &argok)); if (argok) ac++;
01531     XtSetArg(args[ac], XmNx, 13); ac++;
01532     XtSetArg(args[ac], XmNy, 216); ac++;
01533     XtSetArg(args[ac], XmNwidth, 80); ac++;
01534     XtSetArg(args[ac], XmNheight, 32); ac++;
01535     XtSetArg(args[ac], XmNfontList, 
01536         CONVERT(_axesBulletinBoard, "-*-helvetica-bold-r-*-*-*-100-*-*-*-*-iso8859-1", 
01537         XmRFontList, 0, &argok)); if (argok) ac++;
01538     XtSetArg(args[ac], XmNbackground, 
01539         CONVERT(_axesBulletinBoard, "gray86", 
01540         XmRPixel, 0, &argok)); if (argok) ac++;
01541     _axesLenLabel = XmCreateLabel(_axesBulletinBoard,
01542         "axesLenLabel",
01543         args, 
01544         ac);
01545     XtManageChild(_axesLenLabel);
01546     
01547     ac = 0;
01548     XtSetArg(args[ac], XmNx, 100); ac++;
01549     XtSetArg(args[ac], XmNy, 216); ac++;
01550     XtSetArg(args[ac], XmNwidth, 76); ac++;
01551     XtSetArg(args[ac], XmNheight, 30); ac++;
01552     XtSetArg(args[ac], XmNfontList, 
01553         CONVERT(_axesBulletinBoard, "-*-helvetica-bold-r-*-*-*-100-*-*-*-*-iso8859-1", 
01554         XmRFontList, 0, &argok)); if (argok) ac++;
01555     XtSetArg(args[ac], XmNbackground, 
01556         CONVERT(_axesBulletinBoard, "gray86", 
01557         XmRPixel, 0, &argok)); if (argok) ac++;
01558     _axesLenTextField = XmCreateTextField(_axesBulletinBoard,
01559         "axesLenTextField",
01560         args, 
01561         ac);
01562     XtManageChild(_axesLenTextField);
01563     _clientDataStructs[cdc].object = this;
01564     _clientDataStructs[cdc].client_data = (XtPointer)0;
01565     XtAddCallback(_axesLenTextField,
01566         XmNactivateCallback,
01567         MainWindow::axesLenTextFieldActivateCallback,
01568         (XtPointer)&_clientDataStructs[cdc]);
01569     cdc++;
01570     
01571     ac = 0;
01572     XtSetArg(args[ac], XmNresizePolicy, XmRESIZE_GROW); ac++;
01573     XtSetArg(args[ac], XmNx, 3); ac++;
01574     XtSetArg(args[ac], XmNy, 3); ac++;
01575     XtSetArg(args[ac], XmNwidth, 214); ac++;
01576     XtSetArg(args[ac], XmNheight, 510); ac++;
01577     XtSetArg(args[ac], XmNbackground, 
01578         CONVERT(_frame1, "gray86", 
01579         XmRPixel, 0, &argok)); if (argok) ac++;
01580     _vectorFieldBulletinBoard = XmCreateBulletinBoard(_frame1,
01581         "vectorFieldBulletinBoard",
01582         args, 
01583         ac);
01584     
01585     ac = 0;
01586     XtSetArg(args[ac], XmNx, 65); ac++;
01587     XtSetArg(args[ac], XmNy, 301); ac++;
01588     XtSetArg(args[ac], XmNwidth, 80); ac++;
01589     XtSetArg(args[ac], XmNheight, 30); ac++;
01590     XtSetArg(args[ac], XmNfontList, 
01591         CONVERT(_vectorFieldBulletinBoard, "-*-helvetica-bold-r-*-*-*-100-*-*-*-*-iso8859-1", 
01592         XmRFontList, 0, &argok)); if (argok) ac++;
01593     XtSetArg(args[ac], XmNbackground, 
01594         CONVERT(_vectorFieldBulletinBoard, "gray86", 
01595         XmRPixel, 0, &argok)); if (argok) ac++;
01596     _vectorFieldTubeFacetsTextField = XmCreateTextField(_vectorFieldBulletinBoard,
01597         "vectorFieldTubeFacetsTextField",
01598         args, 
01599         ac);
01600     XtManageChild(_vectorFieldTubeFacetsTextField);
01601     _clientDataStructs[cdc].object = this;
01602     _clientDataStructs[cdc].client_data = (XtPointer)0;
01603     XtAddCallback(_vectorFieldTubeFacetsTextField,
01604         XmNactivateCallback,
01605         MainWindow::vectorFieldTubeFacetsTextFieldActivateCallback,
01606         (XtPointer)&_clientDataStructs[cdc]);
01607     cdc++;
01608     
01609     ac = 0;
01610     XtSetArg(args[ac], XmNlabelString, 
01611         CONVERT(_vectorFieldBulletinBoard, "Tube Facets:", 
01612         XmRXmString, 0, &argok)); if (argok) ac++;
01613     XtSetArg(args[ac], XmNx, 56); ac++;
01614     XtSetArg(args[ac], XmNy, 266); ac++;
01615     XtSetArg(args[ac], XmNwidth, 100); ac++;
01616     XtSetArg(args[ac], XmNheight, 31); ac++;
01617     XtSetArg(args[ac], XmNfontList, 
01618         CONVERT(_vectorFieldBulletinBoard, "-*-helvetica-bold-r-*-*-*-100-*-*-*-*-iso8859-1", 
01619         XmRFontList, 0, &argok)); if (argok) ac++;
01620     XtSetArg(args[ac], XmNbackground, 
01621         CONVERT(_vectorFieldBulletinBoard, "gray86", 
01622         XmRPixel, 0, &argok)); if (argok) ac++;
01623     _vectorFieldTubeFacetsLabel = XmCreateLabel(_vectorFieldBulletinBoard,
01624         "vectorFieldTubeFacetsLabel",
01625         args, 
01626         ac);
01627     XtManageChild(_vectorFieldTubeFacetsLabel);
01628     
01629     ac = 0;
01630     XtSetArg(args[ac], XmNx, 64); ac++;
01631     XtSetArg(args[ac], XmNy, 391); ac++;
01632     XtSetArg(args[ac], XmNwidth, 80); ac++;
01633     XtSetArg(args[ac], XmNheight, 30); ac++;
01634     XtSetArg(args[ac], XmNfontList, 
01635         CONVERT(_vectorFieldBulletinBoard, "-*-helvetica-bold-r-*-*-*-100-*-*-*-*-iso8859-1", 
01636         XmRFontList, 0, &argok)); if (argok) ac++;
01637     XtSetArg(args[ac], XmNbackground, 
01638         CONVERT(_vectorFieldBulletinBoard, "gray86", 
01639         XmRPixel, 0, &argok)); if (argok) ac++;
01640     _vectorFieldTubeRadiusTextField = XmCreateTextField(_vectorFieldBulletinBoard,
01641         "vectorFieldTubeRadiusTextField",
01642         args, 
01643         ac);
01644     _clientDataStructs[cdc].object = this;
01645     _clientDataStructs[cdc].client_data = (XtPointer)0;
01646     XtAddCallback(_vectorFieldTubeRadiusTextField,
01647         XmNactivateCallback,
01648         MainWindow::vectorFieldTubeRadiusTextFieldActivateCallback,
01649         (XtPointer)&_clientDataStructs[cdc]);
01650     cdc++;
01651     
01652     ac = 0;
01653     XtSetArg(args[ac], XmNlabelString, 
01654         CONVERT(_vectorFieldBulletinBoard, "Tube Radius:", 
01655         XmRXmString, 0, &argok)); if (argok) ac++;
01656     XtSetArg(args[ac], XmNx, 55); ac++;
01657     XtSetArg(args[ac], XmNy, 359); ac++;
01658     XtSetArg(args[ac], XmNwidth, 100); ac++;
01659     XtSetArg(args[ac], XmNheight, 31); ac++;
01660     XtSetArg(args[ac], XmNfontList, 
01661         CONVERT(_vectorFieldBulletinBoard, "-*-helvetica-bold-r-*-*-*-100-*-*-*-*-iso8859-1", 
01662         XmRFontList, 0, &argok)); if (argok) ac++;
01663     XtSetArg(args[ac], XmNbackground, 
01664         CONVERT(_vectorFieldBulletinBoard, "gray86", 
01665         XmRPixel, 0, &argok)); if (argok) ac++;
01666     _vectorFieldTubeRadiusLabel = XmCreateLabel(_vectorFieldBulletinBoard,
01667         "vectorFieldTubeRadiusLabel",
01668         args, 
01669         ac);
01670     
01671     ac = 0;
01672     XtSetArg(args[ac], XmNhighlightOnEnter, False); ac++;
01673     XtSetArg(args[ac], XmNlabelString, 
01674         CONVERT(_vectorFieldBulletinBoard, "Tube Vectors:", 
01675         XmRXmString, 0, &argok)); if (argok) ac++;
01676     XtSetArg(args[ac], XmNset, False); ac++;
01677     XtSetArg(args[ac], XmNindicatorOn, True); ac++;
01678     XtSetArg(args[ac], XmNx, 47); ac++;
01679     XtSetArg(args[ac], XmNy, 215); ac++;
01680     XtSetArg(args[ac], XmNwidth, 124); ac++;
01681     XtSetArg(args[ac], XmNheight, 30); ac++;
01682     XtSetArg(args[ac], XmNfontList, 
01683         CONVERT(_vectorFieldBulletinBoard, "-*-helvetica-bold-r-*-*-*-100-*-*-*-*-iso8859-1", 
01684         XmRFontList, 0, &argok)); if (argok) ac++;
01685     XtSetArg(args[ac], XmNbackground, 
01686         CONVERT(_vectorFieldBulletinBoard, "gray86", 
01687         XmRPixel, 0, &argok)); if (argok) ac++;
01688     _vectorParticleTubeVectorFlagToggleButton1 = XmCreateToggleButton(_vectorFieldBulletinBoard,
01689         "vectorParticleTubeVectorFlagToggleButton1",
01690         args, 
01691         ac);
01692     XtManageChild(_vectorParticleTubeVectorFlagToggleButton1);
01693     _clientDataStructs[cdc].object = this;
01694     _clientDataStructs[cdc].client_data = (XtPointer)0;
01695     XtAddCallback(_vectorParticleTubeVectorFlagToggleButton1,
01696         XmNvalueChangedCallback,
01697         MainWindow::vectorFieldTubeVectorsFlagChangedCallback,
01698         (XtPointer)&_clientDataStructs[cdc]);
01699     cdc++;
01700     
01701     ac = 0;
01702     XtSetArg(args[ac], XmNalignment, XmALIGNMENT_CENTER); ac++;
01703     XtSetArg(args[ac], XmNfontList, 
01704         CONVERT(_vectorFieldBulletinBoard, "-*-helvetica-bold-o-*-*-*-120-*-*-*-*-iso8859-1;-*-*-medium-r-*-*-*-*-*-*-*-*-iso8859-1:", 
01705         XmRFontList, 0, &argok)); if (argok) ac++;
01706     XtSetArg(args[ac], XmNlabelString, 
01707         CONVERT(_vectorFieldBulletinBoard, "Vector Field Tool", 
01708         XmRXmString, 0, &argok)); if (argok) ac++;
01709     XtSetArg(args[ac], XmNx, 22); ac++;
01710     XtSetArg(args[ac], XmNy, 10); ac++;
01711     XtSetArg(args[ac], XmNwidth, 170); ac++;
01712     XtSetArg(args[ac], XmNheight, 30); ac++;
01713     XtSetArg(args[ac], XmNbackground, 
01714         CONVERT(_vectorFieldBulletinBoard, "gray86", 
01715         XmRPixel, 0, &argok)); if (argok) ac++;
01716     _vectorFieldTitleLabel = XmCreateLabel(_vectorFieldBulletinBoard,
01717         "vectorFieldTitleLabel",
01718         args, 
01719         ac);
01720     XtManageChild(_vectorFieldTitleLabel);
01721     
01722     ac = 0;
01723     XtSetArg(args[ac], XmNlabelString, 
01724         CONVERT(_vectorFieldBulletinBoard, "Scale Factor:", 
01725         XmRXmString, 0, &argok)); if (argok) ac++;
01726     XtSetArg(args[ac], XmNx, 59); ac++;
01727     XtSetArg(args[ac], XmNy, 88); ac++;
01728     XtSetArg(args[ac], XmNwidth, 100); ac++;
01729     XtSetArg(args[ac], XmNheight, 31); ac++;
01730     XtSetArg(args[ac], XmNfontList, 
01731         CONVERT(_vectorFieldBulletinBoard, "-*-helvetica-bold-r-*-*-*-100-*-*-*-*-iso8859-1", 
01732         XmRFontList, 0, &argok)); if (argok) ac++;
01733     XtSetArg(args[ac], XmNbackground, 
01734         CONVERT(_vectorFieldBulletinBoard, "gray86", 
01735         XmRPixel, 0, &argok)); if (argok) ac++;
01736     _vectorFieldScaleFactorLabel = XmCreateLabel(_vectorFieldBulletinBoard,
01737         "vectorFieldScaleFactorLabel",
01738         args, 
01739         ac);
01740     XtManageChild(_vectorFieldScaleFactorLabel);
01741     
01742     ac = 0;
01743     XtSetArg(args[ac], XmNx, 69); ac++;
01744     XtSetArg(args[ac], XmNy, 125); ac++;
01745     XtSetArg(args[ac], XmNwidth, 80); ac++;
01746     XtSetArg(args[ac], XmNheight, 30); ac++;
01747     XtSetArg(args[ac], XmNfontList, 
01748         CONVERT(_vectorFieldBulletinBoard, "-*-helvetica-bold-r-*-*-*-100-*-*-*-*-iso8859-1", 
01749         XmRFontList, 0, &argok)); if (argok) ac++;
01750     XtSetArg(args[ac], XmNbackground, 
01751         CONVERT(_vectorFieldBulletinBoard, "gray86", 
01752         XmRPixel, 0, &argok)); if (argok) ac++;
01753     _vectorFieldScaleFactorTextField = XmCreateTextField(_vectorFieldBulletinBoard,
01754         "vectorFieldScaleFactorTextField",
01755         args, 
01756         ac);
01757     XtManageChild(_vectorFieldScaleFactorTextField);
01758     _clientDataStructs[cdc].object = this;
01759     _clientDataStructs[cdc].client_data = (XtPointer)0;
01760     XtAddCallback(_vectorFieldScaleFactorTextField,
01761         XmNactivateCallback,
01762         MainWindow::vectorFieldScaleFactorTextFieldActivateCallback,
01763         (XtPointer)&_clientDataStructs[cdc]);
01764     cdc++;
01765     
01766     ac = 0;
01767     XtSetArg(args[ac], XmNresizePolicy, XmRESIZE_GROW); ac++;
01768     XtSetArg(args[ac], XmNx, 3); ac++;
01769     XtSetArg(args[ac], XmNy, 3); ac++;
01770     XtSetArg(args[ac], XmNwidth, 214); ac++;
01771     XtSetArg(args[ac], XmNheight, 510); ac++;
01772     XtSetArg(args[ac], XmNbackground, 
01773         CONVERT(_frame1, "gray86", 
01774         XmRPixel, 0, &argok)); if (argok) ac++;
01775     _vectorParticleBulletinBoard = XmCreateBulletinBoard(_frame1,
01776         "vectorParticleBulletinBoard",
01777         args, 
01778         ac);
01779     
01780     ac = 0;
01781     XtSetArg(args[ac], XmNhighlightOnEnter, False); ac++;
01782     XtSetArg(args[ac], XmNlabelString, 
01783         CONVERT(_vectorParticleBulletinBoard, "Tube Vectors:", 
01784         XmRXmString, 0, &argok)); if (argok) ac++;
01785     XtSetArg(args[ac], XmNset, False); ac++;
01786     XtSetArg(args[ac], XmNindicatorOn, True); ac++;
01787     XtSetArg(args[ac], XmNx, 52); ac++;
01788     XtSetArg(args[ac], XmNy, 234); ac++;
01789     XtSetArg(args[ac], XmNwidth, 124); ac++;
01790     XtSetArg(args[ac], XmNheight, 30); ac++;
01791     XtSetArg(args[ac], XmNfontList, 
01792         CONVERT(_vectorParticleBulletinBoard, "-*-helvetica-bold-r-*-*-*-100-*-*-*-*-iso8859-1", 
01793         XmRFontList, 0, &argok)); if (argok) ac++;
01794     XtSetArg(args[ac], XmNbackground, 
01795         CONVERT(_vectorParticleBulletinBoard, "gray86", 
01796         XmRPixel, 0, &argok)); if (argok) ac++;
01797     _vectorParticleTubeVectorFlagToggleButton = XmCreateToggleButton(_vectorParticleBulletinBoard,
01798         "vectorParticleTubeVectorFlagToggleButton",
01799         args, 
01800         ac);
01801     XtManageChild(_vectorParticleTubeVectorFlagToggleButton);
01802     _clientDataStructs[cdc].object = this;
01803     _clientDataStructs[cdc].client_data = (XtPointer)0;
01804     XtAddCallback(_vectorParticleTubeVectorFlagToggleButton,
01805         XmNvalueChangedCallback,
01806         MainWindow::vectorParticleTubeVectorsFlagChangedCallback,
01807         (XtPointer)&_clientDataStructs[cdc]);
01808     cdc++;
01809     
01810     ac = 0;
01811     XtSetArg(args[ac], XmNx, 75); ac++;
01812     XtSetArg(args[ac], XmNy, 317); ac++;
01813     XtSetArg(args[ac], XmNwidth, 80); ac++;
01814     XtSetArg(args[ac], XmNheight, 30); ac++;
01815     XtSetArg(args[ac], XmNfontList, 
01816         CONVERT(_vectorParticleBulletinBoard, "-*-helvetica-bold-r-*-*-*-100-*-*-*-*-iso8859-1", 
01817         XmRFontList, 0, &argok)); if (argok) ac++;
01818     XtSetArg(args[ac], XmNbackground, 
01819         CONVERT(_vectorParticleBulletinBoard, "gray86", 
01820         XmRPixel, 0, &argok)); if (argok) ac++;
01821     _vectorParticleTubeFacetsTextField = XmCreateTextField(_vectorParticleBulletinBoard,
01822         "vectorParticleTubeFacetsTextField",
01823         args, 
01824         ac);
01825     XtManageChild(_vectorParticleTubeFacetsTextField);
01826     _clientDataStructs[cdc].object = this;
01827     _clientDataStructs[cdc].client_data = (XtPointer)0;
01828     XtAddCallback(_vectorParticleTubeFacetsTextField,
01829         XmNactivateCallback,
01830         MainWindow::vectorParticleTubeFacetsTextFieldActivateCallback,
01831         (XtPointer)&_clientDataStructs[cdc]);
01832     cdc++;
01833     
01834     ac = 0;
01835     XtSetArg(args[ac], XmNlabelString, 
01836         CONVERT(_vectorParticleBulletinBoard, "Tube Facets:", 
01837         XmRXmString, 0, &argok)); if (argok) ac++;
01838     XtSetArg(args[ac], XmNx, 66); ac++;
01839     XtSetArg(args[ac], XmNy, 284); ac++;
01840     XtSetArg(args[ac], XmNwidth, 100); ac++;
01841     XtSetArg(args[ac], XmNheight, 31); ac++;
01842     XtSetArg(args[ac], XmNfontList, 
01843         CONVERT(_vectorParticleBulletinBoard, "-*-helvetica-bold-r-*-*-*-100-*-*-*-*-iso8859-1", 
01844         XmRFontList, 0, &argok)); if (argok) ac++;
01845     XtSetArg(args[ac], XmNbackground, 
01846         CONVERT(_vectorParticleBulletinBoard, "gray86", 
01847         XmRPixel, 0, &argok)); if (argok) ac++;
01848     _vectorParticleTubeFacetsLabel = XmCreateLabel(_vectorParticleBulletinBoard,
01849         "vectorParticleTubeFacetsLabel",
01850         args, 
01851         ac);
01852     XtManageChild(_vectorParticleTubeFacetsLabel);
01853     
01854     ac = 0;
01855     XtSetArg(args[ac], XmNx, 75); ac++;
01856     XtSetArg(args[ac], XmNy, 389); ac++;
01857     XtSetArg(args[ac], XmNwidth, 80); ac++;
01858     XtSetArg(args[ac], XmNheight, 30); ac++;
01859     XtSetArg(args[ac], XmNfontList, 
01860         CONVERT(_vectorParticleBulletinBoard, "-*-helvetica-bold-r-*-*-*-100-*-*-*-*-iso8859-1", 
01861         XmRFontList, 0, &argok)); if (argok) ac++;
01862     XtSetArg(args[ac], XmNbackground, 
01863         CONVERT(_vectorParticleBulletinBoard, "gray86", 
01864         XmRPixel, 0, &argok)); if (argok) ac++;
01865     _vectorParticleTubeRadiusTextField = XmCreateTextField(_vectorParticleBulletinBoard,
01866         "vectorParticleTubeRadiusTextField",
01867         args, 
01868         ac);
01869     _clientDataStructs[cdc].object = this;
01870     _clientDataStructs[cdc].client_data = (XtPointer)0;
01871     XtAddCallback(_vectorParticleTubeRadiusTextField,
01872         XmNactivateCallback,
01873         MainWindow::vectorParticleTubeRadiusTextFieldActivateCallback,
01874         (XtPointer)&_clientDataStructs[cdc]);
01875     cdc++;
01876     
01877     ac = 0;
01878     XtSetArg(args[ac], XmNlabelString, 
01879         CONVERT(_vectorParticleBulletinBoard, "Tube Radius:", 
01880         XmRXmString, 0, &argok)); if (argok) ac++;
01881     XtSetArg(args[ac], XmNx, 65); ac++;
01882     XtSetArg(args[ac], XmNy, 359); ac++;
01883     XtSetArg(args[ac], XmNwidth, 100); ac++;
01884     XtSetArg(args[ac], XmNheight, 31); ac++;
01885     XtSetArg(args[ac], XmNfontList, 
01886         CONVERT(_vectorParticleBulletinBoard, "-*-helvetica-bold-r-*-*-*-100-*-*-*-*-iso8859-1", 
01887         XmRFontList, 0, &argok)); if (argok) ac++;
01888     XtSetArg(args[ac], XmNbackground, 
01889         CONVERT(_vectorParticleBulletinBoard, "gray86", 
01890         XmRPixel, 0, &argok)); if (argok) ac++;
01891     _vectorParticleTubeRadiusLabel = XmCreateLabel(_vectorParticleBulletinBoard,
01892         "vectorParticleTubeRadiusLabel",
01893         args, 
01894         ac);
01895     
01896     ac = 0;
01897     XtSetArg(args[ac], XmNx, 74); ac++;
01898     XtSetArg(args[ac], XmNy, 179); ac++;
01899     XtSetArg(args[ac], XmNwidth, 80); ac++;
01900     XtSetArg(args[ac], XmNheight, 30); ac++;
01901     XtSetArg(args[ac], XmNfontList, 
01902         CONVERT(_vectorParticleBulletinBoard, "-*-helvetica-bold-r-*-*-*-100-*-*-*-*-iso8859-1", 
01903         XmRFontList, 0, &argok)); if (argok) ac++;
01904     XtSetArg(args[ac], XmNbackground, 
01905         CONVERT(_vectorParticleBulletinBoard, "gray86", 
01906         XmRPixel, 0, &argok)); if (argok) ac++;
01907     _vectorParticleTraceNumberTextField = XmCreateTextField(_vectorParticleBulletinBoard,
01908         "vectorParticleTraceNumberTextField",
01909         args, 
01910         ac);
01911     XtManageChild(_vectorParticleTraceNumberTextField);
01912     _clientDataStructs[cdc].object = this;
01913     _clientDataStructs[cdc].client_data = (XtPointer)0;
01914     XtAddCallback(_vectorParticleTraceNumberTextField,
01915         XmNactivateCallback,
01916         MainWindow::vectorParticleTraceNumberTextFieldActivateCallback,
01917         (XtPointer)&_clientDataStructs[cdc]);
01918     cdc++;
01919     
01920     ac = 0;
01921     XtSetArg(args[ac], XmNlabelString, 
01922         CONVERT(_vectorParticleBulletinBoard, "Trace Number", 
01923         XmRXmString, 0, &argok)); if (argok) ac++;
01924     XtSetArg(args[ac], XmNx, 61); ac++;
01925     XtSetArg(args[ac], XmNy, 150); ac++;
01926     XtSetArg(args[ac], XmNwidth, 107); ac++;
01927     XtSetArg(args[ac], XmNheight, 33); ac++;
01928     XtSetArg(args[ac], XmNfontList, 
01929         CONVERT(_vectorParticleBulletinBoard, "-*-helvetica-bold-r-*-*-*-100-*-*-*-*-iso8859-1", 
01930         XmRFontList, 0, &argok)); if (argok) ac++;
01931     XtSetArg(args[ac], XmNbackground, 
01932         CONVERT(_vectorParticleBulletinBoard, "gray86", 
01933         XmRPixel, 0, &argok)); if (argok) ac++;
01934     _vectorParticleTraceNumberLabel = XmCreateLabel(_vectorParticleBulletinBoard,
01935         "vectorParticleTraceNumberLabel",
01936         args, 
01937         ac);
01938     XtManageChild(_vectorParticleTraceNumberLabel);
01939     
01940     ac = 0;
01941     XtSetArg(args[ac], XmNalignment, XmALIGNMENT_CENTER); ac++;
01942     XtSetArg(args[ac], XmNfontList, 
01943         CONVERT(_vectorParticleBulletinBoard, "-*-helvetica-bold-o-*-*-*-120-*-*-*-*-iso8859-1;-*-*-medium-r-*-*-*-*-*-*-*-*-iso8859-1:", 
01944         XmRFontList, 0, &argok)); if (argok) ac++;
01945     XtSetArg(args[ac], XmNlabelString, 
01946         CONVERT(_vectorParticleBulletinBoard, "Vector Particle Tool", 
01947         XmRXmString, 0, &argok)); if (argok) ac++;
01948     XtSetArg(args[ac], XmNx, 22); ac++;
01949     XtSetArg(args[ac], XmNy, 10); ac++;
01950     XtSetArg(args[ac], XmNwidth, 170); ac++;
01951     XtSetArg(args[ac], XmNheight, 30); ac++;
01952     XtSetArg(args[ac], XmNbackground, 
01953         CONVERT(_vectorParticleBulletinBoard, "gray86", 
01954         XmRPixel, 0, &argok)); if (argok) ac++;
01955     _vectorParticleTitleLabel = XmCreateLabel(_vectorParticleBulletinBoard,
01956         "vectorParticleTitleLabel",
01957         args, 
01958         ac);
01959     XtManageChild(_vectorParticleTitleLabel);
01960     
01961     ac = 0;
01962     XtSetArg(args[ac], XmNlabelString, 
01963         CONVERT(_vectorParticleBulletinBoard, "Scale Factor:", 
01964         XmRXmString, 0, &argok)); if (argok) ac++;
01965     XtSetArg(args[ac], XmNx, 64); ac++;
01966     XtSetArg(args[ac], XmNy, 69); ac++;
01967     XtSetArg(args[ac], XmNwidth, 100); ac++;
01968     XtSetArg(args[ac], XmNheight, 31); ac++;
01969     XtSetArg(args[ac], XmNfontList, 
01970         CONVERT(_vectorParticleBulletinBoard, "-*-helvetica-bold-r-*-*-*-100-*-*-*-*-iso8859-1", 
01971         XmRFontList, 0, &argok)); if (argok) ac++;
01972     XtSetArg(args[ac], XmNbackground, 
01973         CONVERT(_vectorParticleBulletinBoard, "gray86", 
01974         XmRPixel, 0, &argok)); if (argok) ac++;
01975     _vectorParticleScaleFactorLabel = XmCreateLabel(_vectorParticleBulletinBoard,
01976         "vectorParticleScaleFactorLabel",
01977         args, 
01978         ac);
01979     XtManageChild(_vectorParticleScaleFactorLabel);
01980     
01981     ac = 0;
01982     XtSetArg(args[ac], XmNx, 74); ac++;
01983     XtSetArg(args[ac], XmNy, 102); ac++;
01984     XtSetArg(args[ac], XmNwidth, 80); ac++;
01985     XtSetArg(args[ac], XmNheight, 30); ac++;
01986     XtSetArg(args[ac], XmNfontList, 
01987         CONVERT(_vectorParticleBulletinBoard, "-*-helvetica-bold-r-*-*-*-100-*-*-*-*-iso8859-1", 
01988         XmRFontList, 0, &argok)); if (argok) ac++;
01989     XtSetArg(args[ac], XmNbackground, 
01990         CONVERT(_vectorParticleBulletinBoard, "gray86", 
01991         XmRPixel, 0, &argok)); if (argok) ac++;
01992     _vectorParticleScaleFactorTextField = XmCreateTextField(_vectorParticleBulletinBoard,
01993         "vectorParticleScaleFactorTextField",
01994         args, 
01995         ac);
01996     XtManageChild(_vectorParticleScaleFactorTextField);
01997     _clientDataStructs[cdc].object = this;
01998     _clientDataStructs[cdc].client_data = (XtPointer)0;
01999     XtAddCallback(_vectorParticleScaleFactorTextField,
02000         XmNactivateCallback,
02001         MainWindow::vectorParticleScaleFactorTextFieldActivateCallback,
02002         (XtPointer)&_clientDataStructs[cdc]);
02003     cdc++;
02004     
02005     ac = 0;
02006     XtSetArg(args[ac], XmNresizePolicy, XmRESIZE_GROW); ac++;
02007     XtSetArg(args[ac], XmNx, 3); ac++;
02008     XtSetArg(args[ac], XmNy, 3); ac++;
02009     XtSetArg(args[ac], XmNwidth, 214); ac++;
02010     XtSetArg(args[ac], XmNheight, 510); ac++;
02011     XtSetArg(args[ac], XmNbackground, 
02012         CONVERT(_frame1, "gray86", 
02013         XmRPixel, 0, &argok)); if (argok) ac++;
02014     _particleLineTraceBulletinBoard = XmCreateBulletinBoard(_frame1,
02015         "particleLineTraceBulletinBoard",
02016         args, 
02017         ac);
02018     
02019     ac = 0;
02020     XtSetArg(args[ac], XmNhighlightOnEnter, False); ac++;
02021     XtSetArg(args[ac], XmNlabelString, 
02022         CONVERT(_particleLineTraceBulletinBoard, "Tube Vectors:", 
02023         XmRXmString, 0, &argok)); if (argok) ac++;
02024     XtSetArg(args[ac], XmNset, False); ac++;
02025     XtSetArg(args[ac], XmNindicatorOn, True); ac++;
02026     XtSetArg(args[ac], XmNx, 41); ac++;
02027     XtSetArg(args[ac], XmNy, 179); ac++;
02028     XtSetArg(args[ac], XmNwidth, 124); ac++;
02029     XtSetArg(args[ac], XmNheight, 30); ac++;
02030     XtSetArg(args[ac], XmNfontList, 
02031         CONVERT(_particleLineTraceBulletinBoard, "-*-helvetica-bold-r-*-*-*-100-*-*-*-*-iso8859-1", 
02032         XmRFontList, 0, &argok)); if (argok) ac++;
02033     XtSetArg(args[ac], XmNbackground, 
02034         CONVERT(_particleLineTraceBulletinBoard, "gray86", 
02035         XmRPixel, 0, &argok)); if (argok) ac++;
02036     _particleLineTraceTubeFlagToggleButton = XmCreateToggleButton(_particleLineTraceBulletinBoard,
02037         "particleLineTraceTubeFlagToggleButton",
02038         args, 
02039         ac);
02040     XtManageChild(_particleLineTraceTubeFlagToggleButton);
02041     _clientDataStructs[cdc].object = this;
02042     _clientDataStructs[cdc].client_data = (XtPointer)0;
02043     XtAddCallback(_particleLineTraceTubeFlagToggleButton,
02044         XmNvalueChangedCallback,
02045         MainWindow::particleLineTraceTubeFlagChangedActivateCallbackCallback,
02046         (XtPointer)&_clientDataStructs[cdc]);
02047     cdc++;
02048     
02049     ac = 0;
02050     XtSetArg(args[ac], XmNlabelString, 
02051         CONVERT(_particleLineTraceBulletinBoard, "Trace Number", 
02052         XmRXmString, 0, &argok)); if (argok) ac++;
02053     XtSetArg(args[ac], XmNx, 13); ac++;
02054     XtSetArg(args[ac], XmNy, 79); ac++;
02055     XtSetArg(args[ac], XmNwidth, 180); ac++;
02056     XtSetArg(args[ac], XmNheight, 30); ac++;
02057     XtSetArg(args[ac], XmNfontList, 
02058         CONVERT(_particleLineTraceBulletinBoard, "-*-helvetica-bold-r-*-*-*-100-*-*-*-*-iso8859-1", 
02059         XmRFontList, 0, &argok)); if (argok) ac++;
02060     XtSetArg(args[ac], XmNbackground, 
02061         CONVERT(_particleLineTraceBulletinBoard, "gray86", 
02062         XmRPixel, 0, &argok)); if (argok) ac++;
02063     _particleLineToolTraceNumberLabel = XmCreateLabel(_particleLineTraceBulletinBoard,
02064         "particleLineToolTraceNumberLabel",
02065         args, 
02066         ac);
02067     XtManageChild(_particleLineToolTraceNumberLabel);
02068     
02069     ac = 0;
02070     XtSetArg(args[ac], XmNx, 63); ac++;
02071     XtSetArg(args[ac], XmNy, 116); ac++;
02072     XtSetArg(args[ac], XmNwidth, 80); ac++;
02073     XtSetArg(args[ac], XmNheight, 30); ac++;
02074     XtSetArg(args[ac], XmNfontList, 
02075         CONVERT(_particleLineTraceBulletinBoard, "-*-helvetica-bold-r-*-*-*-100-*-*-*-*-iso8859-1", 
02076         XmRFontList, 0, &argok)); if (argok) ac++;
02077     XtSetArg(args[ac], XmNbackground, 
02078         CONVERT(_particleLineTraceBulletinBoard, "gray86", 
02079         XmRPixel, 0, &argok)); if (argok) ac++;
02080     _particleLineTraceNumberTextField = XmCreateTextField(_particleLineTraceBulletinBoard,
02081         "particleLineTraceNumberTextField",
02082         args, 
02083         ac);
02084     XtManageChild(_particleLineTraceNumberTextField);
02085     _clientDataStructs[cdc].object = this;
02086     _clientDataStructs[cdc].client_data = (XtPointer)0;
02087     XtAddCallback(_particleLineTraceNumberTextField,
02088         XmNactivateCallback,
02089         MainWindow::particleLineTraceNumTextFieldActivateCallback,
02090         (XtPointer)&_clientDataStructs[cdc]);
02091     cdc++;
02092     
02093     ac = 0;
02094     XtSetArg(args[ac], XmNlabelString, 
02095         CONVERT(_particleLineTraceBulletinBoard, "Resolution", 
02096         XmRXmString, 0, &argok)); if (argok) ac++;
02097     XtSetArg(args[ac], XmNx, 16); ac++;
02098     XtSetArg(args[ac], XmNy, 233); ac++;
02099     XtSetArg(args[ac], XmNwidth, 180); ac++;
02100     XtSetArg(args[ac], XmNheight, 30); ac++;
02101     XtSetArg(args[ac], XmNfontList, 
02102         CONVERT(_particleLineTraceBulletinBoard, "-*-helvetica-bold-r-*-*-*-100-*-*-*-*-iso8859-1", 
02103         XmRFontList, 0, &argok)); if (argok) ac++;
02104     XtSetArg(args[ac], XmNbackground, 
02105         CONVERT(_particleLineTraceBulletinBoard, "gray86", 
02106         XmRPixel, 0, &argok)); if (argok) ac++;
02107     _particleLineTraceToolTubeResolutionLabel = XmCreateLabel(_particleLineTraceBulletinBoard,
02108         "particleLineTraceToolTubeResolutionLabel",
02109         args, 
02110         ac);
02111     XtManageChild(_particleLineTraceToolTubeResolutionLabel);
02112     
02113     ac = 0;
02114     XtSetArg(args[ac], XmNlabelString, 
02115         CONVERT(_particleLineTraceBulletinBoard, "Radius", 
02116         XmRXmString, 0, &argok)); if (argok) ac++;
02117     XtSetArg(args[ac], XmNx, 52); ac++;
02118     XtSetArg(args[ac], XmNy, 307); ac++;
02119     XtSetArg(args[ac], XmNwidth, 109); ac++;
02120     XtSetArg(args[ac], XmNheight, 26); ac++;
02121     XtSetArg(args[ac], XmNfontList, 
02122         CONVERT(_particleLineTraceBulletinBoard, "-*-helvetica-bold-r-*-*-*-100-*-*-*-*-iso8859-1", 
02123         XmRFontList, 0, &argok)); if (argok) ac++;
02124     XtSetArg(args[ac], XmNbackground, 
02125         CONVERT(_particleLineTraceBulletinBoard, "gray86", 
02126         XmRPixel, 0, &argok)); if (argok) ac++;
02127     _particleLineTraceToolTubeRadiusLabel = XmCreateLabel(_particleLineTraceBulletinBoard,
02128         "particleLineTraceToolTubeRadiusLabel",
02129         args, 
02130         ac);
02131     XtManageChild(_particleLineTraceToolTubeRadiusLabel);
02132     
02133     ac = 0;
02134     XtSetArg(args[ac], XmNx, 63); ac++;
02135     XtSetArg(args[ac], XmNy, 263); ac++;
02136     XtSetArg(args[ac], XmNwidth, 80); ac++;
02137     XtSetArg(args[ac], XmNheight, 30); ac++;
02138     XtSetArg(args[ac], XmNfontList, 
02139         CONVERT(_particleLineTraceBulletinBoard, "-*-helvetica-bold-r-*-*-*-100-*-*-*-*-iso8859-1", 
02140         XmRFontList, 0, &argok)); if (argok) ac++;
02141     XtSetArg(args[ac], XmNbackground, 
02142         CONVERT(_particleLineTraceBulletinBoard, "gray86", 
02143         XmRPixel, 0, &argok)); if (argok) ac++;
02144     _particleLineTraceToolTubeResolutionTextField = XmCreateTextField(_particleLineTraceBulletinBoard,
02145         "particleLineTraceToolTubeResolutionTextField",
02146         args, 
02147         ac);
02148     XtManageChild(_particleLineTraceToolTubeResolutionTextField);
02149     _clientDataStructs[cdc].object = this;
02150     _clientDataStructs[cdc].client_data = (XtPointer)0;
02151     XtAddCallback(_particleLineTraceToolTubeResolutionTextField,
02152         XmNactivateCallback,
02153         MainWindow::sphereResTextFieldActivateCallback,
02154         (XtPointer)&_clientDataStructs[cdc]);
02155     cdc++;
02156     
02157     ac = 0;
02158     XtSetArg(args[ac], XmNx, 67); ac++;
02159     XtSetArg(args[ac], XmNy, 337); ac++;
02160     XtSetArg(args[ac], XmNwidth, 80); ac++;
02161     XtSetArg(args[ac], XmNheight, 30); ac++;
02162     XtSetArg(args[ac], XmNfontList, 
02163         CONVERT(_particleLineTraceBulletinBoard, "-*-helvetica-bold-r-*-*-*-100-*-*-*-*-iso8859-1", 
02164         XmRFontList, 0, &argok)); if (argok) ac++;
02165     XtSetArg(args[ac], XmNbackground, 
02166         CONVERT(_particleLineTraceBulletinBoard, "gray86", 
02167         XmRPixel, 0, &argok)); if (argok) ac++;
02168     _particleLineTraceToolTubeRadiusTextField = XmCreateTextField(_particleLineTraceBulletinBoard,
02169         "particleLineTraceToolTubeRadiusTextField",
02170         args, 
02171         ac);
02172     XtManageChild(_particleLineTraceToolTubeRadiusTextField);
02173     _clientDataStructs[cdc].object = this;
02174     _clientDataStructs[cdc].client_data = (XtPointer)0;
02175     XtAddCallback(_particleLineTraceToolTubeRadiusTextField,
02176         XmNactivateCallback,
02177         MainWindow::sphereRadiusTextFieldActivateCallback,
02178         (XtPointer)&_clientDataStructs[cdc]);
02179     cdc++;
02180     
02181     ac = 0;
02182     XtSetArg(args[ac], XmNalignment, XmALIGNMENT_CENTER); ac++;
02183     XtSetArg(args[ac], XmNfontList, 
02184         CONVERT(_particleLineTraceBulletinBoard, "-*-helvetica-bold-o-*-*-*-120-*-*-*-*-iso8859-1;-*-*-medium-r-*-*-*-*-*-*-*-*-iso8859-1:", 
02185         XmRFontList, 0, &argok)); if (argok) ac++;
02186     XtSetArg(args[ac], XmNlabelString, 
02187         CONVERT(_particleLineTraceBulletinBoard, "LineTrace Tool", 
02188         XmRXmString, 0, &argok)); if (argok) ac++;
02189     XtSetArg(args[ac], XmNx, 20); ac++;
02190     XtSetArg(args[ac], XmNy, 10); ac++;
02191     XtSetArg(args[ac], XmNwidth, 170); ac++;
02192     XtSetArg(args[ac], XmNheight, 30); ac++;
02193     XtSetArg(args[ac], XmNbackground, 
02194         CONVERT(_particleLineTraceBulletinBoard, "gray86", 
02195         XmRPixel, 0, &argok)); if (argok) ac++;
02196     _particleLineTraceToolTitleLabel = XmCreateLabel(_particleLineTraceBulletinBoard,
02197         "particleLineTraceToolTitleLabel",
02198         args, 
02199         ac);
02200     XtManageChild(_particleLineTraceToolTitleLabel);
02201     
02202     ac = 0;
02203     XtSetArg(args[ac], XmNmarginWidth, 0); ac++;
02204     XtSetArg(args[ac], XmNentryAlignment, XmALIGNMENT_BEGINNING); ac++;
02205     XtSetArg(args[ac], XmNx, 0); ac++;
02206     XtSetArg(args[ac], XmNy, 1); ac++;
02207     XtSetArg(args[ac], XmNwidth, 773); ac++;
02208     XtSetArg(args[ac], XmNheight, 30); ac++;
02209     XtSetArg(args[ac], XmNbackground, 
02210         CONVERT(_form, "gray86", 
02211         XmRPixel, 0, &argok)); if (argok) ac++;
02212     _menuBar = XmCreateMenuBar(_form,
02213         "menuBar",
02214         args, 
02215         ac);
02216     XtManageChild(_menuBar);
02217     
02218     ac = 0;
02219     XtSetArg(args[ac], XmNlabelString, 
02220         CONVERT(_menuBar, "File", 
02221         XmRXmString, 0, &argok)); if (argok) ac++;
02222     XtSetArg(args[ac], XmNx, 2); ac++;
02223     XtSetArg(args[ac], XmNy, 5); ac++;
02224     XtSetArg(args[ac], XmNwidth, 34); ac++;
02225     XtSetArg(args[ac], XmNheight, 20); ac++;
02226     XtSetArg(args[ac], XmNfontList, 
02227         CONVERT(_menuBar, "-*-helvetica-bold-r-*-*-*-100-*-*-*-*-iso8859-1", 
02228         XmRFontList, 0, &argok)); if (argok) ac++;
02229     XtSetArg(args[ac], XmNbackground, 
02230         CONVERT(_menuBar, "gray86", 
02231         XmRPixel, 0, &argok)); if (argok) ac++;
02232     _cascadeButton = XmCreateCascadeButton(_menuBar,
02233         "cascadeButton",
02234         args, 
02235         ac);
02236     XtManageChild(_cascadeButton);
02237     
02238     ac = 0;
02239     XtSetArg(args[ac], XmNx, 972); ac++;
02240     XtSetArg(args[ac], XmNy, 140); ac++;
02241     XtSetArg(args[ac], XmNwidth, 72); ac++;
02242     XtSetArg(args[ac], XmNheight, 114); ac++;
02243     XtSetArg(args[ac], XmNbackground, 
02244         CONVERT(_cascadeButton, "gray86", 
02245         XmRPixel, 0, &argok)); if (argok) ac++;
02246     _pulldownMenu = XmCreatePulldownMenu(XtParent(_cascadeButton),
02247         "pulldownMenu",
02248         args, 
02249         ac);
02250     
02251     ac = 0;
02252     XtSetArg(args[ac], XmNlabelString, 
02253         CONVERT(_pulldownMenu, "Step", 
02254         XmRXmString, 0, &argok)); if (argok) ac++;
02255     XtSetArg(args[ac], XmNfontList, 
02256         CONVERT(_pulldownMenu, "-*-helvetica-bold-r-*-*-*-100-*-*-*-*-iso8859-1", 
02257         XmRFontList, 0, &argok)); if (argok) ac++;
02258     XtSetArg(args[ac], XmNbackground, 
02259         CONVERT(_pulldownMenu, "gray86", 
02260         XmRPixel, 0, &argok)); if (argok) ac++;
02261     _pushButton4 = XmCreatePushButton(_pulldownMenu,
02262         "pushButton4",
02263         args, 
02264         ac);
02265     XtManageChild(_pushButton4);
02266     _clientDataStructs[cdc].object = this;
02267     _clientDataStructs[cdc].client_data = (XtPointer)0;
02268     XtAddCallback(_pushButton4,
02269         XmNactivateCallback,
02270         MainWindow::StepCallback,
02271         (XtPointer)&_clientDataStructs[cdc]);
02272     cdc++;
02273     
02274     ac = 0;
02275     XtSetArg(args[ac], XmNlabelString, 
02276         CONVERT(_pulldownMenu, "Go", 
02277         XmRXmString, 0, &argok)); if (argok) ac++;
02278     XtSetArg(args[ac], XmNfontList, 
02279         CONVERT(_pulldownMenu, "-*-helvetica-bold-r-*-*-*-100-*-*-*-*-iso8859-1", 
02280         XmRFontList, 0, &argok)); if (argok) ac++;
02281     XtSetArg(args[ac], XmNbackground, 
02282         CONVERT(_pulldownMenu, "gray86", 
02283         XmRPixel, 0, &argok)); if (argok) ac++;
02284     _goPushButton = XmCreatePushButton(_pulldownMenu,
02285         "goPushButton",
02286         args, 
02287         ac);
02288     XtManageChild(_goPushButton);
02289     _clientDataStructs[cdc].object = this;
02290     _clientDataStructs[cdc].client_data = (XtPointer)0;
02291     XtAddCallback(_goPushButton,
02292         XmNactivateCallback,
02293         MainWindow::GoCallback,
02294         (XtPointer)&_clientDataStructs[cdc]);
02295     cdc++;
02296     
02297     ac = 0;
02298     XtSetArg(args[ac], XmNlabelString, 
02299         CONVERT(_pulldownMenu, "Stop", 
02300         XmRXmString, 0, &argok)); if (argok) ac++;
02301     XtSetArg(args[ac], XmNfontList, 
02302         CONVERT(_pulldownMenu, "-*-helvetica-bold-r-*-*-*-100-*-*-*-*-iso8859-1", 
02303         XmRFontList, 0, &argok)); if (argok) ac++;
02304     XtSetArg(args[ac], XmNbackground, 
02305         CONVERT(_pulldownMenu, "gray86", 
02306         XmRPixel, 0, &argok)); if (argok) ac++;
02307     _stopPushButton = XmCreatePushButton(_pulldownMenu,
02308         "stopPushButton",
02309         args, 
02310         ac);
02311     XtManageChild(_stopPushButton);
02312     _clientDataStructs[cdc].object = this;
02313     _clientDataStructs[cdc].client_data = (XtPointer)0;
02314     XtAddCallback(_stopPushButton,
02315         XmNactivateCallback,
02316         MainWindow::StopCallback,
02317         (XtPointer)&_clientDataStructs[cdc]);
02318     cdc++;
02319     
02320     ac = 0;
02321     XtSetArg(args[ac], XmNlabelString, 
02322         CONVERT(_pulldownMenu, "Save Image", 
02323         XmRXmString, 0, &argok)); if (argok) ac++;
02324     XtSetArg(args[ac], XmNfontList, 
02325         CONVERT(_pulldownMenu, "-*-helvetica-bold-r-*-*-*-100-*-*-*-*-iso8859-1", 
02326         XmRFontList, 0, &argok)); if (argok) ac++;
02327     XtSetArg(args[ac], XmNbackground, 
02328         CONVERT(_pulldownMenu, "gray86", 
02329         XmRPixel, 0, &argok)); if (argok) ac++;
02330     _pushButton10 = XmCreatePushButton(_pulldownMenu,
02331         "pushButton10",
02332         args, 
02333         ac);
02334     XtManageChild(_pushButton10);
02335     _clientDataStructs[cdc].object = this;
02336     _clientDataStructs[cdc].client_data = (XtPointer)0;
02337     XtAddCallback(_pushButton10,
02338         XmNactivateCallback,
02339         MainWindow::SaveImageCallback,
02340         (XtPointer)&_clientDataStructs[cdc]);
02341     cdc++;
02342     
02343     ac = 0;
02344     XtSetArg(args[ac], XmNlabelString, 
02345         CONVERT(_pulldownMenu, "Exit", 
02346         XmRXmString, 0, &argok)); if (argok) ac++;
02347     XtSetArg(args[ac], XmNfontList, 
02348         CONVERT(_pulldownMenu, "-*-helvetica-bold-r-*-*-*-100-*-*-*-*-iso8859-1", 
02349         XmRFontList, 0, &argok)); if (argok) ac++;
02350     XtSetArg(args[ac], XmNbackground, 
02351         CONVERT(_pulldownMenu, "gray86", 
02352         XmRPixel, 0, &argok)); if (argok) ac++;
02353     _exitPushButton = XmCreatePushButton(_pulldownMenu,
02354         "exitPushButton",
02355         args, 
02356         ac);
02357     XtManageChild(_exitPushButton);
02358     _clientDataStructs[cdc].object = this;
02359     _clientDataStructs[cdc].client_data = (XtPointer)0;
02360     XtAddCallback(_exitPushButton,
02361         XmNactivateCallback,
02362         MainWindow::ExitCallback,
02363         (XtPointer)&_clientDataStructs[cdc]);
02364     cdc++;
02365     
02366     ac = 0;
02367     XtSetArg(args[ac], XmNsubMenuId, _pulldownMenu); ac++;
02368     XtSetValues(_cascadeButton, args, ac);
02369     
02370     ac = 0;
02371     XtSetArg(args[ac], XmNlabelString, 
02372         CONVERT(_menuBar, "Tool", 
02373         XmRXmString, 0, &argok)); if (argok) ac++;
02374     XtSetArg(args[ac], XmNx, 36); ac++;
02375     XtSetArg(args[ac], XmNy, 5); ac++;
02376     XtSetArg(args[ac], XmNwidth, 38); ac++;
02377     XtSetArg(args[ac], XmNheight, 20); ac++;
02378     XtSetArg(args[ac], XmNfontList, 
02379         CONVERT(_menuBar, "-*-helvetica-bold-r-*-*-*-100-*-*-*-*-iso8859-1", 
02380         XmRFontList, 0, &argok)); if (argok) ac++;
02381     XtSetArg(args[ac], XmNbackground, 
02382         CONVERT(_menuBar, "gray86", 
02383         XmRPixel, 0, &argok)); if (argok) ac++;
02384     _cascadeButton1 = XmCreateCascadeButton(_menuBar,
02385         "cascadeButton1",
02386         args, 
02387         ac);
02388     XtManageChild(_cascadeButton1);
02389     
02390     ac = 0;
02391     XtSetArg(args[ac], XmNx, 0); ac++;
02392     XtSetArg(args[ac], XmNy, 0); ac++;
02393     XtSetArg(args[ac], XmNwidth, 46); ac++;
02394     XtSetArg(args[ac], XmNheight, 70); ac++;
02395     XtSetArg(args[ac], XmNbackground, 
02396         CONVERT(_cascadeButton1, "gray86", 
02397         XmRPixel, 0, &argok)); if (argok) ac++;
02398     _pulldownMenu1 = XmCreatePulldownMenu(XtParent(_cascadeButton1),
02399         "pulldownMenu1",
02400         args, 
02401         ac);
02402     
02403     ac = 0;
02404     XtSetArg(args[ac], XmNlabelString, 
02405         CONVERT(_pulldownMenu1, "New", 
02406         XmRXmString, 0, &argok)); if (argok) ac++;
02407     XtSetArg(args[ac], XmNfontList, 
02408         CONVERT(_pulldownMenu1, "-*-helvetica-bold-r-*-*-*-100-*-*-*-*-iso8859-1", 
02409         XmRFontList, 0, &argok)); if (argok) ac++;
02410     XtSetArg(args[ac], XmNbackground, 
02411         CONVERT(_pulldownMenu1, "gray86", 
02412         XmRPixel, 0, &argok)); if (argok) ac++;
02413     _pushButton1 = XmCreatePushButton(_pulldownMenu1,
02414         "pushButton1",
02415         args, 
02416         ac);
02417     XtManageChild(_pushButton1);
02418     _clientDataStructs[cdc].object = this;
02419     _clientDataStructs[cdc].client_data = (XtPointer)0;
02420     XtAddCallback(_pushButton1,
02421         XmNactivateCallback,
02422         MainWindow::DialogNewCallbackCallback,
02423         (XtPointer)&_clientDataStructs[cdc]);
02424     cdc++;
02425     
02426     ac = 0;
02427     XtSetArg(args[ac], XmNlabelString, 
02428         CONVERT(_pulldownMenu1, "Select", 
02429         XmRXmString, 0, &argok)); if (argok) ac++;
02430     XtSetArg(args[ac], XmNfontList, 
02431         CONVERT(_pulldownMenu1, "-*-helvetica-bold-r-*-*-*-100-*-*-*-*-iso8859-1", 
02432         XmRFontList, 0, &argok)); if (argok) ac++;
02433     XtSetArg(args[ac], XmNbackground, 
02434         CONVERT(_pulldownMenu1, "gray86", 
02435         XmRPixel, 0, &argok)); if (argok) ac++;
02436     _pushButton = XmCreatePushButton(_pulldownMenu1,
02437         "pushButton",
02438         args, 
02439         ac);
02440     XtManageChild(_pushButton);
02441     _clientDataStructs[cdc].object = this;
02442     _clientDataStructs[cdc].client_data = (XtPointer)0;
02443     XtAddCallback(_pushButton,
02444         XmNactivateCallback,
02445         MainWindow::SelectDialogCallbackCallback,
02446         (XtPointer)&_clientDataStructs[cdc]);
02447     cdc++;
02448     
02449     ac = 0;
02450     XtSetArg(args[ac], XmNlabelString, 
02451         CONVERT(_pulldownMenu1, "Delete", 
02452         XmRXmString, 0, &argok)); if (argok) ac++;
02453     XtSetArg(args[ac], XmNfontList, 
02454         CONVERT(_pulldownMenu1, "-*-helvetica-bold-r-*-*-*-100-*-*-*-*-iso8859-1", 
02455         XmRFontList, 0, &argok)); if (argok) ac++;
02456     XtSetArg(args[ac], XmNbackground, 
02457         CONVERT(_pulldownMenu1, "gray86", 
02458         XmRPixel, 0, &argok)); if (argok) ac++;
02459     _deletePushButton1 = XmCreatePushButton(_pulldownMenu1,
02460         "deletePushButton1",
02461         args, 
02462         ac);
02463     XtManageChild(_deletePushButton1);
02464     _clientDataStructs[cdc].object = this;
02465     _clientDataStructs[cdc].client_data = (XtPointer)0;
02466     XtAddCallback(_deletePushButton1,
02467         XmNactivateCallback,
02468         MainWindow::DeleteDialogCallbackCallback,
02469         (XtPointer)&_clientDataStructs[cdc]);
02470     cdc++;
02471     
02472     ac = 0;
02473     XtSetArg(args[ac], XmNsubMenuId, _pulldownMenu1); ac++;
02474     XtSetValues(_cascadeButton1, args, ac);
02475     
02476     ac = 0;
02477     XtSetArg(args[ac], XmNbackground, 
02478         CONVERT(_form, "black", 
02479         XmRPixel, 0, &argok)); if (argok) ac++;
02480     XtSetArg(args[ac], XmNtranslations, 
02481         CONVERT(_form, "None<Key>x:DrawingAreaInput()\n\
02482 None<Key>s:DrawingAreaInput()\n\
02483 None<Key>g:DrawingAreaInput()", 
02484         XmRTranslationTable, 0, &argok)); if (argok) ac++;
02485     XtSetArg(args[ac], XmNx, 240); ac++;
02486     XtSetArg(args[ac], XmNy, 50); ac++;
02487     XtSetArg(args[ac], XmNwidth, 513); ac++;
02488     XtSetArg(args[ac], XmNheight, 520); ac++;
02489     _drawingArea = XmCreateDrawingArea(_form,
02490         "drawingArea",
02491         args, 
02492         ac);
02493     XtManageChild(_drawingArea);
02494     _clientDataStructs[cdc].object = this;
02495     _clientDataStructs[cdc].client_data = (XtPointer)0;
02496     XtAddCallback(_drawingArea,
02497         XmNexposeCallback,
02498         MainWindow::VTKRefreshCallback,
02499         (XtPointer)&_clientDataStructs[cdc]);
02500     cdc++;
02501     _clientDataStructs[cdc].object = this;
02502     _clientDataStructs[cdc].client_data = (XtPointer)0;
02503     XtAddCallback(_drawingArea,
02504         XmNinputCallback,
02505         MainWindow::InteractExitCallback,
02506         (XtPointer)&_clientDataStructs[cdc]);
02507     cdc++;
02508     
02509     ac = 0;
02510     XtSetArg(args[ac], XmNtitle, "Select a Tool"); ac++;
02511     XtSetArg(args[ac], XmNx, 1066); ac++;
02512     XtSetArg(args[ac], XmNy, 252); ac++;
02513     XtSetArg(args[ac], XmNwidth, 420); ac++;
02514     XtSetArg(args[ac], XmNheight, 370); ac++;
02515     XtSetArg(args[ac], XmNbackground, 
02516         CONVERT(_form, "gray86", 
02517         XmRPixel, 0, &argok)); if (argok) ac++;
02518     _selectToolDialogShell = XtCreatePopupShell("selectToolDialogShell",
02519         xmDialogShellWidgetClass,
02520         _form,
02521         args, 
02522         ac);
02523     
02524     ac = 0;
02525     XtSetArg(args[ac], XmNnavigationType, XmTAB_GROUP); ac++;
02526     XtSetArg(args[ac], XmNresizePolicy, XmRESIZE_GROW); ac++;
02527     XtSetArg(args[ac], XmNdialogStyle, XmDIALOG_APPLICATION_MODAL); ac++;
02528     XtSetArg(args[ac], XmNx, 1066); ac++;
02529     XtSetArg(args[ac], XmNy, 252); ac++;
02530     XtSetArg(args[ac], XmNwidth, 420); ac++;
02531     XtSetArg(args[ac], XmNheight, 370); ac++;
02532     XtSetArg(args[ac], XmNbackground, 
02533         CONVERT(_selectToolDialogShell, "gray86", 
02534         XmRPixel, 0, &argok)); if (argok) ac++;
02535     _selectDialogBulletinBoard = XmCreateBulletinBoard(_selectToolDialogShell,
02536         "selectDialogBulletinBoard",
02537         args, 
02538         ac);
02539     
02540     ac = 0;
02541     XtSetArg(args[ac], XmNscrollingPolicy, XmAUTOMATIC); ac++;
02542     XtSetArg(args[ac], XmNx, 135); ac++;
02543     XtSetArg(args[ac], XmNy, 77); ac++;
02544     XtSetArg(args[ac], XmNwidth, 182); ac++;
02545     XtSetArg(args[ac], XmNheight, 194); ac++;
02546     XtSetArg(args[ac], XmNbackground, 
02547         CONVERT(_selectDialogBulletinBoard, "gray86", 
02548         XmRPixel, 0, &argok)); if (argok) ac++;
02549     _selectToolScrolledWindow = XmCreateScrolledWindow(_selectDialogBulletinBoard,
02550         "selectToolScrolledWindow",
02551         args, 
02552         ac);
02553     XtManageChild(_selectToolScrolledWindow);
02554     
02555     ac = 0;
02556     XtSetArg(args[ac], XmNselectionPolicy, XmBROWSE_SELECT); ac++;
02557     XtSetArg(args[ac], XmNwidth, 200); ac++;
02558     XtSetArg(args[ac], XmNheight, 300); ac++;
02559     XtSetArg(args[ac], XmNfontList, 
02560         CONVERT(_selectToolScrolledWindow, "-*-helvetica-bold-r-*-*-*-100-*-*-*-*-iso8859-1", 
02561         XmRFontList, 0, &argok)); if (argok) ac++;
02562     XtSetArg(args[ac], XmNbackground, 
02563         CONVERT(_selectToolScrolledWindow, "gray86", 
02564         XmRPixel, 0, &argok)); if (argok) ac++;
02565     _selectList = XmCreateList(_selectToolScrolledWindow,
02566         "selectList",
02567         args, 
02568         ac);
02569     XtManageChild(_selectList);
02570     _clientDataStructs[cdc].object = this;
02571     _clientDataStructs[cdc].client_data = (XtPointer)0;
02572     XtAddCallback(_selectList,
02573         XmNsingleSelectionCallback,
02574         MainWindow::SelectSelectToolCallback,
02575         (XtPointer)&_clientDataStructs[cdc]);
02576     cdc++;
02577     
02578     ac = 0;
02579     XtSetArg(args[ac], XmNlabelString, 
02580         CONVERT(_selectDialogBulletinBoard, "Cancel", 
02581         XmRXmString, 0, &argok)); if (argok) ac++;
02582     XtSetArg(args[ac], XmNx, 240); ac++;
02583     XtSetArg(args[ac], XmNy, 290); ac++;
02584     XtSetArg(args[ac], XmNwidth, 90); ac++;
02585     XtSetArg(args[ac], XmNheight, 30); ac++;
02586     XtSetArg(args[ac], XmNfontList, 
02587         CONVERT(_selectDialogBulletinBoard, "-*-helvetica-bold-r-*-*-*-100-*-*-*-*-iso8859-1", 
02588         XmRFontList, 0, &argok)); if (argok) ac++;
02589     XtSetArg(args[ac], XmNbackground, 
02590         CONVERT(_selectDialogBulletinBoard, "gray86", 
02591         XmRPixel, 0, &argok)); if (argok) ac++;
02592     _pushButton3 = XmCreatePushButton(_selectDialogBulletinBoard,
02593         "pushButton3",
02594         args, 
02595         ac);
02596     XtManageChild(_pushButton3);
02597     _clientDataStructs[cdc].object = this;
02598     _clientDataStructs[cdc].client_data = (XtPointer)0;
02599     XtAddCallback(_pushButton3,
02600         XmNactivateCallback,
02601         MainWindow::SelectCancelCallbackCallback,
02602         (XtPointer)&_clientDataStructs[cdc]);
02603     cdc++;
02604     
02605     ac = 0;
02606     XtSetArg(args[ac], XmNlabelString, 
02607         CONVERT(_selectDialogBulletinBoard, "OK", 
02608         XmRXmString, 0, &argok)); if (argok) ac++;
02609     XtSetArg(args[ac], XmNx, 120); ac++;
02610     XtSetArg(args[ac], XmNy, 290); ac++;
02611     XtSetArg(args[ac], XmNwidth, 90); ac++;
02612     XtSetArg(args[ac], XmNheight, 30); ac++;
02613     XtSetArg(args[ac], XmNfontList, 
02614         CONVERT(_selectDialogBulletinBoard, "-*-helvetica-bold-r-*-*-*-100-*-*-*-*-iso8859-1", 
02615         XmRFontList, 0, &argok)); if (argok) ac++;
02616     XtSetArg(args[ac], XmNbackground, 
02617         CONVERT(_selectDialogBulletinBoard, "gray86", 
02618         XmRPixel, 0, &argok)); if (argok) ac++;
02619     _pushButton2 = XmCreatePushButton(_selectDialogBulletinBoard,
02620         "pushButton2",
02621         args, 
02622         ac);
02623     XtManageChild(_pushButton2);
02624     _clientDataStructs[cdc].object = this;
02625     _clientDataStructs[cdc].client_data = (XtPointer)0;
02626     XtAddCallback(_pushButton2,
02627         XmNactivateCallback,
02628         MainWindow::SelectOKCallbackCallback,
02629         (XtPointer)&_clientDataStructs[cdc]);
02630     cdc++;
02631     
02632     ac = 0;
02633     XtSetArg(args[ac], XmNlabelString, 
02634         CONVERT(_selectDialogBulletinBoard, "Select a Tool", 
02635         XmRXmString, 0, &argok)); if (argok) ac++;
02636     XtSetArg(args[ac], XmNx, 150); ac++;
02637     XtSetArg(args[ac], XmNy, 50); ac++;
02638     XtSetArg(args[ac], XmNwidth, 136); ac++;
02639     XtSetArg(args[ac], XmNheight, 28); ac++;
02640     XtSetArg(args[ac], XmNfontList, 
02641         CONVERT(_selectDialogBulletinBoard, "-*-helvetica-bold-r-*-*-*-100-*-*-*-*-iso8859-1", 
02642         XmRFontList, 0, &argok)); if (argok) ac++;
02643     XtSetArg(args[ac], XmNbackground, 
02644         CONVERT(_selectDialogBulletinBoard, "gray86", 
02645         XmRPixel, 0, &argok)); if (argok) ac++;
02646     _label2 = XmCreateLabel(_selectDialogBulletinBoard,
02647         "label2",
02648         args, 
02649         ac);
02650     XtManageChild(_label2);
02651     
02652     ac = 0;
02653     XtSetArg(args[ac], XmNtitle, "Create a New Tool"); ac++;
02654     XtSetArg(args[ac], XmNx, 1062); ac++;
02655     XtSetArg(args[ac], XmNy, 193); ac++;
02656     XtSetArg(args[ac], XmNwidth, 432); ac++;
02657     XtSetArg(args[ac], XmNheight, 376); ac++;
02658     XtSetArg(args[ac], XmNbackground, 
02659         CONVERT(_form, "gray86", 
02660         XmRPixel, 0, &argok)); if (argok) ac++;
02661     _newToolDialogShell = XtCreatePopupShell("newToolDialogShell",
02662         xmDialogShellWidgetClass,
02663         _form,
02664         args, 
02665         ac);
02666     
02667     ac = 0;
02668     XtSetArg(args[ac], XmNresizePolicy, XmRESIZE_GROW); ac++;
02669     XtSetArg(args[ac], XmNx, 1062); ac++;
02670     XtSetArg(args[ac], XmNy, 193); ac++;
02671     XtSetArg(args[ac], XmNwidth, 432); ac++;
02672     XtSetArg(args[ac], XmNheight, 376); ac++;
02673     XtSetArg(args[ac], XmNbackground, 
02674         CONVERT(_newToolDialogShell, "gray86", 
02675         XmRPixel, 0, &argok)); if (argok) ac++;
02676     _newDialogBulletinBoard = XmCreateBulletinBoard(_newToolDialogShell,
02677         "newDialogBulletinBoard",
02678         args, 
02679         ac);
02680     
02681     ac = 0;
02682     XtSetArg(args[ac], XmNscrollingPolicy, XmAUTOMATIC); ac++;
02683     XtSetArg(args[ac], XmNx, 81); ac++;
02684     XtSetArg(args[ac], XmNy, 76); ac++;
02685     XtSetArg(args[ac], XmNwidth, 133); ac++;
02686     XtSetArg(args[ac], XmNheight, 175); ac++;
02687     XtSetArg(args[ac], XmNbackground, 
02688         CONVERT(_newDialogBulletinBoard, "gray86", 
02689         XmRPixel, 0, &argok)); if (argok) ac++;
02690     _selectDataScrolledWindow = XmCreateScrolledWindow(_newDialogBulletinBoard,
02691         "selectDataScrolledWindow",
02692         args, 
02693         ac);
02694     XtManageChild(_selectDataScrolledWindow);
02695     
02696     ac = 0;
02697     XtSetArg(args[ac], XmNitems, 
02698         CONVERT(_selectDataScrolledWindow, "NoDataRequired", 
02699         XmRXmStringTable, 0, &argok)); if (argok) ac++;
02700     XtSetArg(args[ac], XmNitemCount, 1); ac++;
02701     XtSetArg(args[ac], XmNselectionPolicy, XmBROWSE_SELECT); ac++;
02702     XtSetArg(args[ac], XmNwidth, 300); ac++;
02703     XtSetArg(args[ac], XmNheight, 300); ac++;
02704     XtSetArg(args[ac], XmNfontList, 
02705         CONVERT(_selectDataScrolledWindow, "-*-helvetica-bold-r-*-*-*-100-*-*-*-*-iso8859-1", 
02706         XmRFontList, 0, &argok)); if (argok) ac++;
02707     XtSetArg(args[ac], XmNbackground, 
02708         CONVERT(_selectDataScrolledWindow, "gray86", 
02709         XmRPixel, 0, &argok)); if (argok) ac++;
02710     _newDataList = XmCreateList(_selectDataScrolledWindow,
02711         "newDataList",
02712         args, 
02713         ac);
02714     XtManageChild(_newDataList);
02715     _clientDataStructs[cdc].object = this;
02716     _clientDataStructs[cdc].client_data = (XtPointer)0;
02717     XtAddCallback(_newDataList,
02718         XmNsingleSelectionCallback,
02719         MainWindow::NewSelectDataObjectCallback,
02720         (XtPointer)&_clientDataStructs[cdc]);
02721     cdc++;
02722     
02723     ac = 0;
02724     XtSetArg(args[ac], XmNscrollingPolicy, XmAUTOMATIC); ac++;
02725     XtSetArg(args[ac], XmNx, 245); ac++;
02726     XtSetArg(args[ac], XmNy, 78); ac++;
02727     XtSetArg(args[ac], XmNwidth, 129); ac++;
02728     XtSetArg(args[ac], XmNheight, 178); ac++;
02729     XtSetArg(args[ac], XmNbackground, 
02730         CONVERT(_newDialogBulletinBoard, "gray86", 
02731         XmRPixel, 0, &argok)); if (argok) ac++;
02732     _selectToolTypeScrolledWindow = XmCreateScrolledWindow(_newDialogBulletinBoard,
02733         "selectToolTypeScrolledWindow",
02734         args, 
02735         ac);
02736     XtManageChild(_selectToolTypeScrolledWindow);
02737     
02738     ac = 0;
02739     XtSetArg(args[ac], XmNitems, 
02740         CONVERT(_selectToolTypeScrolledWindow, "Slice,Iso,M-Iso,Point,Sphere,VectorField,VectorParticle,Axes,LineTrace", 
02741         XmRXmStringTable, 0, &argok)); if (argok) ac++;
02742     XtSetArg(args[ac], XmNitemCount, 9); ac++;
02743     XtSetArg(args[ac], XmNselectionPolicy, XmBROWSE_SELECT); ac++;
02744     XtSetArg(args[ac], XmNwidth, 200); ac++;
02745     XtSetArg(args[ac], XmNheight, 300); ac++;
02746     XtSetArg(args[ac], XmNfontList, 
02747         CONVERT(_selectToolTypeScrolledWindow, "-*-helvetica-bold-r-*-*-*-100-*-*-*-*-iso8859-1", 
02748         XmRFontList, 0, &argok)); if (argok) ac++;
02749     XtSetArg(args[ac], XmNbackground, 
02750         CONVERT(_selectToolTypeScrolledWindow, "gray86", 
02751         XmRPixel, 0, &argok)); if (argok) ac++;
02752     _newToolTypeList = XmCreateList(_selectToolTypeScrolledWindow,
02753         "newToolTypeList",
02754         args, 
02755         ac);
02756     XtManageChild(_newToolTypeList);
02757     _clientDataStructs[cdc].object = this;
02758     _clientDataStructs[cdc].client_data = (XtPointer)0;
02759     XtAddCallback(_newToolTypeList,
02760         XmNsingleSelectionCallback,
02761         MainWindow::NewSelectToolTypeCallback,
02762         (XtPointer)&_clientDataStructs[cdc]);
02763     cdc++;
02764     
02765     ac = 0;
02766     XtSetArg(args[ac], XmNlabelString, 
02767         CONVERT(_newDialogBulletinBoard, "Select a Tool Type", 
02768         XmRXmString, 0, &argok)); if (argok) ac++;
02769     XtSetArg(args[ac], XmNx, 240); ac++;
02770     XtSetArg(args[ac], XmNy, 50); ac++;
02771     XtSetArg(args[ac], XmNwidth, 136); ac++;
02772     XtSetArg(args[ac], XmNheight, 28); ac++;
02773     XtSetArg(args[ac], XmNfontList, 
02774         CONVERT(_newDialogBulletinBoard, "-*-helvetica-bold-r-*-*-*-100-*-*-*-*-iso8859-1", 
02775         XmRFontList, 0, &argok)); if (argok) ac++;
02776     XtSetArg(args[ac], XmNbackground, 
02777         CONVERT(_newDialogBulletinBoard, "gray86", 
02778         XmRPixel, 0, &argok)); if (argok) ac++;
02779     _label1 = XmCreateLabel(_newDialogBulletinBoard,
02780         "label1",
02781         args, 
02782         ac);
02783     XtManageChild(_label1);
02784     
02785     ac = 0;
02786     XtSetArg(args[ac], XmNlabelString, 
02787         CONVERT(_newDialogBulletinBoard, "Select a Data Object", 
02788         XmRXmString, 0, &argok)); if (argok) ac++;
02789     XtSetArg(args[ac], XmNx, 70); ac++;
02790     XtSetArg(args[ac], XmNy, 50); ac++;
02791     XtSetArg(args[ac], XmNwidth, 136); ac++;
02792     XtSetArg(args[ac], XmNheight, 28); ac++;
02793     XtSetArg(args[ac], XmNfontList, 
02794         CONVERT(_newDialogBulletinBoard, "-*-helvetica-bold-r-*-*-*-100-*-*-*-*-iso8859-1", 
02795         XmRFontList, 0, &argok)); if (argok) ac++;
02796     XtSetArg(args[ac], XmNbackground, 
02797         CONVERT(_newDialogBulletinBoard, "gray86", 
02798         XmRPixel, 0, &argok)); if (argok) ac++;
02799     _label = XmCreateLabel(_newDialogBulletinBoard,
02800         "label",
02801         args, 
02802         ac);
02803     XtManageChild(_label);
02804     
02805     ac = 0;
02806     XtSetArg(args[ac], XmNlabelString, 
02807         CONVERT(_newDialogBulletinBoard, "Cancel", 
02808         XmRXmString, 0, &argok)); if (argok) ac++;
02809     XtSetArg(args[ac], XmNx, 240); ac++;
02810     XtSetArg(args[ac], XmNy, 310); ac++;
02811     XtSetArg(args[ac], XmNwidth, 90); ac++;
02812     XtSetArg(args[ac], XmNheight, 30); ac++;
02813     XtSetArg(args[ac], XmNfontList, 
02814         CONVERT(_newDialogBulletinBoard, "-*-helvetica-bold-r-*-*-*-100-*-*-*-*-iso8859-1", 
02815         XmRFontList, 0, &argok)); if (argok) ac++;
02816     XtSetArg(args[ac], XmNbackground, 
02817         CONVERT(_newDialogBulletinBoard, "gray86", 
02818         XmRPixel, 0, &argok)); if (argok) ac++;
02819     _pushButton8 = XmCreatePushButton(_newDialogBulletinBoard,
02820         "pushButton8",
02821         args, 
02822         ac);
02823     XtManageChild(_pushButton8);
02824     _clientDataStructs[cdc].object = this;
02825     _clientDataStructs[cdc].client_data = (XtPointer)0;
02826     XtAddCallback(_pushButton8,
02827         XmNactivateCallback,
02828         MainWindow::NewCancelCallbackCallback,
02829         (XtPointer)&_clientDataStructs[cdc]);
02830     cdc++;
02831     
02832     ac = 0;
02833     XtSetArg(args[ac], XmNlabelString, 
02834         CONVERT(_newDialogBulletinBoard, "OK", 
02835         XmRXmString, 0, &argok)); if (argok) ac++;
02836     XtSetArg(args[ac], XmNx, 110); ac++;
02837     XtSetArg(args[ac], XmNy, 310); ac++;
02838     XtSetArg(args[ac], XmNwidth, 90); ac++;
02839     XtSetArg(args[ac], XmNheight, 30); ac++;
02840     XtSetArg(args[ac], XmNfontList, 
02841         CONVERT(_newDialogBulletinBoard, "-*-helvetica-bold-r-*-*-*-100-*-*-*-*-iso8859-1", 
02842         XmRFontList, 0, &argok)); if (argok) ac++;
02843     XtSetArg(args[ac], XmNbackground, 
02844         CONVERT(_newDialogBulletinBoard, "gray86", 
02845         XmRPixel, 0, &argok)); if (argok) ac++;
02846     _pushButton7 = XmCreatePushButton(_newDialogBulletinBoard,
02847         "pushButton7",
02848         args, 
02849         ac);
02850     XtManageChild(_pushButton7);
02851     _clientDataStructs[cdc].object = this;
02852     _clientDataStructs[cdc].client_data = (XtPointer)0;
02853     XtAddCallback(_pushButton7,
02854         XmNactivateCallback,
02855         MainWindow::NewOKCallbackCallback,
02856         (XtPointer)&_clientDataStructs[cdc]);
02857     cdc++;
02858     
02859     ac = 0;
02860     XtSetArg(args[ac], XmNtitle, "Delete a Tool"); ac++;
02861     XtSetArg(args[ac], XmNx, 1102); ac++;
02862     XtSetArg(args[ac], XmNy, 205); ac++;
02863     XtSetArg(args[ac], XmNwidth, 429); ac++;
02864     XtSetArg(args[ac], XmNheight, 374); ac++;
02865     _deleteDialogShell = XtCreatePopupShell("deleteDialogShell",
02866         xmDialogShellWidgetClass,
02867         _form,
02868         args, 
02869         ac);
02870     
02871     ac = 0;
02872     XtSetArg(args[ac], XmNresizePolicy, XmRESIZE_GROW); ac++;
02873     XtSetArg(args[ac], XmNx, 1102); ac++;
02874     XtSetArg(args[ac], XmNy, 205); ac++;
02875     XtSetArg(args[ac], XmNwidth, 429); ac++;
02876     XtSetArg(args[ac], XmNheight, 374); ac++;
02877     XtSetArg(args[ac], XmNbackground, 
02878         CONVERT(_deleteDialogShell, "gray86", 
02879         XmRPixel, 0, &argok)); if (argok) ac++;
02880     _deleteDialogBulletinBoard = XmCreateBulletinBoard(_deleteDialogShell,
02881         "deleteDialogBulletinBoard",
02882         args, 
02883         ac);
02884     
02885     ac = 0;
02886     XtSetArg(args[ac], XmNscrollingPolicy, XmAUTOMATIC); ac++;
02887     XtSetArg(args[ac], XmNx, 129); ac++;
02888     XtSetArg(args[ac], XmNy, 78); ac++;
02889     XtSetArg(args[ac], XmNwidth, 178); ac++;
02890     XtSetArg(args[ac], XmNheight, 188); ac++;
02891     XtSetArg(args[ac], XmNbackground, 
02892         CONVERT(_deleteDialogBulletinBoard, "gray86", 
02893         XmRPixel, 0, &argok)); if (argok) ac++;
02894     _deleteListScrolledWindow = XmCreateScrolledWindow(_deleteDialogBulletinBoard,
02895         "deleteListScrolledWindow",
02896         args, 
02897         ac);
02898     XtManageChild(_deleteListScrolledWindow);
02899     
02900     ac = 0;
02901     XtSetArg(args[ac], XmNselectionPolicy, XmBROWSE_SELECT); ac++;
02902     XtSetArg(args[ac], XmNwidth, 200); ac++;
02903     XtSetArg(args[ac], XmNheight, 300); ac++;
02904     XtSetArg(args[ac], XmNfontList, 
02905         CONVERT(_deleteListScrolledWindow, "-*-helvetica-bold-r-*-*-*-100-*-*-*-*-iso8859-1", 
02906         XmRFontList, 0, &argok)); if (argok) ac++;
02907     XtSetArg(args[ac], XmNbackground, 
02908         CONVERT(_deleteListScrolledWindow, "gray86", 
02909         XmRPixel, 0, &argok)); if (argok) ac++;
02910     _deleteList = XmCreateList(_deleteListScrolledWindow,
02911         "deleteList",
02912         args, 
02913         ac);
02914     XtManageChild(_deleteList);
02915     _clientDataStructs[cdc].object = this;
02916     _clientDataStructs[cdc].client_data = (XtPointer)0;
02917     XtAddCallback(_deleteList,
02918         XmNsingleSelectionCallback,
02919         MainWindow::DeleteDeleteToolCallback,
02920         (XtPointer)&_clientDataStructs[cdc]);
02921     cdc++;
02922     
02923     ac = 0;
02924     XtSetArg(args[ac], XmNlabelString, 
02925         CONVERT(_deleteDialogBulletinBoard, "Cancel", 
02926         XmRXmString, 0, &argok)); if (argok) ac++;
02927     XtSetArg(args[ac], XmNx, 230); ac++;
02928     XtSetArg(args[ac], XmNy, 280); ac++;
02929     XtSetArg(args[ac], XmNwidth, 90); ac++;
02930     XtSetArg(args[ac], XmNheight, 30); ac++;
02931     XtSetArg(args[ac], XmNfontList, 
02932         CONVERT(_deleteDialogBulletinBoard, "-*-helvetica-bold-r-*-*-*-100-*-*-*-*-iso8859-1", 
02933         XmRFontList, 0, &argok)); if (argok) ac++;
02934     XtSetArg(args[ac], XmNbackground, 
02935         CONVERT(_deleteDialogBulletinBoard, "gray86", 
02936         XmRPixel, 0, &argok)); if (argok) ac++;
02937     _pushButton9 = XmCreatePushButton(_deleteDialogBulletinBoard,
02938         "pushButton9",
02939         args, 
02940         ac);
02941     XtManageChild(_pushButton9);
02942     _clientDataStructs[cdc].object = this;
02943     _clientDataStructs[cdc].client_data = (XtPointer)0;
02944     XtAddCallback(_pushButton9,
02945         XmNactivateCallback,
02946         MainWindow::DeleteCancelCallbackCallback,
02947         (XtPointer)&_clientDataStructs[cdc]);
02948     cdc++;
02949     
02950     ac = 0;
02951     XtSetArg(args[ac], XmNlabelString, 
02952         CONVERT(_deleteDialogBulletinBoard, "OK", 
02953         XmRXmString, 0, &argok)); if (argok) ac++;
02954     XtSetArg(args[ac], XmNx, 110); ac++;
02955     XtSetArg(args[ac], XmNy, 280); ac++;
02956     XtSetArg(args[ac], XmNwidth, 90); ac++;
02957     XtSetArg(args[ac], XmNheight, 30); ac++;
02958     XtSetArg(args[ac], XmNfontList, 
02959         CONVERT(_deleteDialogBulletinBoard, "-*-helvetica-bold-r-*-*-*-100-*-*-*-*-iso8859-1", 
02960         XmRFontList, 0, &argok)); if (argok) ac++;
02961     XtSetArg(args[ac], XmNbackground, 
02962         CONVERT(_deleteDialogBulletinBoard, "gray86", 
02963         XmRPixel, 0, &argok)); if (argok) ac++;
02964     _pushButton6 = XmCreatePushButton(_deleteDialogBulletinBoard,
02965         "pushButton6",
02966         args, 
02967         ac);
02968     XtManageChild(_pushButton6);
02969     _clientDataStructs[cdc].object = this;
02970     _clientDataStructs[cdc].client_data = (XtPointer)0;
02971     XtAddCallback(_pushButton6,
02972         XmNactivateCallback,
02973         MainWindow::DeleteOKCallbackCallback,
02974         (XtPointer)&_clientDataStructs[cdc]);
02975     cdc++;
02976     
02977     ac = 0;
02978     XtSetArg(args[ac], XmNlabelString, 
02979         CONVERT(_deleteDialogBulletinBoard, "Select a Tool", 
02980         XmRXmString, 0, &argok)); if (argok) ac++;
02981     XtSetArg(args[ac], XmNx, 150); ac++;
02982     XtSetArg(args[ac], XmNy, 50); ac++;
02983     XtSetArg(args[ac], XmNwidth, 136); ac++;
02984     XtSetArg(args[ac], XmNheight, 28); ac++;
02985     XtSetArg(args[ac], XmNfontList, 
02986         CONVERT(_deleteDialogBulletinBoard, "-*-helvetica-bold-r-*-*-*-100-*-*-*-*-iso8859-1", 
02987         XmRFontList, 0, &argok)); if (argok) ac++;
02988     XtSetArg(args[ac], XmNbackground, 
02989         CONVERT(_deleteDialogBulletinBoard, "gray86", 
02990         XmRPixel, 0, &argok)); if (argok) ac++;
02991     _label4 = XmCreateLabel(_deleteDialogBulletinBoard,
02992         "label4",
02993         args, 
02994         ac);
02995     XtManageChild(_label4);
02996     
02997     ac = 0;
02998     XtSetArg(args[ac], XmNtopAttachment, XmATTACH_FORM); ac++;
02999     XtSetArg(args[ac], XmNbottomAttachment, XmATTACH_FORM); ac++;
03000     XtSetArg(args[ac], XmNleftAttachment, XmATTACH_FORM); ac++;
03001     XtSetArg(args[ac], XmNrightAttachment, XmATTACH_OPPOSITE_FORM); ac++;
03002     XtSetArg(args[ac], XmNtopOffset, 49); ac++;
03003     XtSetArg(args[ac], XmNbottomOffset, 19); ac++;
03004     XtSetArg(args[ac], XmNleftOffset, 10); ac++;
03005     XtSetArg(args[ac], XmNrightOffset, -230); ac++;
03006     XtSetValues(_frame1, args, ac);
03007     
03008     ac = 0;
03009     XtSetArg(args[ac], XmNleftAttachment, XmATTACH_FORM); ac++;
03010     XtSetArg(args[ac], XmNrightAttachment, XmATTACH_FORM); ac++;
03011     XtSetArg(args[ac], XmNtopOffset, 1); ac++;
03012     XtSetArg(args[ac], XmNleftOffset, 0); ac++;
03013     XtSetArg(args[ac], XmNrightOffset, -4); ac++;
03014     XtSetValues(_menuBar, args, ac);
03015     
03016     ac = 0;
03017     XtSetArg(args[ac], XmNtopAttachment, XmATTACH_FORM); ac++;
03018     XtSetArg(args[ac], XmNbottomAttachment, XmATTACH_FORM); ac++;
03019     XtSetArg(args[ac], XmNleftAttachment, XmATTACH_FORM); ac++;
03020     XtSetArg(args[ac], XmNrightAttachment, XmATTACH_FORM); ac++;
03021     XtSetArg(args[ac], XmNtopOffset, 50); ac++;
03022     XtSetArg(args[ac], XmNbottomOffset, 14); ac++;
03023     XtSetArg(args[ac], XmNleftOffset, 240); ac++;
03024     XtSetArg(args[ac], XmNrightOffset, 16); ac++;
03025     XtSetValues(_drawingArea, args, ac);
03026     
03027     // Begin user code block <endcreate>
03028     _selectedBulletinBoard = NULL;
03029     currentToolRecord = NULL;
03030     // End user code block <endcreate>
03031 }
03032 
03033 //
03034 // Classname access.
03035 //
03036 const char * MainWindow::className()
03037 {
03038     return ("MainWindow");
03039 }
03040 
03041 void MainWindow::misoNumContoursTextFieldActivateCallback(Widget w, 
03042                 XtPointer clientData, XtPointer callData)
03043 {
03044     UICallbackStruct *data = (UICallbackStruct *) clientData;
03045     MainWindow *obj = (MainWindow *)data->object;
03046     obj->misoNumContoursTextFieldActivate(w, (XtPointer) data->client_data, callData);
03047 }
03048 
03049 void MainWindow::misoNumContoursTextFieldActivate(Widget w, XtPointer clientData, XtPointer callData)
03050 {
03051     
03052     // Begin user code block <misoNumContoursTextFieldActivate>
03053   IsoSurfaceTool *isotool;
03054   RenderTool *rendertool;
03055   char *newtext;
03056   //  float isovalue;
03057   float srange[2];
03058   int numContours;
03059   
03060   assert(currentToolRecord != NULL);
03061   isotool = (IsoSurfaceTool *)currentToolRecord->tool;
03062   newtext = XmTextFieldGetString(w);
03063   numContours = atoi(newtext);
03064   isotool->GetContourSubRange(srange);
03065   isotool->SetNumContours(numContours);
03066   isotool->GetContourFilter()->GenerateValues(numContours,srange);
03067   XtFree (newtext);
03068   rendertool = (RenderTool *)current_viztool->GetSelectedTool(Render);
03069   rendertool->GetRenderWindow()->Render();
03070   DisplayToolBB();
03071     // End user code block <misoNumContoursTextFieldActivate>
03072 }
03073 
03074 void MainWindow::misoContourRangeMaxTextFieldActivateCallback(Widget w, 
03075                 XtPointer clientData, XtPointer callData)
03076 {
03077     UICallbackStruct *data = (UICallbackStruct *) clientData;
03078     MainWindow *obj = (MainWindow *)data->object;
03079     obj->misoContourRangeMaxTextFieldActivate(w, (XtPointer) data->client_data, callData);
03080 }
03081 
03082 void MainWindow::misoContourRangeMaxTextFieldActivate(Widget w, XtPointer clientData, XtPointer callData)
03083 {
03084     
03085     // Begin user code block <misoContourRangeMaxTextFieldActivate>
03086   IsoSurfaceTool *isotool;
03087   RenderTool *rendertool;
03088   char *newtext;
03089   //  float isovalue;
03090   float srange[2];
03091   int numContours;
03092 
03093   assert(currentToolRecord != NULL);
03094   isotool = (IsoSurfaceTool *)currentToolRecord->tool;
03095   newtext = XmTextFieldGetString(w);
03096   numContours = isotool->GetNumContours();
03097   isotool->GetContourSubRange(srange);
03098   srange[1] = atof(newtext);
03099   isotool->SetContourSubRange(srange);
03100   isotool->GetContourFilter()->GenerateValues(numContours,srange);
03101   XtFree (newtext);
03102   rendertool = (RenderTool *)current_viztool->GetSelectedTool(Render);
03103   rendertool->GetRenderWindow()->Render();
03104   DisplayToolBB();
03105 
03106     // End user code block <misoContourRangeMaxTextFieldActivate>
03107 }
03108 
03109 void MainWindow::misoContourRangeMinTextFieldActivateCallback(Widget w, 
03110                 XtPointer clientData, XtPointer callData)
03111 {
03112     UICallbackStruct *data = (UICallbackStruct *) clientData;
03113     MainWindow *obj = (MainWindow *)data->object;
03114     obj->misoContourRangeMinTextFieldActivate(w, (XtPointer) data->client_data, callData);
03115 }
03116 
03117 void MainWindow::misoContourRangeMinTextFieldActivate(Widget w, XtPointer clientData, XtPointer callData)
03118 {
03119     
03120     // Begin user code block <misoContourRangeMinTextFieldActivate>
03121   IsoSurfaceTool *isotool;
03122   RenderTool *rendertool;
03123   char *newtext;
03124   //  float isovalue;
03125   float srange[2];
03126   int numContours;
03127 
03128   assert(currentToolRecord != NULL);
03129   isotool = (IsoSurfaceTool *)currentToolRecord->tool;
03130   newtext = XmTextFieldGetString(w);
03131   numContours = isotool->GetNumContours();
03132   isotool->GetContourSubRange(srange);
03133   srange[0] = atof(newtext);
03134   isotool->SetContourSubRange(srange);
03135   isotool->GetContourFilter()->GenerateValues(numContours,srange);
03136   XtFree (newtext);
03137   rendertool = (RenderTool *)current_viztool->GetSelectedTool(Render);
03138   rendertool->GetRenderWindow()->Render();
03139   DisplayToolBB();
03140     // End user code block <misoContourRangeMinTextFieldActivate>
03141 }
03142 
03143 void MainWindow::sliceValueScaleChangedCallback(Widget w, 
03144                 XtPointer clientData, XtPointer callData)
03145 {
03146     UICallbackStruct *data = (UICallbackStruct *) clientData;
03147     MainWindow *obj = (MainWindow *)data->object;
03148     obj->sliceValueScaleChanged(w, (XtPointer) data->client_data, callData);
03149 }
03150 
03151 void MainWindow::sliceValueScaleChanged(Widget w, XtPointer clientData, XtPointer callData)
03152 {
03153     
03154     // Begin user code block <sliceValueScaleChanged>
03155   int value;
03156   float slicevalue;
03157   SliceTool *slicetool;
03158   RenderTool *rendertool;
03159   int dims[3];
03160   float origin[3], aspect[3];
03161   float range[2];
03162   //  int sliceType;
03163 
03164   XmScaleGetValue(w, &value);
03165   //  cerr << "Scale:" << value << "\n";
03166 
03167   slicetool = (SliceTool *)currentToolRecord->tool;
03168   slicetool->GetAllValues(dims,origin,aspect,range);
03169   //  sliceType = slicetool->GetSliceType();
03170   slicevalue = (((float)value / 100) * (slicetool->GetValueRange()) + slicetool->GetLowerBound());
03171   slicetool->SetSliceValue(slicevalue);
03172   slicetool->SetExtent();
03173   rendertool = (RenderTool *)current_viztool->GetSelectedTool(Render);
03174   rendertool->GetRenderWindow()->Render();
03175   DisplayToolBB();
03176     // End user code block <sliceValueScaleChanged>
03177 }
03178 
03179 void MainWindow::sliceXYChangedCallback(Widget w, 
03180                 XtPointer clientData, XtPointer callData)
03181 {
03182     UICallbackStruct *data = (UICallbackStruct *) clientData;
03183     MainWindow *obj = (MainWindow *)data->object;
03184     obj->sliceXYChanged(w, (XtPointer) data->client_data, callData);
03185 }
03186 
03187 void MainWindow::sliceXYChanged(Widget w, XtPointer clientData, XtPointer callData)
03188 {
03189     
03190     // Begin user code block <sliceXYChanged>
03191   //  cerr << "sliceXYChanged\n";
03192   SliceBBToggleChanged(XY);
03193     // End user code block <sliceXYChanged>
03194 }
03195 
03196 void MainWindow::sliceYZchangedCallback(Widget w, 
03197                 XtPointer clientData, XtPointer callData)
03198 {
03199     UICallbackStruct *data = (UICallbackStruct *) clientData;
03200     MainWindow *obj = (MainWindow *)data->object;
03201     obj->sliceYZchanged(w, (XtPointer) data->client_data, callData);
03202 }
03203 
03204 void MainWindow::sliceYZchanged(Widget w, XtPointer clientData, XtPointer callData)
03205 {
03206     
03207     // Begin user code block <sliceYZchanged>
03208   //  cerr << "sliceYZChanged\n";
03209   SliceBBToggleChanged(YZ);
03210     // End user code block <sliceYZchanged>
03211 }
03212 
03213 void MainWindow::sliceXZChangedCallback(Widget w, 
03214                 XtPointer clientData, XtPointer callData)
03215 {
03216     UICallbackStruct *data = (UICallbackStruct *) clientData;
03217     MainWindow *obj = (MainWindow *)data->object;
03218     obj->sliceXZChanged(w, (XtPointer) data->client_data, callData);
03219 }
03220 
03221 void MainWindow::sliceXZChanged(Widget w, XtPointer clientData, XtPointer callData)
03222 {
03223     
03224     // Begin user code block <sliceXZChanged>
03225   //  cerr << "sliceXZChanged\n";
03226   SliceBBToggleChanged(XZ);
03227     // End user code block <sliceXZChanged>
03228 }
03229 
03230 void MainWindow::sliceValueTextFieldActivateCallback(Widget w, 
03231                 XtPointer clientData, XtPointer callData)
03232 {
03233     UICallbackStruct *data = (UICallbackStruct *) clientData;
03234     MainWindow *obj = (MainWindow *)data->object;
03235     obj->sliceValueTextFieldActivate(w, (XtPointer) data->client_data, callData);
03236 }
03237 
03238 void MainWindow::sliceValueTextFieldActivate(Widget w, XtPointer clientData, XtPointer callData)
03239 {
03240     
03241     // Begin user code block <sliceValueTextFieldActivate>
03242   SliceTool *slicetool;
03243   RenderTool *rendertool;
03244   char *newtext;
03245   float sliceValue;
03246 
03247   assert(currentToolRecord != NULL);
03248   slicetool = (SliceTool *)currentToolRecord->tool;
03249   newtext = XmTextFieldGetString(w);
03250   sliceValue = atof(newtext);
03251   slicetool->SetSliceValue(sliceValue);
03252   slicetool->SetExtent();
03253   XtFree (newtext);
03254   rendertool = (RenderTool *)current_viztool->GetSelectedTool(Render);
03255   rendertool->GetRenderWindow()->Render();
03256   DisplayToolBB();
03257     // End user code block <sliceValueTextFieldActivate>
03258 }
03259 
03260 void MainWindow::IsoTransparencyTextFieldActivateCallback(Widget w, 
03261                 XtPointer clientData, XtPointer callData)
03262 {
03263     UICallbackStruct *data = (UICallbackStruct *) clientData;
03264     MainWindow *obj = (MainWindow *)data->object;
03265     obj->IsoTransparencyTextFieldActivate(w, (XtPointer) data->client_data, callData);
03266 }
03267 
03268 void MainWindow::IsoTransparencyTextFieldActivate(Widget w, XtPointer clientData, XtPointer callData)
03269 {
03270     
03271     // Begin user code block <IsoTransparencyTextFieldActivate>
03272   IsoSurfaceTool *isotool;
03273   RenderTool *rendertool;
03274   char *newtext;
03275   float transvalue;
03276   
03277   assert(currentToolRecord != NULL);
03278   isotool = (IsoSurfaceTool *)currentToolRecord->tool;
03279   newtext = XmTextFieldGetString(w);
03280   transvalue = atof(newtext);
03281   isotool->GetActor()->GetProperty()->SetOpacity(1.0-transvalue);
03282   XtFree (newtext);
03283   rendertool = (RenderTool *)current_viztool->GetSelectedTool(Render);
03284   rendertool->GetRenderWindow()->Render();
03285   DisplayToolBB();
03286     // End user code block <IsoTransparencyTextFieldActivate>
03287 }
03288 
03289 void MainWindow::isoValueScaleChangedCallbackCallback(Widget w, 
03290                 XtPointer clientData, XtPointer callData)
03291 {
03292     UICallbackStruct *data = (UICallbackStruct *) clientData;
03293     MainWindow *obj = (MainWindow *)data->object;
03294     obj->isoValueScaleChangedCallback(w, (XtPointer) data->client_data, callData);
03295 }
03296 
03297 void MainWindow::isoValueScaleChangedCallback(Widget w, XtPointer clientData, XtPointer callData)
03298 {
03299     
03300     // Begin user code block <isoValueScaleChangedCallback>
03301   int value;
03302   float isovalue;
03303   IsoSurfaceTool *isotool;
03304   RenderTool *rendertool;
03305   float range[2];
03306 
03307   XmScaleGetValue(w, &value);
03308   //  cerr << "Scale:" << value << "\n";
03309   
03310 
03311   isotool = (IsoSurfaceTool *)currentToolRecord->tool;
03312   isotool->GetRange(range);
03313   isovalue = (((float)value / 100) * (range[1] - range[0])) + range[0];
03314   isotool->GetContourFilter()->SetValue(0,isovalue);
03315   rendertool = (RenderTool *)current_viztool->GetSelectedTool(Render);
03316   rendertool->GetRenderWindow()->Render();
03317   DisplayToolBB();
03318     // End user code block <isoValueScaleChangedCallback>
03319 }
03320 
03321 void MainWindow::IsoValueTextFieldActivateCallback(Widget w, 
03322                 XtPointer clientData, XtPointer callData)
03323 {
03324     UICallbackStruct *data = (UICallbackStruct *) clientData;
03325     MainWindow *obj = (MainWindow *)data->object;
03326     obj->IsoValueTextFieldActivate(w, (XtPointer) data->client_data, callData);
03327 }
03328 
03329 void MainWindow::IsoValueTextFieldActivate(Widget w, XtPointer clientData, XtPointer callData)
03330 {
03331     
03332     // Begin user code block <IsoValueTextFieldActivate>
03333   IsoSurfaceTool *isotool;
03334   RenderTool *rendertool;
03335   char *newtext;
03336   float isovalue;
03337 
03338   assert(currentToolRecord != NULL);
03339   isotool = (IsoSurfaceTool *)currentToolRecord->tool;
03340   newtext = XmTextFieldGetString(w);
03341   isovalue = atof(newtext);
03342   isotool->GetContourFilter()->SetValue(0,isovalue);
03343   XtFree (newtext);
03344   rendertool = (RenderTool *)current_viztool->GetSelectedTool(Render);
03345   rendertool->GetRenderWindow()->Render();
03346   DisplayToolBB();
03347     // End user code block <IsoValueTextFieldActivate>
03348 }
03349 
03350 void MainWindow::sphereToolTraceNumTextFieldActivateCallback(Widget w, 
03351                 XtPointer clientData, XtPointer callData)
03352 {
03353     UICallbackStruct *data = (UICallbackStruct *) clientData;
03354     MainWindow *obj = (MainWindow *)data->object;
03355     obj->sphereToolTraceNumTextFieldActivate(w, (XtPointer) data->client_data, callData);
03356 }
03357 
03358 void MainWindow::sphereToolTraceNumTextFieldActivate(Widget w, XtPointer clientData, XtPointer callData)
03359 {
03360     
03361     // Begin user code block <sphereToolTraceNumTextFieldActivate>
03362   SphereTool *spheretool;
03363   RenderTool *rendertool;
03364   char       *newtext;
03365   int         traceNum;
03366 
03367   assert(currentToolRecord != NULL);
03368   spheretool = (SphereTool *)currentToolRecord->tool;
03369   newtext = XmTextFieldGetString(w);
03370   traceNum = atoi(newtext);
03371   spheretool->SetTraceNumber(traceNum);
03372   XtFree (newtext);
03373   rendertool = (RenderTool *)current_viztool->GetSelectedTool(Render);
03374   rendertool->GetRenderWindow()->Render();
03375   DisplayToolBB();
03376 
03377     // End user code block <sphereToolTraceNumTextFieldActivate>
03378 }
03379 
03380 void MainWindow::sphereResTextFieldActivateCallback(Widget w, 
03381                 XtPointer clientData, XtPointer callData)
03382 {
03383     UICallbackStruct *data = (UICallbackStruct *) clientData;
03384     MainWindow *obj = (MainWindow *)data->object;
03385     obj->sphereResTextFieldActivate(w, (XtPointer) data->client_data, callData);
03386 }
03387 
03388 void MainWindow::sphereResTextFieldActivate(Widget w, XtPointer clientData, XtPointer callData)
03389 {
03390     
03391     // Begin user code block <sphereResTextFieldActivate>
03392   SphereTool *spheretool;
03393   RenderTool *rendertool;
03394   char *newtext;
03395   float sphere_res;
03396 
03397   assert(currentToolRecord != NULL);
03398   spheretool = (SphereTool *)currentToolRecord->tool;
03399   newtext = XmTextFieldGetString(w);
03400   sphere_res = atof(newtext);
03401   spheretool->GetSphereSource()->SetThetaResolution(sphere_res);
03402   spheretool->GetSphereSource()->SetPhiResolution(sphere_res);
03403   XtFree (newtext);
03404   rendertool = (RenderTool *)current_viztool->GetSelectedTool(Render);
03405   rendertool->GetRenderWindow()->Render();
03406   DisplayToolBB();
03407     // End user code block <sphereResTextFieldActivate>
03408 }
03409 
03410 void MainWindow::sphereRadiusTextFieldActivateCallback(Widget w, 
03411                 XtPointer clientData, XtPointer callData)
03412 {
03413     UICallbackStruct *data = (UICallbackStruct *) clientData;
03414     MainWindow *obj = (MainWindow *)data->object;
03415     obj->sphereRadiusTextFieldActivate(w, (XtPointer) data->client_data, callData);
03416 }
03417 
03418 void MainWindow::sphereRadiusTextFieldActivate(Widget w, XtPointer clientData, XtPointer callData)
03419 {
03420     
03421     // Begin user code block <sphereRadiusTextFieldActivate>
03422   SphereTool *spheretool;
03423   RenderTool *rendertool;
03424   char *newtext;
03425   float sphere_radius;
03426 
03427   assert(currentToolRecord != NULL);
03428   spheretool = (SphereTool *)currentToolRecord->tool;
03429   newtext = XmTextFieldGetString(w);
03430   sphere_radius = atof(newtext);
03431   spheretool->GetSphereSource()->SetRadius(sphere_radius);
03432   XtFree (newtext);
03433   rendertool = (RenderTool *)current_viztool->GetSelectedTool(Render);
03434   rendertool->GetRenderWindow()->Render();
03435   DisplayToolBB();
03436     // End user code block <sphereRadiusTextFieldActivate>
03437 }
03438 
03439 void MainWindow::axesLenTextFieldActivateCallback(Widget w, 
03440                 XtPointer clientData, XtPointer callData)
03441 {
03442     UICallbackStruct *data = (UICallbackStruct *) clientData;
03443     MainWindow *obj = (MainWindow *)data->object;
03444     obj->axesLenTextFieldActivate(w, (XtPointer) data->client_data, callData);
03445 }
03446 
03447 void MainWindow::axesLenTextFieldActivate(Widget w, XtPointer clientData, XtPointer callData)
03448 {
03449     
03450     // Begin user code block <axesLenTextFieldActivate>
03451   vizAxesTool *axesTool;
03452   RenderTool *rendertool;
03453   char *newtext;
03454   float scaleFact;
03455 
03456   assert(currentToolRecord);
03457   axesTool = (vizAxesTool *)currentToolRecord->tool;
03458   newtext = XmTextFieldGetString(w);
03459   scaleFact = atof(newtext);
03460   axesTool->SetScaleFactor(scaleFact);
03461   XtFree (newtext);
03462   rendertool = (RenderTool *)current_viztool->GetSelectedTool(Render);
03463   rendertool->GetRenderWindow()->Render();
03464   DisplayToolBB();
03465 
03466     // End user code block <axesLenTextFieldActivate>
03467 }
03468 
03469 void MainWindow::vectorFieldTubeFacetsTextFieldActivateCallback(Widget w, 
03470                 XtPointer clientData, XtPointer callData)
03471 {
03472     UICallbackStruct *data = (UICallbackStruct *) clientData;
03473     MainWindow *obj = (MainWindow *)data->object;
03474     obj->vectorFieldTubeFacetsTextFieldActivate(w, (XtPointer) data->client_data, callData);
03475 }
03476 
03477 void MainWindow::vectorFieldTubeFacetsTextFieldActivate(Widget w, XtPointer clientData, XtPointer callData)
03478 {
03479     
03480     // Begin user code block <vectorFieldTubeFacetsTextFieldActivate>
03481   vizVectorFieldTool *vectFieldTool;
03482   RenderTool *rendertool;
03483   char *newtext;
03484   float tubeFacets;
03485 
03486   assert(currentToolRecord);
03487   vectFieldTool = (vizVectorFieldTool *)currentToolRecord->tool;
03488   newtext = XmTextFieldGetString(w);
03489   tubeFacets = atoi(newtext);
03490   vectFieldTool->SetNumberOfTubeFacets(tubeFacets);
03491   XtFree (newtext);
03492   rendertool = (RenderTool *)current_viztool->GetSelectedTool(Render);
03493   rendertool->GetRenderWindow()->Render();
03494   DisplayToolBB();
03495 
03496     // End user code block <vectorFieldTubeFacetsTextFieldActivate>
03497 }
03498 
03499 void MainWindow::vectorFieldTubeRadiusTextFieldActivateCallback(Widget w, 
03500                 XtPointer clientData, XtPointer callData)
03501 {
03502     UICallbackStruct *data = (UICallbackStruct *) clientData;
03503     MainWindow *obj = (MainWindow *)data->object;
03504     obj->vectorFieldTubeRadiusTextFieldActivate(w, (XtPointer) data->client_data, callData);
03505 }
03506 
03507 void MainWindow::vectorFieldTubeRadiusTextFieldActivate(Widget w, XtPointer clientData, XtPointer callData)
03508 {
03509     
03510     // Begin user code block <vectorFieldTubeRadiusTextFieldActivate>
03511   vizVectorFieldTool *vectFieldTool;
03512   RenderTool *rendertool;
03513   char *newtext;
03514   float tubeRadius;
03515 
03516   assert(currentToolRecord);
03517   vectFieldTool = (vizVectorFieldTool *)currentToolRecord->tool;
03518   newtext = XmTextFieldGetString(w);
03519   tubeRadius = atof(newtext);
03520   vectFieldTool->SetArrowTubeRadius(tubeRadius);
03521   XtFree (newtext);
03522   rendertool = (RenderTool *)current_viztool->GetSelectedTool(Render);
03523   rendertool->GetRenderWindow()->Render();
03524   DisplayToolBB();
03525 
03526     // End user code block <vectorFieldTubeRadiusTextFieldActivate>
03527 }
03528 
03529 void MainWindow::vectorFieldTubeVectorsFlagChangedCallback(Widget w, 
03530                 XtPointer clientData, XtPointer callData)
03531 {
03532     UICallbackStruct *data = (UICallbackStruct *) clientData;
03533     MainWindow *obj = (MainWindow *)data->object;
03534     obj->vectorFieldTubeVectorsFlagChanged(w, (XtPointer) data->client_data, callData);
03535 }
03536 
03537 void MainWindow::vectorFieldTubeVectorsFlagChanged(Widget w, XtPointer clientData, XtPointer callData)
03538 {
03539     
03540     // Begin user code block <vectorFieldTubeVectorsFlagChanged>
03541   vizVectorFieldTool *vectFieldTool;
03542   RenderTool *rendertool;
03543 
03544   assert(currentToolRecord);
03545   vectFieldTool = (vizVectorFieldTool *)currentToolRecord->tool;
03546 
03547   vectFieldTool->FlipTubeArrowFlag();
03548   rendertool = (RenderTool *)current_viztool->GetSelectedTool(Render);
03549   rendertool->GetRenderWindow()->Render();
03550   DisplayToolBB();
03551     // End user code block <vectorFieldTubeVectorsFlagChanged>
03552 }
03553 
03554 void MainWindow::vectorFieldScaleFactorTextFieldActivateCallback(Widget w, 
03555                 XtPointer clientData, XtPointer callData)
03556 {
03557     UICallbackStruct *data = (UICallbackStruct *) clientData;
03558     MainWindow *obj = (MainWindow *)data->object;
03559     obj->vectorFieldScaleFactorTextFieldActivate(w, (XtPointer) data->client_data, callData);
03560 }
03561 
03562 void MainWindow::vectorFieldScaleFactorTextFieldActivate(Widget w, XtPointer clientData, XtPointer callData)
03563 {
03564     
03565     // Begin user code block <vectorFieldScaleFactorTextFieldActivate>
03566   vizVectorFieldTool *vectFieldTool;
03567   RenderTool *rendertool;
03568   char *newtext;
03569   float scaleFactor;
03570 
03571   assert(currentToolRecord);
03572   vectFieldTool = (vizVectorFieldTool *)currentToolRecord->tool;
03573   newtext = XmTextFieldGetString(w);
03574   scaleFactor = atof(newtext);
03575   vectFieldTool->SetScaleFactor(scaleFactor);
03576   XtFree (newtext);
03577   rendertool = (RenderTool *)current_viztool->GetSelectedTool(Render);
03578   rendertool->GetRenderWindow()->Render();
03579   DisplayToolBB();
03580 
03581     // End user code block <vectorFieldScaleFactorTextFieldActivate>
03582 }
03583 
03584 void MainWindow::vectorParticleTubeVectorsFlagChangedCallback(Widget w, 
03585                 XtPointer clientData, XtPointer callData)
03586 {
03587     UICallbackStruct *data = (UICallbackStruct *) clientData;
03588     MainWindow *obj = (MainWindow *)data->object;
03589     obj->vectorParticleTubeVectorsFlagChanged(w, (XtPointer) data->client_data, callData);
03590 }
03591 
03592 void MainWindow::vectorParticleTubeVectorsFlagChanged(Widget w, XtPointer clientData, XtPointer callData)
03593 {
03594     
03595     // Begin user code block <vectorParticleTubeVectorsFlagChanged>
03596   vizVectorParticleTool *vectParticleTool;
03597   RenderTool *rendertool;
03598 
03599   assert(currentToolRecord);
03600   vectParticleTool = (vizVectorParticleTool *)currentToolRecord->tool;
03601 
03602   vectParticleTool->FlipTubeArrowFlag();
03603   rendertool = (RenderTool *)current_viztool->GetSelectedTool(Render);
03604   rendertool->GetRenderWindow()->Render();
03605   DisplayToolBB();
03606 
03607     // End user code block <vectorParticleTubeVectorsFlagChanged>
03608 }
03609 
03610 void MainWindow::vectorParticleTubeFacetsTextFieldActivateCallback(Widget w, 
03611                 XtPointer clientData, XtPointer callData)
03612 {
03613     UICallbackStruct *data = (UICallbackStruct *) clientData;
03614     MainWindow *obj = (MainWindow *)data->object;
03615     obj->vectorParticleTubeFacetsTextFieldActivate(w, (XtPointer) data->client_data, callData);
03616 }
03617 
03618 void MainWindow::vectorParticleTubeFacetsTextFieldActivate(Widget w, XtPointer clientData, XtPointer callData)
03619 {
03620     
03621     // Begin user code block <vectorParticleTubeFacetsTextFieldActivate>
03622   vizVectorParticleTool *vectParticleTool;
03623   RenderTool *rendertool;
03624   char *newtext;
03625   float tubeFacets;
03626 
03627   assert(currentToolRecord);
03628   vectParticleTool = (vizVectorParticleTool *)currentToolRecord->tool;
03629   newtext = XmTextFieldGetString(w);
03630   tubeFacets = atoi(newtext);
03631   vectParticleTool->SetNumberOfTubeFacets(tubeFacets);
03632   XtFree (newtext);
03633   rendertool = (RenderTool *)current_viztool->GetSelectedTool(Render);
03634   rendertool->GetRenderWindow()->Render();
03635   DisplayToolBB();
03636 
03637     // End user code block <vectorParticleTubeFacetsTextFieldActivate>
03638 }
03639 
03640 void MainWindow::vectorParticleTubeRadiusTextFieldActivateCallback(Widget w, 
03641                 XtPointer clientData, XtPointer callData)
03642 {
03643     UICallbackStruct *data = (UICallbackStruct *) clientData;
03644     MainWindow *obj = (MainWindow *)data->object;
03645     obj->vectorParticleTubeRadiusTextFieldActivate(w, (XtPointer) data->client_data, callData);
03646 }
03647 
03648 void MainWindow::vectorParticleTubeRadiusTextFieldActivate(Widget w, XtPointer clientData, XtPointer callData)
03649 {
03650     
03651     // Begin user code block <vectorParticleTubeRadiusTextFieldActivate>
03652   vizVectorParticleTool *vectParticleTool;
03653   RenderTool *rendertool;
03654   char *newtext;
03655   float tubeRadius;
03656 
03657   assert(currentToolRecord);
03658   vectParticleTool = (vizVectorParticleTool *)currentToolRecord->tool;
03659   newtext = XmTextFieldGetString(w);
03660   tubeRadius = atof(newtext);
03661   vectParticleTool->SetArrowTubeRadius(tubeRadius);
03662   XtFree (newtext);
03663   rendertool = (RenderTool *)current_viztool->GetSelectedTool(Render);
03664   rendertool->GetRenderWindow()->Render();
03665   DisplayToolBB();
03666 
03667     // End user code block <vectorParticleTubeRadiusTextFieldActivate>
03668 }
03669 
03670 void MainWindow::vectorParticleTraceNumberTextFieldActivateCallback(Widget w, 
03671                 XtPointer clientData, XtPointer callData)
03672 {
03673     UICallbackStruct *data = (UICallbackStruct *) clientData;
03674     MainWindow *obj = (MainWindow *)data->object;
03675     obj->vectorParticleTraceNumberTextFieldActivate(w, (XtPointer) data->client_data, callData);
03676 }
03677 
03678 void MainWindow::vectorParticleTraceNumberTextFieldActivate(Widget w, XtPointer clientData, XtPointer callData)
03679 {
03680     
03681     // Begin user code block <vectorParticleTraceNumberTextFieldActivate>
03682   vizVectorParticleTool *vectParticleTool;
03683   RenderTool            *rendertool;
03684   char                  *newtext;
03685   int                   traceNum;
03686 
03687   assert(currentToolRecord != NULL);
03688   vectParticleTool = (vizVectorParticleTool *)currentToolRecord->tool;
03689   newtext = XmTextFieldGetString(w);
03690   traceNum = atoi(newtext);
03691   vectParticleTool->SetTraceNumber(traceNum);
03692   XtFree (newtext);
03693   rendertool = (RenderTool *)current_viztool->GetSelectedTool(Render);
03694   rendertool->GetRenderWindow()->Render();
03695   DisplayToolBB();
03696 
03697     // End user code block <vectorParticleTraceNumberTextFieldActivate>
03698 }
03699 
03700 void MainWindow::vectorParticleScaleFactorTextFieldActivateCallback(Widget w, 
03701                 XtPointer clientData, XtPointer callData)
03702 {
03703     UICallbackStruct *data = (UICallbackStruct *) clientData;
03704     MainWindow *obj = (MainWindow *)data->object;
03705     obj->vectorParticleScaleFactorTextFieldActivate(w, (XtPointer) data->client_data, callData);
03706 }
03707 
03708 void MainWindow::vectorParticleScaleFactorTextFieldActivate(Widget w, XtPointer clientData, XtPointer callData)
03709 {
03710     
03711     // Begin user code block <vectorParticleScaleFactorTextFieldActivate>
03712   vizVectorParticleTool *vectParticleTool;
03713   RenderTool *rendertool;
03714   char *newtext;
03715   float scaleFactor;
03716 
03717   assert(currentToolRecord);
03718   vectParticleTool = (vizVectorParticleTool *)currentToolRecord->tool;
03719   newtext = XmTextFieldGetString(w);
03720   scaleFactor = atof(newtext);
03721   vectParticleTool->SetScaleFactor(scaleFactor);
03722   XtFree (newtext);
03723   rendertool = (RenderTool *)current_viztool->GetSelectedTool(Render);
03724   rendertool->GetRenderWindow()->Render();
03725   DisplayToolBB();
03726 
03727     // End user code block <vectorParticleScaleFactorTextFieldActivate>
03728 }
03729 
03730 void MainWindow::particleLineTraceTubeFlagChangedActivateCallbackCallback(Widget w, 
03731                 XtPointer clientData, XtPointer callData)
03732 {
03733     UICallbackStruct *data = (UICallbackStruct *) clientData;
03734     MainWindow *obj = (MainWindow *)data->object;
03735     obj->particleLineTraceTubeFlagChangedActivateCallback(w, (XtPointer) data->client_data, callData);
03736 }
03737 
03738 void MainWindow::particleLineTraceTubeFlagChangedActivateCallback(Widget w, XtPointer clientData, XtPointer callData)
03739 {
03740     
03741     // Begin user code block <particleLineTraceTubeFlagChangedActivateCallback>
03742   vizParticleLineTraceTool *vizParticleLineTrace;
03743   RenderTool *rendertool;
03744 
03745   assert(currentToolRecord);
03746   vizParticleLineTrace = (vizParticleLineTraceTool *)currentToolRecord->tool;
03747 
03748   vizParticleLineTrace->FlipTubeLinesFlag();
03749   rendertool = (RenderTool *)current_viztool->GetSelectedTool(Render);
03750   rendertool->GetRenderWindow()->Render();
03751   DisplayToolBB();
03752 
03753     // End user code block <particleLineTraceTubeFlagChangedActivateCallback>
03754 }
03755 
03756 void MainWindow::particleLineTraceNumTextFieldActivateCallback(Widget w, 
03757                 XtPointer clientData, XtPointer callData)
03758 {
03759     UICallbackStruct *data = (UICallbackStruct *) clientData;
03760     MainWindow *obj = (MainWindow *)data->object;
03761     obj->particleLineTraceNumTextFieldActivate(w, (XtPointer) data->client_data, callData);
03762 }
03763 
03764 void MainWindow::particleLineTraceNumTextFieldActivate(Widget w, XtPointer clientData, XtPointer callData)
03765 {
03766     
03767     // Begin user code block <particleLineTraceNumTextFieldActivate>
03768   vizParticleLineTraceTool  *lineTraceTool;
03769   RenderTool *rendertool;
03770   char       *newtext;
03771   int         traceNum;
03772 
03773   assert(currentToolRecord != NULL);
03774   lineTraceTool = (vizParticleLineTraceTool *)currentToolRecord->tool;
03775   newtext = XmTextFieldGetString(w);
03776   traceNum = atoi(newtext);
03777   lineTraceTool->SetTraceNumber(traceNum);
03778   XtFree (newtext);
03779   rendertool = (RenderTool *)current_viztool->GetSelectedTool(Render);
03780   rendertool->GetRenderWindow()->Render();
03781   DisplayToolBB();
03782 
03783     // End user code block <particleLineTraceNumTextFieldActivate>
03784 }
03785 
03786 void MainWindow::StepCallback(Widget w, 
03787                 XtPointer clientData, XtPointer callData)
03788 {
03789     UICallbackStruct *data = (UICallbackStruct *) clientData;
03790     MainWindow *obj = (MainWindow *)data->object;
03791     obj->Step(w, (XtPointer) data->client_data, callData);
03792 }
03793 
03794 void MainWindow::Step(Widget w, XtPointer clientData, XtPointer callData)
03795 {
03796   // Begin user code block <Step>
03797   //current_viztool->InteractExit();
03798   vizStep(current_viztool);
03799   // End user code block <Step>
03800 }
03801 
03802 void MainWindow::GoCallback(Widget w, 
03803                 XtPointer clientData, XtPointer callData)
03804 {
03805     UICallbackStruct *data = (UICallbackStruct *) clientData;
03806     MainWindow *obj = (MainWindow *)data->object;
03807     obj->Go(w, (XtPointer) data->client_data, callData);
03808 }
03809 
03810 void MainWindow::Go(Widget w, XtPointer clientData, XtPointer callData)
03811 {
03812   // Begin user code block <Go>
03813   //current_viztool->InteractGoFlow();
03814   //current_viztool->InteractExit();
03815   vizGo(current_viztool);
03816   // End user code block <Go>
03817 }
03818 
03819 void MainWindow::StopCallback(Widget w, 
03820                 XtPointer clientData, XtPointer callData)
03821 {
03822     UICallbackStruct *data = (UICallbackStruct *) clientData;
03823     MainWindow *obj = (MainWindow *)data->object;
03824     obj->Stop(w, (XtPointer) data->client_data, callData);
03825 }
03826 
03827 void MainWindow::Stop(Widget w, XtPointer clientData, XtPointer callData)
03828 {
03829   // Begin user code block <Stop>
03830   //current_viztool->InteractStopFlow();
03831   //current_viztool->InteractExit();
03832   vizStop(current_viztool);
03833   // End user code block <Stop>
03834 }
03835 
03836 void MainWindow::SaveImageCallback(Widget w, 
03837                 XtPointer clientData, XtPointer callData)
03838 {
03839     UICallbackStruct *data = (UICallbackStruct *) clientData;
03840     MainWindow *obj = (MainWindow *)data->object;
03841     obj->SaveImage(w, (XtPointer) data->client_data, callData);
03842 }
03843 
03844 void MainWindow::SaveImage(Widget w, XtPointer clientData, XtPointer callData)
03845 {
03846     
03847     // Begin user code block <SaveImage>
03848   RenderTool *rendertool;
03849   rendertool = (RenderTool *)current_viztool->GetSelectedTool(Render);
03850   rendertool->GetRenderWindow()->SetFilename("foobar.ppm");
03851   rendertool->GetRenderWindow()->SaveImageAsPPM();
03852     // End user code block <SaveImage>
03853 }
03854 
03855 void MainWindow::ExitCallback(Widget w, 
03856                 XtPointer clientData, XtPointer callData)
03857 {
03858     UICallbackStruct *data = (UICallbackStruct *) clientData;
03859     MainWindow *obj = (MainWindow *)data->object;
03860     obj->Exit(w, (XtPointer) data->client_data, callData);
03861 }
03862 
03863 void MainWindow::Exit(Widget w, XtPointer clientData, XtPointer callData)
03864 {
03865     
03866     // Begin user code block <Exit>
03867   exit(0);
03868     // End user code block <Exit>
03869 }
03870 
03871 void MainWindow::DialogNewCallbackCallback(Widget w, 
03872                 XtPointer clientData, XtPointer callData)
03873 {
03874     UICallbackStruct *data = (UICallbackStruct *) clientData;
03875     MainWindow *obj = (MainWindow *)data->object;
03876     obj->DialogNewCallback(w, (XtPointer) data->client_data, callData);
03877 }
03878 
03879 void MainWindow::DialogNewCallback(Widget w, XtPointer clientData, XtPointer callData)
03880 {
03881     
03882     // Begin user code block <DialogNewCallback>
03883     XtManageChild(_newDialogBulletinBoard);
03884     // End user code block <DialogNewCallback>
03885 }
03886 
03887 void MainWindow::SelectDialogCallbackCallback(Widget w, 
03888                 XtPointer clientData, XtPointer callData)
03889 {
03890     UICallbackStruct *data = (UICallbackStruct *) clientData;
03891     MainWindow *obj = (MainWindow *)data->object;
03892     obj->SelectDialogCallback(w, (XtPointer) data->client_data, callData);
03893 }
03894 
03895 void MainWindow::SelectDialogCallback(Widget w, XtPointer clientData, XtPointer callData)
03896 {
03897     
03898     // Begin user code block <SelectDialogCallback>
03899     XtManageChild(_selectDialogBulletinBoard);
03900     // End user code block <SelectDialogCallback>
03901 }
03902 
03903 void MainWindow::DeleteDialogCallbackCallback(Widget w, 
03904                 XtPointer clientData, XtPointer callData)
03905 {
03906     UICallbackStruct *data = (UICallbackStruct *) clientData;
03907     MainWindow *obj = (MainWindow *)data->object;
03908     obj->DeleteDialogCallback(w, (XtPointer) data->client_data, callData);
03909 }
03910 
03911 void MainWindow::DeleteDialogCallback(Widget w, XtPointer clientData, XtPointer callData)
03912 {
03913     
03914     // Begin user code block <DeleteDialogCallback>
03915     XtManageChild(_deleteDialogBulletinBoard);
03916     // End user code block <DeleteDialogCallback>
03917 }
03918 
03919 void MainWindow::VTKRefreshCallback(Widget w, 
03920                 XtPointer clientData, XtPointer callData)
03921 {
03922     UICallbackStruct *data = (UICallbackStruct *) clientData;
03923     MainWindow *obj = (MainWindow *)data->object;
03924     obj->VTKRefresh(w, (XtPointer) data->client_data, callData);
03925 }
03926 
03927 void MainWindow::VTKRefresh(Widget w, XtPointer clientData, XtPointer callData)
03928 {
03929     
03930     // Begin user code block <VTKRefresh>
03931     RenderTool *rendertool;
03932     rendertool = (RenderTool *)current_viztool->GetSelectedTool(Render);
03933     rendertool->GetRenderWindow()->Render();
03934     // End user code block <VTKRefresh>
03935 }
03936 
03937 void MainWindow::InteractExitCallback(Widget w, 
03938                 XtPointer clientData, XtPointer callData)
03939 {
03940     UICallbackStruct *data = (UICallbackStruct *) clientData;
03941     MainWindow *obj = (MainWindow *)data->object;
03942     obj->InteractExit(w, (XtPointer) data->client_data, callData);
03943 }
03944 
03945 void MainWindow::InteractExit(Widget w, XtPointer clientData, XtPointer callData)
03946 {
03947     
03948     // Begin user code block <InteractExit>
03949   char           buffer[20];
03950   char           bufSize = 20;
03951   KeySym         key;
03952   XComposeStatus compose;
03953 
03954   XmDrawingAreaCallbackStruct *cbs = (XmDrawingAreaCallbackStruct *)callData;
03955   XEvent *event = cbs->event;
03956 
03957   if (event->xany.type == KeyPress) {
03958     XLookupString((XKeyEvent *)event, buffer, bufSize, &key, &compose);
03959     switch(key) {
03960     case 0x078: // x-key (see /usr/include/X11/keysymdef.h)
03961       Step(w, clientData, callData);
03962       break;
03963     case 0x067: // g-key
03964       Go(w, clientData, callData);
03965       break;
03966     case 0x073: // s-key
03967       Stop(w, clientData, callData);
03968       break;
03969     }
03970   }
03971     // End user code block <InteractExit>
03972 }
03973 
03974 void MainWindow::SelectSelectToolCallback(Widget w, 
03975                 XtPointer clientData, XtPointer callData)
03976 {
03977     UICallbackStruct *data = (UICallbackStruct *) clientData;
03978     MainWindow *obj = (MainWindow *)data->object;
03979     obj->SelectSelectTool(w, (XtPointer) data->client_data, callData);
03980 }
03981 
03982 void MainWindow::SelectSelectTool(Widget w, XtPointer clientData, XtPointer callData)
03983 {
03984     
03985     // Begin user code block <SelectSelectTool>
03986     // End user code block <SelectSelectTool>
03987 }
03988 
03989 void MainWindow::SelectCancelCallbackCallback(Widget w, 
03990                 XtPointer clientData, XtPointer callData)
03991 {
03992     UICallbackStruct *data = (UICallbackStruct *) clientData;
03993     MainWindow *obj = (MainWindow *)data->object;
03994     obj->SelectCancelCallback(w, (XtPointer) data->client_data, callData);
03995 }
03996 
03997 void MainWindow::SelectCancelCallback(Widget w, XtPointer clientData, XtPointer callData)
03998 {
03999     
04000     // Begin user code block <SelectCancelCallback>
04001   XtUnmanageChild(_selectDialogBulletinBoard);
04002     // End user code block <SelectCancelCallback>
04003 }
04004 
04005 void MainWindow::SelectOKCallbackCallback(Widget w, 
04006                 XtPointer clientData, XtPointer callData)
04007 {
04008     UICallbackStruct *data = (UICallbackStruct *) clientData;
04009     MainWindow *obj = (MainWindow *)data->object;
04010     obj->SelectOKCallback(w, (XtPointer) data->client_data, callData);
04011 }
04012 
04013 void MainWindow::SelectOKCallback(Widget w, XtPointer clientData, XtPointer callData)
04014 {
04015     
04016     // Begin user code block <SelectOKCallback>
04017   char *data;
04018   char str[4][80];
04019   //  int i;
04020 
04021   data = BrowseListGetSelectedString(_selectList);
04022   // cerr << data << "\n";
04023 
04024   sscanf(data, "%s %s %s", str[0], str[1], str[2]);
04025   strcat(str[0], " "); strcat(str[0], str[1]);
04026   // cerr << "str: " << str[0] << atoi(str[2]) << "\n";
04027   XtFree(data);
04028   
04029   VizRecord *find_record;      
04030 
04031   find_record = new VizRecord();
04032   strcpy(find_record->name, str[0]);
04033   find_record->id = atoi(str[2]);
04034   currentToolRecord = current_viztool->GetVizDB()->FindItem(find_record);
04035   delete find_record;
04036   DisplayToolBB();
04037 
04038   XtUnmanageChild(_selectDialogBulletinBoard);
04039     // End user code block <SelectOKCallback>
04040 }
04041 
04042 void MainWindow::NewSelectDataObjectCallback(Widget w, 
04043                 XtPointer clientData, XtPointer callData)
04044 {
04045     UICallbackStruct *data = (UICallbackStruct *) clientData;
04046     MainWindow *obj = (MainWindow *)data->object;
04047     obj->NewSelectDataObject(w, (XtPointer) data->client_data, callData);
04048 }
04049 
04050 void MainWindow::NewSelectDataObject(Widget w, XtPointer clientData, XtPointer callData)
04051 {
04052     
04053     // Begin user code block <NewSelectDataObject>
04054     // End user code block <NewSelectDataObject>
04055 }
04056 
04057 void MainWindow::NewSelectToolTypeCallback(Widget w, 
04058                 XtPointer clientData, XtPointer callData)
04059 {
04060     UICallbackStruct *data = (UICallbackStruct *) clientData;
04061     MainWindow *obj = (MainWindow *)data->object;
04062     obj->NewSelectToolType(w, (XtPointer) data->client_data, callData);
04063 }
04064 
04065 void MainWindow::NewSelectToolType(Widget w, XtPointer clientData, XtPointer callData)
04066 {
04067     
04068     // Begin user code block <NewSelectToolType>
04069     // End user code block <NewSelectToolType>
04070 }
04071 
04072 void MainWindow::NewCancelCallbackCallback(Widget w, 
04073                 XtPointer clientData, XtPointer callData)
04074 {
04075     UICallbackStruct *data = (UICallbackStruct *) clientData;
04076     MainWindow *obj = (MainWindow *)data->object;
04077     obj->NewCancelCallback(w, (XtPointer) data->client_data, callData);
04078 }
04079 
04080 void MainWindow::NewCancelCallback(Widget w, XtPointer clientData, XtPointer callData)
04081 {
04082     
04083     // Begin user code block <NewCancelCallback>
04084     XtUnmanageChild(_newDialogBulletinBoard);
04085     // End user code block <NewCancelCallback>
04086 }
04087 
04088 void MainWindow::NewOKCallbackCallback(Widget w, 
04089                 XtPointer clientData, XtPointer callData)
04090 {
04091     UICallbackStruct *data = (UICallbackStruct *) clientData;
04092     MainWindow *obj = (MainWindow *)data->object;
04093     obj->NewOKCallback(w, (XtPointer) data->client_data, callData);
04094 }
04095 
04096 
04097 int MainWindow::GetToolIndex(const char *toolname) {
04098   if (!toolname)
04099     return 0;
04100   if (!strcmp(toolname, "Slice"))
04101     return 1;
04102   else if (!strcmp(toolname, "Iso"))
04103     return 2;
04104   else if (!strcmp(toolname, "M-Iso"))
04105     return 3;
04106   else if (!strcmp(toolname, "Point"))
04107     return 4;
04108   else if (!strcmp(toolname, "Sphere"))
04109     return 5;
04110   else if (!strcmp(toolname, "VectorField"))
04111     return 6;
04112   else if (!strcmp(toolname, "VectorParticle"))
04113     return 7;
04114   else if (!strcmp(toolname, "Axes"))
04115     return 8;
04116   else if (!strcmp(toolname, "LineTrace"))
04117     return 9;
04118   else
04119     return 0;
04120 }
04121 
04122 
04123 bool MainWindow::CreateNewTool(const char *dataname, const char *toolname,
04124                                int numopts, char *optvalues[]) {
04125   char      *data = (char *)dataname;
04126   // Used to see if data type is NoDataRequired
04127   char      *NoDataRequired = "NoDataRequired"; 
04128   int        tooltype_index;    
04129   char      *title;             // Used to make title of tool pannel
04130   VizRecord *find_record;
04131   VizRecord *rt_record;         // record of ReadTool
04132   int        makeRecord = 0;    // Flag to find if an empty rt_record was created
04133   int        addTool = 0;       // If 1, a tool and data type match, so add the tool
04134 
04135   tooltype_index = GetToolIndex(toolname);
04136   //cerr << "*** tooltype_index = " << tooltype_index << endl;
04137   //cerr << "*** tooltype data  = " << data << endl;
04138 
04139   if ( tooltype_index > 0) {
04140     //cerr << "*** looking for record ..." << endl;
04141     // if a data type has been chosen and the data type is not "NoDataRequired"
04142     // Set the ReadTool to the specified Ippl data object
04143     // Else, make an Empty record for the ReadTool
04144     if (data != NULL && strcmp(data, NoDataRequired)) {
04145       find_record = new VizRecord();
04146       find_record->caller = NULL;
04147       strcpy(find_record->name, data);
04148       rt_record = current_viztool->GetVizDB()->FindItem(find_record);
04149       delete find_record;
04150       //cerr << "*** rt_record->tooltype = " << rt_record->tooltype << endl;
04151     } else {
04152       rt_record  = new VizRecord;
04153       rt_record->tooltype = Empty;
04154       makeRecord = 1;
04155       //cerr << "*** rt_record->tooltype = Empty" << endl;
04156     }
04157 
04158     // Create a Filter Tool of the approriate type
04159     //    Set the input to be the selected ReadTool
04160     //    Assigned a unique id to the tool
04161     
04162     RenderTool *rendertool;
04163     rendertool = (RenderTool *)current_viztool->GetSelectedTool(Render);
04164 
04165     VizRecord *tool_record;
04166 
04167     switch (rt_record->tooltype) {
04168     case ReadField:
04169       //cerr << "*** field tooltype_index = " << tooltype_index << endl;
04170       switch (tooltype_index) {
04171       case SliceIndex:
04172         SliceTool *slicetool;
04173         
04174         slicetool = new SliceTool(rt_record->tool,rendertool);
04175         
04176         tool_record = new VizRecord();  
04177         tool_record->caller = rt_record->tool;
04178         strcpy(tool_record->name, "Slice Tool");
04179         tool_record->tool = slicetool;
04180         tool_record->id = current_viztool->GetUniqueToolId(Slice);
04181         tool_record->tooltype = Slice;
04182         current_viztool->GetVizDB()->AddItem(tool_record);
04183         currentToolRecord = tool_record;
04184         addTool = 1;
04185 
04186         // set parameters
04187         for (int i=0; i < numopts; ++i) {
04188           if (!strcmp(optvalues[i], "loc") && i < (numopts-1)) {
04189             slicetool->SetSliceValue(atof(optvalues[++i]));
04190           } else if (!strcmp(optvalues[i], "orient") && i < (numopts-1)) {
04191             ++i;
04192             if (!strcmp(optvalues[i], "xy"))
04193               slicetool->SetSliceType(XY);
04194             else if (!strcmp(optvalues[i], "xz"))
04195               slicetool->SetSliceType(XZ);
04196             else if (!strcmp(optvalues[i], "yz"))
04197               slicetool->SetSliceType(YZ);
04198           } else {
04199             cerr << "Error: bad Slice param '" << optvalues[i] << "'." << endl;
04200           }
04201         }
04202 
04203         break;
04204       case VectorFieldIndex:
04205         vizVectorFieldTool *vectorFieldTool;
04206         
04207         vectorFieldTool = new vizVectorFieldTool(rt_record->tool,rendertool);
04208         
04209         tool_record = new VizRecord();  
04210         tool_record->caller = rt_record->tool;
04211         strcpy(tool_record->name, "VectorField Tool");
04212         tool_record->tool = vectorFieldTool;
04213         tool_record->id = current_viztool->GetUniqueToolId(VectorField);
04214         tool_record->tooltype = VectorField;
04215         current_viztool->GetVizDB()->AddItem(tool_record);
04216         currentToolRecord = tool_record;
04217         addTool = 1;
04218 
04219         // set parameters
04220         for (int i=0; i < numopts; ++i) {
04221           if (!strcmp(optvalues[i], "scale") && i < (numopts-1)) {
04222             vectorFieldTool->SetScaleFactor(atof(optvalues[++i]));
04223           } else {
04224             cerr << "Error: bad VectorField param '" << optvalues[i] << "'." << endl;
04225           }
04226         }
04227 
04228         break;
04229       case IsoIndex:
04230       case MIsoIndex:
04231         IsoSurfaceTool *isosurfacetool;
04232         
04233         isosurfacetool = new IsoSurfaceTool(rt_record->tool,rendertool);
04234         
04235         tool_record = new VizRecord();  
04236         tool_record->caller = rt_record->tool;
04237         tool_record->tool = isosurfacetool;
04238         if (tooltype_index == IsoIndex) {
04239           strcpy(tool_record->name, "Iso Tool");
04240           tool_record->id = current_viztool->GetUniqueToolId(Iso);
04241           tool_record->tooltype = Iso;
04242         } else {
04243           strcpy(tool_record->name, "M-Iso Tool");
04244           tool_record->id = current_viztool->GetUniqueToolId(MIso);
04245           tool_record->tooltype = MIso;
04246         }
04247         
04248         current_viztool->GetVizDB()->AddItem(tool_record);
04249         currentToolRecord = tool_record;
04250         addTool = 1;
04251 
04252         // set parameters
04253         for (int i=0; i < numopts; ++i) {
04254           if (!strcmp(optvalues[i], "value") && i < (numopts-1)) {
04255             float vals[2];
04256             vals[0] = vals[1] = atof(optvalues[++i]);
04257             isosurfacetool->SetContourSubRange(vals);
04258           } else if (!strcmp(optvalues[i], "min") && i < (numopts-1)) {
04259             float vals[2];
04260             isosurfacetool->GetContourSubRange(vals);
04261             vals[0] = atof(optvalues[++i]);
04262             isosurfacetool->SetContourSubRange(vals);
04263           } else if (!strcmp(optvalues[i], "max") && i < (numopts-1)) {
04264             float vals[2];
04265             isosurfacetool->GetContourSubRange(vals);
04266             vals[1] = atof(optvalues[++i]);
04267             isosurfacetool->SetContourSubRange(vals);
04268           } else if (!strcmp(optvalues[i], "num") && i < (numopts-1)) {
04269             isosurfacetool->SetNumContours(atoi(optvalues[++i]));
04270           } else {
04271             cerr << "Error: bad Iso param '" << optvalues[i] << "'." << endl;
04272           }
04273         }
04274 
04275         break;
04276       default:
04277         cerr << "Incompatible tool for field data type.\n";
04278         break;
04279       }
04280       break;
04281     case ReadParticle:
04282       //cerr << "*** particle tooltype_index = " << tooltype_index << endl;
04283       switch (tooltype_index) {
04284       case PointIndex:
04285         PointTool *pointtool;
04286         
04287         pointtool = new PointTool(rt_record->tool,rendertool);
04288         
04289         tool_record = new VizRecord();  
04290         tool_record->caller = rt_record->tool;
04291         tool_record->tool = pointtool;
04292         strcpy(tool_record->name, "Point Tool");
04293         tool_record->id = current_viztool->GetUniqueToolId(Point);
04294         tool_record->tooltype = Point;
04295         current_viztool->GetVizDB()->AddItem(tool_record);
04296         currentToolRecord = tool_record;
04297         addTool = 1;
04298         break;
04299       case VectorParticleIndex:
04300         vizVectorParticleTool *vectorParticleTool;
04301         
04302         vectorParticleTool = new vizVectorParticleTool(rt_record->tool,rendertool);
04303         
04304         tool_record = new VizRecord();  
04305         tool_record->caller = rt_record->tool;
04306         strcpy(tool_record->name, "VectorParticle Tool");
04307         tool_record->tool = vectorParticleTool;
04308         tool_record->id = current_viztool->GetUniqueToolId(VectorParticle);
04309         tool_record->tooltype = VectorParticle;
04310         current_viztool->GetVizDB()->AddItem(tool_record);
04311         currentToolRecord = tool_record;
04312         addTool = 1;
04313 
04314         // set parameters
04315         for (int i=0; i < numopts; ++i) {
04316           if (!strcmp(optvalues[i], "scale") && i < (numopts-1)) {
04317             vectorParticleTool->SetScaleFactor(atof(optvalues[++i]));
04318           } else if (!strcmp(optvalues[i], "trace") && i < (numopts-1)) {
04319             vectorParticleTool->SetTraceNumber(atoi(optvalues[++i]));
04320           } else {
04321             cerr << "Error: bad VectorParticle param '" << optvalues[i] << "'." << endl;
04322           }
04323         }
04324 
04325         break;
04326       case LineTraceIndex:
04327         vizParticleLineTraceTool *lineTraceTool;
04328         
04329         lineTraceTool = new vizParticleLineTraceTool(rt_record->tool,rendertool);
04330         
04331         tool_record = new VizRecord();  
04332         tool_record->caller = rt_record->tool;
04333         strcpy(tool_record->name, "LineTrace Tool");
04334         tool_record->tool = lineTraceTool;
04335         tool_record->id = current_viztool->GetUniqueToolId(VectorParticle);
04336         tool_record->tooltype = LineTrace;
04337         current_viztool->GetVizDB()->AddItem(tool_record);
04338         currentToolRecord = tool_record;
04339         addTool = 1;
04340         break;
04341       case SphereIndex:
04342         SphereTool *spheretool;
04343         
04344         spheretool = new SphereTool(rt_record->tool,rendertool);
04345         
04346         tool_record = new VizRecord();  
04347         tool_record->caller = rt_record->tool;
04348         tool_record->tool = spheretool;
04349         strcpy(tool_record->name, "Sphere Tool");
04350         tool_record->id = current_viztool->GetUniqueToolId(Sphere);
04351         tool_record->tooltype = Sphere;
04352         current_viztool->GetVizDB()->AddItem(tool_record);
04353         currentToolRecord = tool_record;
04354         addTool = 1;
04355 
04356         // set parameters
04357         for (int i=0; i < numopts; ++i) {
04358           if (!strcmp(optvalues[i], "rad") && i < (numopts-1)) {
04359             spheretool->GetSphereSource()->SetRadius(atof(optvalues[++i]));
04360           } else if (!strcmp(optvalues[i], "res") && i < (numopts-1)) {
04361             float val = atof(optvalues[++i]);
04362             spheretool->GetSphereSource()->SetThetaResolution(val);
04363             spheretool->GetSphereSource()->SetPhiResolution(val);
04364           } else if (!strcmp(optvalues[i], "trace") && i < (numopts-1)) {
04365             spheretool->SetTraceNumber(atoi(optvalues[++i]));
04366           } else {
04367             cerr << "Error: bad Sphere param '" << optvalues[i] << "'." << endl;
04368           }
04369         }
04370 
04371         break;
04372       default:
04373         cerr << "Incompatible tool for particle data type.\n";
04374         break;
04375       }
04376     break;
04377     case Empty:
04378       //cerr << "*** empty tooltype_index = " << tooltype_index << endl;
04379       switch (tooltype_index) {
04380       case AxesIndex:
04381         vizAxesTool *axesTool;
04382         
04383         axesTool = new vizAxesTool(rt_record->tool,rendertool);
04384             
04385         tool_record = new VizRecord();  
04386         tool_record->caller = rt_record->tool;
04387         tool_record->tool = axesTool;
04388         strcpy(tool_record->name, "Axes Tool");
04389         tool_record->id = current_viztool->GetUniqueToolId(Axes);
04390         tool_record->tooltype = Axes;
04391         current_viztool->GetVizDB()->AddItem(tool_record);
04392         currentToolRecord = tool_record;
04393         addTool = 1;
04394         break;
04395       default:
04396         cerr << "Incompatible tool for empty data type.\n";
04397         break;
04398       }
04399     break;
04400     default:
04401       cerr << " No match on tool type in NewOKCallBack " << endl;
04402       break;
04403     }
04404 
04405     if (makeRecord) {
04406       delete rt_record;
04407     }
04408 
04409     if (addTool == 1) {
04410       title = MakeTitleString(currentToolRecord);
04411       AddToolItem(title);
04412       free(title);
04413       DisplayToolBB();
04414       return true;
04415     }
04416   }
04417 
04418   // if we're here, there was an error of some sort
04419   return false;
04420 }
04421 
04422 
04423 void MainWindow::NewOKCallback(Widget w, XtPointer clientData, XtPointer callData)
04424 {
04425     
04426   // Begin user code block <NewOKCallback>
04427   char *data = BrowseListGetSelectedString(_newDataList);
04428   char *tool = BrowseListGetSelectedString(_newToolTypeList);
04429   //int tooltype_index = BrowseListGetSelectedIndex(_newToolTypeList);
04430 
04431   if (data != 0 && tool != 0 && CreateNewTool(data, tool)) {
04432     // should these go outside this if test????  Seems like a mem leak to me.
04433     XtFree(data);
04434     XtFree(tool);
04435   }
04436 
04437   XtUnmanageChild(_newDialogBulletinBoard);
04438   // End user code block <NewOKCallback>
04439 }
04440 
04441 
04442 void MainWindow::DeleteDeleteToolCallback(Widget w, 
04443                 XtPointer clientData, XtPointer callData)
04444 {
04445     UICallbackStruct *data = (UICallbackStruct *) clientData;
04446     MainWindow *obj = (MainWindow *)data->object;
04447     obj->DeleteDeleteTool(w, (XtPointer) data->client_data, callData);
04448 }
04449 
04450 void MainWindow::DeleteDeleteTool(Widget w, XtPointer clientData, XtPointer callData)
04451 {
04452     
04453     // Begin user code block <DeleteDeleteTool>
04454     // End user code block <DeleteDeleteTool>
04455 }
04456 
04457 void MainWindow::DeleteCancelCallbackCallback(Widget w, 
04458                 XtPointer clientData, XtPointer callData)
04459 {
04460     UICallbackStruct *data = (UICallbackStruct *) clientData;
04461     MainWindow *obj = (MainWindow *)data->object;
04462     obj->DeleteCancelCallback(w, (XtPointer) data->client_data, callData);
04463 }
04464 
04465 void MainWindow::DeleteCancelCallback(Widget w, XtPointer clientData, XtPointer callData)
04466 {
04467     
04468     // Begin user code block <DeleteCancelCallback>
04469     XtUnmanageChild(_deleteDialogBulletinBoard);
04470     // End user code block <DeleteCancelCallback>
04471 }
04472 
04473 void MainWindow::DeleteOKCallbackCallback(Widget w, 
04474                 XtPointer clientData, XtPointer callData)
04475 {
04476     UICallbackStruct *data = (UICallbackStruct *) clientData;
04477     MainWindow *obj = (MainWindow *)data->object;
04478     obj->DeleteOKCallback(w, (XtPointer) data->client_data, callData);
04479 }
04480 
04481 void MainWindow::DeleteOKCallback(Widget w, XtPointer clientData, XtPointer callData)
04482 {
04483     
04484     // Begin user code block <DeleteOKCallback>
04485   char                     *data;
04486   char                      str[4][80];
04487   VizRecord                *find_record, *remove_tool_record;
04488   char                     *title;
04489   SliceTool                *slicetool;
04490   vizVectorFieldTool       *vectorFieldTool;
04491   vizVectorParticleTool    *vectorParticleTool;
04492   vizAxesTool              *axesTool;
04493   IsoSurfaceTool           *isotool;
04494   PointTool                *pointtool;
04495   SphereTool               *spheretool;
04496   vizParticleLineTraceTool *lineTraceTool;
04497   
04498   // Get the name of the tool to remove
04499   
04500   data = BrowseListGetSelectedString(_deleteList);
04501   // cerr << "Delete: " <<  data << "\n";
04502   
04503   sscanf(data, "%s %s %s", str[0], str[1], str[2]);
04504   strcat(str[0], " "); strcat(str[0], str[1]);
04505   // cerr <<"str: " <<str[0] <<atoi(str[2]) <<"\n";
04506   XtFree(data);
04507   
04508   // Find its record
04509   
04510   find_record = new VizRecord();
04511   strcpy(find_record->name, str[0]);
04512   find_record->id = atoi(str[2]);
04513   remove_tool_record = current_viztool->GetVizDB()->FindItem(find_record);
04514   delete find_record;
04515   
04516   // if it is the currentToolRecord then display the blank tool
04517   
04518   if (remove_tool_record == currentToolRecord) {
04519     currentToolRecord = NULL;
04520     DisplayToolBB();
04521   }
04522   
04523   // Remove it from the selection list
04524   
04525   title = MakeTitleString(remove_tool_record);
04526   DeleteToolItem(title);
04527   free(title);
04528   
04529   // remove it from the viz database
04530   current_viztool->GetVizDB()->RemoveItem(remove_tool_record);
04531   
04532   // remove the tool
04533   
04534   switch (remove_tool_record->tooltype) {
04535   case Slice:
04536     slicetool = (SliceTool *)remove_tool_record->tool;
04537     // cerr <<"before slice destructor\n";
04538     slicetool->~SliceTool();
04539     // cerr <<"after slice destructor\n";
04540     break;
04541   case VectorField:
04542     vectorFieldTool = (vizVectorFieldTool *)remove_tool_record->tool;
04543     vectorFieldTool->~vizVectorFieldTool();
04544     break;
04545   case VectorParticle:
04546     vectorParticleTool = (vizVectorParticleTool *)remove_tool_record->tool;
04547     vectorParticleTool->~vizVectorParticleTool();
04548     break;
04549   case LineTrace:
04550     lineTraceTool = (vizParticleLineTraceTool *)remove_tool_record->tool;
04551     lineTraceTool->~vizParticleLineTraceTool();
04552     break;
04553   case Axes:
04554     axesTool = (vizAxesTool *)remove_tool_record->tool;
04555     axesTool->~vizAxesTool();
04556     break;
04557   case Iso:
04558   case MIso:
04559     isotool = (IsoSurfaceTool *)remove_tool_record->tool;
04560     isotool->~IsoSurfaceTool();
04561     break;
04562   case Point:
04563     pointtool = (PointTool *)remove_tool_record->tool;
04564     pointtool->~PointTool();
04565     break;
04566   case Sphere:
04567     spheretool = (SphereTool *)remove_tool_record->tool;
04568     spheretool->~SphereTool();
04569     break;
04570   default:
04571     break;
04572   }
04573   
04574   XtUnmanageChild(_deleteDialogBulletinBoard);
04575     // End user code block <DeleteOKCallback>
04576 }
04577 
04578 // Begin user code block <tail>
04579 int MainWindow::select_item(Widget w, XtPointer clientData, XtPointer callData)
04580 {
04581     TAU_PROFILE("MainWindow::select_item()", 
04582       "void (Widget, XtPointer, XtPointer)", TAU_VIZ);      
04583     XmListCallbackStruct *cbs = (XmListCallbackStruct *) callData;
04584     char *choice;
04585 
04586     //if (cbs->reason == XmCR_BROWSE_SELECT)
04587     // cerr << "Browse selection -- \n";
04588     //else
04589     // cerr << "Default action -- \n";
04590 
04591     XmStringGetLtoR (cbs->item, XmFONTLIST_DEFAULT_TAG, &choice);
04592     // cerr << "selected item:" << choice << " " << cbs->item_position << "\n";
04593     XtFree (choice);
04594     return cbs->item_position;
04595 }
04596 
04597 void MainWindow::add_item(Widget w, XtPointer clientData, XtPointer callData)
04598 {
04599     TAU_PROFILE("MainWindow::add_item()", 
04600       "void (Widget, XtPointer, XtPointer)", TAU_VIZ);      
04601     Widget list_w = (Widget) clientData; 
04602     char *text, *newtext = XmTextFieldGetString (w);
04603     XmString str, *strlist;
04604     int u_bound, l_bound = 0;
04605 
04606     /* newtext is the text typed in the TextField widget */
04607     if (!newtext || !*newtext) {
04608         /* non-null strings must be entered */
04609         XtFree (newtext); /* XtFree() checks for NULL */
04610         return;
04611     }
04612     /* get the current entries (and number of entries) from the List */
04613     XtVaGetValues (list_w,
04614         XmNitemCount, &u_bound,
04615         XmNitems,     &strlist,
04616         NULL);
04617     u_bound--;
04618     /* perform binary search */
04619     while (u_bound >= l_bound) {
04620         int i = l_bound + (u_bound - l_bound) / 2;
04621         /* convert the compound string into a regular C string */
04622         if (!XmStringGetLtoR (strlist[i], XmFONTLIST_DEFAULT_TAG, &text))
04623             break;
04624         if (strcmp (text, newtext) > 0)
04625             u_bound = i - 1; /* newtext comes before item */
04626         else
04627             l_bound = i + 1; /* newtext comes after item */
04628         XtFree (text); /* XmStringGetLtoR() allocates memory ... yuk */
04629     }
04630     str = XmStringCreateLocalized (newtext); 
04631     XtFree (newtext);
04632     /* positions indexes start at 1, so increment accordingly */
04633     XmListAddItemUnselected (list_w, str, l_bound+1);
04634     XmStringFree (str);
04635     XmTextFieldSetString (w, "");
04636 }
04637 
04638 void MainWindow::delete_item(Widget w, XtPointer clientData, XtPointer callData)
04639 {
04640     TAU_PROFILE("MainWindow::delete_item()", 
04641       "void (Widget, XtPointer, XtPointer)", TAU_VIZ);      
04642     Widget list_w = (Widget) clientData; 
04643     char *newtext = XmTextFieldGetString (w);
04644     XmString str, *strlist;
04645     int u_bound;
04646 
04647     /* newtext is the text typed in the TextField widget */
04648     if (!newtext || !*newtext) {
04649         /* non-null strings must be entered */
04650         XtFree (newtext); /* XtFree() checks for NULL */
04651         return;
04652     }
04653     /* get the current entries (and number of entries) from the List */
04654     XtVaGetValues (list_w,
04655         XmNitemCount, &u_bound,
04656         XmNitems,     &strlist,
04657         NULL);
04658 
04659     str = XmStringCreateLocalized (newtext); 
04660     XtFree (newtext);
04661 
04662     XmListDeleteItem(list_w, str);
04663     XmStringFree (str);
04664     XmTextFieldSetString (w, "");
04665 }
04666 
04667 void MainWindow::AddDataItem(char *value) {
04668   TAU_PROFILE("MainWindow::AddDataItem()", "void (char *)", TAU_VIZ);      
04669   XmTextFieldSetString(_scratchTextField, value);
04670   add_item(_scratchTextField, _newDataList, NULL);
04671 }
04672 
04673 void MainWindow::DeleteDataItem(char *value) {
04674   TAU_PROFILE("MainWindow::DeleteDataItem()", "void (char *)", TAU_VIZ);      
04675   XmTextFieldSetString(_scratchTextField, value);
04676   delete_item(_scratchTextField, _newDataList, NULL);
04677 }
04678 
04679 void MainWindow::AddToolItem(char *value) {
04680   TAU_PROFILE("MainWindow::AddToolItem()", "void (char *)", TAU_VIZ);      
04681   XmTextFieldSetString(_scratchTextField, value);
04682   add_item(_scratchTextField, _selectList, NULL);
04683   XmTextFieldSetString(_scratchTextField, value);
04684   add_item(_scratchTextField, _deleteList, NULL);
04685 }
04686 
04687 void MainWindow::DeleteToolItem(char *value) {
04688   TAU_PROFILE("MainWindow::DeleteToolItem()", "void (char *)", TAU_VIZ);      
04689   XmTextFieldSetString(_scratchTextField, value);
04690   delete_item(_scratchTextField, _selectList, NULL);
04691   XmTextFieldSetString(_scratchTextField, value);
04692   delete_item(_scratchTextField, _deleteList, NULL);
04693 }
04694 
04695 char *MainWindow::MakeTitleString(VizRecord *tool_record) {
04696   TAU_PROFILE("MainWindow::MakeTitleString()", "char * (VizRecord *)", TAU_VIZ);      
04697   char *str;
04698   VizRecord *find_record, *rt_record;
04699 
04700   str = (char *)malloc(sizeof(char) * 80);
04701   find_record = new VizRecord();
04702   if (tool_record->caller !=NULL) {
04703     find_record->tool = tool_record->caller;
04704     rt_record = current_viztool->GetVizDB()->FindItem(find_record);
04705     delete find_record;
04706     sprintf(str, "%s %d - %s", tool_record->name, tool_record->id, rt_record->name);
04707   } else {
04708     sprintf(str, "%s %d -", tool_record->name, tool_record->id);
04709   }
04710   
04711 
04712   //  cerr << "MakeTitleString: " << str << "\n";
04713   return str;
04714 }
04715 
04716 void MainWindow::DisplayToolBB() {
04717   TAU_PROFILE("MainWindow::DisplayToolBB()", "void ()", TAU_VIZ);      
04718 
04719   //  ReadFieldTool            *readFieldTool;
04720   SliceTool                *slicetool;
04721   IsoSurfaceTool           *isotool;
04722   vizVectorFieldTool       *vectFieldTool;
04723   vizVectorParticleTool    *vectParticleTool;
04724   vizParticleLineTraceTool *lineTraceTool;
04725   vizAxesTool              *axesTool;
04726   float                    scaleFact;
04727   int                      traceNum;
04728   PointTool               *pointtool;
04729   SphereTool              *spheretool;
04730   //  RenderTool              *rendertool;
04731   //  VizRecord               *find_record, *rt_record;
04732   int                      dims[3];
04733   float                    origin[3], aspect[3];
04734   float                    range[2], srange[2];
04735   //  int                      i;
04736   XmString                 Xstr;
04737   char                     str[80];
04738   int                      sliceType, value;
04739   float                    tubeRadius;
04740   int                      tubeFacets;
04741 
04742   // Display a tool procedure 
04743   //   inputs a toolname (which contains tooltype, data object, unique id)
04744   if (_selectedBulletinBoard != NULL) {
04745     XtUnmanageChild(_selectedBulletinBoard);
04746     }
04747 
04748   if (currentToolRecord == NULL) {
04749     // cerr << "DisplayToolBB: currentToolRecord == NULL\n";
04750     return;
04751   }
04752   
04753   // set UI values for bulletin board fields based on tool values
04754   switch (currentToolRecord->tooltype) {
04755   case Slice:
04756       _selectedBulletinBoard = _sliceBulletinBoard;
04757       break;
04758   case VectorField:
04759       _selectedBulletinBoard = _vectorFieldBulletinBoard;
04760       break;
04761   case VectorParticle:
04762       _selectedBulletinBoard = _vectorParticleBulletinBoard;
04763       break;
04764   case LineTrace:
04765       _selectedBulletinBoard = _particleLineTraceBulletinBoard;
04766       break;
04767   case Axes:
04768       _selectedBulletinBoard = _axesBulletinBoard;
04769       break;
04770   case Iso:
04771     _selectedBulletinBoard = _isoBulletinBoard;
04772     break;
04773   case MIso:
04774     _selectedBulletinBoard = _misoBulletinBoard;
04775     break;
04776   case Point:
04777     _selectedBulletinBoard = _pointBulletinBoard;
04778     break;
04779   case Sphere:
04780     _selectedBulletinBoard = _sphereBulletinBoard;
04781     break;
04782   default:
04783     cerr << "Incorrect tool index.\n";
04784     break;
04785   }
04786   XtManageChild(_selectedBulletinBoard);
04787 
04788   // Set Title on BB
04789 
04790   char *title;
04791   
04792   title = MakeTitleString(currentToolRecord);
04793   Xstr = XmStringCreateLtoR(title, XmFONTLIST_DEFAULT_TAG);
04794   switch (currentToolRecord->tooltype) {
04795   case Slice:
04796     XtVaSetValues(_sliceTitleLabel, XmNlabelString, Xstr, NULL);
04797     break;
04798   case VectorField:
04799     XtVaSetValues(_vectorFieldTitleLabel, XmNlabelString, Xstr, NULL);
04800     break;
04801   case VectorParticle:
04802     XtVaSetValues(_vectorParticleTitleLabel, XmNlabelString, Xstr, NULL);
04803     break;
04804   case LineTrace:
04805     XtVaSetValues(_particleLineTraceToolTitleLabel, XmNlabelString, Xstr, NULL);
04806     break;
04807   case Axes:
04808     XtVaSetValues(_axesTitleLabel, XmNlabelString, Xstr, NULL);
04809     break;
04810   case Iso:
04811     XtVaSetValues(_isoTitleLabel, XmNlabelString, Xstr, NULL);
04812     break;
04813   case MIso:
04814     XtVaSetValues(_misoTitleLabel, XmNlabelString, Xstr, NULL);
04815     break;
04816   case Point:
04817     XtVaSetValues(_pointTitleLabel, XmNlabelString, Xstr, NULL);
04818     break;
04819   case Sphere:
04820     XtVaSetValues(_sphereTitleLabel, XmNlabelString, Xstr, NULL);
04821     break;
04822   default:
04823     break;
04824   }
04825   XmStringFree(Xstr);
04826   free(title);
04827 
04828 
04829   // Set Text Fields
04830 
04831   switch (currentToolRecord->tooltype) {
04832   case Slice:
04833     slicetool = (SliceTool *)currentToolRecord->tool;
04834     slicetool->GetAllValues(dims,origin,aspect,range);
04835     sliceType = slicetool->GetSliceType();
04836 
04837     sprintf(str, "      Min: %f  Max: %f", range[0], range[1]);
04838     Xstr = XmStringCreateLtoR (str, XmFONTLIST_DEFAULT_TAG);
04839     XtVaSetValues(_sliceColorRangeLabel, XmNlabelString, Xstr, NULL);
04840     XmStringFree(Xstr);
04841 
04842     sprintf(str, "      Min: %f  Max: %f", slicetool->GetLowerBound(), slicetool->GetUpperBound());
04843     Xstr = XmStringCreateLtoR (str, XmFONTLIST_DEFAULT_TAG);
04844     XtVaSetValues(_sliceRangeLabel, XmNlabelString, Xstr, NULL);
04845     XmStringFree(Xstr);
04846 
04847     
04848     sprintf(str, "%f", slicetool->GetSliceValue());
04849     XmTextFieldSetString(_sliceValueTextField, str);
04850 
04851     value = static_cast<int>( ( ( slicetool->GetSliceValue() -
04852                                   slicetool->GetLowerBound() ) /
04853                                 ( slicetool->GetValueRange() ) ) * 100 );
04854     XmScaleSetValue(_sliceValueScale, value);
04855 
04856     switch (sliceType) {
04857     case XY:
04858       XmToggleButtonSetState(_sliceXYToggleButton,True,False);
04859       XmToggleButtonSetState(_sliceYZToggleButton,False,False);
04860       XmToggleButtonSetState(_sliceXZToggleButton,False,False);
04861       break;
04862     case YZ:
04863       XmToggleButtonSetState(_sliceXYToggleButton,False,False);
04864       XmToggleButtonSetState(_sliceYZToggleButton,True,False);
04865       XmToggleButtonSetState(_sliceXZToggleButton,False,False);
04866       break;
04867     case XZ:
04868       XmToggleButtonSetState(_sliceXYToggleButton,False,False);
04869       XmToggleButtonSetState(_sliceYZToggleButton,False,False);
04870       XmToggleButtonSetState(_sliceXZToggleButton,True,False);
04871       break;
04872     default:
04873       break;
04874     }
04875 
04876     break;
04877   case VectorField:
04878     vectFieldTool = (vizVectorFieldTool *)currentToolRecord->tool;
04879     scaleFact  = vectFieldTool->GetScaleFactor();
04880     tubeRadius = vectFieldTool->GetArrowTubeRadius();
04881     tubeFacets = vectFieldTool->GetNumberOfTubeFacets();
04882 
04883     sprintf(str, "%f", scaleFact);
04884     Xstr = XmStringCreateLtoR (str, XmFONTLIST_DEFAULT_TAG);
04885     XmTextFieldSetString(_vectorFieldScaleFactorTextField, str);
04886 
04887     sprintf(str, "%f", tubeRadius);
04888     Xstr = XmStringCreateLtoR (str, XmFONTLIST_DEFAULT_TAG);
04889     XmTextFieldSetString(_vectorFieldTubeRadiusTextField, str);
04890 
04891     sprintf(str, "%d", tubeFacets);
04892     Xstr = XmStringCreateLtoR (str, XmFONTLIST_DEFAULT_TAG);
04893     XmTextFieldSetString(_vectorFieldTubeFacetsTextField, str);
04894 
04895     break;
04896   case VectorParticle:
04897     vectParticleTool = (vizVectorParticleTool *)currentToolRecord->tool;
04898     scaleFact  = vectParticleTool->GetScaleFactor();
04899     tubeRadius = vectParticleTool->GetArrowTubeRadius();
04900     tubeFacets = vectParticleTool->GetNumberOfTubeFacets();
04901 
04902     sprintf(str, "%f", scaleFact);
04903     Xstr = XmStringCreateLtoR (str, XmFONTLIST_DEFAULT_TAG);
04904     XmTextFieldSetString(_vectorParticleScaleFactorTextField, str);
04905 
04906     traceNum = vectParticleTool->GetTraceNumber();
04907     sprintf(str, "%d", traceNum);
04908     Xstr = XmStringCreateLtoR (str, XmFONTLIST_DEFAULT_TAG);
04909     XmTextFieldSetString(_vectorParticleTraceNumberTextField, str);
04910 
04911     sprintf(str, "%f", tubeRadius);
04912     Xstr = XmStringCreateLtoR (str, XmFONTLIST_DEFAULT_TAG);
04913     XmTextFieldSetString(_vectorParticleTubeRadiusTextField, str);
04914 
04915     sprintf(str, "%d", tubeFacets);
04916     Xstr = XmStringCreateLtoR (str, XmFONTLIST_DEFAULT_TAG);
04917     XmTextFieldSetString(_vectorParticleTubeFacetsTextField, str);
04918 
04919     break;
04920   case LineTrace:
04921     lineTraceTool = (vizParticleLineTraceTool *)currentToolRecord->tool;
04922     //    tubeRadius = vectParticleTool->GetArrowTubeRadius();
04923     //    tubeFacets = vectParticleTool->GetNumberOfTubeFacets();
04924     traceNum = lineTraceTool->GetTraceNumber();
04925 
04926     sprintf(str, "%d", traceNum);
04927     Xstr = XmStringCreateLtoR (str, XmFONTLIST_DEFAULT_TAG);
04928     XmTextFieldSetString(_particleLineTraceNumberTextField, str);
04929 
04930 //     sprintf(str, "%f", tubeRadius);
04931 //     Xstr = XmStringCreateLtoR (str, XmFONTLIST_DEFAULT_TAG);
04932 //     XmTextFieldSetString(_vectorParticleTubeRadiusTextField, str);
04933 
04934 //     sprintf(str, "%d", tubeFacets);
04935 //     Xstr = XmStringCreateLtoR (str, XmFONTLIST_DEFAULT_TAG);
04936 //     XmTextFieldSetString(_vectorParticleTubeFacetsTextField, str);
04937 
04938     break;
04939   case Axes:
04940     axesTool = (vizAxesTool *)currentToolRecord->tool;
04941     scaleFact = axesTool->GetScaleFactor();
04942 
04943     sprintf(str, "%f", scaleFact);
04944     Xstr = XmStringCreateLtoR (str, XmFONTLIST_DEFAULT_TAG);
04945     XmTextFieldSetString(_axesLenTextField, str);
04946     break;
04947   case Iso:
04948     isotool = (IsoSurfaceTool *)currentToolRecord->tool;
04949     isotool->GetAllValues(dims,origin,aspect,range);
04950     sprintf(str, "      Min: %f  Max: %f", range[0], range[1]);
04951     Xstr = XmStringCreateLtoR (str, XmFONTLIST_DEFAULT_TAG);
04952     XtVaSetValues(_isoValueRangeLabel, XmNlabelString, Xstr, NULL);
04953     XtVaSetValues(_isoColorRangeLabel, XmNlabelString, Xstr, NULL);
04954     XmStringFree(Xstr);
04955     
04956     float contours[VTK_MAX_CONTOURS];
04957     isotool->GetContourFilter()->GetValues(contours);
04958     sprintf(str, "%f", contours[0]);
04959     XmTextFieldSetString(_isoValueTextField, str);
04960 
04961     value = static_cast<int>( ( (contours[0] - range[0]) /
04962                                 (range[1] - range[0]) ) * 100 );
04963     XmScaleSetValue(_isoIsoValueScale, value);
04964 
04965     sprintf(str, "%f", 1.0 - isotool->GetActor()->GetProperty()->GetOpacity());
04966     XmTextFieldSetString(_isoTransparencyTextField, str);
04967 
04968     break;
04969   case MIso:
04970     isotool = (IsoSurfaceTool *)currentToolRecord->tool;
04971     isotool->GetAllValues(dims,origin,aspect,range);
04972     sprintf(str, "      Min: %f  Max: %f", range[0], range[1]);
04973     Xstr = XmStringCreateLtoR (str, XmFONTLIST_DEFAULT_TAG);
04974     XtVaSetValues(_misoColorRangeLabel, XmNlabelString, Xstr, NULL);
04975     XmStringFree(Xstr);
04976     
04977     isotool->GetContourSubRange(srange);
04978     sprintf(str, "%f", srange[0]);
04979     XmTextFieldSetString(_misoContourRangeMinTextField, str);
04980     sprintf(str, "%f", srange[1]);
04981     XmTextFieldSetString(_misoContourRangeMaxTextField, str);
04982 
04983     sprintf(str, "%d", isotool->GetNumContours());
04984     XmTextFieldSetString(_misoNumContoursTextField, str);
04985     break;
04986   case Point:
04987     pointtool = (PointTool *)currentToolRecord->tool;
04988     pointtool->GetAllValues(dims,origin,aspect,range);
04989     sprintf(str, "      Min: %f  Max: %f", range[0], range[1]);
04990     Xstr = XmStringCreateLtoR (str, XmFONTLIST_DEFAULT_TAG);
04991     XtVaSetValues(_pointValueRangeLabel, XmNlabelString, Xstr, NULL);
04992     XtVaSetValues(_pointColorRangeLabel, XmNlabelString, Xstr, NULL);
04993     XmStringFree(Xstr);
04994     break;
04995   case Sphere:
04996     spheretool = (SphereTool *)currentToolRecord->tool;
04997     spheretool->GetAllValues(dims,origin,aspect,range);
04998     sprintf(str, "      Min: %f  Max: %f", range[0], range[1]);
04999     Xstr = XmStringCreateLtoR (str, XmFONTLIST_DEFAULT_TAG);
05000     XtVaSetValues(_sphereValueRangeLabel, XmNlabelString, Xstr, NULL);
05001     XtVaSetValues(_sphereColorRangeLabel, XmNlabelString, Xstr, NULL);
05002     XmStringFree(Xstr);
05003     sprintf(str, "%f", spheretool->GetSphereSource()->GetRadius());
05004     XmTextFieldSetString(_sphereRadiusTextField, str);
05005     sprintf(str, "%d", spheretool->GetSphereSource()->GetThetaResolution());
05006     XmTextFieldSetString(_sphereResTextField, str);
05007 
05008     traceNum = spheretool->GetTraceNumber();
05009     sprintf(str, "%d", traceNum);
05010     Xstr = XmStringCreateLtoR (str, XmFONTLIST_DEFAULT_TAG);
05011     XmTextFieldSetString(_sphereTraceNumberTextField, str);
05012 
05013     break;
05014   default:
05015     break;
05016   }
05017 }
05018 
05019 int MainWindow::SliceBBGetToggleType() {
05020   TAU_PROFILE("MainWindow::SliceBBGetToggleType()", "void ()", TAU_VIZ);      
05021   int selectedToggleType;
05022 
05023   if (XmToggleButtonGetState(_sliceXYToggleButton) == True)
05024     selectedToggleType = XY;
05025   if (XmToggleButtonGetState(_sliceYZToggleButton) == True)
05026     selectedToggleType = YZ;
05027   if (XmToggleButtonGetState(_sliceXZToggleButton) == True)
05028     selectedToggleType = XZ;
05029     // cerr << "XY: " << (XmToggleButtonGetState(_sliceXYToggleButton) == True) << "\n";
05030     // cerr << "XZ: " << (XmToggleButtonGetState(_sliceXZToggleButton) == True) << "\n";
05031     // cerr << "YZ: " << (XmToggleButtonGetState(_sliceYZToggleButton) == True) << "\n";
05032   return selectedToggleType;
05033 }
05034 
05035 void MainWindow::SliceBBToggleChanged(int type) {
05036   TAU_PROFILE("MainWindow::SliceBBToggleChanged()", "void (int)", TAU_VIZ);      
05037   int selectedToggleType;
05038   //  ReadFieldTool *readFieldTool;
05039   SliceTool *slicetool;
05040   RenderTool *rendertool;
05041   int dims[3];
05042   float origin[3], aspect[3];
05043   float range[2];
05044 
05045   selectedToggleType = SliceBBGetToggleType();
05046   if (type != selectedToggleType) {
05047     slicetool = (SliceTool *)currentToolRecord->tool;
05048     slicetool->GetAllValues(dims,origin,aspect,range);
05049     slicetool->SetSliceType(selectedToggleType);
05050     slicetool->SetSliceValue(slicetool->GetLowerBound());
05051     slicetool->SetExtent();
05052     rendertool = (RenderTool *)current_viztool->GetSelectedTool(Render);
05053     rendertool->GetRenderWindow()->Render();
05054     DisplayToolBB();
05055   }
05056 }
05057 
05058 void MainWindow::UpdateTools(void *caller) {
05059   TAU_PROFILE("MainWindow::UpdateTools()", "void (void *)", TAU_VIZ);      
05060 
05061   SliceTool                *slicetool;
05062   IsoSurfaceTool           *isotool;
05063   PointTool                *pointtool;
05064   SphereTool               *sphereTool;
05065   vizVectorParticleTool    *vectorParticleTool;
05066   vizParticleLineTraceTool *lineTraceTool;
05067   VizRecord                *find_record, *rt_record, *tool_record;
05068   int                       dims[3];
05069   float                     origin[3], aspect[3];
05070   //  int                       i;
05071   float                     range[2];
05072   int                       count;
05073   Boolean                   displayflag;
05074   ReadFieldTool            *readFieldTool;
05075   ReadParticleTool         *readParticleTool;
05076 
05077   float                     point[3];
05078   //  int                       numpts;
05079 
05080   find_record = new VizRecord();
05081   find_record->caller = caller;
05082   rt_record = current_viztool->GetVizDB()->FindItem(find_record);
05083 
05084   delete find_record;
05085 
05086   switch (rt_record->tooltype) {
05087   case ReadField:
05088     readFieldTool = (ReadFieldTool *)rt_record->tool;
05089       
05090     // then update readfield tool
05091     readFieldTool->UpdateAllValues();
05092     readFieldTool->GetAllValues(dims,origin,aspect,range);
05093 
05094     break;
05095   case ReadParticle:
05096     readParticleTool = (ReadParticleTool *)rt_record->tool;
05097       
05098     // then update readParticle tool
05099     readParticleTool->UpdateRange();
05100     readParticleTool->GetAllValues(dims,origin,aspect,range);
05101 
05102     break;
05103   default:
05104     break;
05105   }
05106     
05107   // then find all children 
05108   
05109   count = 0;
05110   find_record = new VizRecord();
05111   //  find_record->caller = readFieldTool;
05112   find_record->caller = rt_record->tool;
05113   displayflag = False;
05114   do {
05115     if (count == 0) {
05116       tool_record = current_viztool->GetVizDB()->FindItem(find_record);
05117     } else {
05118       tool_record = current_viztool->GetVizDB()->FindNextItem(find_record);
05119     }
05120     count++;
05121 
05122     if (tool_record != NULL) {
05123       //tool_record->Print();
05124       
05125       // then update children
05126       Tool *tool;
05127       tool = (Tool *)tool_record->tool;
05128       if (tool->UpdateTestAndSet()) {
05129 
05130         tool->SetAllValues(dims,origin,aspect,range);
05131 
05132         switch (tool_record->tooltype) {
05133         case Slice:
05134           slicetool = (SliceTool *)tool_record->tool;
05135           slicetool->SetExtent();
05136           slicetool->GetPolyMapper()->SetScalarRange(range);
05137           break;
05138         case Iso:
05139         case MIso:
05140           isotool = (IsoSurfaceTool *)tool_record->tool;
05141           isotool->GetPolyMapper()->SetScalarRange(range);
05142           break;
05143         case Point:
05144           pointtool = (PointTool *)tool_record->tool;
05145           pointtool->GetPolyMapper()->SetScalarRange(range);
05146           int numpts;
05147           numpts = readParticleTool->GetOutput()->GetNumberOfPoints();
05148 
05149           int i;
05150           //      float *bounds;
05151           //      bounds = readParticleTool->GetOutput()->GetBounds();
05152           //      for (i = 0; i < 6; i++) {
05153           //
05154           //      }
05155           //      bounds = pointtool->GetPolyMapper()->GetBounds();
05156           for (i = 0; i < 6; i++) {
05157 
05158           }
05159           for (i = 0; i < numpts; i++) {
05160             readParticleTool->GetOutput()->GetPoint(i,point);
05161           }
05162           break;
05163         case Sphere:
05164           sphereTool = (SphereTool *)tool_record->tool;
05165           // This function will add the new vtkPolyData to a
05166           // vtkAppendPolyData object to allow for a particle trace
05167           // if the trace number of the Sphere is greater than 1
05168           sphereTool->AppendPolyData(readParticleTool->GetOutput());
05169 
05170           break;
05171         case VectorParticle:
05172           vectorParticleTool = (vizVectorParticleTool *)tool_record->tool;
05173           // This function will add the new vtkPolyData to a
05174           // vtkAppendPolyData object to allow for a particle trace
05175           // if the trace number of the VectorParticle is greater than 1
05176           vectorParticleTool->AppendPolyData(readParticleTool->GetOutput());
05177 
05178           break;
05179         case LineTrace:
05180           lineTraceTool = (vizParticleLineTraceTool *)tool_record->tool;
05181           // This function will add the new vtkPolyData to a
05182           // vtkAppendPolyData object to allow for a particle trace
05183           // if the trace number of the VectorParticle is greater than 1
05184           lineTraceTool->MakeAndAppendNewLines(readParticleTool->GetOutput());
05185 
05186           break;
05187         default:
05188           break;
05189         }
05190         
05191         if ((currentToolRecord != NULL) && (current_viztool->GetVizDB()->MatchTest(currentToolRecord, tool_record))) {
05192           displayflag = True;
05193         }
05194       }
05195     }
05196   } while(tool_record != NULL);
05197   
05198   if (displayflag == True) {
05199     DisplayToolBB();
05200   }
05201 
05202   delete find_record;
05203   
05204   //cerr << "End Update Tools\n";
05205 }
05206 
05207 // End user code block <tail>
05208 
05209 /***************************************************************************
05210  * $RCSfile: MainWindow.cpp,v $   $Author: adelmann $
05211  * $Revision: 1.1.1.1 $   $Date: 2003/01/23 07:40:34 $
05212  * IPPL_VERSION_ID: $Id: MainWindow.cpp,v 1.1.1.1 2003/01/23 07:40:34 adelmann Exp $ 
05213  ***************************************************************************/

Generated on Fri Nov 2 01:25:54 2007 for IPPL by doxygen 1.3.5