win32: migrate if/else chain to switch case
All checks were successful
pyrite-dev/milsko/pipeline/head This commit looks good
All checks were successful
pyrite-dev/milsko/pipeline/head This commit looks good
This commit is contained in:
parent
575b8eaee1
commit
42802313cb
1 changed files with 117 additions and 30 deletions
|
|
@ -67,7 +67,9 @@ static LRESULT CALLBACK wndproc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp) {
|
||||||
|
|
||||||
if(u == NULL) return DefWindowProc(hWnd, msg, wp, lp);
|
if(u == NULL) return DefWindowProc(hWnd, msg, wp, lp);
|
||||||
|
|
||||||
if(msg == WM_PAINT) {
|
switch(msg) {
|
||||||
|
case WM_PAINT:
|
||||||
|
{
|
||||||
PAINTSTRUCT ps;
|
PAINTSTRUCT ps;
|
||||||
RECT rc;
|
RECT rc;
|
||||||
HBITMAP hbmp;
|
HBITMAP hbmp;
|
||||||
|
|
@ -98,7 +100,12 @@ static LRESULT CALLBACK wndproc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp) {
|
||||||
MwLLDispatch(u->ll, draw, NULL);
|
MwLLDispatch(u->ll, draw, NULL);
|
||||||
EndPaint(hWnd, &ps);
|
EndPaint(hWnd, &ps);
|
||||||
}
|
}
|
||||||
} else if(msg == WM_LBUTTONDOWN || msg == WM_MBUTTONDOWN || msg == WM_RBUTTONDOWN) {
|
break;
|
||||||
|
}
|
||||||
|
case WM_LBUTTONDOWN:
|
||||||
|
case WM_MBUTTONDOWN:
|
||||||
|
case WM_RBUTTONDOWN:
|
||||||
|
{
|
||||||
MwMouse p;
|
MwMouse p;
|
||||||
p.point.x = LOWORD(lp);
|
p.point.x = LOWORD(lp);
|
||||||
p.point.y = HIWORD(lp);
|
p.point.y = HIWORD(lp);
|
||||||
|
|
@ -113,7 +120,12 @@ static LRESULT CALLBACK wndproc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp) {
|
||||||
SetCapture(hWnd);
|
SetCapture(hWnd);
|
||||||
SetFocus(hWnd);
|
SetFocus(hWnd);
|
||||||
MwLLDispatch(u->ll, down, &p);
|
MwLLDispatch(u->ll, down, &p);
|
||||||
} else if(msg == WM_LBUTTONUP || msg == WM_MBUTTONUP || msg == WM_RBUTTONUP) {
|
break;
|
||||||
|
}
|
||||||
|
case WM_LBUTTONUP:
|
||||||
|
case WM_MBUTTONUP:
|
||||||
|
case WM_RBUTTONUP:
|
||||||
|
{
|
||||||
MwMouse p;
|
MwMouse p;
|
||||||
p.point.x = LOWORD(lp);
|
p.point.x = LOWORD(lp);
|
||||||
p.point.y = HIWORD(lp);
|
p.point.y = HIWORD(lp);
|
||||||
|
|
@ -127,7 +139,10 @@ static LRESULT CALLBACK wndproc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp) {
|
||||||
|
|
||||||
SetCapture(NULL);
|
SetCapture(NULL);
|
||||||
MwLLDispatch(u->ll, up, &p);
|
MwLLDispatch(u->ll, up, &p);
|
||||||
} else if(msg == WM_MOUSEWHEEL) {
|
break;
|
||||||
|
}
|
||||||
|
case WM_MOUSEWHEEL:
|
||||||
|
{
|
||||||
int d = GET_WHEEL_DELTA_WPARAM(wp);
|
int d = GET_WHEEL_DELTA_WPARAM(wp);
|
||||||
MwMouse p;
|
MwMouse p;
|
||||||
p.point.x = LOWORD(lp);
|
p.point.x = LOWORD(lp);
|
||||||
|
|
@ -141,7 +156,10 @@ static LRESULT CALLBACK wndproc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp) {
|
||||||
|
|
||||||
MwLLDispatch(u->ll, down, &p);
|
MwLLDispatch(u->ll, down, &p);
|
||||||
MwLLDispatch(u->ll, up, &p);
|
MwLLDispatch(u->ll, up, &p);
|
||||||
} else if(msg == WM_MOUSEMOVE) {
|
break;
|
||||||
|
}
|
||||||
|
case WM_MOUSEMOVE:
|
||||||
|
{
|
||||||
MwPoint p;
|
MwPoint p;
|
||||||
p.x = LOWORD(lp);
|
p.x = LOWORD(lp);
|
||||||
p.y = HIWORD(lp);
|
p.y = HIWORD(lp);
|
||||||
|
|
@ -169,19 +187,35 @@ static LRESULT CALLBACK wndproc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp) {
|
||||||
|
|
||||||
SetCursorPos(p.x, p.y);
|
SetCursorPos(p.x, p.y);
|
||||||
}
|
}
|
||||||
} else if(msg == WM_SIZE) {
|
break;
|
||||||
|
}
|
||||||
|
case WM_SIZE:
|
||||||
|
{
|
||||||
MwLLDispatch(u->ll, resize, NULL);
|
MwLLDispatch(u->ll, resize, NULL);
|
||||||
} else if(msg == WM_ERASEBKGND) {
|
break;
|
||||||
|
}
|
||||||
|
case WM_ERASEBKGND:
|
||||||
|
{
|
||||||
return 1;
|
return 1;
|
||||||
} else if(msg == WM_NCHITTEST) {
|
}
|
||||||
|
case WM_NCHITTEST:
|
||||||
|
{
|
||||||
LPARAM style = GetWindowLongPtr(hWnd, GWL_STYLE);
|
LPARAM style = GetWindowLongPtr(hWnd, GWL_STYLE);
|
||||||
if(style & WS_CHILD) return HTCLIENT;
|
if(style & WS_CHILD) return HTCLIENT;
|
||||||
return DefWindowProc(hWnd, msg, wp, lp);
|
return DefWindowProc(hWnd, msg, wp, lp);
|
||||||
} else if(msg == WM_DESTROY) {
|
}
|
||||||
|
case WM_DESTROY:
|
||||||
|
{
|
||||||
PostQuitMessage(0);
|
PostQuitMessage(0);
|
||||||
} else if(msg == WM_CLOSE) {
|
break;
|
||||||
|
}
|
||||||
|
case WM_CLOSE:
|
||||||
|
{
|
||||||
MwLLDispatch(u->ll, close, NULL);
|
MwLLDispatch(u->ll, close, NULL);
|
||||||
} else if(msg == WM_CHAR || msg == WM_SYSCHAR) {
|
}
|
||||||
|
case WM_CHAR:
|
||||||
|
case WM_SYSCHAR:
|
||||||
|
{
|
||||||
int n = wp;
|
int n = wp;
|
||||||
const int base = 'A' - 1;
|
const int base = 'A' - 1;
|
||||||
|
|
||||||
|
|
@ -193,24 +227,61 @@ static LRESULT CALLBACK wndproc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp) {
|
||||||
if(msg == WM_SYSCHAR) n |= MwKEY_ALT_FLAG;
|
if(msg == WM_SYSCHAR) n |= MwKEY_ALT_FLAG;
|
||||||
|
|
||||||
if((0x20 <= n && n <= 0x7f) || (n & MwKEY_FLAG)) MwLLDispatch(u->ll, key, &n);
|
if((0x20 <= n && n <= 0x7f) || (n & MwKEY_FLAG)) MwLLDispatch(u->ll, key, &n);
|
||||||
} else if(msg == WM_SETFOCUS) {
|
break;
|
||||||
|
}
|
||||||
|
case WM_SETFOCUS:
|
||||||
|
{
|
||||||
MwLLDispatch(u->ll, focus_in, NULL);
|
MwLLDispatch(u->ll, focus_in, NULL);
|
||||||
} else if(msg == WM_KILLFOCUS) {
|
break;
|
||||||
|
}
|
||||||
|
case WM_KILLFOCUS:
|
||||||
|
{
|
||||||
MwLLDispatch(u->ll, focus_out, NULL);
|
MwLLDispatch(u->ll, focus_out, NULL);
|
||||||
} else if(msg == WM_KEYDOWN || msg == WM_KEYUP || msg == WM_SYSKEYDOWN || msg == WM_SYSKEYUP) {
|
break;
|
||||||
|
}
|
||||||
|
case WM_KEYDOWN:
|
||||||
|
case WM_KEYUP:
|
||||||
|
case WM_SYSKEYDOWN:
|
||||||
|
case WM_SYSKEYUP:
|
||||||
|
{
|
||||||
int n = -1;
|
int n = -1;
|
||||||
|
|
||||||
if(wp == VK_MENU && msg == WM_KEYUP) return 0;
|
if(wp == VK_MENU && msg == WM_KEYUP) return 0;
|
||||||
if(wp == VK_LEFT) n = MwKEY_LEFT;
|
switch(wp) {
|
||||||
if(wp == VK_RIGHT) n = MwKEY_RIGHT;
|
case VK_LEFT:
|
||||||
if(wp == VK_UP) n = MwKEY_UP;
|
n = MwKEY_LEFT;
|
||||||
if(wp == VK_DOWN) n = MwKEY_DOWN;
|
break;
|
||||||
if(wp == VK_RETURN) n = MwKEY_ENTER;
|
case VK_RIGHT:
|
||||||
if(wp == VK_BACK) n = MwKEY_BACKSPACE;
|
n = MwKEY_RIGHT;
|
||||||
if(wp == VK_ESCAPE) n = MwKEY_ESCAPE;
|
break;
|
||||||
if(wp == VK_LSHIFT) n = MwKEY_LEFTSHIFT;
|
case VK_UP:
|
||||||
if(wp == VK_RSHIFT) n = MwKEY_RIGHTSHIFT;
|
n = MwKEY_UP;
|
||||||
if(wp == VK_MENU) n = MwKEY_ALT;
|
break;
|
||||||
if(wp == VK_CONTROL) n = MwKEY_CONTROL;
|
case VK_DOWN:
|
||||||
|
n = MwKEY_DOWN;
|
||||||
|
break;
|
||||||
|
case VK_RETURN:
|
||||||
|
n = MwKEY_ENTER;
|
||||||
|
break;
|
||||||
|
case VK_BACK:
|
||||||
|
n = MwKEY_BACKSPACE;
|
||||||
|
break;
|
||||||
|
case VK_ESCAPE:
|
||||||
|
n = MwKEY_ESCAPE;
|
||||||
|
break;
|
||||||
|
case VK_LSHIFT:
|
||||||
|
n = MwKEY_LEFTSHIFT;
|
||||||
|
break;
|
||||||
|
case VK_RSHIFT:
|
||||||
|
n = MwKEY_RIGHTSHIFT;
|
||||||
|
break;
|
||||||
|
case VK_MENU:
|
||||||
|
n = MwKEY_ALT;
|
||||||
|
break;
|
||||||
|
case VK_CONTROL:
|
||||||
|
n = MwKEY_CONTROL;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
if((msg == WM_SYSKEYDOWN || msg == WM_SYSKEYUP) && n != -1 && wp != VK_MENU) {
|
if((msg == WM_SYSKEYDOWN || msg == WM_SYSKEYUP) && n != -1 && wp != VK_MENU) {
|
||||||
n |= MwKEY_ALT_FLAG;
|
n |= MwKEY_ALT_FLAG;
|
||||||
|
|
@ -222,7 +293,10 @@ static LRESULT CALLBACK wndproc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp) {
|
||||||
MwLLDispatch(u->ll, key_released, &n);
|
MwLLDispatch(u->ll, key_released, &n);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if(msg == WM_GETMINMAXINFO) {
|
break;
|
||||||
|
}
|
||||||
|
case WM_GETMINMAXINFO:
|
||||||
|
{
|
||||||
if(u->min_set || u->max_set) {
|
if(u->min_set || u->max_set) {
|
||||||
LPARAM style = GetWindowLongPtr(hWnd, GWL_STYLE);
|
LPARAM style = GetWindowLongPtr(hWnd, GWL_STYLE);
|
||||||
MINMAXINFO* mmi = (MINMAXINFO*)lp;
|
MINMAXINFO* mmi = (MINMAXINFO*)lp;
|
||||||
|
|
@ -253,22 +327,35 @@ static LRESULT CALLBACK wndproc(HWND hWnd, UINT msg, WPARAM wp, LPARAM lp) {
|
||||||
} else {
|
} else {
|
||||||
return DefWindowProc(hWnd, msg, wp, lp);
|
return DefWindowProc(hWnd, msg, wp, lp);
|
||||||
}
|
}
|
||||||
} else if(msg == WM_SETCURSOR) {
|
break;
|
||||||
|
}
|
||||||
|
case WM_SETCURSOR:
|
||||||
|
{
|
||||||
if(LOWORD(lp) != HTCLIENT) return DefWindowProc(hWnd, msg, wp, lp);
|
if(LOWORD(lp) != HTCLIENT) return DefWindowProc(hWnd, msg, wp, lp);
|
||||||
if(u->ll->gdi.cursor != NULL) SetCursor(u->ll->gdi.cursor);
|
if(u->ll->gdi.cursor != NULL) SetCursor(u->ll->gdi.cursor);
|
||||||
} else if(msg == WM_USER) {
|
break;
|
||||||
|
}
|
||||||
|
case WM_USER:
|
||||||
|
{
|
||||||
InvalidateRect(hWnd, NULL, FALSE);
|
InvalidateRect(hWnd, NULL, FALSE);
|
||||||
UpdateWindow(hWnd);
|
UpdateWindow(hWnd);
|
||||||
} else if(msg == WM_WININICHANGE) {
|
break;
|
||||||
|
}
|
||||||
|
case WM_WININICHANGE:
|
||||||
|
{
|
||||||
char* s = (char*)lp;
|
char* s = (char*)lp;
|
||||||
LPARAM style = GetWindowLongPtr(hWnd, GWL_STYLE);
|
LPARAM style = GetWindowLongPtr(hWnd, GWL_STYLE);
|
||||||
|
|
||||||
if(!(style & WS_CHILD)) {
|
if(!(style & WS_CHILD)) {
|
||||||
if(s != NULL && strcmp(s, "ImmersiveColorSet") == 0) detect_darktheme(u->ll);
|
if(s != NULL && strcmp(s, "ImmersiveColorSet") == 0) detect_darktheme(u->ll);
|
||||||
}
|
}
|
||||||
} else {
|
break;
|
||||||
|
}
|
||||||
|
default:
|
||||||
|
{
|
||||||
return DefWindowProc(hWnd, msg, wp, lp);
|
return DefWindowProc(hWnd, msg, wp, lp);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue