00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00032
00033
00034
00035
00036
00037
00038
00039
00040
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
00064
00065 #include "defsC.h"
00066
00067
00068
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
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
00102
00103 XtVaGetValues (list,
00104 XmNitemCount, &count,
00105 XmNitems, &strlist,
00106 NULL);
00107
00108 XmStringGetLtoR(strlist[pos_list[0]-1], XmFONTLIST_DEFAULT_TAG, &text);
00109
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
00121
00122
00123 if (!XmListGetSelectedPos(list, &pos_list, &pos_cnt)) {
00124 XtWarning("No selected item.");
00125 return(0);
00126 } else {
00127
00128 int retval = pos_list[0];
00129 XtFree((char *)pos_list);
00130 return retval;
00131 }
00132 }
00133
00134
00135
00136
00137
00138
00139
00140
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
00151
00152
00153
00154
00155
00156 String MainWindow::_defaultMainWindowResources[] = {
00157 NULL
00158 };
00159
00160
00161
00162
00163 MainWindow::MainWindow(const char *name, Widget parent) :
00164 UIComponent(name)
00165
00166
00167
00168 {
00169
00170
00171
00172 create(parent);
00173 }
00174
00175
00176
00177
00178 MainWindow::MainWindow(const char *name) : UIComponent(name)
00179
00180
00181
00182 {
00183
00184
00185
00186 }
00187
00188
00189
00190
00191
00192 MainWindow::~MainWindow()
00193 {
00194
00195
00196
00197 delete [] _clientDataStructs;
00198 }
00199
00200
00201
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
00214
00215 setDefaultResources(parent, _defaultMainWindowResources);
00216
00217 #if defined(cxx_bx_compat)
00218
00219
00220
00221 if (_initAppDefaults)
00222 {
00223 initAppDefaults(parent, "MainWindow", _appDefaults);
00224 _initAppDefaults = False;
00225 }
00226
00227
00228
00229 setAppDefaults(parent, _appDefaults, (const char *)NULL);
00230 #endif
00231
00232
00233
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
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
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
03028 _selectedBulletinBoard = NULL;
03029 currentToolRecord = NULL;
03030
03031 }
03032
03033
03034
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
03053 IsoSurfaceTool *isotool;
03054 RenderTool *rendertool;
03055 char *newtext;
03056
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
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
03086 IsoSurfaceTool *isotool;
03087 RenderTool *rendertool;
03088 char *newtext;
03089
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
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
03121 IsoSurfaceTool *isotool;
03122 RenderTool *rendertool;
03123 char *newtext;
03124
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
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
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
03163
03164 XmScaleGetValue(w, &value);
03165
03166
03167 slicetool = (SliceTool *)currentToolRecord->tool;
03168 slicetool->GetAllValues(dims,origin,aspect,range);
03169
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
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
03191
03192 SliceBBToggleChanged(XY);
03193
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
03208
03209 SliceBBToggleChanged(YZ);
03210
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
03225
03226 SliceBBToggleChanged(XZ);
03227
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
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
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
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
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
03301 int value;
03302 float isovalue;
03303 IsoSurfaceTool *isotool;
03304 RenderTool *rendertool;
03305 float range[2];
03306
03307 XmScaleGetValue(w, &value);
03308
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
03797
03798 vizStep(current_viztool);
03799
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
03813
03814
03815 vizGo(current_viztool);
03816
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
03830
03831
03832 vizStop(current_viztool);
03833
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
03848 RenderTool *rendertool;
03849 rendertool = (RenderTool *)current_viztool->GetSelectedTool(Render);
03850 rendertool->GetRenderWindow()->SetFilename("foobar.ppm");
03851 rendertool->GetRenderWindow()->SaveImageAsPPM();
03852
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
03867 exit(0);
03868
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
03883 XtManageChild(_newDialogBulletinBoard);
03884
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
03899 XtManageChild(_selectDialogBulletinBoard);
03900
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
03915 XtManageChild(_deleteDialogBulletinBoard);
03916
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
03931 RenderTool *rendertool;
03932 rendertool = (RenderTool *)current_viztool->GetSelectedTool(Render);
03933 rendertool->GetRenderWindow()->Render();
03934
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
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:
03961 Step(w, clientData, callData);
03962 break;
03963 case 0x067:
03964 Go(w, clientData, callData);
03965 break;
03966 case 0x073:
03967 Stop(w, clientData, callData);
03968 break;
03969 }
03970 }
03971
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
03986
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
04001 XtUnmanageChild(_selectDialogBulletinBoard);
04002
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
04017 char *data;
04018 char str[4][80];
04019
04020
04021 data = BrowseListGetSelectedString(_selectList);
04022
04023
04024 sscanf(data, "%s %s %s", str[0], str[1], str[2]);
04025 strcat(str[0], " "); strcat(str[0], str[1]);
04026
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
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
04054
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
04069
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
04084 XtUnmanageChild(_newDialogBulletinBoard);
04085
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
04127 char *NoDataRequired = "NoDataRequired";
04128 int tooltype_index;
04129 char *title;
04130 VizRecord *find_record;
04131 VizRecord *rt_record;
04132 int makeRecord = 0;
04133 int addTool = 0;
04134
04135 tooltype_index = GetToolIndex(toolname);
04136
04137
04138
04139 if ( tooltype_index > 0) {
04140
04141
04142
04143
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
04151 } else {
04152 rt_record = new VizRecord;
04153 rt_record->tooltype = Empty;
04154 makeRecord = 1;
04155
04156 }
04157
04158
04159
04160
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
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
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
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
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
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
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
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
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
04419 return false;
04420 }
04421
04422
04423 void MainWindow::NewOKCallback(Widget w, XtPointer clientData, XtPointer callData)
04424 {
04425
04426
04427 char *data = BrowseListGetSelectedString(_newDataList);
04428 char *tool = BrowseListGetSelectedString(_newToolTypeList);
04429
04430
04431 if (data != 0 && tool != 0 && CreateNewTool(data, tool)) {
04432
04433 XtFree(data);
04434 XtFree(tool);
04435 }
04436
04437 XtUnmanageChild(_newDialogBulletinBoard);
04438
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
04454
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
04469 XtUnmanageChild(_deleteDialogBulletinBoard);
04470
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
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
04499
04500 data = BrowseListGetSelectedString(_deleteList);
04501
04502
04503 sscanf(data, "%s %s %s", str[0], str[1], str[2]);
04504 strcat(str[0], " "); strcat(str[0], str[1]);
04505
04506 XtFree(data);
04507
04508
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
04517
04518 if (remove_tool_record == currentToolRecord) {
04519 currentToolRecord = NULL;
04520 DisplayToolBB();
04521 }
04522
04523
04524
04525 title = MakeTitleString(remove_tool_record);
04526 DeleteToolItem(title);
04527 free(title);
04528
04529
04530 current_viztool->GetVizDB()->RemoveItem(remove_tool_record);
04531
04532
04533
04534 switch (remove_tool_record->tooltype) {
04535 case Slice:
04536 slicetool = (SliceTool *)remove_tool_record->tool;
04537
04538 slicetool->~SliceTool();
04539
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
04576 }
04577
04578
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
04587
04588
04589
04590
04591 XmStringGetLtoR (cbs->item, XmFONTLIST_DEFAULT_TAG, &choice);
04592
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
04607 if (!newtext || !*newtext) {
04608
04609 XtFree (newtext);
04610 return;
04611 }
04612
04613 XtVaGetValues (list_w,
04614 XmNitemCount, &u_bound,
04615 XmNitems, &strlist,
04616 NULL);
04617 u_bound--;
04618
04619 while (u_bound >= l_bound) {
04620 int i = l_bound + (u_bound - l_bound) / 2;
04621
04622 if (!XmStringGetLtoR (strlist[i], XmFONTLIST_DEFAULT_TAG, &text))
04623 break;
04624 if (strcmp (text, newtext) > 0)
04625 u_bound = i - 1;
04626 else
04627 l_bound = i + 1;
04628 XtFree (text);
04629 }
04630 str = XmStringCreateLocalized (newtext);
04631 XtFree (newtext);
04632
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
04648 if (!newtext || !*newtext) {
04649
04650 XtFree (newtext);
04651 return;
04652 }
04653
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
04713 return str;
04714 }
04715
04716 void MainWindow::DisplayToolBB() {
04717 TAU_PROFILE("MainWindow::DisplayToolBB()", "void ()", TAU_VIZ);
04718
04719
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
04731
04732 int dims[3];
04733 float origin[3], aspect[3];
04734 float range[2], srange[2];
04735
04736 XmString Xstr;
04737 char str[80];
04738 int sliceType, value;
04739 float tubeRadius;
04740 int tubeFacets;
04741
04742
04743
04744 if (_selectedBulletinBoard != NULL) {
04745 XtUnmanageChild(_selectedBulletinBoard);
04746 }
04747
04748 if (currentToolRecord == NULL) {
04749
04750 return;
04751 }
04752
04753
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
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
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
04923
04924 traceNum = lineTraceTool->GetTraceNumber();
04925
04926 sprintf(str, "%d", traceNum);
04927 Xstr = XmStringCreateLtoR (str, XmFONTLIST_DEFAULT_TAG);
04928 XmTextFieldSetString(_particleLineTraceNumberTextField, str);
04929
04930
04931
04932
04933
04934
04935
04936
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
05030
05031
05032 return selectedToggleType;
05033 }
05034
05035 void MainWindow::SliceBBToggleChanged(int type) {
05036 TAU_PROFILE("MainWindow::SliceBBToggleChanged()", "void (int)", TAU_VIZ);
05037 int selectedToggleType;
05038
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
05071 float range[2];
05072 int count;
05073 Boolean displayflag;
05074 ReadFieldTool *readFieldTool;
05075 ReadParticleTool *readParticleTool;
05076
05077 float point[3];
05078
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
05091 readFieldTool->UpdateAllValues();
05092 readFieldTool->GetAllValues(dims,origin,aspect,range);
05093
05094 break;
05095 case ReadParticle:
05096 readParticleTool = (ReadParticleTool *)rt_record->tool;
05097
05098
05099 readParticleTool->UpdateRange();
05100 readParticleTool->GetAllValues(dims,origin,aspect,range);
05101
05102 break;
05103 default:
05104 break;
05105 }
05106
05107
05108
05109 count = 0;
05110 find_record = new VizRecord();
05111
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
05124
05125
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
05151
05152
05153
05154
05155
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
05166
05167
05168 sphereTool->AppendPolyData(readParticleTool->GetOutput());
05169
05170 break;
05171 case VectorParticle:
05172 vectorParticleTool = (vizVectorParticleTool *)tool_record->tool;
05173
05174
05175
05176 vectorParticleTool->AppendPolyData(readParticleTool->GetOutput());
05177
05178 break;
05179 case LineTrace:
05180 lineTraceTool = (vizParticleLineTraceTool *)tool_record->tool;
05181
05182
05183
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
05205 }
05206
05207
05208
05209
05210
05211
05212
05213