annotate foosdk/sdk/libPPUI/CListControl-Cells.h @ 1:20d02a178406 default tip

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