|
1
|
1 #pragma once
|
|
|
2
|
|
|
3 #include "CListControl-Cell.h"
|
|
|
4
|
|
|
5
|
|
|
6 class CListCell_Interactive : public CListCell {
|
|
|
7 public:
|
|
|
8 bool IsInteractive() override { return true; }
|
|
|
9 };
|
|
|
10
|
|
|
11 class CListCell_Text : public CListCell {
|
|
|
12 public:
|
|
|
13 void DrawContent( DrawContentArg_t const & ) override;
|
|
|
14 bool AllowDrawThemeText() override { return true; }
|
|
|
15 };
|
|
|
16
|
|
|
17 class CListCell_Edit: public CListCell_Text {
|
|
|
18 public:
|
|
|
19 bool ClickToEdit() { return true; }
|
|
|
20 };
|
|
|
21
|
|
|
22 class CListCell_TextColors : public CListCell_Text {
|
|
|
23 public:
|
|
|
24 void DrawContent( DrawContentArg_t const & ) override;
|
|
|
25 };
|
|
|
26
|
|
|
27 class CListCell_MultiText : public CListCell {
|
|
|
28 public:
|
|
|
29 void DrawContent( DrawContentArg_t const & ) override;
|
|
|
30 };
|
|
|
31
|
|
|
32 class CListCell_Hyperlink : public CListCell_Interactive {
|
|
|
33 public:
|
|
|
34 void DrawContent( DrawContentArg_t const & ) override;
|
|
|
35 bool ApplyTextStyle( LOGFONT & font, double scale, uint32_t state ) override;
|
|
|
36 HCURSOR HotCursor() override;
|
|
|
37 LONG AccRole() override;
|
|
|
38 bool SuppressRowSelect() override { return true; }
|
|
|
39 };
|
|
|
40
|
|
|
41 class CListCell_Button : public CListCell_Interactive {
|
|
|
42 public:
|
|
|
43 void DrawContent( DrawContentArg_t const & ) override;
|
|
|
44 const char * Theme() override { return "BUTTON"; }
|
|
|
45 bool AllowTypeFind() override { return false; }
|
|
|
46 LONG AccRole() override;
|
|
|
47 bool SuppressRowSelect() override { return true; }
|
|
|
48
|
|
|
49 protected:
|
|
|
50 bool m_lite = false;
|
|
|
51 };
|
|
|
52
|
|
|
53 class CListCell_ButtonLite : public CListCell_Button {
|
|
|
54 public:
|
|
|
55 CListCell_ButtonLite() { m_lite = true; }
|
|
|
56 };
|
|
|
57
|
|
|
58 class CListCell_ButtonGlyph : public CListCell_ButtonLite {
|
|
|
59 public:
|
|
|
60 bool ApplyTextStyle( LOGFONT & font, double scale, uint32_t state ) override;
|
|
|
61 };
|
|
|
62
|
|
|
63 class CListCell_Checkbox : public CListCell_Interactive {
|
|
|
64 public:
|
|
|
65 void DrawContent( DrawContentArg_t const & ) override;
|
|
|
66 const char * Theme() override { return "BUTTON"; }
|
|
|
67 bool IsToggle() override { return true; }
|
|
|
68 CRect HotRect( CRect rc ) override;
|
|
|
69 bool IsRadioToggle() override { return m_radio; }
|
|
|
70 LONG AccRole() override;
|
|
|
71
|
|
|
72 protected:
|
|
|
73 bool m_radio = false;
|
|
|
74 };
|
|
|
75
|
|
|
76 class CListCell_RadioCheckbox : public CListCell_Checkbox {
|
|
|
77 public:
|
|
|
78 CListCell_RadioCheckbox() { m_radio = true; }
|
|
|
79
|
|
|
80 static CListCell_RadioCheckbox instance;
|
|
|
81 };
|
|
|
82
|
|
|
83 class CListCell_Combo : public CListCell_Interactive {
|
|
|
84 public:
|
|
|
85 void DrawContent(DrawContentArg_t const &) override;
|
|
|
86 const char * Theme() override { return "COMBOBOX"; }
|
|
|
87 LONG AccRole() override;
|
|
|
88 uint32_t EditFlags() override;
|
|
|
89 bool ClickToEdit() { return true; }
|
|
|
90 };
|
|
|
91
|
|
|
92 void RenderButton( HTHEME theme, CDCHandle dc, CRect rcButton, CRect rcUpdate, uint32_t cellState );
|
|
|
93 void RenderCheckbox( HTHEME theme, CDCHandle dc, CRect rcCheckBox, unsigned stateFlags, bool bRadio );
|
|
|
94
|
|
|
95
|
|
|
96 class CListCell_Text_FixedColor : public CListCell_Text {
|
|
|
97 const COLORREF m_col;
|
|
|
98 public:
|
|
|
99 CListCell_Text_FixedColor(COLORREF col) : m_col(col) {}
|
|
|
100 void DrawContent(DrawContentArg_t const & arg) override;
|
|
|
101 };
|