[Scummvm-cvs-logs] scummvm master -> eae06884b6c6da23b7932ceba65e435d9be6ef82

Kirben kirben at optusnet.com.au
Thu Jun 30 03:20:49 CEST 2011


This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
eae06884b6 WIN32: Add option to disable the console window, keeping the current default of enabling the console window.


Commit: eae06884b6c6da23b7932ceba65e435d9be6ef82
    https://github.com/scummvm/scummvm/commit/eae06884b6c6da23b7932ceba65e435d9be6ef82
Author: Travis Howell (kirben at optusnet.com.au)
Date: 2011-06-29T18:17:58-07:00

Commit Message:
WIN32: Add option to disable the console window, keeping the current default of enabling the console window.

Changed paths:
    README
    backends/platform/sdl/win32/win32.cpp
    backends/platform/sdl/win32/win32.h
    base/commandLine.cpp
    dists/win32/ScummVM.iss



diff --git a/README b/README
index 25cf929..4892981 100644
--- a/README
+++ b/README
@@ -943,6 +943,7 @@ arguments -- see the next section.
   -z, --list-games         Display list of supported games and exit
   -t, --list-targets       Display list of configured targets and exit
   --list-saves=TARGET      Display a list of savegames for the game (TARGET) specified
+  --console                Enable the console window (default: enabled) (Windows only)
 
   -c, --config=CONFIG      Use alternate configuration file
   -p, --path=PATH          Path to where the game is installed
@@ -1975,6 +1976,7 @@ The following keywords are recognized:
 
     confirm_exit       bool     Ask for confirmation by the user before quitting
                                 (SDL backend only).
+    console            bool     Enable the console window (default: enabled) (Windows only).
     cdrom              number   Number of CD-ROM unit to use for audio. If
                                 negative, don't even try to access the CD-ROM.
     joystick_num       number   Number of joystick device to use for input
diff --git a/backends/platform/sdl/win32/win32.cpp b/backends/platform/sdl/win32/win32.cpp
index 420ed24..c1b6c85 100644
--- a/backends/platform/sdl/win32/win32.cpp
+++ b/backends/platform/sdl/win32/win32.cpp
@@ -24,6 +24,7 @@
 #define FORBIDDEN_SYMBOL_ALLOW_ALL
 
 #include "common/scummsys.h"
+#include "common/config-manager.h"
 #include "common/error.h"
 #include "common/textconsole.h"
 
@@ -44,46 +45,7 @@
 
 #define DEFAULT_CONFIG_FILE "scummvm.ini"
 
-//#define	HIDE_CONSOLE
-
-#ifdef HIDE_CONSOLE
-struct SdlConsoleHidingWin32 {
-	DWORD myPid;
-	DWORD myTid;
-	HWND consoleHandle;
-};
-
-// console hiding for win32
-static BOOL CALLBACK initBackendFindConsoleWin32Proc(HWND hWnd, LPARAM lParam) {
-	DWORD pid, tid;
-	SdlConsoleHidingWin32 *variables = (SdlConsoleHidingWin32 *)lParam;
-	tid = GetWindowThreadProcessId(hWnd, &pid);
-	if ((tid == variables->myTid) && (pid == variables->myPid)) {
-		variables->consoleHandle = hWnd;
-		return FALSE;
-	}
-	return TRUE;
-}
-
-#endif
-
 void OSystem_Win32::init() {
-#ifdef HIDE_CONSOLE
-	// console hiding for win32
-	SdlConsoleHidingWin32 consoleHidingWin32;
-	consoleHidingWin32.consoleHandle = 0;
-	consoleHidingWin32.myPid = GetCurrentProcessId();
-	consoleHidingWin32.myTid = GetCurrentThreadId();
-	EnumWindows (initBackendFindConsoleWin32Proc, (LPARAM)&consoleHidingWin32);
-
-	if (!ConfMan.getBool("show_console")) {
-		if (consoleHidingWin32.consoleHandle) {
-			// We won't find a window with our TID/PID in case we were started from command-line
-			ShowWindow(consoleHidingWin32.consoleHandle, SW_HIDE);
-		}
-	}
-#endif
-
 	// Initialize File System Factory
 	_fsFactory = new WindowsFilesystemFactory();
 
@@ -96,6 +58,26 @@ void OSystem_Win32::init() {
 	OSystem_SDL::init();
 }
 
+void OSystem_Win32::initBackend() {
+	// Console window is enabled by default on Windows
+	ConfMan.registerDefault("console", true);
+
+	// Enable or disable the window console window
+	if (ConfMan.getBool("console")) {
+		if (AllocConsole()) {
+			freopen("CONIN$","r",stdin);
+			freopen("CONOUT$","w",stdout);
+			freopen("CONOUT$","w",stderr);
+		}
+		SetConsoleTitle("ScummVM Status Window");
+	} else {
+		FreeConsole();
+	}
+
+	// Invoke parent implementation of this method
+	OSystem_SDL::initBackend();
+}
+
 
 bool OSystem_Win32::hasFeature(Feature f) {
 	if (f == kFeatureDisplayLogFile)
diff --git a/backends/platform/sdl/win32/win32.h b/backends/platform/sdl/win32/win32.h
index cc2fc51..b56997a 100644
--- a/backends/platform/sdl/win32/win32.h
+++ b/backends/platform/sdl/win32/win32.h
@@ -28,6 +28,7 @@
 class OSystem_Win32 : public OSystem_SDL {
 public:
 	virtual void init();
+	virtual void initBackend();
 
 	virtual void addSysArchivesToSearchSet(Common::SearchSet &s, int priority = 0);
 
diff --git a/base/commandLine.cpp b/base/commandLine.cpp
index 1cd3643..a4fefc4 100644
--- a/base/commandLine.cpp
+++ b/base/commandLine.cpp
@@ -65,6 +65,9 @@ static const char HELP_STRING[] =
 	"  -z, --list-games         Display list of supported games and exit\n"
 	"  -t, --list-targets       Display list of configured targets and exit\n"
 	"  --list-saves=TARGET      Display a list of savegames for the game (TARGET) specified\n"
+#if defined (WIN32) && !defined(_WIN32_WCE) && !defined(__SYMBIAN32__)
+	"  --console                Enable the console window (default:enabled)\n"
+#endif
 	"\n"
 	"  -c, --config=CONFIG      Use alternate configuration file\n"
 	"  -p, --path=PATH          Path to where the game is installed\n"
@@ -231,13 +234,6 @@ void registerDefaults() {
 	ConfMan.registerDefault("record_temp_file_name", "record.tmp");
 	ConfMan.registerDefault("record_time_file_name", "record.time");
 
-#if 0
-	// NEW CODE TO HIDE CONSOLE FOR WIN32
-#ifdef WIN32
-	// console hiding for win32
-	ConfMan.registerDefault("show_console", false);
-#endif
-#endif
 }
 
 //
@@ -554,14 +550,11 @@ Common::String parseCommandLine(Common::StringMap &settings, int argc, const cha
 			END_OPTION
 #endif
 
-#if 0
-	// NEW CODE TO HIDE CONSOLE FOR WIN32
-#ifdef WIN32
-			// console hiding for win32
-			DO_LONG_OPTION_BOOL("show-console")
+#if defined (WIN32) && !defined(_WIN32_WCE) && !defined(__SYMBIAN32__)
+			// Optional console window on Windows (default: enabled)
+			DO_LONG_OPTION_BOOL("console")
 			END_OPTION
 #endif
-#endif
 
 unknownOption:
 			// If we get till here, the option is unhandled and hence unknown.
diff --git a/dists/win32/ScummVM.iss b/dists/win32/ScummVM.iss
index 00f4868..68a20d0 100644
--- a/dists/win32/ScummVM.iss
+++ b/dists/win32/ScummVM.iss
@@ -44,6 +44,7 @@ Name: es; MessagesFile: compiler:Languages\Spanish.isl
 [Icons]
 Name: {group}\{cm:UninstallProgram, ScummVM}; Filename: {uninstallexe}
 Name: {group}\ScummVM; Filename: {app}\scummvm.exe; WorkingDir: {app}; Comment: scummvm; Flags: createonlyiffileexists; IconIndex: 0
+Name: {group}\ScummVM (noconsole); Filename: {app}\scummvm.exe; Parameters: "--no-console"; WorkingDir: {app}; Comment: scummvm; Flags: createonlyiffileexists; IconIndex: 0
 Name: {group}\Authors; Filename: {app}\AUTHORS.txt; WorkingDir: {app}; Comment: AUTHORS; Flags: createonlyiffileexists
 Name: {group}\Copying; Filename: {app}\COPYING.txt; WorkingDir: {app}; Comment: COPYING; Flags: createonlyiffileexists
 Name: {group}\Copying.LGPL; Filename: {app}\COPYING.LGPL.txt; WorkingDir: {app}; Comment: COPYING.LGPL; Flags: createonlyiffileexists






More information about the Scummvm-git-logs mailing list