00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00028 #ifndef __vtkKWWidget_h
00029 #define __vtkKWWidget_h
00030
00031 #include "vtkKWObject.h"
00032
00033 class vtkKWTopLevel;
00034 class vtkKWDragAndDropTargetSet;
00035 class vtkKWWidgetInternals;
00036 class vtkKWBalloonHelpManager;
00037 class vtkKWKeyBindingsManager;
00038 class vtkKWIcon;
00039
00040 class KWWidgets_EXPORT vtkKWWidget : public vtkKWObject
00041 {
00042
00043 public:
00044 static vtkKWWidget* New();
00045 vtkTypeRevisionMacro(vtkKWWidget,vtkKWObject);
00046 void PrintSelf(ostream& os, vtkIndent indent);
00047
00049
00051 virtual void SetParent(vtkKWWidget *p);
00052 vtkGetObjectMacro(Parent, vtkKWWidget);
00054
00058 virtual vtkKWApplication* GetApplication();
00059
00068 virtual void Create();
00069
00071
00076 virtual const char *GetWidgetName();
00077 vtkSetStringMacro(WidgetName);
00079
00081
00086 static int GetUseClassNameInWidgetName();
00087 static void SetUseClassNameInWidgetName(int);
00088 static void UseClassNameInWidgetNameOn();
00089 static void UseClassNameInWidgetNameOff();
00091
00093 virtual int IsCreated();
00094
00097 virtual int IsAlive();
00098
00100 virtual int IsMapped();
00101
00103
00104 virtual void Focus();
00105 virtual int HasFocus();
00107
00109
00110 virtual void SetEnabled(int);
00111 vtkBooleanMacro(Enabled, int);
00112 vtkGetMacro(Enabled, int);
00114
00116
00125 virtual void SetBinding(
00126 const char *event, vtkObject *object, const char *method);
00127 virtual void SetBinding(
00128 const char *event, const char *command);
00129 virtual const char* GetBinding(const char *event);
00130 virtual void AddBinding(
00131 const char *event, vtkObject *object, const char *method);
00132 virtual void AddBinding(
00133 const char *event, const char *command);
00134 virtual void RemoveBinding(const char *event);
00135 virtual void RemoveBinding(
00136 const char *event, vtkObject *object, const char *method);
00138
00140
00157 virtual void SetKeyBinding(
00158 const char *event, vtkObject *object, const char *method,
00159 const char *context, const char *description);
00160 virtual void RemoveKeyBinding(const char *event);
00161 virtual void RemoveKeyBinding(
00162 const char *event, vtkObject *object, const char *method);
00164
00169 virtual vtkKWKeyBindingsManager* GetKeyBindingsManager();
00170
00174 virtual void SetDropFileBinding(vtkObject *object, const char *method);
00175
00180 vtkKWTopLevel* GetParentTopLevel();
00181
00183
00186 virtual int IsPacked();
00187 virtual int GetNumberOfPackedChildren();
00188 virtual void Unpack();
00190
00192
00195 virtual int IsGridded();
00196 virtual int GetNumberOfGriddedChildren();
00197 virtual void Ungrid();
00199
00201
00204 virtual int IsPlaced();
00205 virtual int GetNumberOfPlacedChildren();
00206 virtual void Unplace();
00208
00210
00213 virtual void UnpackSiblings();
00214 virtual void UnpackChildren();
00216
00218
00224 virtual void SetBalloonHelpString(const char *str);
00225 vtkGetStringMacro(BalloonHelpString);
00226 virtual void SetBalloonHelpIcon(vtkKWIcon *icon);
00227 vtkGetObjectMacro(BalloonHelpIcon, vtkKWIcon);
00229
00231
00240 virtual vtkKWBalloonHelpManager *GetBalloonHelpManager();
00241 virtual void SetBalloonHelpManager(vtkKWBalloonHelpManager *mgr);
00243
00245
00251 virtual int HasDragAndDropTargetSet();
00252 virtual vtkKWDragAndDropTargetSet* GetDragAndDropTargetSet();
00254
00256
00257 virtual void Grab();
00258 virtual void ReleaseGrab();
00259 virtual int IsGrabbed();
00261
00268 virtual void UpdateEnableState();
00269
00271 virtual void UnRegister(vtkObjectBase *o);
00272
00275 virtual int GetNetReferenceCount();
00276
00278
00279 virtual int HasChild(vtkKWWidget *w);
00280 virtual int GetNumberOfChildren();
00281 virtual vtkKWWidget* GetNthChild(int rank);
00282 virtual vtkKWWidget* GetChildWidgetWithName(const char *);
00283 virtual void RemoveAllChildren();
00285
00287
00288 enum
00289 {
00290 WidgetCreatedEvent = 30000
00291 };
00292
00294
00295
00296
00297
00298 protected:
00299 vtkKWWidget();
00300 ~vtkKWWidget();
00301
00303
00304 virtual void AddChild(vtkKWWidget *w);
00305 virtual void RemoveChild(vtkKWWidget *w);
00307
00309 char *WidgetName;
00310
00312 vtkKWWidget *Parent;
00313
00315
00316 char *BalloonHelpString;
00317 vtkKWIcon *BalloonHelpIcon;
00318 vtkKWBalloonHelpManager *BalloonHelpManager;
00319 virtual void AddBalloonHelpBindings();
00321
00323 vtkKWWidgetInternals *Internals;
00324
00328 virtual void PropagateEnableState(vtkKWWidget* widget);
00329
00334 virtual void CreateWidget();
00335
00337
00348 static int CreateSpecificTkWidget(
00349 vtkKWWidget *obj, const char *type, const char *args = NULL);
00351
00353
00358 virtual void SetGenericBinding(
00359 const char *target, const char *event,
00360 vtkObject *object, const char *method);
00361 virtual void AddGenericBinding(
00362 const char *target, const char *event,
00363 vtkObject *object, const char *method);
00364 virtual void RemoveGenericBinding(
00365 const char *target, const char *event);
00366 virtual void RemoveGenericBinding(
00367 const char *target, const char *event,
00368 vtkObject *object, const char *method);
00370
00371
00372
00373 private:
00374
00377 vtkKWDragAndDropTargetSet* DragAndDropTargetSet;
00378
00379 int WidgetIsCreated;
00380 int Enabled;
00381
00382 static int UseClassNameInWidgetName;
00383
00384 virtual unsigned long GetNextAvailableChildID();
00385
00386 vtkKWWidget(const vtkKWWidget&);
00387 void operator=(const vtkKWWidget&);
00388 };
00389
00390 #endif
00391