summaryrefslogtreecommitdiffstats
path: root/Source/FLTKDialog/FLTKPropertyList.h
diff options
context:
space:
mode:
authorBill Hoffman <bill.hoffman@kitware.com>2005-09-23 21:47:46 (GMT)
committerBill Hoffman <bill.hoffman@kitware.com>2005-09-23 21:47:46 (GMT)
commit46521aef8cf2523990dfbf90dbdf435a94f8e5c4 (patch)
tree7da33dc6434184423e86b635357cfda4632e5d38 /Source/FLTKDialog/FLTKPropertyList.h
parentf7d926d072a6582237282ef9a3302c8a1e8e94b1 (diff)
downloadCMake-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.h143
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