00001 /*========================================================================= 00002 00003 Program: ParaView 00004 Module: $RCSfile: vtkSMPropertyStatusManager.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 =========================================================================*/ 00021 #ifndef __vtkSMPropertyStatusManager_h 00022 #define __vtkSMPropertyStatusManager_h 00023 00024 #include "vtkSMObject.h" 00025 class vtkSMVectorProperty; 00026 class vtkSMPropertyStatusManagerInternals; 00027 class vtkSMProperty; 00028 00029 class VTK_EXPORT vtkSMPropertyStatusManager : public vtkSMObject 00030 { 00031 public: 00032 static vtkSMPropertyStatusManager* New(); 00033 vtkTypeRevisionMacro(vtkSMPropertyStatusManager, vtkSMObject); 00034 void PrintSelf(ostream& os, vtkIndent indent); 00035 00038 void RegisterProperty(vtkSMVectorProperty* property); 00039 00041 void UnregisterProperty(vtkSMVectorProperty* property); 00042 00044 void UnregisterAllProperties(); 00045 00050 void InitializeStatus(); 00051 00054 int HasPropertyChanged(vtkSMVectorProperty* property); 00055 00058 int HasPropertyChanged(vtkSMVectorProperty* property, int index); 00059 00061 void InitializePropertyStatus(vtkSMVectorProperty* property); 00062 00063 vtkSMVectorProperty* GetInternalProperty(vtkSMVectorProperty* property); 00064 00065 protected: 00066 vtkSMPropertyStatusManager(); 00067 ~vtkSMPropertyStatusManager(); 00068 00069 vtkSMPropertyStatusManagerInternals* Internals; 00070 vtkSMVectorProperty* DuplicateProperty(vtkSMVectorProperty* src, 00071 vtkSMVectorProperty* dest = NULL); 00072 00073 int HasPropertyChangedInternal(vtkSMVectorProperty* src, 00074 vtkSMVectorProperty* dest, int index); 00075 private: 00076 vtkSMPropertyStatusManager(const vtkSMPropertyStatusManager&); // Not implemented. 00077 void operator=(const vtkSMPropertyStatusManager&); // Not implemented. 00078 }; 00079 00080 #endif