Main Page | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | File Members | Related Pages

GUI/Client/vtkPVLookmarkManager.h

Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program:   ParaView
00004   Module:    $RCSfile: vtkPVLookmarkManager.h,v $
00005 
00006   Copyright (c) Kitware, Inc.
00007   All rights reserved.
00008   See Copyright.txt or http://www.paraview.org/HTML/Copyright.html for details.
00009 
00010      This software is distributed WITHOUT ANY WARRANTY; without even
00011      the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
00012      PURPOSE.  See the above copyright notice for more information.
00013 
00014 =========================================================================*/
00015 /*----------------------------------------------------------------------------
00016  Copyright (c) Sandia Corporation
00017  See Copyright.txt or http://www.paraview.org/HTML/Copyright.html for details.
00018 ----------------------------------------------------------------------------*/
00019 
00020 
00035 #ifndef __vtkPVLookmarkManager_h
00036 #define __vtkPVLookmarkManager_h
00037 
00038 #include "vtkKWTopLevel.h"
00039 
00040 class vtkKWLookmarkFolder;
00041 class vtkPVLookmark;
00042 class vtkXMLDataElement;
00043 class vtkKWFrame;
00044 class vtkKWFrameWithScrollbar;
00045 class vtkKWPushButton;
00046 class vtkPVApplication;
00047 class vtkPVRenderView;
00048 class vtkKWMenu;
00049 class vtkKWMessageDialog;
00050 class vtkKWTextWithScrollbars;
00051 class vtkPVTraceHelper;
00052 class vtkPVWindow;
00053 class vtkPVReaderModule;
00054 
00055 //BTX
00056 template<class DataType> class vtkVector;
00057 //ETX
00058 
00059 class VTK_EXPORT vtkPVLookmarkManager : public vtkKWTopLevel
00060 {
00061 public:
00062   static vtkPVLookmarkManager* New();
00063   vtkTypeRevisionMacro(vtkPVLookmarkManager, vtkKWTopLevel);
00064   void PrintSelf(ostream& os, vtkIndent indent);
00065 
00067   virtual void Create(vtkKWApplication *app);
00068 
00070   virtual void Display();
00071 
00073   virtual void Withdraw();
00074 
00076 
00077   vtkGetObjectMacro(TraceHelper, vtkPVTraceHelper);
00079 
00081   vtkPVLookmark* GetPVLookmark(char *name);
00082 
00083   // Callbacks to interface widgets
00084 
00086 
00089   void ImportLookmarkFileCallback();
00090   void ImportBoundingBoxFileCallback();
00091   void ImportLookmarkFile(const char *path, int appendFlag);
00093 
00095 
00099   void CreateLookmarkCallback(int macroFlag);
00100   vtkPVLookmark* CreateLookmark(char *name, int macroFlag);
00102 
00104 
00106   void SaveAllCallback();
00107   void SaveAll(const char *path);
00109 
00113   void ExportFolderCallback();
00114 
00118   void UpdateLookmarkCallback();
00119 
00122   void RemoveCallback();
00123 
00125 
00127   void CreateFolderCallback();
00128   vtkKWLookmarkFolder* CreateFolder(const char *name, int macroFlag);
00130 
00132   void SetStateOfAllLookmarkItems(int state);
00133 
00135 
00137   void UndoCallback();
00138   void RedoCallback();
00140 
00142 
00144   void RenameLookmarkCallback();
00145   void RenameFolderCallback();
00147 
00149 
00151   vtkKWLookmarkFolder *GetMacrosFolder();
00153 
00160   void ImportMacroExamplesCallback();
00161 
00165   void AddMacroExampleCallback(int index);
00166 
00170   void SelectItemCallback(char *name);
00171 
00173 
00174   void DisplayUsersTutorial();
00175   void DisplayQuickStartGuide();
00177 
00182   void DragAndDropPerformCommand(int x, int y, vtkKWWidget *widget, vtkKWWidget *anchor);
00183 
00187   void DragAndDropEndCommand(int x, int y, vtkKWWidget *widget, vtkKWWidget *anchor, vtkKWWidget *target);
00188 
00195   virtual void UpdateEnableState();
00196 
00197 protected:
00198 
00199   vtkPVLookmarkManager();
00200   ~vtkPVLookmarkManager();
00201 
00202   // convenience methods
00203   vtkPVApplication* GetPVApplication();
00204   vtkPVRenderView* GetPVRenderView(); 
00205   vtkPVWindow* GetPVWindow(); 
00206 
00208   const char* GetPathToFileInHomeDirectory(const char* filename);
00209 
00210   // Help menu helper functions
00211   virtual void ConfigureQuickStartGuide();
00212   virtual void ConfigureUsersTutorial();
00213 
00217   void ResetDragAndDropTargetSetAndCallbacks();
00218 
00222   virtual int DragAndDropWidget( vtkKWWidget *widget, vtkKWWidget *destAfterWidget);
00223 
00226   void RemoveItemAsDragAndDropTarget(vtkKWWidget *removedTarget);
00227 
00229 
00230   void MoveCheckedChildren(vtkKWWidget *recursiveWidget, vtkKWWidget *frameToPackLmkItemInto);
00231   void DestroyUnusedFoldersFromWidget(vtkKWWidget *widget);
00232   int GetNumberOfChildLmkItems(vtkKWWidget *prnt);
00234 
00236 
00240   void DecrementHigherSiblingLmkItemLocationIndices(vtkKWWidget *parent, int location);
00241   void IncrementHigherSiblingLmkItemLocationIndices(vtkKWWidget *parent, int location);
00243 
00246   void PackChildrenBasedOnLocation(vtkKWWidget *parent);
00247 
00250   void RemoveCheckedChildren(vtkKWWidget *parent, int forceRemoveFlag);
00251 
00255   void ImportLookmarkFileInternal(int locationOfLmkItemAmongSiblings, vtkXMLDataElement *recursiveXmlElement, vtkKWWidget *parentWidget);
00256 
00259   void ImportMacroExamplesInternal(int locationOfLmkItemAmongSiblings, vtkXMLDataElement *recursiveXmlElement, vtkKWMenu *parentMenu);
00260 
00261  */
00262   void ImportBoundingBoxFileInternal(vtkPVReaderModule *reader, vtkPVLookmark *macro, char *boundingBoxFileName);
00263 
00266   char* PromptForFile(char *extension, int save_flag);
00267 
00270   vtkPVLookmark* GetPVLookmark(vtkXMLDataElement *elem);
00271 
00273 
00276   void EncodeNewlines(char *str);
00277   void DecodeNewlines(char *str);
00279 
00283   void SetButtonFrameState(int state);
00284 
00286   void CreateNestedXMLElements(vtkKWWidget *wid, vtkXMLDataElement *parentElement);
00287 
00292   void SaveFolderInternal(char *path, vtkKWLookmarkFolder *folder);
00293 
00294   // Convenience method called from CreateLookmark to assign a default name to the new lookmark that 
00295   // does not match any of the ones currently in the lookmark manager
00296   // of the form: "LookmarkN" where 'N' is an integer between 0 and numberOfLookmarks
00297   char* GetUnusedLookmarkName();
00298 
00300   int IsWidgetInsideFolder(vtkKWWidget *widget, vtkKWWidget *folder);
00301 
00307   void Checkpoint();
00308 
00310   void UndoRedoInternal();
00311 
00312 private:
00313 
00314 vtkPVLookmarkManager(const vtkPVLookmarkManager&); // Not implemented
00315 void operator=(const vtkPVLookmarkManager&); // Not implemented
00316 
00317 //BTX
00318   vtkVector<vtkPVLookmark*> *Lookmarks;
00319   vtkVector<vtkPVLookmark*> *MacroExamples;
00320   vtkVector<vtkKWLookmarkFolder*> *Folders;
00321 //ETX
00322   
00323   vtkKWFrame              *WindowFrame;
00324   vtkKWFrameWithScrollbar *ScrollFrame;
00325   vtkKWFrame              *SeparatorFrame;
00326 
00327   vtkKWFrame *TopDragAndDropTarget;
00328 
00329   vtkKWMenu *MenuFile;
00330   vtkKWMenu *MenuEdit;
00331   vtkKWMenu *MenuImport;
00332   vtkKWMenu *MenuImportLmkFile;
00333   vtkKWMenu *MenuImportBoundingBoxFile;
00334   vtkKWMenu *MenuHelp;
00335   vtkKWMenu *MenuExamples;
00336 
00337   vtkKWPushButton *CreateLookmarkButton;
00338 
00339   vtkKWMessageDialog *QuickStartGuideDialog;
00340   vtkKWTextWithScrollbars *QuickStartGuideTxt;
00341   vtkKWMessageDialog *UsersTutorialDialog;
00342   vtkKWTextWithScrollbars *UsersTutorialTxt;
00343 
00344   vtkPVTraceHelper* TraceHelper;
00345 };
00346 
00347 #endif

Generated on Tue May 30 12:31:40 2006 for ParaView by doxygen 1.3.5