00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00022 #ifndef __vtkKWToolbar_h
00023 #define __vtkKWToolbar_h
00024
00025 #include "vtkKWCompositeWidget.h"
00026
00027 class vtkKWFrame;
00028 class vtkKWRadioButton;
00029 class vtkKWToolbarInternals;
00030
00031 class KWWidgets_EXPORT vtkKWToolbar : public vtkKWCompositeWidget
00032 {
00033
00034 public:
00035 static vtkKWToolbar* New();
00036 vtkTypeRevisionMacro(vtkKWToolbar, vtkKWCompositeWidget);
00037 void PrintSelf(ostream& os, vtkIndent indent);
00038
00040
00042 vtkGetObjectMacro(Frame, vtkKWFrame);
00044
00046
00047 virtual void SetResizable(int);
00048 vtkGetMacro(Resizable, int);
00049 vtkBooleanMacro(Resizable, int);
00051
00053
00055 vtkGetStringMacro(Name);
00056 vtkSetStringMacro(Name);
00058
00060
00062 virtual void AddWidget(vtkKWWidget* widget);
00063 virtual void InsertWidget(vtkKWWidget* location, vtkKWWidget* widget);
00065
00067
00069 virtual void AddSeparator();
00070 virtual void InsertSeparator(vtkKWWidget* location);
00072
00074
00075 virtual int HasWidget(vtkKWWidget* widget);
00076 virtual int GetNumberOfWidgets();
00078
00080
00081 virtual void RemoveWidget(vtkKWWidget* widget);
00082 virtual void RemoveAllWidgets();
00084
00087 virtual vtkKWWidget* GetWidget(const char *name);
00088
00090 virtual vtkKWWidget* GetNthWidget(int rank);
00091
00093
00094 virtual void SetWidgetVisibility(vtkKWWidget *widget, int val);
00095 virtual int GetWidgetVisibility(vtkKWWidget *widget);
00097
00099
00102 vtkKWWidget* AddRadioButtonImage(int value,
00103 const char *image_name,
00104 const char *select_image_name,
00105 const char *variable_name,
00106 vtkObject *object,
00107 const char *method,
00108 const char *help = 0);
00109 vtkKWWidget* AddCheckButtonImage(const char *image_name,
00110 const char *select_image_name,
00111 const char *variable_name,
00112 vtkObject *object,
00113 const char *method,
00114 const char *help = 0);
00116
00118 virtual void UpdateWidgets();
00119
00122 virtual void Update();
00123
00125
00128 enum
00129 {
00130 ToolbarAspectRelief = 0,
00131 ToolbarAspectFlat = 1,
00132 ToolbarAspectUnChanged
00133 };
00134
00135 vtkGetMacro(ToolbarAspect, int);
00136 virtual void SetToolbarAspect(int);
00137 virtual void SetToolbarAspectToFlat();
00138 virtual void SetToolbarAspectToRelief();
00139 virtual void SetToolbarAspectToUnChanged();
00140 static int GetGlobalToolbarAspect();
00141 static void SetGlobalToolbarAspect(int val);
00142 static void SetGlobalToolbarAspectToFlat();
00143 static void SetGlobalToolbarAspectToRelief();
00144 static void SetGlobalToolbarAspectToUnChanged();
00146
00148
00151 enum
00152 {
00153 WidgetsAspectRelief = 0,
00154 WidgetsAspectFlat = 1,
00155 WidgetsAspectUnChanged
00156 };
00157
00158 vtkGetMacro(WidgetsAspect, int);
00159 virtual void SetWidgetsAspect(int);
00160 virtual void SetWidgetsAspectToFlat();
00161 virtual void SetWidgetsAspectToRelief();
00162 virtual void SetWidgetsAspectToUnChanged();
00163 static int GetGlobalWidgetsAspect();
00164 static void SetGlobalWidgetsAspect(int val);
00165 static void SetGlobalWidgetsAspectToFlat();
00166 static void SetGlobalWidgetsAspectToRelief();
00167 static void SetGlobalWidgetsAspectToUnChanged();
00169
00171
00173 virtual void SetWidgetsPadX(int);
00174 vtkGetMacro(WidgetsPadX, int);
00175 virtual void SetWidgetsPadY(int);
00176 vtkGetMacro(WidgetsPadY, int);
00178
00180
00182 virtual void SetWidgetsInternalPadX(int);
00183 vtkGetMacro(WidgetsInternalPadX, int);
00184 virtual void SetWidgetsInternalPadY(int);
00185 vtkGetMacro(WidgetsInternalPadY, int);
00187
00189
00191 virtual void SetWidgetsFlatAdditionalPadX(int);
00192 vtkGetMacro(WidgetsFlatAdditionalPadX, int);
00193 virtual void SetWidgetsFlatAdditionalPadY(int);
00194 vtkGetMacro(WidgetsFlatAdditionalPadY, int);
00196
00198
00200 virtual void SetWidgetsFlatAdditionalInternalPadX(int);
00201 vtkGetMacro(WidgetsFlatAdditionalInternalPadX, int);
00202 virtual void SetWidgetsFlatAdditionalInternalPadY(int);
00203 vtkGetMacro(WidgetsFlatAdditionalInternalPadY, int);
00205
00207
00208 virtual void ScheduleResize();
00209 virtual void Resize();
00211
00218 virtual void UpdateEnableState();
00219
00221
00222 static const char *ToolbarAspectRegKey;
00223 static const char *WidgetsAspectRegKey;
00224
00226
00227
00228
00229 protected:
00230 vtkKWToolbar();
00231 ~vtkKWToolbar();
00232
00234 virtual void CreateWidget();
00235
00236 int Expanding;
00237
00238 vtkKWFrame *Frame;
00239 vtkKWFrame *Handle;
00240
00241 void ConstrainWidgetsLayout();
00242 void UpdateWidgetsLayout();
00243 void UpdateWidgetsAspect();
00244 void UpdateToolbarFrameAspect();
00245
00246
00247
00248
00249
00250 vtkKWToolbarInternals *Internals;
00251
00252
00253
00254 int WidgetsPadX;
00255 int WidgetsPadY;
00256 int WidgetsFlatAdditionalPadX;
00257 int WidgetsFlatAdditionalPadY;
00258
00259 int WidgetsInternalPadX;
00260 int WidgetsInternalPadY;
00261 int WidgetsFlatAdditionalInternalPadX;
00262 int WidgetsFlatAdditionalInternalPadY;
00263
00264 int ToolbarAspect;
00265 int WidgetsAspect;
00266 int Resizable;
00267
00268 vtkKWRadioButton *DefaultOptionsWidget;
00269
00270 char *Name;
00271
00273
00274 virtual void Bind();
00275 virtual void UnBind();
00277
00278
00279
00280 private:
00281 vtkKWToolbar(const vtkKWToolbar&);
00282 void operator=(const vtkKWToolbar&);
00283 };
00284
00285
00286 #endif
00287
00288
00289
00290