1 // Q3ListViewItem pointers to CStem in its two roles
2 // Copyright © 2009 The University of Chicago
3 #ifndef STEMLISTVIEWITEM_H
4 #define STEMLISTVIEWITEM_H
6 class CWordListViewItem
;
7 class CStemListViewItem
;
9 #include <Q3ListViewItem>
12 template<class K
, class V
> class QMap
;
16 /// A list view item for words.
18 Contains all the necessary variables needed when displaying a
19 word and its data in a list view.
22 class CWordListViewItem
: public Q3ListViewItem
{
25 MiniLexicon_MorphologyStuffFirst
,
26 MiniLexicon_PhonologyStuffFirst
,
32 QMap
<QString
, QString
>* m_filter
;
33 enum display_mode m_DisplayMode
;
41 QString m_tier1_skeleton
;
45 // construction/destruction.
47 explicit CWordListViewItem(Q3ListView
* parent
= 0);
49 CWordListViewItem(Q3ListView
* parent
, QString word_text
,
50 int mini_index
= -1, CStem
* word
= 0,
51 QMap
<QString
, QString
>* filter
= 0,
52 enum display_mode format
= MiniLexicon_MorphologyStuffFirst
,
55 CWordListViewItem(Q3ListViewItem
* parent
, QString word_text
,
56 int mini_index
= -1, CStem
* word
= 0,
57 QMap
<QString
, QString
>* filter
= 0,
58 enum display_mode format
= MiniLexicon_MorphologyStuffFirst
,
63 CWordListViewItem(const CWordListViewItem
& x
)
68 m_DisplayMode(x
.m_DisplayMode
),
69 m_char_count(x
.m_char_count
),
74 m_signature(x
.m_signature
),
76 m_tier1_skeleton(x
.m_tier1_skeleton
),
79 CWordListViewItem
& operator=(const CWordListViewItem
& x
)
81 Q3ListViewItem::operator=(x
);
84 m_filter
= x
.m_filter
;
85 m_DisplayMode
= x
.m_DisplayMode
;
86 m_char_count
= x
.m_char_count
;
88 m_prefix
= x
.m_prefix
;
90 m_suffix
= x
.m_suffix
;
91 m_signature
= x
.m_signature
;
93 m_tier1_skeleton
= x
.m_tier1_skeleton
;
99 // Qt3 list view item interface.
101 virtual QString
text(int column_index
) const;
102 int compare(Q3ListViewItem
* other
, int column
, bool ascending
) const;
103 virtual QString
key(int column
, bool ascending
) const;
105 // underlying stem object.
107 CStem
* GetWord() { return m_pWord
; }
108 void SetWord(CStem
* pWord
) { m_pWord
= pWord
; }
110 /// index of mini-lexicon containing this word (or -1 for none)
111 int GetMini() { return m_mini
; }
113 /// description length
114 double GetDL() { return m_DL
; }
116 bool isFullLex() { return false; }
119 /// A list view item for stems.
121 Contains all the necessary variables needed when displaying a
122 stem and its data in a list view.
125 class CStemListViewItem
: public Q3ListViewItem
{
127 QMap
<QString
, QString
>* m_filter
;
131 // construction/destruction.
133 explicit CStemListViewItem(Q3ListView
* parent
= 0);
134 CStemListViewItem(Q3ListView
* parent
, QString stem_text
,
135 int mini_index
= -1, CStem
* stem
= 0,
136 QMap
<QString
, QString
>* filter
= 0,
137 int char_count
= 27);
138 CStemListViewItem(Q3ListViewItem
* parent
, QString stem_text
,
139 int mini_index
= -1, CStem
* stem
= 0,
140 QMap
<QString
, QString
>* filter
= 0,
141 int char_count
= 27);
145 CStemListViewItem(const CStemListViewItem
& x
)
148 m_filter(x
.m_filter
),
149 m_char_count(x
.m_char_count
),
151 CStemListViewItem
& operator=(const CStemListViewItem
& x
)
153 Q3ListViewItem::operator=(x
);
155 m_filter
= x
.m_filter
;
156 m_char_count
= x
.m_char_count
;
161 // Qt3 list view item interface.
163 virtual QString
text(int column_index
) const;
164 int compare(Q3ListViewItem
* other
, int column
, bool ascending
) const;
165 virtual QString
key(int column
, bool ascending
) const;
167 // underlying stem object.
169 CStem
* GetStem() { return m_Stem
; }
170 void SetStem(CStem
* pStem
) { m_Stem
= pStem
; }
173 #endif // STEMLISTVIEWITEM_H