diff options
author | Bill Hoffman <bill.hoffman@kitware.com> | 2005-09-23 21:47:46 (GMT) |
---|---|---|
committer | Bill Hoffman <bill.hoffman@kitware.com> | 2005-09-23 21:47:46 (GMT) |
commit | 46521aef8cf2523990dfbf90dbdf435a94f8e5c4 (patch) | |
tree | 7da33dc6434184423e86b635357cfda4632e5d38 /Source/FLTKDialog/FLTKPropertyList.h | |
parent | f7d926d072a6582237282ef9a3302c8a1e8e94b1 (diff) | |
download | CMake-46521aef8cf2523990dfbf90dbdf435a94f8e5c4.zip CMake-46521aef8cf2523990dfbf90dbdf435a94f8e5c4.tar.gz CMake-46521aef8cf2523990dfbf90dbdf435a94f8e5c4.tar.bz2 |
ENH: try to find a gui for the Mac
Diffstat (limited to 'Source/FLTKDialog/FLTKPropertyList.h')
-rw-r--r-- | Source/FLTKDialog/FLTKPropertyList.h | 143 |
1 files changed, 143 insertions, 0 deletions
diff --git a/Source/FLTKDialog/FLTKPropertyList.h b/Source/FLTKDialog/FLTKPropertyList.h new file mode 100644 index 0000000..d69a254 --- /dev/null +++ b/Source/FLTKDialog/FLTKPropertyList.h @@ -0,0 +1,143 @@ +/*========================================================================= + + Program: Insight Segmentation & Registration Toolkit + Module: $RCSfile$ + Language: C++ + Date: $Date$ + Version: $Revision$ + + Copyright (c) 2002 Insight Consortium. All rights reserved. + See ITKCopyright.txt or http://www.itk.org/HTML/Copyright.htm for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef FLTKPROPERTYLIST_H +#define FLTKPROPERTYLIST_H + +#include "../cmStandardIncludes.h" +#include <string> + + +class CMakeSetupGUIImplementation; + + +namespace fltk { + + +///////////////////////////////////////////////////////////////////////////// +//PropertyList Items +class PropertyItem +{ +// Attributes +public: + std::string m_HelpString; + std::string m_propName; + std::string m_curValue; + int m_nItemType; + std::string m_cmbItems; + bool m_Removed; + bool m_NewValue; + bool m_Dirty; +public: + PropertyItem( std::string propName, + std::string curValue, + std::string helpString, + int nItemType, + std::string cmbItems ) + { + m_HelpString = helpString; + m_propName = propName; + m_curValue = curValue; + m_nItemType = nItemType; + m_cmbItems = cmbItems; + m_Removed = false; + m_NewValue = true; + m_Dirty = false; + } +}; + + + + + +///////////////////////////////////////////////////////////////////////////// +// PropertyList window + +class PropertyList +{ +// Construction +public: + enum ItemType + { + COMBO = 0, + EDIT, + COLOR, + FONT, + FILE, + CHECKBOX, + PATH + }; + + PropertyList( CMakeSetupGUIImplementation * ); + +// Attributes +public: + +// Operations +public: + int AddItem( std::string txt ); + int AddProperty(const char* name, + const char* value, + const char* helpString, + int type, + const char* comboItems, + bool reverseOrder); + void RemoveProperty(const char* name); + std::set<PropertyItem*> & GetItems() + { + return m_PropertyItems; + } + + void InvalidateList(void); + void Invalidate(void) + { + // fltk redraw(); + } + + int GetCount(void) const + { + return m_PropertyItems.size(); + } + void OnButton(void); + void OnHelp(void); + void RemoveAll(); + PropertyItem* GetItem(int index); + PropertyItem* GetItemDataPtr(int m_curSel); + + void ClearDirty(void) { m_Dirty = false; } + void SetDirty(void) { m_Dirty = true; } + bool IsDirty(void) const { return m_Dirty; } + +// Implementation +public: + virtual ~PropertyList(); + +protected: + + int AddPropItem(PropertyItem* pItem,bool reverseOrder); + + std::set<PropertyItem*> m_PropertyItems; + + CMakeSetupGUIImplementation * m_CMakeSetup; + + bool m_Dirty; + +}; + + +} // end namespace fltk + +#endif |