mirror of
https://github.com/FunkyFr3sh/cnc-ddraw.git
synced 2025-03-25 01:57:47 +01:00
re-enable maximize button
This commit is contained in:
parent
2d1b967630
commit
e34cd3b5e2
@ -11,6 +11,7 @@
|
|||||||
void util_limit_game_ticks();
|
void util_limit_game_ticks();
|
||||||
void util_update_bnet_pos(int newX, int newY);
|
void util_update_bnet_pos(int newX, int newY);
|
||||||
BOOL util_get_lowest_resolution(float ratio, SIZE* outRes, DWORD minWidth, DWORD minHeight, DWORD maxWidth, DWORD maxHeight);
|
BOOL util_get_lowest_resolution(float ratio, SIZE* outRes, DWORD minWidth, DWORD minHeight, DWORD maxWidth, DWORD maxHeight);
|
||||||
|
void util_toggle_maximize();
|
||||||
void util_toggle_fullscreen();
|
void util_toggle_fullscreen();
|
||||||
BOOL util_unadjust_window_rect(LPRECT prc, DWORD dwStyle, BOOL fMenu, DWORD dwExStyle);
|
BOOL util_unadjust_window_rect(LPRECT prc, DWORD dwStyle, BOOL fMenu, DWORD dwExStyle);
|
||||||
void util_set_window_rect(int x, int y, int width, int height, UINT flags);
|
void util_set_window_rect(int x, int y, int width, int height, UINT flags);
|
||||||
|
2
src/dd.c
2
src/dd.c
@ -542,7 +542,7 @@ HRESULT dd_SetDisplayMode(DWORD width, DWORD height, DWORD bpp)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
real_SetWindowLongA(g_ddraw->hwnd, GWL_STYLE, (GetWindowLong(g_ddraw->hwnd, GWL_STYLE) | WS_OVERLAPPEDWINDOW) & ~WS_MAXIMIZEBOX);
|
real_SetWindowLongA(g_ddraw->hwnd, GWL_STYLE, (GetWindowLong(g_ddraw->hwnd, GWL_STYLE) | WS_OVERLAPPEDWINDOW));// &~WS_MAXIMIZEBOX);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (g_ddraw->wine)
|
if (g_ddraw->wine)
|
||||||
|
34
src/utils.c
34
src/utils.c
@ -185,6 +185,40 @@ BOOL util_get_lowest_resolution(float ratio, SIZE *out_res, DWORD min_width, DWO
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void util_toggle_maximize()
|
||||||
|
{
|
||||||
|
RECT work_rc;
|
||||||
|
RECT client_rc;
|
||||||
|
|
||||||
|
if (real_GetClientRect(g_ddraw->hwnd, &client_rc) &&
|
||||||
|
SystemParametersInfo(SPI_GETWORKAREA, 0, &work_rc, 0))
|
||||||
|
{
|
||||||
|
if (client_rc.right != g_ddraw->width || client_rc.bottom != g_ddraw->height)
|
||||||
|
{
|
||||||
|
util_set_window_rect(
|
||||||
|
(work_rc.right / 2) - (g_ddraw->width / 2),
|
||||||
|
(work_rc.bottom / 2) - (g_ddraw->height / 2),
|
||||||
|
g_ddraw->width,
|
||||||
|
g_ddraw->height,
|
||||||
|
0);
|
||||||
|
}
|
||||||
|
else if (
|
||||||
|
util_unadjust_window_rect(
|
||||||
|
&work_rc,
|
||||||
|
GetWindowLong(g_ddraw->hwnd, GWL_STYLE),
|
||||||
|
FALSE,
|
||||||
|
GetWindowLong(g_ddraw->hwnd, GWL_EXSTYLE)))
|
||||||
|
{
|
||||||
|
util_set_window_rect(
|
||||||
|
work_rc.left,
|
||||||
|
work_rc.top,
|
||||||
|
work_rc.right - work_rc.left,
|
||||||
|
work_rc.bottom - work_rc.top,
|
||||||
|
0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void util_toggle_fullscreen()
|
void util_toggle_fullscreen()
|
||||||
{
|
{
|
||||||
if (g_ddraw->bnet_active)
|
if (g_ddraw->bnet_active)
|
||||||
|
@ -377,8 +377,18 @@ LRESULT CALLBACK fake_WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam
|
|||||||
return DefWindowProc(hWnd, uMsg, wParam, lParam); /* Carmageddon fix */
|
return DefWindowProc(hWnd, uMsg, wParam, lParam); /* Carmageddon fix */
|
||||||
}
|
}
|
||||||
|
|
||||||
/* C&C and RA really don't want to close down */
|
|
||||||
case WM_SYSCOMMAND:
|
case WM_SYSCOMMAND:
|
||||||
|
|
||||||
|
if (wParam == SC_MAXIMIZE)
|
||||||
|
{
|
||||||
|
if (g_ddraw->resizable)
|
||||||
|
{
|
||||||
|
util_toggle_maximize();
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
if (wParam == SC_CLOSE && !GameHandlesClose)
|
if (wParam == SC_CLOSE && !GameHandlesClose)
|
||||||
{
|
{
|
||||||
exit(0);
|
exit(0);
|
||||||
@ -487,36 +497,7 @@ LRESULT CALLBACK fake_WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam
|
|||||||
{
|
{
|
||||||
if (g_ddraw->resizable)
|
if (g_ddraw->resizable)
|
||||||
{
|
{
|
||||||
RECT work_rc;
|
util_toggle_maximize();
|
||||||
RECT client_rc;
|
|
||||||
|
|
||||||
if (real_GetClientRect(g_ddraw->hwnd, &client_rc) &&
|
|
||||||
SystemParametersInfo(SPI_GETWORKAREA, 0, &work_rc, 0))
|
|
||||||
{
|
|
||||||
if (client_rc.right != g_ddraw->width || client_rc.bottom != g_ddraw->height)
|
|
||||||
{
|
|
||||||
util_set_window_rect(
|
|
||||||
(work_rc.right / 2) - (g_ddraw->width / 2),
|
|
||||||
(work_rc.bottom / 2) - (g_ddraw->height / 2),
|
|
||||||
g_ddraw->width,
|
|
||||||
g_ddraw->height,
|
|
||||||
0);
|
|
||||||
}
|
|
||||||
else if (
|
|
||||||
util_unadjust_window_rect(
|
|
||||||
&work_rc,
|
|
||||||
GetWindowLong(g_ddraw->hwnd, GWL_STYLE),
|
|
||||||
FALSE,
|
|
||||||
GetWindowLong(g_ddraw->hwnd, GWL_EXSTYLE)))
|
|
||||||
{
|
|
||||||
util_set_window_rect(
|
|
||||||
work_rc.left,
|
|
||||||
work_rc.top,
|
|
||||||
work_rc.right - work_rc.left,
|
|
||||||
work_rc.bottom - work_rc.top,
|
|
||||||
0);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user