From a40d8df72d144b5105d6e51fd94bcebabe710ca9 Mon Sep 17 00:00:00 2001 From: Toni Wilen Date: Mon, 14 Mar 2022 18:10:03 +0200 Subject: [PATCH] Larger default GUI --- od-win32/resources/resource.h | 2 +- od-win32/resources/winuae.rc | 45 ++++++++++++++++++----------------- od-win32/win32.cpp | 3 +-- od-win32/win32.h | 4 ++-- od-win32/win32gfx.cpp | 25 ++++++++++++++----- od-win32/win32gui.cpp | 37 +++++++++++++++++++++------- od-win32/win32gui.h | 9 ++++--- od-win32/win32gui_extra.cpp | 23 +++++++++++++----- 8 files changed, 97 insertions(+), 51 deletions(-) diff --git a/od-win32/resources/resource.h b/od-win32/resources/resource.h index 7d172300..871eda49 100644 --- a/od-win32/resources/resource.h +++ b/od-win32/resources/resource.h @@ -1305,10 +1305,10 @@ #define IDC_GENLOCKFILESELECT 1854 #define IDC_PATH_GEOMETRY 1855 #define IDC_PATH_GEOMETRY_SELECTOR 1856 -#define IDC_EDIT1 1857 #define IDC_EXPANSIONBOARDSTRINGBOX 1857 #define IDC_CS_UNMAPPED 1858 #define IDC_CHS_CYLINDERS 1859 +#define IDC_CS_HVCSYNC 1859 #define IDC_CHS_HEADS 1860 #define IDC_CONFIGCATEGORY 1860 #define IDC_CHS_SECTORS 1861 diff --git a/od-win32/resources/winuae.rc b/od-win32/resources/winuae.rc index d14ebba9..7c8b3804 100644 --- a/od-win32/resources/winuae.rc +++ b/od-win32/resources/winuae.rc @@ -742,32 +742,32 @@ IDD_CHIPSET DIALOGEX 0, 0, 396, 316 STYLE DS_LOCALEDIT | DS_SETFONT | DS_3DLOOK | DS_CONTROL | WS_CHILD FONT 8, "MS Sans Serif", 0, 0, 0x0 BEGIN - GROUPBOX "Chipset",IDC_STATIC,1,20,212,136 + GROUPBOX "Chipset",IDC_STATIC,1,5,212,151 CONTROL "OCS [] Original chipset. A1000 and most A500s.",IDC_OCS, - "Button",BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,12,35,88,10 + "Button",BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,12,26,88,10 CONTROL "ECS Agnus [] Enhanced chipset (ECS Agnus chip only). CDTV and later A500 and A2000 hardware revisions.",IDC_ECS_AGNUS, - "Button",BS_AUTORADIOBUTTON | WS_TABSTOP,12,51,88,10 + "Button",BS_AUTORADIOBUTTON | WS_TABSTOP,12,42,88,10 CONTROL "Full ECS [] Full ECS chipset (ECS Agnus and ECS Denise chips). A500+, A600 and A3000.",IDC_ECS, - "Button",BS_AUTORADIOBUTTON | WS_TABSTOP,12,67,88,10 + "Button",BS_AUTORADIOBUTTON | WS_TABSTOP,12,58,88,10 CONTROL "AGA [] Advanced Graphics Architecture chipset. A1200, A4000 and CD32.",IDC_AGA, - "Button",BS_AUTORADIOBUTTON | WS_TABSTOP,114,35,86,10 + "Button",BS_AUTORADIOBUTTON | WS_TABSTOP,114,26,86,10 CONTROL "ECS Denise [] Enhanced chipset (ECS Denise chip only). Normally paired with ECS Agnus.",IDC_ECS_DENISE, - "Button",BS_AUTORADIOBUTTON | WS_TABSTOP,114,51,86,10 + "Button",BS_AUTORADIOBUTTON | WS_TABSTOP,114,42,86,10 CONTROL "NTSC [] North American and Japanese display standard, 60Hz refresh rate. Other countries use PAL (50Hz. display refresh rate)",IDC_NTSC, - "Button",BS_AUTOCHECKBOX | WS_TABSTOP,114,67,86,10 + "Button",BS_AUTOCHECKBOX | WS_TABSTOP,114,58,86,10 CONTROL "Cycle-exact (Full) [] The most compatible A500/A1200 emulation mode.",IDC_CYCLEEXACT, - "Button",BS_AUTOCHECKBOX | BS_LEFT | WS_GROUP | WS_TABSTOP,12,88,194,10 + "Button",BS_AUTOCHECKBOX | BS_LEFT | WS_GROUP | WS_TABSTOP,12,79,194,10 CONTROL "Cycle-exact (DMA/Memory accesses)",IDC_CYCLEEXACTMEMORY, - "Button",BS_AUTOCHECKBOX | BS_LEFT | WS_GROUP | WS_TABSTOP,12,101,194,10 - RTEXT "Chipset Extra:",IDC_STATIC,38,128,71,15,SS_CENTERIMAGE - COMBOBOX IDC_CS_EXT,116,129,88,65,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP - GROUPBOX "Options",IDC_STATIC,221,20,173,137 - CONTROL "Keyboard connected",IDC_KEYBOARD_CONNECTED,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,234,35,150,10 - CONTROL "Subpixel display emulation",IDC_SUBPIXEL,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,234,48,150,10 + "Button",BS_AUTOCHECKBOX | BS_LEFT | WS_GROUP | WS_TABSTOP,12,92,194,10 + RTEXT "Chipset Extra:",IDC_STATIC,38,119,71,15,SS_CENTERIMAGE + COMBOBOX IDC_CS_EXT,116,120,88,65,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + GROUPBOX "Options",IDC_STATIC,221,4,173,154 + CONTROL "Keyboard connected",IDC_KEYBOARD_CONNECTED,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,234,17,150,10 + CONTROL "Subpixel display emulation",IDC_SUBPIXEL,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,234,31,150,10 CONTROL "Immediate Blitter [] Faster but less compatible blitter emulation.",IDC_BLITIMM, - "Button",BS_AUTOCHECKBOX | WS_TABSTOP,234,62,150,10 + "Button",BS_AUTOCHECKBOX | WS_TABSTOP,234,45,150,10 CONTROL "Wait for Blitter [] Compatibility hack for programs that don't wait for the blitter correctly, causing graphics corruption if CPU is too fast.",IDC_BLITWAIT, - "Button",BS_AUTOCHECKBOX | WS_TABSTOP,234,75,150,10 + "Button",BS_AUTOCHECKBOX | WS_TABSTOP,234,57,150,10 LTEXT "Video port display hardware:",IDC_STATIC,241,105,117,15,SS_CENTERIMAGE COMBOBOX IDC_MONITOREMU,237,123,147,65,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP LTEXT "Monitor:",IDC_STATIC,240,139,68,15,SS_CENTERIMAGE,WS_EX_RIGHT @@ -791,6 +791,8 @@ BEGIN CONTROL "Keep aspect ratio",IDC_GENLOCK_KEEP_ASPECT,"Button",BS_AUTOCHECKBOX | BS_LEFT | WS_GROUP | WS_TABSTOP,13,262,214,10 COMBOBOX IDC_GENLOCKFILE,12,278,356,75,CBS_DROPDOWN | CBS_AUTOHSCROLL | WS_VSCROLL | WS_TABSTOP PUSHBUTTON "...",IDC_GENLOCKFILESELECT,375,277,10,15 + COMBOBOX IDC_CS_HVCSYNC,237,90,147,75,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + LTEXT "Monitor sync source:",IDC_STATIC,242,75,101,9 END IDD_CHIPSET2 DIALOGEX 0, 0, 396, 316 @@ -836,7 +838,7 @@ BEGIN CONTROL "A1000 Agnus (8361/8367)",IDC_CS_DIPAGNUS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,264,158,125,11 CONTROL "Composite color burst",IDC_CS_COMPOSITECOLOR,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,264,171,125,12 CONTROL "CIA 391078-01 [] CIA revision that can't read IO pin status in output mode",IDC_CS_CIA, - "Button",BS_AUTOCHECKBOX | WS_TABSTOP,264,197,125,12 + "Button",BS_AUTOCHECKBOX | WS_TABSTOP,264,184,125,12 RTEXT "Unmapped address space:",IDC_STATIC,15,215,101,9 COMBOBOX IDC_CS_UNMAPPED,125,212,113,75,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP GROUPBOX "Internal SCSI Hardware",IDC_STATIC,0,232,395,30 @@ -1404,8 +1406,8 @@ END // VS_VERSION_INFO VERSIONINFO - FILEVERSION 4,9,1,0 - PRODUCTVERSION 4,9,1,0 + FILEVERSION 4,9,2,0 + PRODUCTVERSION 4,9,2,0 FILEFLAGSMASK 0x3fL #ifdef _DEBUG FILEFLAGS 0x1L @@ -1421,12 +1423,12 @@ BEGIN BLOCK "040904b0" BEGIN VALUE "FileDescription", "WinUAE" - VALUE "FileVersion", "4.9.1.0" + VALUE "FileVersion", "4.9.2.0" VALUE "InternalName", "WinUAE" VALUE "LegalCopyright", "© 1996-2022 under the GNU Public License (GPL)" VALUE "OriginalFilename", "WinUAE.exe" VALUE "ProductName", "WinUAE" - VALUE "ProductVersion", "4.9.1.0" + VALUE "ProductVersion", "4.9.2.0" END END BLOCK "VarFileInfo" @@ -1635,7 +1637,6 @@ BEGIN IDD_CHIPSET, DIALOG BEGIN - BOTTOMMARGIN, 280 END IDD_CHIPSET2, DIALOG diff --git a/od-win32/win32.cpp b/od-win32/win32.cpp index e779ef8d..6dace4ab 100644 --- a/od-win32/win32.cpp +++ b/od-win32/win32.cpp @@ -7979,8 +7979,7 @@ typedef BOOL(WINAPI* SETPROCESSMITIGATIONPOLICY)(DWORD, PVOID, SIZE_T); static SETPROCESSMITIGATIONPOLICY pSetProcessMitigationPolicy; #endif -int PASCAL wWinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, LPWSTR lpCmdLine, int nCmdShow) - { +int PASCAL wWinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, LPWSTR lpCmdLine, int nCmdShow) { DWORD_PTR sys_aff; HANDLE thread; diff --git a/od-win32/win32.h b/od-win32/win32.h index 172b4533..558eb4d6 100644 --- a/od-win32/win32.h +++ b/od-win32/win32.h @@ -15,12 +15,12 @@ #define GETBDM(x) (((x) - ((x / 10000) * 10000)) / 100) #define GETBDD(x) ((x) % 100) -#define WINUAEPUBLICBETA 0 +#define WINUAEPUBLICBETA 1 #define LANG_DLL 1 #define LANG_DLL_FULL_VERSION_MATCH 0 #if WINUAEPUBLICBETA -#define WINUAEBETA _T("") +#define WINUAEBETA _T("Beta 0") #else #define WINUAEBETA _T("") #endif diff --git a/od-win32/win32gfx.cpp b/od-win32/win32gfx.cpp index a68ce0ec..4a5a2d2f 100644 --- a/od-win32/win32gfx.cpp +++ b/od-win32/win32gfx.cpp @@ -4496,31 +4496,44 @@ void toggle_fullscreen(int monid, int mode) int *p = ad->picasso_on ? &changed_prefs.gfx_apmode[1].gfx_fullscreen : &changed_prefs.gfx_apmode[0].gfx_fullscreen; int wfw = ad->picasso_on ? wasfullwindow_p : wasfullwindow_a; int v = *p; + static int prevmode = -1; if (mode < 0) { - // fullscreen <> window (if in fullwindow: fullwindow <> fullscreen) - if (v == GFX_FULLWINDOW) - v = GFX_FULLSCREEN; - else if (v == GFX_WINDOW) - v = GFX_FULLSCREEN; - else if (v == GFX_FULLSCREEN) + // fullwindow->window->fullwindow. + // fullscreen->window->fullscreen. + // window->fullscreen->window. + if (v == GFX_FULLWINDOW) { + prevmode = v; + v = GFX_WINDOW; + } else if (v == GFX_WINDOW) { + if (prevmode < 0) { + v = GFX_FULLSCREEN; + prevmode = v; + } else { + v = prevmode; + } + } else if (v == GFX_FULLSCREEN) { if (wfw > 0) v = GFX_FULLWINDOW; else v = GFX_WINDOW; + } } else if (mode == 0) { + prevmode = v; // fullscreen <> window if (v == GFX_FULLSCREEN) v = GFX_WINDOW; else v = GFX_FULLSCREEN; } else if (mode == 1) { + prevmode = v; // fullscreen <> fullwindow if (v == GFX_FULLSCREEN) v = GFX_FULLWINDOW; else v = GFX_FULLSCREEN; } else if (mode == 2) { + prevmode = v; // window <> fullwindow if (v == GFX_FULLWINDOW) v = GFX_WINDOW; diff --git a/od-win32/win32gui.cpp b/od-win32/win32gui.cpp index 09cec340..8b711d1b 100644 --- a/od-win32/win32gui.cpp +++ b/od-win32/win32gui.cpp @@ -2288,8 +2288,8 @@ int target_cfgfile_load (struct uae_prefs *p, const TCHAR *filename, int type, i static int gui_width, gui_height; int gui_fullscreen; static RECT gui_fullscreen_rect; -static bool gui_resize_enabled; -static bool gui_resize_allowed; +static bool gui_resize_enabled = true; +static bool gui_resize_allowed = true; // Internal panel max size: 396, 318 @@ -9359,6 +9359,7 @@ static void values_from_chipsetdlg2 (HWND hDlg, UINT msg, WPARAM wParam, LPARAM workprefs.cs_toshibagary = ischecked(hDlg, IDC_CS_TOSHIBAGARY); workprefs.cs_romisslow = ischecked(hDlg, IDC_CS_ROMISSLOW); workprefs.cs_ciatype[0] = workprefs.cs_ciatype[1] = ischecked(hDlg, IDC_CS_CIA); + LRESULT val = SendDlgItemMessage(hDlg, IDC_CS_UNMAPPED, CB_GETCURSEL, 0, 0L); if (val != CB_ERR) workprefs.cs_unmapped_space = val; @@ -12536,15 +12537,29 @@ static void setstatefilename (HWND hDlg) setchecked (hDlg, IDC_STATECLEAR, workprefs.statefile[0] != 0); } +static void getguidefaultsize(int *wp, int *hp) +{ + int w = GetSystemMetrics(SM_CXVIRTUALSCREEN); + int h = GetSystemMetrics(SM_CYVIRTUALSCREEN); + + if (w >= 1600 && h >= 1024) { + *wp = GUI_INTERNAL_WIDTH_NEW; + *hp = GUI_INTERNAL_HEIGHT_NEW; + } else { + *wp = GUI_INTERNAL_WIDTH_OLD; + *hp = GUI_INTERNAL_HEIGHT_OLD; + } +} + static void setdefaultguisize(int skipdpi) { int dpi = skipdpi ? 96 : getdpiformonitor(NULL); + int w, h; - gui_width = MulDiv(GUI_INTERNAL_WIDTH, dpi, 96); - gui_height = MulDiv(GUI_INTERNAL_HEIGHT, dpi, 96); + getguidefaultsize(&w, &h); - int w = GetSystemMetrics(SM_CXVIRTUALSCREEN); - int h = GetSystemMetrics(SM_CYVIRTUALSCREEN); + gui_width = MulDiv(w, dpi, 96); + gui_height = MulDiv(h, dpi, 96); if ((dpi > 96) && (gui_width > w || gui_height > h)) { gui_width = w; @@ -12778,8 +12793,10 @@ static INT_PTR MiscDlgProc (HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam) v--; v = 200 - v * 10; } - gui_width = (int)(GUI_INTERNAL_WIDTH * v / 100); - gui_height = (int)(GUI_INTERNAL_HEIGHT * v / 100); + int w, h; + getguidefaultsize(&w, &h); + gui_width = (int)(w * v / 100); + gui_height = (int)(h * v / 100); int dpi = getdpiforwindow(hDlg); gui_width = MulDiv(gui_width, dpi, 96); gui_height = MulDiv(gui_height, dpi, 96); @@ -22808,7 +22825,9 @@ void gui_led (int led, int on, int brightness) ptr = drive_text + pos * LED_STRING_WIDTH; if (fps > 9999.9) fps = 9999.9; - if (fps < 1000) { + if (gui_data.fps_color == 2) { + _tcscpy(ptr, _T("No Sync")); + } else if (fps < 1000) { if (ad->picasso_on) _stprintf (ptr, _T("%.1f [%.1f]"), p96vblank, fps); else diff --git a/od-win32/win32gui.h b/od-win32/win32gui.h index 21c11969..17e61fec 100644 --- a/od-win32/win32gui.h +++ b/od-win32/win32gui.h @@ -102,9 +102,12 @@ struct newresource #define MIN_GUI_INTERNAL_WIDTH 512 #define MIN_GUI_INTERNAL_HEIGHT 400 -#define GUI_INTERNAL_WIDTH 800 -#define GUI_INTERNAL_HEIGHT 600 -#define GUI_INTERNAL_FONT 8 +#define GUI_INTERNAL_WIDTH_OLD 800 +#define GUI_INTERNAL_HEIGHT_OLD 600 +#define GUI_INTERNAL_FONT_OLD 8 +#define GUI_INTERNAL_WIDTH_NEW 1280 +#define GUI_INTERNAL_HEIGHT_NEW 960 +#define GUI_INTERNAL_FONT_NEW 10 extern struct uae_prefs workprefs; extern int dialog_inhibit; diff --git a/od-win32/win32gui_extra.cpp b/od-win32/win32gui_extra.cpp index 2b18c89e..adb3f098 100644 --- a/od-win32/win32gui_extra.cpp +++ b/od-win32/win32gui_extra.cpp @@ -19,7 +19,8 @@ #include "zfile.h" #define MAX_GUI_FONTS 2 -#define DEFAULT_FONTSIZE 8 +#define DEFAULT_FONTSIZE_OLD 8 +#define DEFAULT_FONTSIZE_NEW 9 static float multx, multy; static int scaleresource_width, scaleresource_height; @@ -27,8 +28,9 @@ static int scaleresource_reset; static int dux, duy; static TCHAR fontname_gui[32], fontname_list[32]; -static int fontsize_gui = DEFAULT_FONTSIZE; -static int fontsize_list = DEFAULT_FONTSIZE; +static int fontsize_default = DEFAULT_FONTSIZE_OLD; +static int fontsize_gui = DEFAULT_FONTSIZE_OLD; +static int fontsize_list = DEFAULT_FONTSIZE_OLD; static int fontstyle_gui = 0; static int fontstyle_list = 0; static int fontweight_gui = FW_REGULAR; @@ -1120,12 +1122,21 @@ void scalaresource_listview_font_info(int *w) static void setdeffont (void) { + int fs = DEFAULT_FONTSIZE_OLD; + int w = GetSystemMetrics(SM_CXVIRTUALSCREEN); + int h = GetSystemMetrics(SM_CYVIRTUALSCREEN); + + if (w >= 1600 && h >= 1024) { + fs = DEFAULT_FONTSIZE_NEW; + } + fontsize_default = fs; + _tcscpy (fontname_gui, font_vista_ok ? wfont_vista : wfont_xp); - fontsize_gui = DEFAULT_FONTSIZE; + fontsize_gui = fontsize_default; fontstyle_gui = 0; fontweight_gui = FW_REGULAR; _tcscpy (fontname_list, font_vista_ok ? wfont_vista : wfont_xp); - fontsize_list = DEFAULT_FONTSIZE; + fontsize_list = fontsize_default; fontstyle_list = 0; fontweight_list = FW_REGULAR; } @@ -1173,7 +1184,7 @@ static void regqueryfont (UAEREG *reg, const TCHAR *prefix, const TCHAR *name, T fontweight = _tstoi (p3); if (fontsize == 0) - fontsize = DEFAULT_FONTSIZE; + fontsize = fontsize_default; if (fontsize < 5) fontsize = 5; if (fontsize > 30) -- 2.47.3