00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00021 #ifndef __vtkKWSplitFrame_h
00022 #define __vtkKWSplitFrame_h
00023
00024 #include "vtkKWCompositeWidget.h"
00025 class vtkKWApplication;
00026 class vtkKWFrame;
00027
00028 class KWWIDGETS_EXPORT vtkKWSplitFrame : public vtkKWCompositeWidget
00029 {
00030 public:
00031 static vtkKWSplitFrame* New();
00032 vtkTypeRevisionMacro(vtkKWSplitFrame,vtkKWCompositeWidget);
00033 void PrintSelf(ostream& os, vtkIndent indent);
00034
00036 virtual void Create(vtkKWApplication *app);
00037
00042 vtkKWFrame *GetFrame1() {return this->Frame1;};
00043
00048 vtkKWFrame *GetFrame2() {return this->Frame2;};
00049
00051
00055 enum
00056 {
00057 OrientationHorizontal = 0,
00058 OrientationVertical
00059 };
00060
00061 virtual void SetOrientation(int);
00062 vtkGetMacro(Orientation, int);
00063 virtual void SetOrientationToHorizontal()
00064 { this->SetOrientation(vtkKWSplitFrame::OrientationHorizontal); };
00065 virtual void SetOrientationToVertical()
00066 { this->SetOrientation(vtkKWSplitFrame::OrientationVertical); };
00068
00070
00074 enum
00075 {
00076 FrameLayoutDefault = 0,
00077 FrameLayoutSwapped
00078 };
00079
00080 virtual void SetFrameLayout(int);
00081 vtkGetMacro(FrameLayout, int);
00082 virtual void SetFrameLayoutToDefault()
00083 { this->SetFrameLayout(vtkKWSplitFrame::FrameLayoutDefault); };
00084 virtual void SetFrameLayoutToSwapped()
00085 { this->SetFrameLayout(vtkKWSplitFrame::FrameLayoutSwapped); };
00087
00089
00091 enum
00092 {
00093 ExpandableFrame1 = 0,
00094 ExpandableFrame2,
00095 ExpandableFrameBoth
00096 };
00097
00098 vtkSetClampMacro(ExpandableFrame, int,
00099 vtkKWSplitFrame::ExpandableFrame1,
00100 vtkKWSplitFrame::ExpandableFrameBoth);
00101 vtkGetMacro(ExpandableFrame, int);
00102 virtual void SetExpandableFrameToFrame1()
00103 { this->SetExpandableFrame(vtkKWSplitFrame::ExpandableFrame1); };
00104 virtual void SetExpandableFrameToFrame2()
00105 { this->SetExpandableFrame(vtkKWSplitFrame::ExpandableFrame2); };
00106 virtual void SetExpandableFrameToBothFrames()
00107 { this->SetExpandableFrame(vtkKWSplitFrame::ExpandableFrameBoth); };
00109
00111
00112 vtkGetMacro(Frame1MinimumSize, int);
00113 virtual void SetFrame1MinimumSize(int minSize);
00114 vtkGetMacro(Frame1Size, int);
00115 virtual void SetFrame1Size(int size);
00116 vtkGetMacro(Frame1Visibility, int);
00117 virtual void SetFrame1Visibility(int flag);
00118 vtkBooleanMacro(Frame1Visibility, int);
00120
00122
00123 vtkGetMacro(Frame2MinimumSize, int);
00124 virtual void SetFrame2MinimumSize(int minSize);
00125 vtkGetMacro(Frame2Size, int);
00126 virtual void SetFrame2Size(int size);
00127 vtkGetMacro(Frame2Visibility, int);
00128 virtual void SetFrame2Visibility(int flag);
00129 vtkBooleanMacro(Frame2Visibility, int);
00131
00133
00135 virtual void SetSeparatorSize(int size);
00136 vtkGetMacro(SeparatorSize, int);
00138
00140
00142 virtual void SetSeparatorMargin(int size);
00143 vtkGetMacro(SeparatorMargin, int);
00145
00147
00148 virtual void SetSeparatorVisibility(int flag);
00149 vtkGetMacro(SeparatorVisibility, int);
00150 vtkBooleanMacro(SeparatorVisibility, int);
00152
00154
00155 virtual void DragCallback();
00156 virtual void ConfigureCallback();
00158
00165 virtual void UpdateEnableState();
00166
00167 protected:
00168 vtkKWSplitFrame();
00169 ~vtkKWSplitFrame();
00170
00171 virtual int GetTotalSeparatorSize();
00172
00173 vtkKWFrame *Frame1;
00174 vtkKWFrame *Separator;
00175 vtkKWFrame *Frame2;
00176
00177 int Size;
00178 int Frame1Size;
00179 int Frame2Size;
00180
00181 int SeparatorSize;
00182 int SeparatorMargin;
00183 int SeparatorVisibility;
00184
00185 int Frame1Visibility;
00186 int Frame2Visibility;
00187
00188 int Frame1MinimumSize;
00189 int Frame2MinimumSize;
00190
00191 int Orientation;
00192 int FrameLayout;
00193 int ExpandableFrame;
00194
00195
00196
00197 virtual void Pack();
00198 virtual void AddBindings();
00199 virtual void RemoveBindings();
00200 virtual void AddSeparatorBindings();
00201 virtual void RemoveSeparatorBindings();
00202 virtual void ReConfigure();
00203 virtual int GetInternalMarginHorizontal();
00204 virtual int GetInternalMarginVertical();
00205 virtual void ConfigureSeparatorCursor();
00206
00207 private:
00208 vtkKWSplitFrame(const vtkKWSplitFrame&);
00209 void operator=(const vtkKWSplitFrame&);
00210 };
00211
00212
00213 #endif
00214
00215
00216