blob: 0ec4c4fbc47af54a4826aaf895be165d08998c33 (
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
|
#if !defined(HISTORYSTATS_GUARD_COLUMN_WORDS_H)
#define HISTORYSTATS_GUARD_COLUMN_WORDS_H
#include "colbase_words.h"
/*
* ColWords
*/
class ColWords
: public ColBaseWords
{
public:
typedef std::pair<InOut, ext::string> Word;
typedef std::vector<Word> WordList;
private:
class MostCommonWords
{
public:
int operator ()(const WordMap::value_type& a, const WordMap::value_type& b)
{
return (a.second != b.second) ? (a.second > b.second) : (a.first < b.first);
}
};
class LeastCommonWords
{
public:
int operator ()(const WordMap::value_type& a, const WordMap::value_type& b)
{
return (a.second != b.second) ? (a.second < b.second) : (a.first < b.first);
}
};
class LongestWords
{
public:
int operator ()(const WordMap::value_type& a, const WordMap::value_type& b)
{
return (a.first.length() != b.first.length()) ? (a.first.length() > b.first.length()) : (a.first < b.first);
}
};
protected:
int m_nVisMode;
int m_nNum;
int m_nOffset;
bool m_bDetail;
bool m_bDetailInOut;
bool m_bInOutColor;
OptionsCtrl::Radio m_hVisMode;
OptionsCtrl::Edit m_hNum;
OptionsCtrl::Edit m_hOffset;
OptionsCtrl::Check m_hDetail;
OptionsCtrl::Check m_hDetailInOut;
OptionsCtrl::Check m_hInOutColor;
private:
void generateWords(WordMap* pWords, WordList* pWordList) const;
public:
explicit ColWords();
protected:
virtual const TCHAR* impl_getUID() const { return con::ColWords; }
virtual const TCHAR* impl_getTitle() const { return LPGENT("Words"); }
virtual const TCHAR* impl_getDescription() const { return LPGENT("Column holding a list of a specified number of most/least common words or longest words used by you, by your contact, or by both of you."); }
virtual void impl_copyConfig(const Column* pSource);
virtual void impl_configRead(const SettingsTree& settings);
virtual void impl_configWrite(SettingsTree& settings) const;
virtual void impl_configToUI(OptionsCtrl& Opt, OptionsCtrl::Item hGroup);
virtual void impl_configFromUI(OptionsCtrl& Opt);
virtual void impl_contactDataFree(Contact& contact) const;
virtual void impl_contactDataTransform(Contact& contact) const;
virtual void impl_contactDataTransformCleanup(Contact& contact) const;
virtual StyleList impl_outputGetAdditionalStyles(IDProvider& idp);
virtual void impl_outputRenderHeader(ext::ostream& tos, int row, int rowSpan) const;
virtual void impl_outputRenderRow(ext::ostream& tos, const Contact& contact, DisplayType display);
};
#endif // HISTORYSTATS_GUARD_COLUMN_WORDS_H
|