Revision: 45452
http://sourceforge.net/p/vice-emu/code/45452
Author: compyx
Date: 2025-01-07 16:45:34 +0000 (Tue, 07 Jan 2025)
Log Message:
-----------
SDL: Add -maximized to SDL2 UI
Add command line options [-+]maxnimized to SDL UI (2.x only, 1.x doesn't have
any function or flag to properly maximize a window).
No menu item to toggle "StartMaximized", there isn't one for "StartMinimized"
either.
Modified Paths:
--------------
trunk/vice/src/arch/sdl/ui.c
trunk/vice/src/arch/sdl/video_sdl2.c
Modified: trunk/vice/src/arch/sdl/ui.c
===================================================================
--- trunk/vice/src/arch/sdl/ui.c 2025-01-06 19:15:38 UTC (rev 45451)
+++ trunk/vice/src/arch/sdl/ui.c 2025-01-07 16:45:34 UTC (rev 45452)
@@ -538,6 +538,7 @@
static int save_resources_on_exit;
static int confirm_on_exit;
static int start_minimized;
+static int start_maximized;
static int set_ui_menukey(int val, void *param)
{
@@ -574,14 +575,35 @@
* \param[in] val 0: start normal 1: start minimized
* \param[in] param extra param (ignored)
*
- * \return 0
+ * \return 0 on success, -1 if both minimized and maximized are requested
*/
static int set_start_minimized(int val, void *param)
{
+ if (val && start_maximized) {
+ log_error(LOG_DEFAULT, "cannot request both minimized and maximized window");
+ return -1;
+ }
start_minimized = val ? 1 : 0;
return 0;
}
+/** \brief Set StartMaximized resource (bool)
+ *
+ * \param[in] val 0: start normal 1: start maximized
+ * \param[in] param extra param (ignored)
+ *
+ * \return 0 on success, -1 if both minimized and maximized are requested
+ */
+static int set_start_maximized(int val, void *param)
+{
+ if (val && start_minimized) {
+ log_error(LOG_DEFAULT, "cannot request both minimized and maximized window");
+ return -1;
+ }
+ start_maximized = val ? 1 : 0;
+ return 0;
+}
+
#ifndef DEFAULT_MENU_KEY
# ifdef MACOS_COMPILE
# define DEFAULT_MENU_KEY SDLK_F10
@@ -628,6 +650,8 @@
#endif
{ "StartMinimized", 0, RES_EVENT_NO, NULL,
&start_minimized, set_start_minimized, NULL },
+ { "StartMaximized", 0, RES_EVENT_NO, NULL,
+ &start_maximized, set_start_maximized, NULL },
RESOURCE_INT_LIST_END
};
@@ -736,6 +760,12 @@
{ "+minimized", SET_RESOURCE, CMDLINE_ATTRIB_NONE,
NULL, NULL, "StartMinimized", (void *)0,
NULL, "Do not start VICE minimized" },
+ { "-maximized", SET_RESOURCE, CMDLINE_ATTRIB_NONE,
+ NULL, NULL, "StartMaximized", (void *)1,
+ NULL, "Start VICE maximized" },
+ { "+maximized", SET_RESOURCE, CMDLINE_ATTRIB_NONE,
+ NULL, NULL, "StartMaximized", (void *)0,
+ NULL, "Do not start VICE maximized" },
CMDLINE_LIST_END
};
Modified: trunk/vice/src/arch/sdl/video_sdl2.c
===================================================================
--- trunk/vice/src/arch/sdl/video_sdl2.c 2025-01-06 19:15:38 UTC (rev 45451)
+++ trunk/vice/src/arch/sdl/video_sdl2.c 2025-01-07 16:45:34 UTC (rev 45452)
@@ -556,6 +556,7 @@
{
SDL_WindowFlags flags = 0;
int minimized = 0;
+ int maximized = 0;
int hide_vdc = 0;
if (machine_class == VICE_MACHINE_C128) {
@@ -562,19 +563,25 @@
resources_get_int("C128HideVDC", &hide_vdc);
}
resources_get_int("StartMinimized", &minimized);
+ resources_get_int("StartMaximized", &maximized);
- if (minimized) {
- flags |= SDL_WINDOW_MINIMIZED;
+ if (minimized && maximized) {
+ log_warning(LOG_DEFAULT,
+ "both StartMinized and StartMaximized are true, ignoring.");
+ } else if (minimized) {
+ flags |= SDL_WINDOW_MINIMIZED;
+ } else if (maximized) {
+ flags |= SDL_WINDOW_MAXIMIZED;
}
if (hide_vdc && (canvas->index == VIDEO_CANVAS_IDX_VDC)) {
- flags |= SDL_WINDOW_HIDDEN;
+ flags |= SDL_WINDOW_HIDDEN;
}
if (canvas->fullscreenconfig->enable) {
- flags |= SDL_WINDOW_FULLSCREEN_DESKTOP;
+ flags |= SDL_WINDOW_FULLSCREEN_DESKTOP;
} else {
- flags |= SDL_WINDOW_RESIZABLE;
+ flags |= SDL_WINDOW_RESIZABLE;
}
return flags;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|