annotate foosdk/sdk/libPPUI/CEditWithButtons.cpp @ 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 #include "stdafx.h"
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
2 #include "CEditWithButtons.h"
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
3
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 void CEditWithButtons::AddMoreButton(std::function<void()> f) {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
6 AddButton(L"more", f, nullptr, L"\x2026");
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
7 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
8 void CEditWithButtons::AddClearButton(const wchar_t * clearVal, bool bHandleEsc) {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
9 std::wstring clearValCopy(clearVal);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
10 auto handler = [this, clearValCopy] {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
11 this->SetWindowText(clearValCopy.c_str());
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
12 };
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
13 auto condition = [clearValCopy](const wchar_t * txt) -> bool {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
14 return clearValCopy != txt;
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 // Present "clear" to accessibility APIs but actually draw a multiplication x sign
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
17 AddButton(L"clear", handler, condition, L"\x00D7");
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
18
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
19 if (bHandleEsc) {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
20 this->onEscKey = handler;
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
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
23 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
24
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
25 void CEditWithButtons::AddButton(const wchar_t * str, handler_t handler, condition_t condition, const wchar_t * drawAlternateText) {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
26 PFC_ASSERT(GetStyle() & WS_CLIPCHILDREN);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
27 Button_t btn;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
28 btn.handler = handler;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
29 btn.title = str;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
30 btn.condition = condition;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
31 btn.visible = EvalCondition(btn, nullptr);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
32
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
33 if (drawAlternateText != nullptr) {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
34 btn.titleDraw = drawAlternateText;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
35 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
36
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
37 m_buttons.push_back(std::move(btn));
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
38 RefreshButtons();
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 CRect CEditWithButtons::RectOfButton(const wchar_t * text) {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
42 for (auto i = m_buttons.begin(); i != m_buttons.end(); ++i) {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
43 if (i->title == text && i->wnd != NULL) {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
44 CRect rc;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
45 if (i->wnd.GetWindowRect(rc)) return rc;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
46 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
47 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
48 return CRect();
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
49 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
50
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
51 void CEditWithButtons::TabCycleButtons(HWND wnd) {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
52 for (auto i = m_buttons.begin(); i != m_buttons.end(); ++i) {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
53 if (i->wnd == wnd) {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
54 if (IsShiftPressed()) {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
55 // back
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
56 for (;; ) {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
57 if (i == m_buttons.begin()) {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
58 TabFocusThis(m_hWnd); break;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
59 } else {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
60 --i;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
61 if (i->visible) {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
62 TabFocusThis(i->wnd);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
63 break;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
64 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
65 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
66 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
67 } else {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
68 // forward
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
69 for (;; ) {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
70 ++i;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
71 if (i == m_buttons.end()) {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
72 TabFocusThis(m_hWnd);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
73 TabFocusPrevNext(false);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
74 break;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
75 } else {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
76 if (i->visible) {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
77 TabFocusThis(i->wnd);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
78 break;
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 }
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
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
84 return;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
85 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
86 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
87 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
88
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
89
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
90 bool CEditWithButtons::ButtonWantTab(HWND wnd) {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
91 if (IsShiftPressed()) return true;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
92 if (m_buttons.size() == 0) return false; // should not be possible
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
93 auto last = m_buttons.rbegin();
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
94 if (wnd == last->wnd) return false; // not for last button
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
95 return true;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
96 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
97 bool CEditWithButtons::EvalCondition(Button_t & btn, const wchar_t * newText) {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
98 if (!btn.condition) return true;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
99 if (newText != nullptr) return btn.condition(newText);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
100 TCHAR text[256] = {};
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
101 GetWindowText(text, 256);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
102 text[255] = 0;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
103 return btn.condition(text);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
104 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
105 void CEditWithButtons::RefreshConditions(const wchar_t * newText) {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
106 bool changed = false;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
107 for (auto i = m_buttons.begin(); i != m_buttons.end(); ++i) {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
108 bool status = EvalCondition(*i, newText);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
109 if (status != i->visible) {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
110 i->visible = status; changed = true;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
111 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
112 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
113 if (changed) {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
114 Layout();
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
115 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
116 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
117
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
118 void CEditWithButtons::Layout(CSize size, CFontHandle fontSetMe) {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
119 if (m_buttons.size() == 0) return;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
120
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
121 int walk = size.cx;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
122
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
123 HDWP dwp = BeginDeferWindowPos((int)m_buttons.size());
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
124 for (auto iter = m_buttons.rbegin(); iter != m_buttons.rend(); ++iter) {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
125 if (!iter->visible) {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
126 if (::GetFocus() == iter->wnd) {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
127 this->SetFocus();
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
128 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
129 ::DeferWindowPos(dwp, iter->wnd, NULL, 0, 0, 0, 0, SWP_NOZORDER | SWP_HIDEWINDOW | SWP_NOMOVE | SWP_NOSIZE | SWP_NOCOPYBITS);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
130 continue;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
131 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
132
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
133 if (iter->wnd == NULL) {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
134 auto* b = &iter->wnd;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
135 b->Create(*this, NULL, iter->title.c_str());
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
136 if (iter->titleDraw.length() > 0) b->DrawAlternateText(iter->titleDraw.c_str());
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
137 CFontHandle font = fontSetMe;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
138 if (font == NULL) font = GetFont();
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
139 b->SetFont(font);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
140 b->ClickHandler = iter->handler;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
141 b->CtlColorHandler = [=](CDCHandle dc) -> HBRUSH {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
142 return this->OnColorBtn(dc, NULL);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
143 };
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
144 b->TabCycleHandler = [=](HWND wnd) {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
145 TabCycleButtons(wnd);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
146 };
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
147 b->WantTabCheck = [=](HWND wnd) -> bool {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
148 return ButtonWantTab(wnd);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
149 };
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
150 if (!IsWindowEnabled()) b->EnableWindow(FALSE);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
151 } else if (fontSetMe) {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
152 iter->wnd.SetFont(fontSetMe);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
153 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
154
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
155 unsigned delta = MeasureButton(*iter);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
156 int left = walk - delta;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
157
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
158 if (iter->wnd != NULL) {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
159 CRect rc;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
160 rc.top = 0;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
161 rc.bottom = size.cy;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
162 rc.left = left;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
163 rc.right = walk;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
164 ::DeferWindowPos(dwp, iter->wnd, NULL, rc.left, rc.top, rc.Width(), rc.Height(), SWP_NOZORDER | SWP_SHOWWINDOW | SWP_NOCOPYBITS);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
165 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
166
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
167 walk = left;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
168 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
169 EndDeferWindowPos(dwp);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
170 this->SetMargins(0, size.cx - walk, EC_RIGHTMARGIN);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
171 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
172
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
173 unsigned CEditWithButtons::MeasureButton(Button_t const & button) {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
174 if (m_fixedWidthAuto && m_fixedWidth == 0) {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
175 CWindowDC dc(*this);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
176 SelectObjectScope fontScope(dc, GetFont());
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
177 SIZE sz = {};
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
178 WIN32_OP_D( dc.GetTextExtent(L"#", 1, &sz) );
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
179 m_fixedWidth = MulDiv(sz.cx, 3, 2);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
180 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
181 if (m_fixedWidth != 0) return m_fixedWidth;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
182
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
183 return button.wnd.Measure();
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
184 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
185
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
186 void CEditWithButtons::OnSetFont(CFontHandle font, BOOL bRedraw) {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
187 (void)bRedraw;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
188
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
189 if ( m_fixedWidthAuto ) m_fixedWidth = 0; // require re-calculation
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
190
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
191 DefWindowProc();
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
192 CRect rc;
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
193 if (GetClientRect(&rc)) {
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
194 Layout(rc.Size(), font);
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
195 }
20d02a178406 *: check in everything else
Paper <paper@tflc.us>
parents:
diff changeset
196 }