MCPcopy Create free account
hub / github.com/NetHack/NetHack / NHMessageWndProc

Function NHMessageWndProc

win/win32/mhmsgwnd.c:139–240  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

137}
138
139LRESULT CALLBACK
140NHMessageWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
141{
142 switch (message) {
143 case WM_CREATE:
144 onCreate(hWnd, wParam, lParam);
145 break;
146
147 case WM_MSNH_COMMAND:
148 onMSNHCommand(hWnd, wParam, lParam);
149 break;
150
151 case WM_PAINT:
152 onPaint(hWnd);
153 break;
154
155 case WM_SETFOCUS:
156 SetFocus(GetNHApp()->hMainWnd);
157 break;
158
159#ifndef MSG_WRAP_TEXT
160 case WM_HSCROLL:
161 onMSNH_HScroll(hWnd, wParam, lParam);
162 break;
163#endif
164
165 case WM_VSCROLL:
166 onMSNH_VScroll(hWnd, wParam, lParam);
167 break;
168
169 case WM_DESTROY: {
170 PNHMessageWindow data;
171 data = (PNHMessageWindow) GetWindowLongPtr(hWnd, GWLP_USERDATA);
172 free(data);
173 SetWindowLongPtr(hWnd, GWLP_USERDATA, (LONG_PTR) 0);
174 windowdata[NHW_MESSAGE].address = 0;
175 } break;
176
177 case WM_SIZE: {
178 SCROLLINFO si;
179 int xNewSize;
180 int yNewSize;
181 PNHMessageWindow data;
182 RECT rt;
183
184 data = (PNHMessageWindow) GetWindowLongPtr(hWnd, GWLP_USERDATA);
185
186 xNewSize = LOWORD(lParam);
187 yNewSize = HIWORD(lParam);
188
189 if (xNewSize > 0 || yNewSize > 0) {
190#ifndef MSG_WRAP_TEXT
191 data->xPage = xNewSize / data->xChar;
192 data->xMax = max(0, (int) (1 + data->max_text - data->xPage));
193 data->xPos = min(data->xPos, data->xMax);
194
195 ZeroMemory(&si, sizeof(si));
196 si.cbSize = sizeof(si);

Callers

nothing calls this directly

Calls 7

onCreateFunction · 0.70
onMSNHCommandFunction · 0.70
onPaintFunction · 0.70
GetNHAppFunction · 0.70
onMSNH_HScrollFunction · 0.70
onMSNH_VScrollFunction · 0.70

Tested by

no test coverage detected