-
Notifications
You must be signed in to change notification settings - Fork 0
/
EditListCtrl.h
142 lines (121 loc) · 3.74 KB
/
EditListCtrl.h
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
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
/*******************************************************************************
Copyright (c) 1999-2010 by Text Analysis International, Inc.
All rights reserved.
*******************************************************************************/
#if !defined(AFX_EDITLISTCTRL_H__55ACD802_3667_11D3_A3AE_00105A99059F__INCLUDED_)
#define AFX_EDITLISTCTRL_H__55ACD802_3667_11D3_A3AE_00105A99059F__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// EditListCtrl.h : header file
//
#include <afxtempl.h>
enum ValueType { valNULL=0, valAlpha, valNumber, valConcept };
class CAttribute
{
protected:
bool m_bOpen;
CString m_Name;
CStringArray m_strValues;
CByteArray m_ValTypes;
CList<CONCEPT *, CONCEPT *> m_concepts;
public:
CAttribute ();
CAttribute(LPCTSTR lpName);
~CAttribute();
BOOL IsNullValue(int nVal);
int AddNullValue(void);
int AddValue(LPCTSTR lpValue, CONCEPT *concept=NULL);
CAttribute::ValueType CalcValueType(LPCTSTR lpValue);
void DeleteValue(int nPos);
CString GetName(void);
int GetNumValues(void);
CString GetValue(int nPos);
CONCEPT *GetConcept(int nVal);
ValueType GetValueType(int nVal);
BOOL IsOpen(void);
void SetName(LPCTSTR lpName);
void SetOpen(bool);
int SetValue(int nIndex, LPCTSTR lpValue, CONCEPT *concept=NULL,
ValueType = valAlpha);
};
class CLineItem
{
public:
bool m_bDeleteValue;
protected:
CAttribute* m_pAttribute;
int m_Index;
public:
CLineItem();
CLineItem(CAttribute* pAttribute, int index);
~CLineItem();
int AddValue(LPCTSTR lpValue, CONCEPT *concept=NULL);
int DecrementIndex(void);
void DeleteValue(void);
CAttribute* GetAttribute(void);
void DeleteAttribute(); // 06/19/02 AM.
int GetIndex(void);
CString GetName(void);
int GetNumValues(void);
CString GetValue(void);
CONCEPT *GetConcept(void);
ValueType GetValueType(void);
CString GetValueTypeString(void);
BOOL IsOpen(void);
void SetIndex(int newIndex);
void SetName(LPCTSTR lpName);
void SetOpen(bool);
int SetValue(LPCTSTR lpValue, CONCEPT *concept=NULL,
ValueType typ = valAlpha); // 06/19/02 AM.
};
/////////////////////////////////////////////////////////////////////////////
// CEditListCtrl window
#define WMU_DELETELINE (WM_USER+1001)
#define WMU_GETIMAGELIST (WM_USER+1002)
class CEditListCtrl : public CListCtrl
{
// Construction
public:
CEditListCtrl();
// Attributes
public:
ValueType m_valueTypeNew;
BOOL m_IgnoreEditColumn0;
// Operations
public:
int HitTestEx(CPoint &point, int *col) const;
CEdit* EditSubLabel( int nItem, int nCol );
void ExpandValues(int nLineFirst);
void ContractValues(int nLineFirst);
void EndLabelEdit(int line, int subItem, CString newStr);
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CEditListCtrl)
//}}AFX_VIRTUAL
// Implementation
public:
void SetAttributeType(CString typeStr);
void SetAttributeType(ValueType type);
virtual ~CEditListCtrl();
void SetConcept(CONCEPT *concept);
CONCEPT *GetConcept();
ValueType ValueTypeFromString(CString typeStr); // 06/19/02 AM.
// Generated message map functions
protected:
//{{AFX_MSG(CEditListCtrl)
afx_msg void OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar);
afx_msg void OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar);
afx_msg void OnEndlabeledit(NMHDR* pNMHDR, LRESULT* pResult);
afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
afx_msg void OnBeginlabeledit(NMHDR* pNMHDR, LRESULT* pResult);
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
private:
CONCEPT *m_concept;
void Init();
};
/////////////////////////////////////////////////////////////////////////////
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_EDITLISTCTRL_H__55ACD802_3667_11D3_A3AE_00105A99059F__INCLUDED_)