vtkSlicerModuleCollapsibleFrame.h
Go to the documentation of this file.00001
00002
00003
00004
00005 #ifndef __vtkSlicerModuleCollapsibleFrame_h
00006 #define __vtkSlicerModuleCollapsibleFrame_h
00007
00012
00013 #include "vtkSlicerBaseGUIWin32Header.h"
00014 #include "vtkKWCompositeWidget.h"
00015
00016 class vtkKWFrame;
00017 class vtkKWIcon;
00018 class vtkKWLabel;
00019 class vtkKWLabelWithLabel;
00020
00021 class VTK_SLICER_BASE_GUI_EXPORT vtkSlicerModuleCollapsibleFrame : public vtkKWCompositeWidget
00022 {
00023 public:
00024 static vtkSlicerModuleCollapsibleFrame* New();
00025 vtkTypeRevisionMacro(vtkSlicerModuleCollapsibleFrame, vtkKWCompositeWidget);
00026 void PrintSelf(ostream& os, vtkIndent indent);
00027
00030 void SetLabelText(const char *);
00031
00034 vtkGetObjectMacro(Frame, vtkKWFrame);
00035
00038 vtkGetObjectMacro(LabelFrame, vtkKWFrame);
00039
00042 virtual vtkKWLabel *GetLabel();
00043
00046 virtual void CollapseFrame();
00047 virtual void ExpandFrame();
00048 virtual int IsFrameCollapsed();
00049
00053 vtkSetMacro(AllowFrameToCollapse, int);
00054 vtkBooleanMacro(AllowFrameToCollapse, int);
00055 vtkGetMacro(AllowFrameToCollapse, int);
00056
00064 static int GetDefaultAllowFrameToCollapse();
00065 static void SetDefaultAllowFrameToCollapse(int);
00066 static void DefaultAllowFrameToCollapseOn()
00067 { vtkSlicerModuleCollapsibleFrame::SetDefaultAllowFrameToCollapse(1); };
00068 static void DefaultAllowFrameToCollapseOff()
00069 { vtkSlicerModuleCollapsibleFrame::SetDefaultAllowFrameToCollapse(0); };
00070
00079
00080 enum
00081 {
00082 LabelCaseUserSpecified = 0,
00083 LabelCaseUppercaseFirst,
00084 LabelCaseLowercaseFirst
00085 };
00086
00087 static void SetDefaultLabelCase(int v);
00088 static int GetDefaultLabelCase();
00089 static void SetDefaultLabelCaseToUserSpecified()
00090 { vtkSlicerModuleCollapsibleFrame::SetDefaultLabelCase(
00091 vtkSlicerModuleCollapsibleFrame::LabelCaseUserSpecified);};
00092 static void SetDefaultLabelCaseToUppercaseFirst()
00093 {vtkSlicerModuleCollapsibleFrame::SetDefaultLabelCase(
00094 vtkSlicerModuleCollapsibleFrame::LabelCaseUppercaseFirst);};
00095 static void SetDefaultLabelCaseToLowercaseFirst()
00096 {vtkSlicerModuleCollapsibleFrame::SetDefaultLabelCase(
00097 vtkSlicerModuleCollapsibleFrame::LabelCaseLowercaseFirst);};
00098
00106
00107 enum
00108 {
00109 LabelFontWeightNormal = 0,
00110 LabelFontWeightBold
00111 };
00112
00113 static void SetDefaultLabelFontWeight(int v);
00114 static int GetDefaultLabelFontWeight();
00115 static void SetDefaultLabelFontWeightToNormal()
00116 { vtkSlicerModuleCollapsibleFrame::SetDefaultLabelFontWeight(
00117 vtkSlicerModuleCollapsibleFrame::LabelFontWeightNormal);};
00118 static void SetDefaultLabelFontWeightToBold()
00119 {vtkSlicerModuleCollapsibleFrame::SetDefaultLabelFontWeight(
00120 vtkSlicerModuleCollapsibleFrame::LabelFontWeightBold);};
00121
00125 virtual void SetLimitedEditionModeIconVisibility(int);
00126 vtkBooleanMacro(LimitedEditionModeIconVisibility, int);
00127 vtkGetMacro(LimitedEditionModeIconVisibility, int);
00128
00136 virtual void UpdateEnableState();
00137
00142 virtual vtkKWDragAndDropTargetSet* GetDragAndDropTargetSet();
00143
00148 virtual void SetWidth(int);
00149 virtual int GetWidth();
00150 virtual void SetHeight(int);
00151 virtual int GetHeight();
00152
00155 vtkGetObjectMacro(CollapsibleFrame, vtkKWFrame);
00156 vtkGetObjectMacro (Icon, vtkKWLabel);
00157
00160 virtual void AdjustMarginCallback();
00161 virtual void CollapseButtonCallback();
00162 virtual void LabelSingleClickCallback();
00163
00164
00165 enum
00166 {
00167 FrameCollapseEvent = 11000,
00168 FrameExpandEvent,
00169 };
00170
00171
00172 protected:
00173 vtkSlicerModuleCollapsibleFrame();
00174 ~vtkSlicerModuleCollapsibleFrame();
00175
00178 virtual void CreateWidget();
00179
00180 vtkKWFrame *Frame;
00181 vtkKWFrame *LabelFrame;
00182 vtkKWLabelWithLabel *Label;
00183 vtkKWFrame *ExternalMarginFrame;
00184 vtkKWFrame *InternalMarginFrame;
00185 vtkKWFrame *CollapsibleFrame;
00186 vtkKWLabel *Icon;
00187 vtkKWIcon *IconData;
00188
00189 int AllowFrameToCollapse;
00190 int LimitedEditionModeIconVisibility;
00191
00192 static int DefaultAllowFrameToCollapse;
00193 static int DefaultLabelFontWeight;
00194 static int DefaultLabelCase;
00195
00196 virtual vtkKWLabel *GetLabelIcon();
00197
00198
00199 private:
00200 vtkSlicerModuleCollapsibleFrame(const vtkSlicerModuleCollapsibleFrame&);
00201 void operator=(const vtkSlicerModuleCollapsibleFrame&);
00202 };
00203
00204 #endif