[Scummvm-cvs-logs] scummvm master -> 7983b1cce3fb5831f7437ea689b951ac7cd9c5a3

Littleboy littleboy22 at gmail.com
Mon Jun 27 02:18:08 CEST 2011


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

Summary:
f065b612a6 ICONS: Update Windows icons
7983b1cce3 BACKENDS: Add special Win32 path to set SDL window icon


Commit: f065b612a61c781285a5c3ad4c4473f4261607be
    https://github.com/scummvm/scummvm/commit/f065b612a61c781285a5c3ad4c4473f4261607be
Author: Littleboy (littleboy at users.sourceforge.net)
Date: 2011-06-26T17:00:53-07:00

Commit Message:
ICONS: Update Windows icons

 - Replace 128x128 RGB version by PNG compressed 256x256 version for Windows Vista and later
 - Update 256 colors versions of the icon to remove black background
 - Remove 16 colors versions (256 colors icons have been supported since Windows 3.0 and are the default on Windows 95)
 - Add missing sizes and colors to NSIS installer icon

Changed paths:
    dists/nsis/graphics/scummvm-install.ico
    icons/scummvm.ico



diff --git a/dists/nsis/graphics/scummvm-install.ico b/dists/nsis/graphics/scummvm-install.ico
index b8b118c..6312959 100644
Binary files a/dists/nsis/graphics/scummvm-install.ico and b/dists/nsis/graphics/scummvm-install.ico differ
diff --git a/icons/scummvm.ico b/icons/scummvm.ico
index 0142e90..0283e84 100644
Binary files a/icons/scummvm.ico and b/icons/scummvm.ico differ


Commit: 7983b1cce3fb5831f7437ea689b951ac7cd9c5a3
    https://github.com/scummvm/scummvm/commit/7983b1cce3fb5831f7437ea689b951ac7cd9c5a3
Author: Littleboy (littleboy at users.sourceforge.net)
Date: 2011-06-26T17:13:35-07:00

Commit Message:
BACKENDS: Add special Win32 path to set SDL window icon

We bypass SDL_WM_SetIcon and setup the window icon using the embedded icon, with the default path as a fallback.
This allows us to use an antialised icon with alpha transparency (which the default included icon doesn't have) on Windows XP and later

Changed paths:
    backends/platform/sdl/win32/win32.cpp
    backends/platform/sdl/win32/win32.h
    dists/scummvm.rc
    dists/scummvm.rc.in



diff --git a/backends/platform/sdl/win32/win32.cpp b/backends/platform/sdl/win32/win32.cpp
index 814f195..420ed24 100644
--- a/backends/platform/sdl/win32/win32.cpp
+++ b/backends/platform/sdl/win32/win32.cpp
@@ -34,6 +34,8 @@
 #undef ARRAYSIZE // winnt.h defines ARRAYSIZE, but we want our own one...
 #include <shellapi.h>
 
+#include <SDL_syswm.h> // For setting the icon
+
 #include "backends/platform/sdl/win32/win32.h"
 #include "backends/fs/windows/windows-fs-factory.h"
 #include "backends/taskbar/win32/win32-taskbar.h"
@@ -137,6 +139,28 @@ bool OSystem_Win32::displayLogFile() {
 	return false;
 }
 
+void OSystem_Win32::setupIcon() {
+	HMODULE handle = GetModuleHandle(NULL);
+	HICON   ico    = LoadIcon(handle, MAKEINTRESOURCE(1001 /* IDI_ICON */));
+	if (ico) {
+		SDL_SysWMinfo  wminfo;
+		SDL_VERSION(&wminfo.version);
+		if (SDL_GetWMInfo(&wminfo)) {
+			// Replace the handle to the icon associated with the window class by our custom icon
+			SetClassLongPtr(wminfo.window, GCLP_HICON, (ULONG_PTR)ico);
+
+			// Since there wasn't any default icon, we can't use the return value from SetClassLong
+			// to check for errors (it would be 0 in both cases: error or no previous value for the
+			// icon handle). Instead we check for the last-error code value.
+			if (GetLastError() == ERROR_SUCCESS)
+				return;
+		}
+	}
+
+	// If no icon has been set, fallback to default path
+	OSystem_SDL::setupIcon();
+}
+
 Common::String OSystem_Win32::getDefaultConfigFileName() {
 	char configFile[MAXPATHLEN];
 
diff --git a/backends/platform/sdl/win32/win32.h b/backends/platform/sdl/win32/win32.h
index ef7b6af..cc2fc51 100644
--- a/backends/platform/sdl/win32/win32.h
+++ b/backends/platform/sdl/win32/win32.h
@@ -46,6 +46,7 @@ protected:
 	 */
 	Common::String _logFilePath;
 
+	virtual void setupIcon();
 	virtual Common::String getDefaultConfigFileName();
 	virtual Common::WriteStream *createLogFile();
 };
diff --git a/dists/scummvm.rc b/dists/scummvm.rc
index 1094373..d333004 100644
--- a/dists/scummvm.rc
+++ b/dists/scummvm.rc
@@ -5,6 +5,7 @@
 #endif
 
 #define FILE 256
+#define IDI_ICON 1001
 
 IDI_ICON               ICON    DISCARDABLE     "icons/scummvm.ico"
 
diff --git a/dists/scummvm.rc.in b/dists/scummvm.rc.in
index c043ce1..8186e0e 100644
--- a/dists/scummvm.rc.in
+++ b/dists/scummvm.rc.in
@@ -5,6 +5,7 @@
 #endif
 
 #define FILE 256
+#define IDI_ICON 1001
 
 IDI_ICON               ICON    DISCARDABLE     "icons/scummvm.ico"
 






More information about the Scummvm-git-logs mailing list