00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00040 #ifndef __vtkKWPresetSelector_h
00041 #define __vtkKWPresetSelector_h
00042
00043 #include "vtkKWCompositeWidget.h"
00044
00045 class vtkImageData;
00046 class vtkKWIcon;
00047 class vtkKWMultiColumnListWithScrollbars;
00048 class vtkKWPresetSelectorInternals;
00049 class vtkKWPushButtonSet;
00050 class vtkKWSpinButtons;
00051 class vtkRenderWindow;
00052
00053 class KWWIDGETS_EXPORT vtkKWPresetSelector : public vtkKWCompositeWidget
00054 {
00055 public:
00056 static vtkKWPresetSelector* New();
00057 vtkTypeRevisionMacro(vtkKWPresetSelector, vtkKWCompositeWidget);
00058 void PrintSelf(ostream& os, vtkIndent indent);
00059
00061 virtual void Create(vtkKWApplication *app);
00062
00064 virtual int AddPreset();
00065
00067 virtual int HasPreset(int id);
00068
00070
00076 virtual int SetPresetGroup(int id, const char *group);
00077 virtual const char* GetPresetGroup(int id);
00079
00081
00083 virtual void SetGroupColumnVisibility(int);
00084 virtual int GetGroupColumnVisibility();
00085 vtkBooleanMacro(GroupColumnVisibility, int);
00087
00089
00091 virtual void SetGroupColumnTitle(const char *);
00092 virtual const char* GetGroupColumnTitle();
00094
00096
00099 virtual void SetGroupFilter(const char *group);
00100 vtkGetStringMacro(GroupFilter);
00102
00104
00110 virtual int SetPresetComment(int id, const char *comment);
00111 virtual const char* GetPresetComment(int id);
00113
00115
00117 virtual void SetCommentColumnVisibility(int);
00118 virtual int GetCommentColumnVisibility();
00119 vtkBooleanMacro(CommentColumnVisibility, int);
00121
00123
00127 virtual int SetPresetFileName(int id, const char *filename);
00128 virtual const char* GetPresetFileName(int id);
00130
00136 virtual double GetPresetCreationTime(int id);
00137
00139
00147 virtual int SetPresetImage(int id, vtkImageData *image);
00148 virtual int SetPresetImageFromRenderWindow(int id, vtkRenderWindow *win);
00149 virtual vtkKWIcon* GetPresetThumbnail(int id);
00150 virtual vtkKWIcon* GetPresetScreenshot(int id);
00152
00154
00156 virtual void SetThumbnailColumnVisibility(int);
00157 virtual int GetThumbnailColumnVisibility();
00158 vtkBooleanMacro(ThumbnailColumnVisibility, int);
00160
00162
00165 vtkSetClampMacro(ThumbnailSize,int,8,512);
00166 vtkGetMacro(ThumbnailSize,int);
00168
00170
00174 vtkSetClampMacro(ScreenshotSize,int,8,2048);
00175 vtkGetMacro(ScreenshotSize,int);
00177
00179
00183 virtual int HasPresetUserSlot(
00184 int id, const char *slot_name);
00185 virtual int SetPresetUserSlotAsDouble(
00186 int id, const char *slot_name, double value);
00187 virtual double GetPresetUserSlotAsDouble(
00188 int id, const char *slot_name);
00189 virtual int SetPresetUserSlotAsInt(
00190 int id, const char *slot_name, int value);
00191 virtual int GetPresetUserSlotAsInt(
00192 int id, const char *slot_name);
00193 virtual int SetPresetUserSlotAsString(
00194 int id, const char *slot_name, const char *value);
00195 virtual const char* GetPresetUserSlotAsString(
00196 int id, const char *slot_name);
00197 virtual int SetPresetUserSlotAsPointer(
00198 int id, const char *slot_name, void *ptr);
00199 virtual void* GetPresetUserSlotAsPointer(
00200 int id, const char *slot_name);
00202
00204
00207 virtual int GetNumberOfPresets();
00208 virtual int GetNumberOfPresetsWithGroup(const char *group);
00209 virtual int GetNumberOfVisiblePresets();
00211
00213
00215 virtual int GetNthPresetId(int index);
00216 virtual int GetNthPresetWithGroupId(int index, const char *group);
00218
00220
00222 virtual int GetPresetAtRowId(int row_index);
00223 virtual int GetPresetRow(int id);
00225
00230 virtual int GetNthPresetWithGroupRank(int index, const char *group);
00231
00233
00235 virtual int RemovePreset(int id);
00236 virtual int RemoveAllPresets();
00237 virtual int RemoveAllPresetsWithGroup(const char *group);
00239
00241
00243 virtual void SetListHeight(int);
00244 virtual int GetListHeight();
00246
00248
00253 virtual void SetSelectSpinButtonsVisibility(int);
00254 vtkGetMacro(SelectSpinButtonsVisibility,int);
00255 vtkBooleanMacro(SelectSpinButtonsVisibility,int);
00257
00265 virtual void SetPresetAddCommand(vtkObject* object, const char *method);
00266
00275 virtual void SetPresetUpdateCommand(vtkObject* object, const char *method);
00276
00286 virtual void SetPresetApplyCommand(vtkObject* object, const char *method);
00287
00289
00294 virtual void SetApplyPresetOnSelection(int);
00295 vtkGetMacro(ApplyPresetOnSelection,int);
00296 vtkBooleanMacro(ApplyPresetOnSelection,int);
00298
00309 virtual void SetPresetRemoveCommand(vtkObject* object, const char *method);
00310
00312
00314 vtkSetMacro(PromptBeforeRemovePreset, int);
00315 vtkGetMacro(PromptBeforeRemovePreset, int);
00316 vtkBooleanMacro(PromptBeforeRemovePreset, int);
00318
00320
00329 virtual void SetPresetHasChangedCommand(
00330 vtkObject* object, const char *method);
00332
00334 virtual void Update();
00335
00342 virtual void UpdateEnableState();
00343
00345
00346 virtual void PresetAddCallback();
00347 virtual void PresetApplyCallback();
00348 virtual void PresetUpdateCallback();
00349 virtual void PresetRemoveCallback();
00350 virtual void PresetSelectionCallback();
00351 virtual void PresetSelectPreviousCallback();
00352 virtual void PresetSelectNextCallback();
00354
00357 virtual void PresetCellThumbnailCallback(const char*, int, int, const char*);
00358
00360
00366 virtual const char* PresetCellEditStartCallback(
00367 int row, int col, const char *text);
00369
00371
00376 virtual const char* PresetCellEditEndCallback(
00377 int row, int col, const char *text);
00379
00383 virtual void PresetCellUpdatedCallback(int row, int col, const char *text);
00384
00386
00387 static const char *IdColumnName;
00388 static const char *ThumbnailColumnName;
00389 static const char *GroupColumnName;
00390 static const char *CommentColumnName;
00391
00393
00394 protected:
00395 vtkKWPresetSelector();
00396 ~vtkKWPresetSelector();
00397
00401 virtual void CreateColumns();
00402
00406 virtual void DeAllocatePreset(int vtkNotUsed(id)) {};
00407
00415 virtual int UpdatePresetRow(int id);
00416
00417 vtkKWMultiColumnListWithScrollbars *PresetList;
00418 vtkKWFrame *PresetControlFrame;
00419 vtkKWSpinButtons *PresetSelectSpinButtons;
00420 vtkKWPushButtonSet *PresetButtons;
00421
00422 int ApplyPresetOnSelection;
00423 int SelectSpinButtonsVisibility;
00424
00425 int ThumbnailSize;
00426 int ScreenshotSize;
00427 int PromptBeforeRemovePreset;
00428
00429 char* GroupFilter;
00430
00432 virtual void NumberOfPresetsHasChanged();
00433
00434
00435
00436 vtkKWPresetSelectorInternals *Internals;
00437
00438
00440 virtual void UpdateRowsInPresetList();
00441
00442 char *PresetAddCommand;
00443 virtual void InvokePresetAddCommand();
00444
00445 char *PresetUpdateCommand;
00446 virtual void InvokePresetUpdateCommand(int id);
00447
00448 char *PresetApplyCommand;
00449 virtual void InvokePresetApplyCommand(int id);
00450
00451 char *PresetRemoveCommand;
00452 virtual int InvokePresetRemoveCommand(int id);
00453
00454 char *PresetHasChangedCommand;
00455 virtual void InvokePresetHasChangedCommand(int id);
00456
00458
00459 virtual int GetIdColumnIndex();
00460 virtual int GetThumbnailColumnIndex();
00461 virtual int GetGroupColumnIndex();
00462 virtual int GetCommentColumnIndex();
00464
00466 virtual void Pack();
00467
00470 virtual void SetDefaultHelpStrings();
00471
00473
00474 static int AddButtonId;
00475 static int ApplyButtonId;
00476 static int RemoveButtonId;
00477 static int UpdateButtonId;
00478
00480
00481 private:
00482
00483 vtkKWPresetSelector(const vtkKWPresetSelector&);
00484 void operator=(const vtkKWPresetSelector&);
00485 };
00486
00487 #endif