SFA Project On-line Documentation: UI Callbacks

This is a description of the User Interface functions in the Form.C file. All the callbacks were generated by Bxpro. The code inside these functions have to be written. 
//
// README: Portions of this file are merged at file generation
// time. Edits can be made *only* in between specified code blocks, look
// for keywords  and .
//
//////////////////////////////////////////////////////////////
//
// Header file for Form
//
//    Created by Builder Xcessory 4.0.
//    Generated by Code Generator Xcessory 2.0 (09/09/96).
//
//    This class is a user interface "component", as described
//    in "Object-Oriented Programming with C++ and OSF/Motif",
//    by Douglas Young, Prentice Hall, 1992. ISBN 0-13-630252-1
//
//////////////////////////////////////////////////////////////
#ifndef Form_H
#define Form_H
#include "UIComponent.H"
class SfaControlButtons;

//
// Globally included information (change thru Output File Names Dialog).
//
#include "sfa_ui.H"
#include "Draw.H"

//
// Class Specific Includes (change thru the class in Resource Editor).
//



// Begin user code block 
// End user code block 

class Form : public UIComponent

// Begin user code block 
// End user code block 
{

  public:

    Form(const char *, Widget);
    Form(const char *);
    virtual ~Form();
    virtual void create(Widget);
    const char *const  className();
    
    // Begin user code block 
    // End user code block 
  protected:
    // Classes created by this class
    SfaControlButtons* _stereoControlButtons;
    SfaControlButtons* _mappingControlButtons;
    SfaControlButtons* _stepButtons;
    SfaControlButtons* _scaleControlButtons;
    SfaControlButtons* _editPrefButtons;
    SfaControlButtons* _vector2ControlButtons;
    SfaControlButtons* _plateIndexControlButtons;
    SfaControlButtons* _filterControlButtons;
    SfaControlButtons* _activeDataControlButtons1;
    
    // Widgets created by this class
    Widget _Form;
    Widget _glwin;
    Widget _toolbar;
    Widget _dataSetBox;
    Widget _glyphBox;
    Widget _typeBox;
    Widget _stereoButton;
    Widget _opacityButton;
    Widget _menuBar;
    Widget _fileMenu;
    Widget _pulldownMenu;
    Widget _fileMenuOpen;
    Widget _fileMenuClose;
    Widget _separator;
    Widget _fileMenuSave;
    Widget _fileMenuSaveAs;
    Widget _separator1;
    Widget _fileMenuQuit;
    Widget _fileMenuPlot3DOpen;
    Widget _editMenu;
    Widget _pulldownMenu1;
    Widget _editMenuMappings;
    Widget _editStepSize;
    Widget _loadOpacityMapButton;
    Widget _loadColorMapButton;
    Widget _filterDataButton;
    Widget _loadColorMap2Button;
    Widget _editPrefButton;
    Widget _plateIndex;
    Widget _viewMenu;
    Widget _pulldownMenu2;
    Widget _viewMenuShowTool;
    Widget _separator3;
    Widget _viewMenuStereoParams;
    Widget _viewMenuStereoOn;
    Widget _viewMenuStereoOff;
    Widget _separator2;
    Widget _viewMenuScaleGlyph;
    Widget _viewMenuScaleVector2;
    Widget _separator15;
    Widget _activeDataset;
    Widget _telltale;
    Widget _pulldownMenu3;
    Widget _connect;
    Widget _query;
    Widget _loadData;
    Widget _subsetMenu;
    Widget _subsetPulldown;
    Widget _cubicButton;
    Widget _sphereButton;
    Widget _openFileDialogShell;
    Widget _openFileDialog;
    Widget _saveAsDialogShell;
    Widget _saveAsDialog;
    Widget _stereoDialogShell;
    Widget _stereoDialog;
    Widget _eyeScale;
    Widget _convScale;
    Widget _mappingDialogShell;
    Widget _mappingDialog;
    Widget _color2Box;
    Widget _zvectBox;
    Widget _yvectBox;
    Widget _xvectBox;
    Widget _separator12;
    Widget _zsizeBox;
    Widget _ysizeBox;
    Widget _shapeBox;
    Widget _xsizeBox;
    Widget _opacityBox;
    Widget _colorBox;
    Widget _zPosBox;
    Widget _yPosBox;
    Widget _xPosBox;
    Widget _exitDialogShell;
    Widget _exitDialog;
    Widget _stepDialogShell;
    Widget _stepDialog;
    Widget _zStepBox;
    Widget _yStepBox;
    Widget _xStepBox;
    Widget _scaleGlyphDialogShell;
    Widget _scaleGlyphDialog;
    Widget _glyphScale;
    Widget _loadOpacityMapDialogShell;
    Widget _loadOpacityMapDialog;
    Widget _loadColorMapDialogShell;
    Widget _loadColorMapDialog;
    Widget _loadColorMapDialogShell1;
    Widget _loadColorMap2Dialog;
    Widget _editPrefShell;
    Widget _editPrefDialog;
    Widget _separator13;
    Widget _boxLabel2;
    Widget _boxLabel1;
    Widget _pushButton;
    Widget _glyphSlider;
    Widget _contourSlider;
    Widget _packedGlyphBox;
    Widget _packedGlyphToggle1;
    Widget _packedGlyphToggle2;
    Widget _interactionBox;
    Widget _interactionToggle1;
    Widget _interactionToggle2;
    Widget _scaleVector2DialogShell;
    Widget _scaleVector2Dialog;
    Widget _vector2Scale;
    Widget _plateIndexDialogShell;
    Widget _plateIndexDialog;
    Widget _plateIndexBox;
    Widget _filterDataDialogShell;
    Widget _filterDataDialog;
    Widget _toggleButton9;
    Widget _separator14;
    Widget _minscale9;
    Widget _maxscale9;
    Widget _filterHeader;
    Widget _toggleButton8;
    Widget _toggleButton7;
    Widget _toggleButton6;
    Widget _toggleButton5;
    Widget _toggleButton4;
    Widget _toggleButton3;
    Widget _toggleButton2;
    Widget _toggleButton1;
    Widget _separator11;
    Widget _maxscale8;
    Widget _minscale8;
    Widget _separator10;
    Widget _maxscale7;
    Widget _minscale7;
    Widget _separator9;
    Widget _maxscale6;
    Widget _minscale6;
    Widget _separator8;
    Widget _maxscale5;
    Widget _minscale5;
    Widget _separator7;
    Widget _maxscale4;
    Widget _minscale4;
    Widget _separator6;
    Widget _maxscale3;
    Widget _minscale3;
    Widget _separator5;
    Widget _maxscale2;
    Widget _minscale2;
    Widget _separator4;
    Widget _maxscale1;
    Widget _minscale1;
    Widget _dataPane;
    Widget _dataVariable1;
    Widget _dataVariable2;
    Widget _dataVariable3;
    Widget _dataVariable4;
    Widget _dataVariable5;
    Widget _dataVariable6;
    Widget _dataVariable7;
    Widget _dataVariable8;
    Widget _index;
    Widget _activeDataDialogShell;
    Widget _activeDataDialog;
    Widget _activeToggle5;
    Widget _activeToggle4;
    Widget _activeToggle3;
    Widget _activeToggle2;
    Widget _activeToggle1;
    Widget _separator17;
    Widget _separator18;
    Widget _separator19;
    Widget _separator20;
    Widget _separator21;
    Widget _dataPane1;
    Widget _dataSet1;
    Widget _dataSet2;
    Widget _dataSet3;
    Widget _dataSet4;
    Widget _dataSet5;
    Widget _queryDialogShell;
    Widget _queryDialog;
    Widget _shapelabel;
    Widget _colorlabel;
    Widget _shape;
    Widget _color1;
    Widget _queryCancel;
    Widget _queryOk;
    Widget _zlabel;
    Widget _ylabel;
    Widget _xlabel;
    Widget _mapto;
    Widget _zpos;
    Widget _ypos;
    Widget _xpos;
    Widget _querystring;
    Widget _connectServerShell2;
    Widget _connectServerDialog1;
    Widget _cancel1;
    Widget _ok1;
    Widget _datasetText1;
    Widget _portText1;
    Widget _serverText1;
    Widget _datasetLabel1;
    Widget _portLabel1;
    Widget _serverLabel1;
    Widget _plot3dDialogShell;
    Widget _plot3dDialog;
    Widget _separator22;
    Widget _datafilelabel;
    Widget _datafilename;
    Widget _separator16;
    Widget _vector2data;
    Widget _vector1data;
    Widget _color2data;
    Widget _ysizedata;
    Widget _vector2datalabel;
    Widget _vector1datalabel;
    Widget _color2datalabel;
    Widget _ysizedatalabel;
    Widget _xsizedatalabel;
    Widget _opacitydatalabel;
    Widget _xsizedata;
    Widget _opacitydata;
    Widget _plot3dCancel;
    Widget _plot3dOk;
    Widget _shapedatalabel;
    Widget _colordatalabel;
    Widget _gridlabel;
    Widget _plot3dSet;
    Widget _shapedata;
    Widget _colordata;
    Widget _griddata;
    Widget _plot3dstring;
    
    // These virtual functions are called from the private callbacks 
    // or event handlers intended to be overridden in derived classes
    // to define actions
    
    virtual void glwinResizeCallback(Widget, XtPointer, XtPointer);
    virtual void glwinInputCallback(Widget, XtPointer, XtPointer);
    virtual void glwinInitCallback(Widget, XtPointer, XtPointer);
    virtual void glwinExposeCallback(Widget, XtPointer, XtPointer);
    virtual void DataSetBoxCallback(Widget, XtPointer, XtPointer);
    virtual void GlyphBoxCallback(Widget, XtPointer, XtPointer);
    virtual void TypeBoxCallback(Widget, XtPointer, XtPointer);
    virtual void StereoButtonCallback(Widget, XtPointer, XtPointer);
    virtual void opacityToggleCallback(Widget, XtPointer, XtPointer);
    virtual void FileOpenCallback(Widget, XtPointer, XtPointer);
    virtual void FileCloseCallback(Widget, XtPointer, XtPointer);
    virtual void FileSaveCallback(Widget, XtPointer, XtPointer);
    virtual void SaveAsCallback(Widget, XtPointer, XtPointer);
    virtual void fileQuitCallback(Widget, XtPointer, XtPointer);
    virtual void FileOpenPlot3DCallback(Widget, XtPointer, XtPointer);
    virtual void editMappingsCallback(Widget, XtPointer, XtPointer);
    virtual void editStepCallback(Widget, XtPointer, XtPointer);
    virtual void LoadOpacityMapCallback(Widget, XtPointer, XtPointer);
    virtual void LoadColorMapCallback(Widget, XtPointer, XtPointer);
    virtual void filterDataCallback(Widget, XtPointer, XtPointer);
    virtual void LoadColorMap2Callback(Widget, XtPointer, XtPointer);
    virtual void editPrefCallback(Widget, XtPointer, XtPointer);
    virtual void plateIndexCallback(Widget, XtPointer, XtPointer);
    virtual void HideToolCallback(Widget, XtPointer, XtPointer);
    virtual void OpenStereoDialogCallback(Widget, XtPointer, XtPointer);
    virtual void StereoOnCallback(Widget, XtPointer, XtPointer);
    virtual void StereoOffCallback(Widget, XtPointer, XtPointer);
    virtual void OpenScaleGlyphDialogCallback(Widget, XtPointer, XtPointer);
    virtual void OpenScaleVector2DialogCallback(Widget, XtPointer, XtPointer);
    virtual void selectActiveCallback(Widget, XtPointer, XtPointer);
    virtual void ConnectCallback(Widget, XtPointer, XtPointer);
    virtual void queryCallback(Widget, XtPointer, XtPointer);
    virtual void loadDataCallBack(Widget, XtPointer, XtPointer);
    virtual void cubicButtonCallback(Widget, XtPointer, XtPointer);
    virtual void sphereButtonCallback(Widget, XtPointer, XtPointer);
    virtual void OpenFileOkCallback(Widget, XtPointer, XtPointer);
    virtual void OpenFileCancelCallback(Widget, XtPointer, XtPointer);
    virtual void SaveAsOkCallback(Widget, XtPointer, XtPointer);
    virtual void SaveAsCancelCallback(Widget, XtPointer, XtPointer);
    virtual void exitOkCallback(Widget, XtPointer, XtPointer);
    virtual void exitCancelCallback(Widget, XtPointer, XtPointer);
    virtual void LoadOpacityMapOkCallback(Widget, XtPointer, XtPointer);
    virtual void LoadOpacityMapCancelCallback(Widget, XtPointer, XtPointer);
    virtual void LoadColorMapOkCallback(Widget, XtPointer, XtPointer);
    virtual void LoadColorMapCancelCallback(Widget, XtPointer, XtPointer);
    virtual void LoadColorMap2OkCallback(Widget, XtPointer, XtPointer);
    virtual void LoadColorMap2CancelCallback(Widget, XtPointer, XtPointer);
    virtual void drawAllCallback(Widget, XtPointer, XtPointer);
    virtual void queryCancleCallback(Widget, XtPointer, XtPointer);
    virtual void queryOkCallback(Widget, XtPointer, XtPointer);
    virtual void connectCancelCallback(Widget, XtPointer, XtPointer);
    virtual void connectOkCallback(Widget, XtPointer, XtPointer);
    virtual void plot3dCancelCallback(Widget, XtPointer, XtPointer);
    virtual void plot3dOkCallback(Widget, XtPointer, XtPointer);
    virtual void MouseEH(Widget, XtPointer, XEvent *, Boolean *);
    virtual void StereoCancelCallback(Widget, XtPointer, XtPointer);
    virtual void StereoResetCallback(Widget, XtPointer, XtPointer);
    virtual void StereoOkCallback(Widget, XtPointer, XtPointer);
    virtual void mappingCancelCallback(Widget, XtPointer, XtPointer);
    virtual void mappingApplyCallback(Widget, XtPointer, XtPointer);
    virtual void mappingOkCallback(Widget, XtPointer, XtPointer);
    virtual void stepCancelCallback(Widget, XtPointer, XtPointer);
    virtual void stepApplyCallback(Widget, XtPointer, XtPointer);
    virtual void stepOkCallback(Widget, XtPointer, XtPointer);
    virtual void ScaleCancelButtonCallback(Widget, XtPointer, XtPointer);
    virtual void ScaleResetButtonCallback(Widget, XtPointer, XtPointer);
    virtual void ScaleOkButtonCallback(Widget, XtPointer, XtPointer);
    virtual void editPrefCancelCallback(Widget, XtPointer, XtPointer);
    virtual void editPrefApplyCallback(Widget, XtPointer, XtPointer);
    virtual void editPrefOkCallback(Widget, XtPointer, XtPointer);
    virtual void vector2scaleCancelButtonCallback(Widget, XtPointer, XtPointer);
    virtual void vector2scaleResetButtonCallback(Widget, XtPointer, XtPointer);
    virtual void vector2scaleOkButtonCallback(Widget, XtPointer, XtPointer);
    virtual void plateCancelButtonCallback(Widget, XtPointer, XtPointer);
    virtual void plateResetButtonCallback(Widget, XtPointer, XtPointer);
    virtual void plateOkButtonCallback(Widget, XtPointer, XtPointer);
    virtual void FilterCancelButtonCallback(Widget, XtPointer, XtPointer);
    virtual void FilterApplyButtonCallback(Widget, XtPointer, XtPointer);
    virtual void FilterOkButtonCallback(Widget, XtPointer, XtPointer);
    virtual void activeCancelCallback(Widget, XtPointer, XtPointer);
    virtual void activeResetCallback(Widget, XtPointer, XtPointer);
    virtual void activeOkCallback(Widget, XtPointer, XtPointer);
    
    // Begin user code block 
    // End user code block 
  private: 
    
    //
    // Default application and class resources.
    //
    static String         _defaultFormResources[];
    static UIAppDefault   _appDefaults[];
    static Boolean        _initAppDefaults;
    //
    // Callback client data.
    //
    UICallbackStruct  *_clientDataStructs;
    
    //
    // Callbacks to interface with Motif.
    //
    static void glwinResizeCallbackCallback(Widget, XtPointer, XtPointer);
    static void glwinInputCallbackCallback(Widget, XtPointer, XtPointer);
    static void glwinInitCallbackCallback(Widget, XtPointer, XtPointer);
    static void glwinExposeCallbackCallback(Widget, XtPointer, XtPointer);
    static void DataSetBoxCallbackCallback(Widget, XtPointer, XtPointer);
    static void GlyphBoxCallbackCallback(Widget, XtPointer, XtPointer);
    static void TypeBoxCallbackCallback(Widget, XtPointer, XtPointer);
    static void StereoButtonCallbackCallback(Widget, XtPointer, XtPointer);
    static void opacityToggleCallbackCallback(Widget, XtPointer, XtPointer);
    static void FileOpenCallbackCallback(Widget, XtPointer, XtPointer);
    static void FileCloseCallbackCallback(Widget, XtPointer, XtPointer);
    static void FileSaveCallbackCallback(Widget, XtPointer, XtPointer);
    static void SaveAsCallbackCallback(Widget, XtPointer, XtPointer);
    static void fileQuitCallbackCallback(Widget, XtPointer, XtPointer);
    static void FileOpenPlot3DCallbackCallback(Widget, XtPointer, XtPointer);
    static void editMappingsCallbackCallback(Widget, XtPointer, XtPointer);
    static void editStepCallbackCallback(Widget, XtPointer, XtPointer);
    static void LoadOpacityMapCallbackCallback(Widget, XtPointer, XtPointer);
    static void LoadColorMapCallbackCallback(Widget, XtPointer, XtPointer);
    static void filterDataCallbackCallback(Widget, XtPointer, XtPointer);
    static void LoadColorMap2CallbackCallback(Widget, XtPointer, XtPointer);
    static void editPrefCallbackCallback(Widget, XtPointer, XtPointer);
    static void plateIndexCallbackCallback(Widget, XtPointer, XtPointer);
    static void HideToolCallbackCallback(Widget, XtPointer, XtPointer);
    static void OpenStereoDialogCallbackCallback(Widget, XtPointer, XtPointer);
    static void StereoOnCallbackCallback(Widget, XtPointer, XtPointer);
    static void StereoOffCallbackCallback(Widget, XtPointer, XtPointer);
    static void OpenScaleGlyphDialogCallbackCallback(Widget, XtPointer, XtPointer);
    static void OpenScaleVector2DialogCallbackCallback(Widget, XtPointer, XtPointer);
    static void selectActiveCallbackCallback(Widget, XtPointer, XtPointer);
    static void ConnectCallbackCallback(Widget, XtPointer, XtPointer);
    static void queryCallbackCallback(Widget, XtPointer, XtPointer);
    static void loadDataCallBackCallback(Widget, XtPointer, XtPointer);
    static void cubicButtonCallbackCallback(Widget, XtPointer, XtPointer);
    static void sphereButtonCallbackCallback(Widget, XtPointer, XtPointer);
    static void OpenFileOkCallbackCallback(Widget, XtPointer, XtPointer);
    static void OpenFileCancelCallbackCallback(Widget, XtPointer, XtPointer);
    static void SaveAsOkCallbackCallback(Widget, XtPointer, XtPointer);
    static void SaveAsCancelCallbackCallback(Widget, XtPointer, XtPointer);
    static void exitOkCallbackCallback(Widget, XtPointer, XtPointer);
    static void exitCancelCallbackCallback(Widget, XtPointer, XtPointer);
    static void LoadOpacityMapOkCallbackCallback(Widget, XtPointer, XtPointer);
    static void LoadOpacityMapCancelCallbackCallback(Widget, XtPointer, XtPointer);
    static void LoadColorMapOkCallbackCallback(Widget, XtPointer, XtPointer);
    static void LoadColorMapCancelCallbackCallback(Widget, XtPointer, XtPointer);
    static void LoadColorMap2OkCallbackCallback(Widget, XtPointer, XtPointer);
    static void LoadColorMap2CancelCallbackCallback(Widget, XtPointer, XtPointer);
    static void drawAllCallbackCallback(Widget, XtPointer, XtPointer);
    static void queryCancleCallbackCallback(Widget, XtPointer, XtPointer);
    static void queryOkCallbackCallback(Widget, XtPointer, XtPointer);
    static void connectCancelCallbackCallback(Widget, XtPointer, XtPointer);
    static void connectOkCallbackCallback(Widget, XtPointer, XtPointer);
    static void plot3dCancelCallbackCallback(Widget, XtPointer, XtPointer);
    static void plot3dOkCallbackCallback(Widget, XtPointer, XtPointer);
    static void MouseEHHandler(Widget, XtPointer, XEvent*, Boolean*);
    static void StereoCancelCallbackCallback(Widget, XtPointer, XtPointer);
    static void StereoResetCallbackCallback(Widget, XtPointer, XtPointer);
    static void StereoOkCallbackCallback(Widget, XtPointer, XtPointer);
    static void mappingCancelCallbackCallback(Widget, XtPointer, XtPointer);
    static void mappingApplyCallbackCallback(Widget, XtPointer, XtPointer);
    static void mappingOkCallbackCallback(Widget, XtPointer, XtPointer);
    static void stepCancelCallbackCallback(Widget, XtPointer, XtPointer);
    static void stepApplyCallbackCallback(Widget, XtPointer, XtPointer);
    static void stepOkCallbackCallback(Widget, XtPointer, XtPointer);
    static void ScaleCancelButtonCallbackCallback(Widget, XtPointer, XtPointer);
    static void ScaleResetButtonCallbackCallback(Widget, XtPointer, XtPointer);
    static void ScaleOkButtonCallbackCallback(Widget, XtPointer, XtPointer);
    static void editPrefCancelCallbackCallback(Widget, XtPointer, XtPointer);
    static void editPrefApplyCallbackCallback(Widget, XtPointer, XtPointer);
    static void editPrefOkCallbackCallback(Widget, XtPointer, XtPointer);
    static void vector2scaleCancelButtonCallbackCallback(Widget, XtPointer, XtPointer);
    static void vector2scaleResetButtonCallbackCallback(Widget, XtPointer, XtPointer);
    static void vector2scaleOkButtonCallbackCallback(Widget, XtPointer, XtPointer);
    static void plateCancelButtonCallbackCallback(Widget, XtPointer, XtPointer);
    static void plateResetButtonCallbackCallback(Widget, XtPointer, XtPointer);
    static void plateOkButtonCallbackCallback(Widget, XtPointer, XtPointer);
    static void FilterCancelButtonCallbackCallback(Widget, XtPointer, XtPointer);
    static void FilterApplyButtonCallbackCallback(Widget, XtPointer, XtPointer);
    static void FilterOkButtonCallbackCallback(Widget, XtPointer, XtPointer);
    static void activeCancelCallbackCallback(Widget, XtPointer, XtPointer);
    static void activeResetCallbackCallback(Widget, XtPointer, XtPointer);
    static void activeOkCallbackCallback(Widget, XtPointer, XtPointer);
    
    // Begin user code block 
    static void selectDocCallbackCallback (Widget, XtPointer, XtPointer);
    void selectDocCallback(Widget, XtPointer, XtPointer);
    void doDocSelect ( int idx );
    Widget _selectDoc;
    NetThread NT;
#ifndef FN_ISOLATE
#endif

#ifndef FN_ISOLATE
    static int JVMstarted;
    JNIEnv *env;
    jclass cls;
    jclass load_cls;
    jobject connection_obj;
    jobject load_obj;
#endif
    // End user code block 
};
extern void BxExitCB(Widget, XtPointer, XtPointer);

// Begin user code block 
// End user code block 
#endif


The Callbacks

A description of the user-defined callbacks in the order that they appear in Form.C .
 

void Form::DataSetBoxCallback(Widget w, XtPointer clientData, XtPointer callData)

This callback is generated when the _dataSetbox XiCombinationBox Widget is updated. When the user selects a previously opened dataset, whose title is then displayed in _dataSetbox, this function will retrieve the designated data from SFA's cache and display it in the bounding box.

void Form::GlyphBoxCallback(Widget w, XtPointer clientData, XtPointer callData)

This function is called when the _glyphbox XiCombinationBox Widget is updated. This function lets the user change the shape of the glyphs. We use the convience function XiCombinationBoxGetValue() to get the value of the type of glyph the user has selected. This function returns a char *. We should make a copy of this string before doing anything else.

The string thus obtained is compared to an array of strings which is currently hard-coded. Then depending on which string matches we set the value of sfa_status.glyph_shape. sfa_status is global to Form.C which is used to keep track of the global state of SFA.

void Form::TypeBoxCallback(Widget w, XtPointer clientData, XtPointer callData)

This function is called when the _typebox XiCombinationBox Widget is updated. It performs a similar function to the GlyphBoxCallback() function in that it also set sfa_status . This function lets the user change the type of data between vector, scalar, and a combination of a glyph and two vectors.
 

void Form::StereoButtonCallback(Widget w, XtPointer clientData, XtPointer callData)

When activated by the user clicking on the _stereoButton widget, this callback checks the visual parameters of the system running SFA and determines if the machine is stereo-capable. If so, the screen is then set to stereo mode and SFA will draw to separate buffers to achieve stereo-viewing.

void Form::opacityToggleCallback(Widget w, XtPointer clientData, XtPointer callData)

This function is activated by the user clicking on the _opacityButton widget and turns the opacity map either on(transparent glyphs present) or off(all glyphs are visible).

void Form::FileOpenCallback(Widget w, XtPointer clientData, XtPointer callData)

This function simply opens the Open File Dialog Widget so that the user may choose a file to open.

void Form::FileCloseCallback(Widget w, XtPointer clientData, XtPointer callData)

This function removes all DataSets that have been choosen by the user. These are the DataSets whose labels are in the _dataSetBox Widget value string. The function does the following :

First it gets the string that contains all Datasets that are to be removed from the main DataSetList. The labels are separated by "," . For each DataSet label we try to find it in the main DataSetList. If found it is then removed from the list using the_DSL.remove( ds_id ) ). Then the next DataSet label is processed. Then a new string table is creates with the Datasets that are currently in the DataSetList. The value of XmNitems for _dataSetBox is then set to the new string table using the XtVaSetValues() function.

void Form::FileSaveCallback(Widget w, XtPointer clientData, XtPointer callData)

This is function is called when the Save Pushbutton in the File menu is pushed. This function locates the first DataSet label in the _dataSetBox Widget's XmNvalue attribute. The DataSet is then located in the DataSetList and the current pointer set to it. It then writes the information of the DataSet to a met-file. As this function may be called from the saveAs function we need the name of the meta-file to write to. This is done by checking the value of sfa_status.current_metafile. If this is NULL we use the same meta-file name( ie the function is only a save ). If not we use it for the file name( ie we are really doing a save as ).

void Form::SaveAsCallback(Widget w, XtPointer clientData, XtPointer callData)

This functions simply opens the _saveAsDialog widget.

void Form::fileQuitCallback(Widget w, XtPointer clientData, XtPointer callData)

This callback first checks to see if stereo is enabled and, if so, termintates it. Then, the SFA program is terminated.

void Form::FileOpenPlot3DCallback(Widget w, XtPointer clientData, XtPointer callData)

This callback simply opens the _plot3dDialog widget.

void Form::editMappingsCallback(Widget w, XtPointer clientData, XtPointer callData)

This function pops up the mappings dialogue shell and also sets the value for all the XiCombinationBoxes in that shell. Firts we find which DataSet is active by getiing the first label from the _dataSetBox Widget. For this DataSet we get it's current mappings and based on this create a string table which has all the dimension labels. We then set XmNitems and XmNvalue for allthe XiCombinationBoxes( there are a total of 13 corresponding to the 13 visual dimensions ).

void Form::editStepCallback(Widget w, XtPointer clientData, XtPointer callData)

This functions simply opens the _saveAsDialog widget and sets the combination boxes (_xStepBox, _yStepBox, and _zStepBox) to the current values.
 

void Form::LoadOpacityMapCallback(Widget w, XtPointer clientData, XtPointer callData)

This callback simply opens the _loadOpacityMapDialog widget.
 

void Form::LoadColorMapCallback(Widget w, XtPointer clientData, XtPointer callData)

This callback simply opens the _loadColorMapDialog widget.
 

void Form::filterDataCallback(Widget w, XtPointer clientData, XtPointer callData)

This function opens the _filterDataDialog and initializes all of the scales and toggle buttons withing the dialog.
 

void Form::LoadColorMap2Callback(Widget w, XtPointer clientData, XtPointer callData)

This callback simply opens the _loadColorMap2Dialog widget.
 

void Form::editPrefCallback(Widget w, XtPointer clientData, XtPointer callData)

This function opens the _editPrefDialog and uses some of the available information in the current dataset to initialize the scales in the dialog.
 

void Form::plateIndexCallback(Widget w, XtPointer clientData, XtPointer callData)

This callback opens the _plateIndexDialog widget and initializes the _plateIndexBox to the current plate visualization index.

void Form::HideToolCallback(Widget w, XtPointer clientData, XtPointer callData)

This function simply hides the toolbar located at the top of the SFA window.

void Form::OpenStereoDialogCallback(Widget w, XtPointer clientData, XtPointer callData)

Opens the _stereoDialog widget.

void Form::StereoOnCallback(Widget w, XtPointer clientData, XtPointer callData)

This callback, similar to depressing the stereo button, will check for the visual parameters of the machine currently running SFA and, based on these parameters, will switch the screen to stereo mode and draw images to separate buffers. 

void Form::StereoOffCallback(Widget w, XtPointer clientData, XtPointer callData)

This callback will switch the screen to non-stereo mode and draw to a single buffer.

void Form::OpenScaleGlyphDialogCallback(Widget w, XtPointer clientData, XtPointer callData)

Opens the _scaleGlyphDialog widget.

void Form::OpenScaleVector2DialogCallback(Widget w, XtPointer clientData, XtPointer callData)

Opens the _scaleVector2Dialog widget.

void Form::selectActiveCallback(Widget w, XtPointer clientData, XtPointer callData)

Opens the _activeDataDialog widget.

void Form::ConnectCallback(Widget w, XtPointer clientData, XtPointer callData)

Opens the _connectServer1Dialog widget.

void Form::queryCallback(Widget w, XtPointer clientData, XtPointer callData)

Opens the _queryDialog widget.
 

void Form::loadDataCallBack(Widget w, XtPointer clientData, XtPointer callData)

This callback loads a corpus of documents, specified by the user, into SFA as a dataset which the user can subsequently perform queries on from withing SFA.

void Form::cubicButtonCallback(Widget w, XtPointer clientData, XtPointer callData)

When the _cubicButton widget is depressed, this callback will set the subsetting area to be a rectilinear box by calling the function sfaWindow.SetSelectionObjectType(OBJ_TYPE_CUBIC);

void Form::sphereButtonCallback(Widget w, XtPointer clientData, XtPointer callData)

The same as the cubicButtonCallback except the subsetting area is set to be a sphere instead of the rectilinear box by calling the function sfaWindow.SetSelectionObjectType(OBJ_TYPE_SPHERE);

void Form::OpenFileOkCallback(Widget w, XtPointer clientData, XtPointer callData)

Function called when the user clicks the 'Ok' button in the File Selection dialogue shell. This function basically opens a DataSet( reads a meta-file ) adds it to the main DataSetList. The FileSelectionBox Widget has many children one of which is a TextField Widget. This will contain the name of the meta-file to read. We use XmTextFieldGetString() to get this. Use FileIO::readData() to read the meta-file and add to DataSetList. Also we need to add the name to the _dataSetBox Widget.

Create a new string table using the update DataSetList and set the value of the XmNitems to this new string table. Also need to call the drawing code. Currently the value of XmNvalue for _dataSetBox is not being set to the new DataSet.

void Form::OpenFileCancelCallback(Widget w, XtPointer clientData, XtPointer callData)

Simply closes the _openFileDialog widget.
 

void Form::SaveAsOkCallback(Widget w, XtPointer clientData, XtPointer callData)

Function called when the user clicks the 'Ok' button in the Save as Selection dialogue shell. This function basically writes a meta-file using the FileIO::writeData() function. Use this function if the name of the new meta-file is different from the name of the original meta-file. The function sets the value ofsfa_status.current_metafile using the value got from the TextField Widget. We then call the SaveCallback() and that function performs the writing of the file.

void Form::SaveAsCancelCallback(Widget w, XtPointer clientData, XtPointer callData)

Simply closes the _saveAsDialog widget.

void Form::exitOkCallback(Widget w, XtPointer clientData, XtPointer callData)

Exits from SFA.

void Form::exitCancelCallback(Widget w, XtPointer clientData, XtPointer callData)

This callback closes the _exitDialog widget.

void Form::LoadOpacityMapOkCallback(Widget w, XtPointer clientData, XtPointer callData)

This callback will load the opacity map selected in the _loadOpacityMapDialog and set the DataSet Alpha Map pointer to point to this opacity map. The data will then be redrawn in SFA with the new opacity map. The _loadOpacityMapDialog widget is then closed.

void Form::LoadOpacityMapCancelCallback(Widget w, XtPointer clientData, XtPointer callData)

The _loadOpacityMapDialog widget is simply closed.

void Form::LoadColorMapOkCallback(Widget w, XtPointer clientData, XtPointer callData)

This callback will load the color map selected in the _loadColorMapDialog and set the DataSet Color Map pointer to point to this color map. The data will then be redrawn in SFA with the new color map. The _loadColorMapDialog widget is then closed.
 

void Form::LoadColorMapCancelCallback(Widget w, XtPointer clientData, XtPointer callData)

The _loadColorMapDialog widget is simply closed.
 

void Form::LoadColorMap2OkCallback(Widget w, XtPointer clientData, XtPointer callData)

This callback will load the color map selected in the _loadColor2MapDialog and set the DataSet Color Map 2 pointer to point to this color map. The data will then be redrawn in SFA with the new color map. The _loadColorMap2Dialog widget is then closed.
 

void Form::LoadColorMap2CancelCallback(Widget w, XtPointer clientData, XtPointer callData)

The _loadColorMap2Dialog widget is simply closed.
 
 

void Form::StereoResetCallback(Widget w, XtPointer clientData, XtPointer callData)

Called if the user clicks the Reset button in the stereo dialogue. The function sets the sliders to the default position for both eye separation and convergence.

void Form::StereoOkCallback(Widget w, XtPointer clientData, XtPointer callData)

Called if the user clicks the Ok button in the stereo dialogue. The function gets the value of the two sliders using the XmScaleGetValue() function and stores these values in sfa_status.covergence and sfa_status.eye_seperation. The idea is then to call the drawing code again which is NOT DONE yet.

void Form::mappingApplyCallback(Widget w, XtPointer clientData, XtPointer callData)

Called if the user clicks the OK or Apply button in the mappings dialogue. Essentially for the current DataSet we want to set the mapping for each visual dimension. The user wants to map which data dimension will go to which visual dimension. This uses the DataSet::setMap() function. However this function takes the dimension number and the UI will have the dimension label. The DataSet::getDimenNumber() function returns the dimension number given a label. This function should also call the draw routine. 
Christopher J. Morris

Last modified: Wed Jun 7 2000