From e5b56e882096c0cd6256ce8c0948b8f389078fbe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Hrdli=C4=8Dka?= Date: Sun, 9 Jan 2022 19:12:08 +0100 Subject: [PATCH] Move machine information to the toolbar --- src/win/win_toolbar.c | 40 +++++++++++++++++++++++++++++++++++----- src/win/win_ui.c | 22 +--------------------- 2 files changed, 36 insertions(+), 26 deletions(-) diff --git a/src/win/win_toolbar.c b/src/win/win_toolbar.c index faf9712f8..e2addf3e5 100644 --- a/src/win/win_toolbar.c +++ b/src/win/win_toolbar.c @@ -5,6 +5,7 @@ #include #include #include <86box/86box.h> +#include <86box/plat.h> #include <86box/resource.h> #include <86box/ui.h> #include <86box/win.h> @@ -12,6 +13,7 @@ HWND hwndRebar; static HWND hwndToolbar; static HIMAGELIST hImageList; +static wchar_t wTitle[512]; static TBBUTTON buttons[] = { { 0, IDM_ACTION_PAUSE, TBSTATE_ENABLED, BTNS_BUTTON, { 0 }, 0, 0 }, // Pause @@ -61,8 +63,7 @@ ToolBarCreate(HWND hwndParent, HINSTANCE hInst) hwndRebar = CreateWindowEx(0, REBARCLASSNAME, NULL, WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | RBS_VARHEIGHT | - RBS_BANDBORDERS | CCS_NODIVIDER | - CCS_NOPARENTALIGN, + CCS_NODIVIDER | CCS_NOPARENTALIGN, 0, 0, 0, 0, hwndParent, NULL, hInst, NULL); @@ -72,14 +73,43 @@ ToolBarCreate(HWND hwndParent, HINSTANCE hInst) // Add the toolbar to the rebar. rbbi.cbSize = sizeof(rbbi); - rbbi.fMask = RBBIM_CHILD | RBBIM_CHILDSIZE; + rbbi.fMask = RBBIM_CHILD | RBBIM_CHILDSIZE | RBBIM_STYLE; rbbi.hwndChild = hwndToolbar; rbbi.cxMinChild = 0; rbbi.cyMinChild = btnSize; + rbbi.fStyle = RBBS_NOGRIPPER; SendMessage(hwndRebar, RB_INSERTBAND, -1, (LPARAM)&rbbi); - SendMessage(hwndRebar, RB_MAXIMIZEBAND, 0, 0); + // Add a label for machine information. + rbbi.fMask = RBBIM_TEXT | RBBIM_STYLE; + rbbi.lpText = TEXT("Test"); + rbbi.fStyle = RBBS_NOGRIPPER; + SendMessage(hwndRebar, RB_INSERTBAND, -1, (LPARAM)&rbbi); + + SendMessage(hwndRebar, RB_MAXIMIZEBAND, 0, 0); ShowWindow(hwndRebar, TRUE); return; -} \ No newline at end of file +} + +wchar_t * +ui_window_title(wchar_t *s) +{ + REBARBANDINFO rbbi = { 0 }; + if (! video_fullscreen) { + if (s != NULL) { + wcsncpy(wTitle, s, sizeof_w(wTitle) - 1); + } else + s = wTitle; + + rbbi.cbSize = sizeof(rbbi); + rbbi.fMask = RBBIM_TEXT; + rbbi.lpText = s; + SendMessage(hwndRebar, RB_SETBANDINFO, 1, (LPARAM) &rbbi); + } else { + if (s == NULL) + s = wTitle; + } + + return(s); +} diff --git a/src/win/win_ui.c b/src/win/win_ui.c index 362ab3343..95061cbf6 100644 --- a/src/win/win_ui.c +++ b/src/win/win_ui.c @@ -74,7 +74,6 @@ extern WCHAR wopenfilestring[512]; /* Local data. */ -static wchar_t wTitle[512]; static int manager_wm = 0; static int save_window_pos = 0, pause_state = 0; static int padded_frame = 0; @@ -1328,7 +1327,7 @@ ui_init(int nCmdShow) return(2); /* Now create our main window. */ - mbstowcs(title, emu_version, sizeof_w(title)); + swprintf_s(title, sizeof_w(title), L"%hs - %hs", vm_name, EMU_NAME); hwnd = CreateWindowEx ( 0, /* no extended possibilites */ CLASS_NAME, /* class name */ @@ -1560,25 +1559,6 @@ ui_init(int nCmdShow) } -wchar_t * -ui_window_title(wchar_t *s) -{ - if (! video_fullscreen) { - if (s != NULL) { - wcsncpy(wTitle, s, sizeof_w(wTitle) - 1); - } else - s = wTitle; - - SetWindowText(hwndMain, s); - } else { - if (s == NULL) - s = wTitle; - } - - return(s); -} - - /* We should have the language ID as a parameter. */ void plat_pause(int p)