vtkScriptedModuleGUI.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014 #ifndef __vtkScriptedModuleGUI_h
00015 #define __vtkScriptedModuleGUI_h
00016
00017 #include "vtkSlicerBaseGUIWin32Header.h"
00018 #include "vtkSlicerModuleGUI.h"
00019
00020 #include "vtkMRMLScene.h"
00021 #include "vtkScriptedModuleLogic.h"
00022
00023
00024 class VTK_SCRIPTED_EXPORT vtkScriptedModuleGUI : public vtkSlicerModuleGUI
00025 {
00026 public:
00027 static vtkScriptedModuleGUI *New();
00028 vtkTypeMacro(vtkScriptedModuleGUI,vtkSlicerModuleGUI);
00029 void PrintSelf(ostream& os, vtkIndent indent);
00030
00031
00032 vtkGetObjectMacro (Logic, vtkScriptedModuleLogic);
00033 vtkSetObjectMacro (Logic, vtkScriptedModuleLogic);
00034
00035
00036 vtkGetObjectMacro (ScriptedModuleNode, vtkMRMLScriptedModuleNode);
00037 vtkSetObjectMacro (ScriptedModuleNode, vtkMRMLScriptedModuleNode);
00038 void SetAndObserveScriptedModuleNode (vtkMRMLScriptedModuleNode *n)
00039 {
00040 vtkSetAndObserveMRMLNodeMacro( this->ScriptedModuleNode, n);
00041 }
00042
00043
00044
00045 virtual void BuildGUI ( void );
00046 virtual void BuildGUI ( vtkKWFrame * f ) { this->Superclass::BuildGUI(f); }
00047 virtual void BuildGUI ( vtkKWFrame * f, double * bgColor ) { this->Superclass::BuildGUI(f,bgColor); }
00048
00049
00050
00051 virtual void TearDownGUI ( );
00052
00053
00054
00055 virtual void AddGUIObservers ( );
00056
00057
00058
00059 virtual void RemoveGUIObservers ( );
00060
00061
00062
00063 virtual void RemoveMRMLNodeObservers ( );
00064
00065
00066
00067 virtual void RemoveLogicObservers ( );
00068
00069
00070
00071 virtual void ProcessLogicEvents ( vtkObject * vtkNotUsed(caller),
00072 unsigned long vtkNotUsed(event), void * vtkNotUsed(callData) ){};
00073
00074
00075
00076 virtual void ProcessGUIEvents ( vtkObject *caller, unsigned long event,
00077 void *callData );
00078
00079
00080
00081 virtual void ProcessMRMLEvents ( vtkObject *caller, unsigned long event,
00082 void *callData);
00083
00084
00085 virtual void Invoke (char* method);
00086
00087
00088
00089 virtual void Enter ( void );
00090 virtual void Enter ( vtkMRMLNode* node ) { this->Superclass::Enter(node); }
00091 virtual void Exit ( );
00092
00093
00094
00095 unsigned long AddObserverByNumber (vtkObject *observee, unsigned long event);
00096 unsigned long AddMRMLObserverByNumber (vtkObject *observee, unsigned long event);
00097 void RemoveObserverByNumber (vtkObject *observee, unsigned long event);
00098 void RemoveMRMLObserverByNumber (vtkObject *observee, unsigned long event);
00099 unsigned long GetNumberForVTKEvent( const char *eventName );
00100
00101 vtkGetMacro(Language,int);
00102 vtkSetMacro(Language,int);
00103 void SetLanguageToTcl() { this->SetLanguage(Tcl); }
00104 void SetLanguageToPython() { this->SetLanguage(Python); }
00105
00106 enum {
00107 Tcl = 0,
00108 Python
00109 };
00110
00111
00112
00113 protected:
00114
00115 private:
00116 vtkScriptedModuleGUI();
00117 ~vtkScriptedModuleGUI();
00118 vtkScriptedModuleGUI(const vtkScriptedModuleGUI&);
00119 void operator=(const vtkScriptedModuleGUI&);
00120
00121
00122
00123 void UpdateGUI();
00124
00125
00126
00127 void UpdateMRML();
00128
00129 vtkScriptedModuleLogic *Logic;
00130 vtkMRMLScriptedModuleNode* ScriptedModuleNode;
00131
00132 int Language;
00133 };
00134
00135 #endif
00136