00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00021 #ifndef __vtkPVActiveTrackSelector_h
00022 #define __vtkPVActiveTrackSelector_h
00023
00024 #include "vtkPVTracedWidget.h"
00025
00026 class vtkKWLabel;
00027 class vtkKWMenuButton;
00028 class vtkPVActiveTrackSelectorInternals;
00029 class vtkPVAnimationCueTree;
00030 class vtkPVAnimationCue;
00031 class vtkSMAnimationCueProxy;
00032 class vtkSMProxy;
00033 class vtkPVSource;
00034
00035 class VTK_EXPORT vtkPVActiveTrackSelector : public vtkPVTracedWidget
00036 {
00037 public:
00038 static vtkPVActiveTrackSelector* New();
00039 vtkTypeRevisionMacro(vtkPVActiveTrackSelector, vtkPVTracedWidget);
00040 void PrintSelf(ostream& os, vtkIndent indent);
00041
00043 virtual void Create(vtkKWApplication* app);
00044
00046
00047 void AddSource(vtkPVAnimationCueTree*);
00048 void RemoveSource(vtkPVAnimationCueTree*);
00049 void RemoveSource(vtkPVSource*);
00051
00053
00054 void SelectSourceCallback(const char* key);
00055 void SelectPropertyCallback(int cue_index);
00057
00059
00063 int SelectCue(vtkPVAnimationCue*);
00064 int SelectCue(const char* sourceName, vtkSMAnimationCueProxy* cue);
00066
00068
00069 vtkGetObjectMacro(SourceMenuButton, vtkKWMenuButton);
00070 vtkGetObjectMacro(PropertyMenuButton, vtkKWMenuButton);
00072
00074
00075 vtkGetObjectMacro(CurrentCue, vtkPVAnimationCue);
00077
00079
00081 vtkGetMacro(FocusCurrentCue, int);
00082 vtkSetMacro(FocusCurrentCue, int);
00084
00086
00089 vtkSetMacro(PackHorizontally, int);
00090 vtkGetMacro(PackHorizontally, int);
00092
00094
00097 void ShallowCopy(vtkPVActiveTrackSelector* source,
00098 int onlyCopySources=0);
00100
00105 virtual void UpdateEnableState();
00106 protected:
00107 vtkPVActiveTrackSelector();
00108 ~vtkPVActiveTrackSelector();
00109 void SelectSourceCallbackInternal(const char*key);
00110 void SelectPropertyCallbackInternal(int cue_index);
00111
00112 void BuildPropertiesMenu(const char* pretext, vtkPVAnimationCueTree* cueTree);
00113 void CleanupPropertiesMenu();
00114 void CleanupSource();
00115
00116 vtkPVAnimationCueTree* CurrentSourceCueTree;
00117 vtkPVAnimationCue* CurrentCue;
00118 vtkKWLabel* SourceLabel;
00119 vtkKWMenuButton* SourceMenuButton;
00120
00121 vtkKWLabel* PropertyLabel;
00122 vtkKWMenuButton* PropertyMenuButton;
00123
00124 vtkPVActiveTrackSelectorInternals* Internals;
00125
00126 int PackHorizontally;
00127 int FocusCurrentCue;
00128
00129 private:
00130 vtkPVActiveTrackSelector(const vtkPVActiveTrackSelector&);
00131 void operator=(const vtkPVActiveTrackSelector&);
00132 };
00133
00134 #endif