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

Function StatusWndProc

outdated/sys/wince/mhstatus.c:79–142  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

77}
78
79LRESULT CALLBACK
80StatusWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
81{
82 RECT rt;
83 PAINTSTRUCT ps;
84 HDC hdc;
85 PNHStatusWindow data;
86
87 data = (PNHStatusWindow) GetWindowLong(hWnd, GWL_USERDATA);
88 switch (message) {
89 case WM_MSNH_COMMAND: {
90 switch (wParam) {
91 case MSNH_MSG_PUTSTR:
92 case MSNH_MSG_CLEAR_WINDOW:
93 ZeroMemory(data->window_text, sizeof(data->window_text));
94 FormatStatusString(data->window_text, data->nhstat_format);
95 break;
96
97 case MSNH_MSG_CURSOR: {
98 PMSNHMsgCursor msg_data = (PMSNHMsgCursor) lParam;
99 if (msg_data->y == 0) {
100 InvalidateRect(hWnd, NULL, TRUE);
101 }
102 } break;
103 }
104 } break;
105
106 case WM_PAINT: {
107 HGDIOBJ oldFont;
108 TCHAR wbuf[MAXWINDOWTEXT];
109 COLORREF OldBg, OldFg;
110
111 hdc = BeginPaint(hWnd, &ps);
112 GetClientRect(hWnd, &rt);
113
114 oldFont = SelectObject(
115 hdc, mswin_get_font(NHW_STATUS, ATR_NONE, hdc, FALSE));
116 OldBg = SetBkColor(hdc, mswin_get_color(NHW_STATUS, MSWIN_COLOR_BG));
117 OldFg =
118 SetTextColor(hdc, mswin_get_color(NHW_STATUS, MSWIN_COLOR_FG));
119
120 DrawText(hdc, NH_A2W(data->window_text, wbuf, MAXWINDOWTEXT),
121 strlen(data->window_text), &rt, DT_LEFT | DT_NOPREFIX);
122
123 SetTextColor(hdc, OldFg);
124 SetBkColor(hdc, OldBg);
125 SelectObject(hdc, oldFont);
126 EndPaint(hWnd, &ps);
127 } break;
128
129 case WM_DESTROY:
130 free(data);
131 SetWindowLong(hWnd, GWL_USERDATA, (LONG) 0);
132 break;
133
134 case WM_SETFOCUS:
135 SetFocus(GetNHApp()->hMainWnd);
136 break;

Callers

nothing calls this directly

Calls 4

FormatStatusStringFunction · 0.85
mswin_get_colorFunction · 0.85
mswin_get_fontFunction · 0.70
GetNHAppFunction · 0.70

Tested by

no test coverage detected