diff options
author | Yohann Ferreira <yohann_dot_ferreira_at_orange_dot_efer> | 2011-01-26 01:09:02 +0100 |
---|---|---|
committer | Yohann Ferreira <yohann_dot_ferreira_at_orange_dot_efer> | 2011-01-27 19:11:32 +0100 |
commit | fe7a543ce0495b55122afbf11d0488289613cff5 (patch) | |
tree | 5e48637577e1bc45fad14e71b65ad8e8e4c65438 | |
parent | 3f66a1934942adf3f4e81f49fe3c18476aed0177 (diff) | |
download | mana-fe7a543ce0495b55122afbf11d0488289613cff5.tar.gz mana-fe7a543ce0495b55122afbf11d0488289613cff5.tar.bz2 mana-fe7a543ce0495b55122afbf11d0488289613cff5.tar.xz mana-fe7a543ce0495b55122afbf11d0488289613cff5.zip |
Made the windows app able to load .ico files at runtime.
Now the icon extension is computed against the os.
This means that the 'icons/mana' appIcon branding parameter
will now load icons/mana.png files for unices and mac,
and icons/mana.ico for Windows.
Reviewed-by: Trapdoor.
Resolves: Mana-Mantis: #135.
-rw-r--r-- | src/client.cpp | 22 |
1 files changed, 17 insertions, 5 deletions
diff --git a/src/client.cpp b/src/client.cpp index 110420d5..b57c3ae8 100644 --- a/src/client.cpp +++ b/src/client.cpp @@ -299,17 +299,29 @@ Client::Client(const Options &options): // Add the local data directory to PhysicsFS search path resman->addToSearchPath(mLocalDataDir, false); + std::string iconFile = branding.getValue("appIcon", "icons/mana"); +#ifdef WIN32 + iconFile += ".ico"; +#else + iconFile += ".png"; +#endif + iconFile = resman->getPath(iconFile); + logger->log("Loading icon from file: %s", iconFile.c_str()); #ifdef WIN32 static SDL_SysWMinfo pInfo; SDL_GetWMInfo(&pInfo); - HICON icon = LoadIcon(GetModuleHandle(NULL), "A"); + // Attempt to load icon from .ico file + HICON icon = (HICON) LoadImage(NULL, + iconFile.c_str(), + IMAGE_ICON, 64, 64, LR_LOADFROMFILE); + // If it's failing, we load the default resource file. + if (!icon) + icon = LoadIcon(GetModuleHandle(NULL), "A"); + if (icon) - { SetClassLong(pInfo.window, GCL_HICON, (LONG) icon); - } #else - mIcon = IMG_Load(resman->getPath( - branding.getValue("appIcon", "icons/mana.png")).c_str()); + mIcon = IMG_Load(iconFile.c_str()); if (mIcon) { SDL_SetAlpha(mIcon, SDL_SRCALPHA, SDL_ALPHA_OPAQUE); |