summaryrefslogtreecommitdiffstats
path: root/Source/FLTKDialog/FLTKPropertyList.h
blob: 8c79616efbc5ec67aae48c19cbdb46a0cf201ff5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
#ifndef FLTKPROPERTYLIST_H
#define FLTKPROPERTYLIST_H

#include "../cmStandardIncludes.h"
#include <string>


namespace fltk {

using std::string;

/////////////////////////////////////////////////////////////////////////////
//PropertyList Items
class PropertyItem
{
// Attributes
public:
  string m_HelpString;
  string m_propName;
  string m_curValue;
  int m_nItemType;
  string m_cmbItems;
  bool m_Removed;
public:
  PropertyItem(string propName, string curValue,
                string helpString,
                int nItemType, string cmbItems)
    {
      m_HelpString = helpString;
      m_Removed = false;
      m_propName = propName;
      m_curValue = curValue;
      m_nItemType = nItemType;
      m_cmbItems = cmbItems;
    }
};

/////////////////////////////////////////////////////////////////////////////
// PropertyList window

class PropertyList 
{
// Construction
public:
  enum ItemType 
    {
      COMBO = 0,
      EDIT,
      COLOR,
      FONT,
      FILE,
      CHECKBOX,
      PATH
    };
  PropertyList();
  
// Attributes
public:

// Operations
public:
  int AddItem(string txt);
  int AddProperty(const char* name,
                  const char* value,
                  const char* helpString,
                  int type,
                  const char* comboItems);
  std::set<PropertyItem*> GetItems() 
    {
      return m_PropertyItems;
    }
  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);

// Implementation
public:
  virtual ~PropertyList();

  // Generated message map functions
protected:

  int AddPropItem(PropertyItem* pItem);

//  CComboBox m_cmbBox;
//  CEdit m_editBox;
//  CButton m_btnCtrl;
//  CButton m_CheckBoxControl;
  

  bool m_Dirty;
  int m_curSel;
  int m_prevSel;
  int m_nDivider;
  int m_nDivTop;
  int m_nDivBtm;
  int m_nOldDivX;
  int m_nLastBox;

  std::set<PropertyItem*> m_PropertyItems;

};


} // end namespace fltk

#endif