00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00045 #ifndef __vtkKWTree_h
00046 #define __vtkKWTree_h
00047
00048 #include "vtkKWCoreWidget.h"
00049
00050 class vtkKWTreeInternals;
00051
00052 class KWWidgets_EXPORT vtkKWTree : public vtkKWCoreWidget
00053 {
00054
00055 public:
00056 static vtkKWTree* New();
00057 vtkTypeRevisionMacro(vtkKWTree,vtkKWCoreWidget);
00058 void PrintSelf(ostream& os, vtkIndent indent);
00059
00066 virtual void AddNode(const char *parent, const char *node, const char *text);
00067
00070 virtual void DeleteNode(const char *node);
00071
00073
00076 virtual const char* GetNodeText(const char *node);
00077 virtual void SetNodeText(const char *node, const char *text);
00079
00081
00082 virtual int GetNodeSelectableFlag(const char *node);
00083 virtual void SetNodeSelectableFlag(const char *node, int flag);
00085
00087
00100 virtual const char* GetNodeFont(const char *node);
00101 virtual void SetNodeFont(const char *node, const char *font);
00103
00105
00107 virtual void SetNodeFontWeightToBold(const char *node);
00108 virtual void SetNodeFontWeightToNormal(const char *node);
00109 virtual void SetNodeFontSlantToItalic(const char *node);
00110 virtual void SetNodeFontSlantToRoman(const char *node);
00112
00114
00118 virtual const char* GetNodeUserData(const char *node);
00119 virtual void SetNodeUserData(const char *node, const char *data);
00120 virtual int GetNodeUserDataAsInt(const char *node);
00121 virtual void SetNodeUserDataAsInt(const char *node, int);
00123
00125 virtual int HasNode(const char *node);
00126
00128 virtual void DeleteAllNodes();
00129
00131 virtual void DeleteNodeChildren(const char *node);
00132
00136 virtual const char* GetNodeChildren(const char *node);
00137
00140 virtual const char* GetNodeParent(const char *node);
00141
00143 virtual int IsNodeAncestor(const char *ancestor, const char *node);
00144
00147 virtual void MoveNode(const char *node, const char *new_parent, int pos);
00148
00150
00155 virtual const char* FindNodeWithUserData(
00156 const char *parent, const char *data);
00157 virtual const char* FindNodeWithUserDataAsInt(
00158 const char *parent, int data);
00160
00162
00164 virtual void SetSelectionMode(int);
00165 vtkGetMacro(SelectionMode, int);
00166 virtual void SetSelectionModeToSingle();
00167 virtual void SetSelectionModeToMultiple();
00169
00171
00174 virtual void SelectNode(const char *node);
00175 virtual void DeselectNode(const char *node);
00177
00179 virtual void SelectSingleNode(const char *node);
00180
00182 virtual void ClearSelection();
00183
00187 virtual const char* GetSelection();
00188
00190 virtual int HasSelection();
00191
00193
00196 virtual void SelectNodeChildren(const char *node);
00197 virtual void DeselectNodeChildren(const char *node);
00199
00201 virtual void SeeNode(const char *node);
00202
00204
00205 virtual void OpenNode(const char *node);
00206 virtual void CloseNode(const char *node);
00207 virtual int IsNodeOpen(const char *node);
00209
00211
00212 virtual void OpenFirstNode();
00213 virtual void CloseFirstNode();
00215
00217
00218 virtual void OpenTree(const char *node);
00219 virtual void CloseTree(const char *node);
00221
00223
00226 vtkBooleanMacro(EnableReparenting, int);
00227 vtkGetMacro(EnableReparenting, int);
00228 virtual void SetEnableReparenting(int);
00230
00232
00233 virtual void SetWidth(int);
00234 virtual int GetWidth();
00235 virtual void SetHeight(int);
00236 virtual int GetHeight();
00238
00240
00251 virtual void SetNodeImageToIcon(const char *node, vtkKWIcon *icon);
00252 virtual void SetNodeImageToPredefinedIcon(const char *node, int icon_index);
00253 virtual void SetNodeImageToPixels(const char *node,
00254 const unsigned char *pixels, int width, int height, int pixel_size,
00255 unsigned long buffer_length = 0);
00257
00259
00262 virtual void SetNodeWindow(const char *node, vtkKWWidget *w);
00263 virtual vtkKWWidget* GetNodeWindow(const char *node);
00265
00269 virtual void DeleteAllNodeWindows(const char *parent);
00270
00272
00273 virtual void SetNodePadX(const char *node, int);
00274 virtual int GetNodePadX(const char *node);
00276
00278
00280 vtkBooleanMacro(RedrawOnIdle, int);
00281 virtual void SetRedrawOnIdle(int);
00282 virtual int GetRedrawOnIdle();
00284
00286
00287 vtkBooleanMacro(LinesVisibility, int);
00288 virtual void SetLinesVisibility(int);
00289 virtual int GetLinesVisibility();
00291
00293
00295 vtkBooleanMacro(SelectionFill, int);
00296 virtual void SetSelectionFill(int);
00297 virtual int GetSelectionFill();
00299
00301
00302 virtual void GetBackgroundColor(double *r, double *g, double *b);
00303 virtual double* GetBackgroundColor();
00304 virtual void SetBackgroundColor(double r, double g, double b);
00305 virtual void SetBackgroundColor(double rgb[3])
00306 { this->SetBackgroundColor(rgb[0], rgb[1], rgb[2]); };
00308
00310
00313 virtual void SetHighlightThickness(int);
00314 virtual int GetHighlightThickness();
00316
00318
00321 virtual void SetBorderWidth(int);
00322 virtual int GetBorderWidth();
00324
00326
00329 virtual void SetRelief(int);
00330 virtual int GetRelief();
00331 virtual void SetReliefToRaised();
00332 virtual void SetReliefToSunken();
00333 virtual void SetReliefToFlat();
00334 virtual void SetReliefToRidge();
00335 virtual void SetReliefToSolid();
00336 virtual void SetReliefToGroove();
00338
00340
00341 virtual void SetPadX(int);
00342 virtual int GetPadX();
00344
00346
00347 virtual void SetDeltaX(int);
00348 virtual int GetDeltaX();
00350
00352
00353 virtual void SetDeltaY(int);
00354 virtual int GetDeltaY();
00356
00358
00359 virtual void GetSelectionBackgroundColor(double *r, double *g, double *b);
00360 virtual double* GetSelectionBackgroundColor();
00361 virtual void SetSelectionBackgroundColor(double r, double g, double b);
00362 virtual void SetSelectionBackgroundColor(double rgb[3])
00363 { this->SetSelectionBackgroundColor(rgb[0], rgb[1], rgb[2]); };
00364 virtual void GetSelectionForegroundColor(double *r, double *g, double *b);
00365 virtual double* GetSelectionForegroundColor();
00366 virtual void SetSelectionForegroundColor(double r, double g, double b);
00367 virtual void SetSelectionForegroundColor(double rgb[3])
00368 { this->SetSelectionForegroundColor(rgb[0], rgb[1], rgb[2]); };
00370
00378 virtual void SetOpenCommand(vtkObject *object, const char *method);
00379
00387 virtual void SetCloseCommand(vtkObject *object, const char *method);
00388
00390
00399 virtual void SetBinding(
00400 const char *event, vtkObject *object, const char *method);
00401 virtual void SetBinding(
00402 const char *event, const char *command);
00403 virtual void AddBinding(
00404 const char *event, vtkObject *object, const char *method);
00405 virtual void AddBinding(
00406 const char *event, const char *command);
00407 virtual void RemoveBinding(const char *event);
00408 virtual void RemoveBinding(
00409 const char *event, vtkObject *object, const char *method);
00411
00413
00420 virtual void SetBindText(
00421 const char *event, vtkObject *object, const char *method);
00423
00425
00435 virtual void SetDoubleClickOnNodeCommand(
00436 vtkObject *object, const char *method);
00437 virtual void SetSingleClickOnNodeCommand(
00438 vtkObject *object, const char *method);
00439 virtual void SetRightClickOnNodeCommand(
00440 vtkObject *object, const char *method);
00442
00444
00450 virtual void SetSelectionChangedCommand(
00451 vtkObject *object, const char *method);
00453
00455
00464 virtual void SetNodeParentChangedCommand(
00465 vtkObject *object, const char *method);
00467
00469
00480 enum
00481 {
00482 SelectionChangedEvent = 10000,
00483 RightClickOnNodeEvent,
00484 NodeParentChangedEvent
00485 };
00486
00488
00495 virtual void UpdateEnableState();
00496
00498
00501 vtkBooleanMacro(UseRawNodeText, int);
00502 vtkGetMacro(UseRawNodeText, int);
00503 vtkSetMacro(UseRawNodeText, int);
00505
00507
00510 vtkBooleanMacro(UseRawNodeUserData, int);
00511 vtkGetMacro(UseRawNodeUserData, int);
00512 vtkSetMacro(UseRawNodeUserData, int);
00514
00516
00517 virtual void Focus();
00518 virtual int HasFocus();
00520
00522
00523 virtual void SelectionCallback();
00524 virtual void RightClickOnNodeCallback(const char *node);
00525 virtual void KeyNavigationCallback(const char* key);
00526 virtual void DropOverNodeCallback(const char*, const char*, const char*, const char*, const char*, const char*);
00528
00531 virtual void DisplayChildNodes(const char* node);
00532
00533
00534
00535 protected:
00536 vtkKWTree();
00537 ~vtkKWTree();
00538
00540 virtual void CreateWidget();
00541
00542 int SelectionMode;
00543 int EnableReparenting;
00544 int UseRawNodeUserData;
00545 int UseRawNodeText;
00546
00547 char *SelectionChangedCommand;
00548 virtual void InvokeSelectionChangedCommand();
00549
00550 char *NodeParentChangedCommand;
00551 virtual void InvokeNodeParentChangedCommand(
00552 const char *node, const char *new_parent, const char *previous_parent);
00553
00554 virtual void UpdateDragAndDrop();
00555
00556
00557
00558 vtkKWTreeInternals *Internals;
00559
00560
00561
00562
00563 private:
00564 vtkKWTree(const vtkKWTree&);
00565 void operator=(const vtkKWTree&);
00566 };
00567
00568 #endif
00569