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 vtkRenderWindow;
00051 class vtkKWMenu;
00052 class vtkKWToolbar;
00053 class vtkKWLabelWithLabel;
00054
00055 class KWWidgets_EXPORT vtkKWPresetSelector : public vtkKWCompositeWidget
00056 {
00057
00058 public:
00059 static vtkKWPresetSelector* New();
00060 vtkTypeRevisionMacro(vtkKWPresetSelector, vtkKWCompositeWidget);
00061 void PrintSelf(ostream& os, vtkIndent indent);
00062
00064
00067 virtual int AddPreset();
00068 virtual int InsertPreset(int id);
00070
00072 virtual int HasPreset(int id);
00073
00075
00080 virtual int SetPresetGroup(int id, const char *group);
00081 virtual const char* GetPresetGroup(int id);
00083
00085
00087 virtual void SetGroupColumnVisibility(int);
00088 virtual int GetGroupColumnVisibility();
00089 vtkBooleanMacro(GroupColumnVisibility, int);
00091
00093
00095 virtual void SetGroupColumnTitle(const char *);
00096 virtual const char* GetGroupColumnTitle();
00098
00100
00106 virtual int SetPresetComment(int id, const char *comment);
00107 virtual const char* GetPresetComment(int id);
00109
00111
00113 virtual void SetCommentColumnVisibility(int);
00114 virtual int GetCommentColumnVisibility();
00115 vtkBooleanMacro(CommentColumnVisibility, int);
00117
00119
00126 virtual int SetPresetFileName(int id, const char *filename);
00127 virtual const char* GetPresetFileName(int id);
00128 virtual int GetIdOfPresetWithFileName(const char *filename);
00130
00136 virtual vtkTypeInt64 GetPresetCreationTime(int id);
00137
00139
00147 virtual vtkKWIcon* GetPresetThumbnail(int id);
00148 virtual int SetPresetThumbnail(int id, vtkKWIcon *icon);
00149 virtual vtkKWIcon* GetPresetScreenshot(int id);
00150 virtual int SetPresetScreenshot(int id, vtkKWIcon *icon);
00152
00154
00156 virtual void SetThumbnailColumnVisibility(int);
00157 virtual int GetThumbnailColumnVisibility();
00158 vtkBooleanMacro(ThumbnailColumnVisibility, int);
00160
00162
00172 virtual int BuildPresetThumbnailAndScreenshotFromImage(
00173 int id, vtkImageData *image);
00174 virtual int BuildPresetThumbnailAndScreenshotFromRenderWindow(
00175 int id, vtkRenderWindow *win);
00177
00180 virtual int FlipPresetThumbnailAndScreenshotVertically(int id);
00181
00183
00186 vtkSetClampMacro(ThumbnailSize,int,8,512);
00187 vtkGetMacro(ThumbnailSize,int);
00189
00191
00196 vtkSetClampMacro(ScreenshotSize,int,8,2048);
00197 vtkGetMacro(ScreenshotSize,int);
00199
00201
00212 enum
00213 {
00214 UserSlotDoubleType = 0,
00215 UserSlotIntType,
00216 UserSlotUnsignedLongType,
00217 UserSlotInt64Type,
00218 UserSlotStringType,
00219 UserSlotPointerType,
00220 UserSlotObjectType,
00221 UserSlotUnknownType
00222 };
00223
00224 virtual int HasPresetUserSlot(
00225 int id, const char *slot_name);
00226 virtual int GetPresetUserSlotType(
00227 int id, const char *slot_name);
00228 virtual int DeletePresetUserSlot(
00229 int id, const char *slot_name);
00230 virtual int SetPresetUserSlotAsDouble(
00231 int id, const char *slot_name, double value);
00232 virtual double GetPresetUserSlotAsDouble(
00233 int id, const char *slot_name);
00234 virtual int SetPresetUserSlotAsInt(
00235 int id, const char *slot_name, int value);
00236 virtual int GetPresetUserSlotAsInt(
00237 int id, const char *slot_name);
00238 virtual int SetPresetUserSlotAsUnsignedLong(
00239 int id, const char *slot_name, unsigned long value);
00240 virtual unsigned long GetPresetUserSlotAsUnsignedLong(
00241 int id, const char *slot_name);
00242 virtual int SetPresetUserSlotAsInt64(
00243 int id, const char *slot_name, vtkTypeInt64 value);
00244 virtual vtkTypeInt64 GetPresetUserSlotAsInt64(
00245 int id, const char *slot_name);
00246 virtual int SetPresetUserSlotAsString(
00247 int id, const char *slot_name, const char *value);
00248 virtual const char* GetPresetUserSlotAsString(
00249 int id, const char *slot_name);
00250 virtual int SetPresetUserSlotAsPointer(
00251 int id, const char *slot_name, void *ptr);
00252 virtual void* GetPresetUserSlotAsPointer(
00253 int id, const char *slot_name);
00254 virtual int SetPresetUserSlotAsObject(
00255 int id, const char *slot_name, vtkObject *obj);
00256 virtual vtkObject* GetPresetUserSlotAsObject(
00257 int id, const char *slot_name);
00259
00261
00271 virtual void SetPresetGroupSlotName(const char *);
00272 virtual const char* GetPresetGroupSlotName();
00273 virtual void SetPresetCommentSlotName(const char *);
00274 virtual const char* GetPresetCommentSlotName();
00275 virtual void SetPresetFileNameSlotName(const char *);
00276 virtual const char* GetPresetFileNameSlotName();
00277 virtual void SetPresetCreationTimeSlotName(const char *);
00278 virtual const char* GetPresetCreationTimeSlotName();
00279 virtual void SetPresetThumbnailSlotName(const char *);
00280 virtual const char* GetPresetThumbnailSlotName();
00281 virtual void SetPresetScreenshotSlotName(const char *);
00282 virtual const char* GetPresetScreenshotSlotName();
00284
00286
00302 virtual void ClearPresetFilter();
00303 virtual void SetPresetFilterUserSlotConstraint(
00304 const char *slot_name, const char *value);
00305 virtual const char* GetPresetFilterUserSlotConstraint(
00306 const char *slot_name);
00307 virtual void DeletePresetFilterUserSlotConstraint(const char *slot_name);
00308 virtual void SetPresetFilterUserSlotConstraintToRegularExpression(
00309 const char *slot_name);
00310 virtual void SetPresetFilterUserSlotConstraintToString(
00311 const char *slot_name);
00313
00315
00316 virtual void SetPresetFilterGroupConstraint(const char *value);
00317 virtual const char* GetPresetFilterGroupConstraint();
00319
00323 virtual int IsPresetFiltered(int id);
00324
00326
00329 virtual int GetNumberOfPresets();
00330 virtual int GetNumberOfPresetsWithGroup(const char *group);
00331 virtual int GetNumberOfVisiblePresets();
00333
00335
00339 vtkGetMacro(MaximumNumberOfPresets, int);
00340 virtual void SetMaximumNumberOfPresets(int);
00342
00346 virtual int GetPresetVisibility(int id);
00347
00349
00351 virtual int GetIdOfNthPreset(int index);
00352 virtual int GetIdOfNthPresetWithGroup(int index, const char *group);
00354
00356
00358 virtual int GetIdOfPresetAtRow(int row_index);
00359 virtual int GetPresetRow(int id);
00361
00366 virtual int GetRankOfNthPresetWithGroup(int index, const char *group);
00367
00369
00371 virtual int RemovePreset(int id);
00372 virtual int RemoveAllPresets();
00373 virtual int RemoveAllPresetsWithGroup(const char *group);
00375
00377
00378 virtual void SelectPreset(int id);
00379 virtual void SelectPreviousPreset();
00380 virtual void SelectNextPreset();
00381 virtual void ClearSelection();
00382 virtual int GetIdOfSelectedPreset();
00384
00386
00388 virtual void SetListHeight(int);
00389 virtual int GetListHeight();
00390 virtual void SetListWidth(int);
00391 virtual int GetListWidth();
00393
00395
00400 vtkGetObjectMacro(PresetButtonsBaseIcon, vtkKWIcon);
00401 virtual void SetPresetButtonsBaseIcon(vtkKWIcon *icon);
00402 virtual void SetPresetButtonsBaseIconToPredefinedIcon(int icon_index);
00404
00406
00411 virtual void SetSelectSpinButtonsVisibility(int);
00412 vtkGetMacro(SelectSpinButtonsVisibility,int);
00413 vtkBooleanMacro(SelectSpinButtonsVisibility,int);
00415
00417
00422 virtual void SetLocateButtonVisibility(int);
00423 vtkGetMacro(LocateButtonVisibility,int);
00424 vtkBooleanMacro(LocateButtonVisibility,int);
00425 vtkSetMacro(LocateMenuEntryVisibility,int);
00426 vtkGetMacro(LocateMenuEntryVisibility,int);
00427 vtkBooleanMacro(LocateMenuEntryVisibility,int);
00429
00431
00436 virtual void SetEmailButtonVisibility(int);
00437 vtkGetMacro(EmailButtonVisibility,int);
00438 vtkBooleanMacro(EmailButtonVisibility,int);
00439 vtkSetMacro(EmailMenuEntryVisibility,int);
00440 vtkGetMacro(EmailMenuEntryVisibility,int);
00441 vtkBooleanMacro(EmailMenuEntryVisibility,int);
00443
00445
00451 vtkSetStringMacro(EmailBody);
00452 vtkGetStringMacro(EmailBody);
00454
00456
00461 virtual void SetRemoveButtonVisibility(int);
00462 vtkGetMacro(RemoveButtonVisibility,int);
00463 vtkBooleanMacro(RemoveButtonVisibility,int);
00464 vtkGetMacro(RemoveMenuEntryVisibility,int);
00465 vtkSetMacro(RemoveMenuEntryVisibility,int);
00466 vtkBooleanMacro(RemoveMenuEntryVisibility,int);
00468
00470
00476 virtual void SetFilterButtonVisibility(int);
00477 vtkGetMacro(FilterButtonVisibility,int);
00478 vtkBooleanMacro(FilterButtonVisibility,int);
00479 vtkSetStringMacro(FilterButtonSlotName);
00480 vtkGetStringMacro(FilterButtonSlotName);
00482
00484
00485 virtual void SetHelpLabelVisibility(int);
00486 vtkGetMacro(HelpLabelVisibility,int);
00487 vtkBooleanMacro(HelpLabelVisibility,int);
00488 vtkGetObjectMacro(HelpLabel, vtkKWLabelWithLabel);
00489 virtual void SetHelpLabelText(const char *);
00491
00505 virtual void SetPresetAddCommand(vtkObject *object, const char *method);
00506
00522 virtual void SetPresetUpdateCommand(vtkObject *object, const char *method);
00523
00540 virtual void SetPresetApplyCommand(vtkObject *object, const char *method);
00541
00543
00548 virtual void SetApplyPresetOnSelection(int);
00549 vtkGetMacro(ApplyPresetOnSelection,int);
00550 vtkBooleanMacro(ApplyPresetOnSelection,int);
00552
00568 virtual void SetPresetRemoveCommand(vtkObject *object, const char *method);
00569
00582 virtual void SetPresetRemovedCommand(vtkObject *object, const char *method);
00583
00585
00587 vtkSetMacro(PromptBeforeRemovePreset, int);
00588 vtkGetMacro(PromptBeforeRemovePreset, int);
00589 vtkBooleanMacro(PromptBeforeRemovePreset, int);
00591
00593
00607 virtual void SetPresetHasChangedCommand(
00608 vtkObject *object, const char *method);
00610
00626 virtual void SetPresetLoadCommand(vtkObject *object, const char *method);
00627
00629
00637 virtual void SetPresetFilteringHasChangedCommand(
00638 vtkObject *object, const char *method);
00640
00642 virtual void Update();
00643
00650 virtual void UpdateEnableState();
00651
00654 virtual void PresetCellThumbnailCallback(const char*, int, int, const char*);
00655
00657
00663 virtual const char* PresetCellEditStartCallback(
00664 int row, int col, const char *text);
00666
00668
00673 virtual const char* PresetCellEditEndCallback(
00674 int row, int col, const char *text);
00676
00680 virtual void PresetCellUpdatedCallback(int row, int col, const char *text);
00681
00685 virtual vtkKWToolbar* GetToolbar();
00686
00690 virtual void CreateToolbar();
00691
00693
00694 static const char *IdColumnName;
00695 static const char *ThumbnailColumnName;
00696 static const char *GroupColumnName;
00697 static const char *CommentColumnName;
00698
00700
00702
00703 virtual int PresetAddCallback();
00704 virtual void PresetApplyCallback();
00705 virtual void PresetApplyCallback(int id);
00706 virtual void PresetUpdateCallback();
00707 virtual void PresetUpdateCallback(int id);
00708 virtual void PresetRemoveCallback();
00709 virtual void PresetRemoveAllCallback();
00710 virtual void PresetRemoveCallback(int id);
00711 virtual void PresetEmailCallback();
00712 virtual void PresetEmailCallback(int id);
00713 virtual void PresetLocateCallback();
00714 virtual void PresetLocateCallback(int id);
00715 virtual void PresetSelectionCallback();
00716 virtual void PresetSelectionChangedCallback();
00717 virtual void PresetRightClickCallback(int row, int col, int x, int y);
00718 virtual int PresetLoadCallback();
00719 virtual void PresetFilterCallback();
00720 virtual void PresetFilterApplyCallback(const char *regexp);
00721 virtual void UpdatePresetRowCallback(int id);
00722 virtual void UpdatePresetRowsCallback();
00723 virtual void ColumnSortedCallback();
00724 virtual void RowMovedCallback();
00725 virtual void SchedulePresetSelectionCallback();
00726 virtual void SchedulePresetSelectionChangedCallback();
00728
00730
00732 vtkGetObjectMacro(PresetList, vtkKWMultiColumnListWithScrollbars);
00734
00736
00748 virtual void SetCreateUserPresetButtonsCommand(
00749 vtkObject *object, const char *method);
00750 virtual void SetUpdateUserPresetButtonsCommand(
00751 vtkObject *object, const char *method);
00752 virtual void SetSetUserPresetButtonsIconsCommand(
00753 vtkObject *object, const char *method);
00754 virtual void SetSetUserPresetButtonsHelpStringsCommand(
00755 vtkObject *object, const char *method);
00757
00758
00759
00760 protected:
00761 vtkKWPresetSelector();
00762 ~vtkKWPresetSelector();
00763
00765 virtual void CreateWidget();
00766
00770 virtual void CreateColumns();
00771
00775 virtual void CreateToolbarPresetButtons(vtkKWToolbar*, int use_separators);
00776
00778 virtual void UpdateToolbarPresetButtons(vtkKWToolbar*);
00779
00783 virtual void SetToolbarPresetButtonsIcons(vtkKWToolbar*);
00784
00788 virtual void SetToolbarPresetButtonsHelpStrings(vtkKWToolbar*);
00789
00793 virtual void ConfigureNewPreset(int id);
00794
00798 virtual void DeAllocatePreset(int id);
00799
00801
00808 virtual int UpdatePresetRow(int id);
00809 virtual void ScheduleUpdatePresetRow(int id);
00811
00818 virtual int UpdatePresetRowInMultiColumnList(int id, int is_new = 0);
00819
00820 vtkKWMultiColumnListWithScrollbars *PresetList;
00821 vtkKWFrame *PresetControlFrame;
00822 vtkKWToolbar *PresetButtons;
00823 vtkKWToolbar *Toolbar;
00824 vtkKWLabelWithLabel *HelpLabel;
00825 vtkKWMenu *ContextMenu;
00826 vtkKWIcon *PresetButtonsBaseIcon;
00827
00828
00829 int ApplyPresetOnSelection;
00830 int SelectSpinButtonsVisibility;
00831 int EmailButtonVisibility;
00832 int EmailMenuEntryVisibility;
00833 int LocateButtonVisibility;
00834 int LocateMenuEntryVisibility;
00835 int RemoveButtonVisibility;
00836 int RemoveMenuEntryVisibility;
00837 int HelpLabelVisibility;
00838 int FilterButtonVisibility;
00839
00840 int ThumbnailSize;
00841 int ScreenshotSize;
00842 int PromptBeforeRemovePreset;
00843 int MaximumNumberOfPresets;
00844
00845 char *EmailBody;
00846 char *FilterButtonSlotName;
00847
00855 virtual void NumberOfPresetsHasChanged();
00856
00860 virtual void PresetFilteringHasChanged();
00861
00867 virtual void PresetFilteringMayHaveChanged();
00868
00869
00870
00871 vtkKWPresetSelectorInternals *Internals;
00872
00873
00875
00876 virtual void UpdatePresetRows();
00877 virtual void ScheduleUpdatePresetRows();
00878 virtual void CancelScheduleUpdatePresetRows();
00880
00881 char *PresetAddCommand;
00882 virtual int InvokePresetAddCommand();
00883
00884 char *PresetUpdateCommand;
00885 virtual void InvokePresetUpdateCommand(int id);
00886
00887 char *PresetApplyCommand;
00888 virtual void InvokePresetApplyCommand(int id);
00889
00890 char *PresetRemoveCommand;
00891 virtual int InvokePresetRemoveCommand(int id);
00892
00893 char *PresetRemovedCommand;
00894 virtual void InvokePresetRemovedCommand();
00895
00896 char *PresetHasChangedCommand;
00897 virtual void InvokePresetHasChangedCommand(int id);
00898
00899 char *PresetLoadCommand;
00900 virtual int InvokePresetLoadCommand();
00901
00902 char *PresetFilteringHasChangedCommand;
00903 virtual void InvokePresetFilteringHasChangedCommand();
00904
00905 char *CreateUserPresetButtonsCommand;
00906 virtual void InvokeCreateUserPresetButtonsCommand(vtkKWToolbar *, int);
00907
00908 char *UpdateUserPresetButtonsCommand;
00909 virtual void InvokeUpdateUserPresetButtonsCommand(vtkKWToolbar *);
00910
00911 char *SetUserPresetButtonsIconsCommand;
00912 virtual void InvokeSetUserPresetButtonsIconsCommand(vtkKWToolbar *);
00913
00914 char *SetUserPresetButtonsHelpStringsCommand;
00915 virtual void InvokeSetUserPresetButtonsHelpStringsCommand(vtkKWToolbar *);
00916
00918
00919 virtual int GetIdColumnIndex();
00920 virtual int GetThumbnailColumnIndex();
00921 virtual int GetGroupColumnIndex();
00922 virtual int GetCommentColumnIndex();
00924
00926 virtual void Pack();
00927
00931 virtual void PopulatePresetContextMenu(vtkKWMenu *menu, int id);
00932
00934
00935 static int SelectPreviousButtonId;
00936 static int SelectNextButtonId;
00937 static int AddButtonId;
00938 static int ApplyButtonId;
00939 static int UpdateButtonId;
00940 static int RemoveButtonId;
00941 static int LocateButtonId;
00942 static int EmailButtonId;
00943 static int LoadButtonId;
00944 static int FilterButtonId;
00945
00947
00949
00950 virtual const char* GetSelectPreviousButtonLabel();
00951 virtual const char* GetSelectNextButtonLabel();
00952 virtual const char* GetAddButtonLabel();
00953 virtual const char* GetApplyButtonLabel();
00954 virtual const char* GetUpdateButtonLabel();
00955 virtual const char* GetRemoveButtonLabel();
00956 virtual const char* GetRemoveAllButtonLabel();
00957 virtual const char* GetLocateButtonLabel();
00958 virtual const char* GetEmailButtonLabel();
00959 virtual const char* GetLoadButtonLabel();
00960 virtual const char* GetFilterButtonLabel();
00962
00967 virtual int DeleteAllPresets();
00968
00970 virtual int GetNumberOfSelectedPresetsWithFileName();
00971
00973
00974 virtual void SetPresetIdToRowIndexCacheEntry(int id, int row_index);
00975 virtual int GetPresetIdToRowIndexCacheEntry(int id);
00976 virtual void InvalidatePresetIdToRowIndexCache();
00978
00980
00981 virtual void SetRowIndexToPresetIdCacheEntry(int row_index, int id);
00982 virtual int GetRowIndexToPresetIdCacheEntry(int row_index);
00983 virtual void InvalidateRowIndexToPresetIdCache();
00985
00987
00990 virtual void ProcessCallbackCommandEvents(
00991 vtkObject *caller, unsigned long event, void *calldata);
00993
00995 virtual void ConstrainNumberOfPresets();
00996
01001 virtual int SetPresetCreationTime(int id, vtkTypeInt64 value);
01002
01003
01004
01005 private:
01006
01007 vtkKWPresetSelector(const vtkKWPresetSelector&);
01008 void operator=(const vtkKWPresetSelector&);
01009 };
01010
01011 #endif
01012