From 11f07f7040a6f8bf2d46cc576800921f4893ebc3 Mon Sep 17 00:00:00 2001 From: casey langen Date: Sat, 25 Feb 2017 21:32:18 -0800 Subject: [PATCH] Added a (crappy) app icon to win32 musikbox build. --- .gitignore | 1 + src/musikbox/Main.cpp | 9 +++- src/musikbox/cursespp/App.cpp | 15 +++++- src/musikbox/cursespp/App.h | 8 +++ .../{app/util => cursespp}/Win32Util.cpp | 50 ++++++++++++------ .../{app/util => cursespp}/Win32Util.h | 13 +++-- src/musikbox/icon.ico | Bin 0 -> 14830 bytes src/musikbox/musikbox.rc | Bin 0 -> 3264 bytes src/musikbox/musikbox.vcxproj | 11 +++- src/musikbox/musikbox.vcxproj.filters | 19 ++++--- src/musikbox/resource.h | Bin 0 -> 904 bytes 11 files changed, 90 insertions(+), 36 deletions(-) rename src/musikbox/{app/util => cursespp}/Win32Util.cpp (72%) rename src/musikbox/{app/util => cursespp}/Win32Util.h (91%) create mode 100644 src/musikbox/icon.ico create mode 100644 src/musikbox/musikbox.rc create mode 100644 src/musikbox/resource.h diff --git a/.gitignore b/.gitignore index 728b0fa26..aa78714af 100644 --- a/.gitignore +++ b/.gitignore @@ -10,6 +10,7 @@ **/Release **/Debug **/*.deb +**/*.aps .vs .vscode bin diff --git a/src/musikbox/Main.cpp b/src/musikbox/Main.cpp index 5df2d7344..b62aea2cb 100644 --- a/src/musikbox/Main.cpp +++ b/src/musikbox/Main.cpp @@ -64,7 +64,8 @@ #include #ifdef WIN32 - #include + #include + #include "resource.h" #undef MOUSE_MOVED #endif @@ -126,6 +127,10 @@ int main(int argc, char* argv[]) { App app("musikbox"); /* must be before layout creation */ +#ifdef WIN32 + app.SetIcon(IDI_ICON1); +#endif + auto prefs = Preferences::ForComponent( musik::core::prefs::components::Settings); @@ -172,7 +177,7 @@ int main(int argc, char* argv[]) app.Run(mainLayout); #ifdef WIN32 - musik::box::win32::HideMainWindow(); + win32::HideMainWindow(); #endif } diff --git a/src/musikbox/cursespp/App.cpp b/src/musikbox/cursespp/App.cpp index baf0b781f..13cf56f40 100755 --- a/src/musikbox/cursespp/App.cpp +++ b/src/musikbox/cursespp/App.cpp @@ -45,7 +45,7 @@ #include #ifdef WIN32 -#include +#include "Win32Util.h" #endif #ifndef WIN32 @@ -73,7 +73,9 @@ static void resizedHandler(int signal) { App::App(const std::string& title) { this->minWidth = this->minHeight = 0; -#ifndef WIN32 +#ifdef WIN32 + this->iconId = 0; +#else setlocale(LC_ALL, ""); std::signal(SIGWINCH, resizedHandler); std::signal(SIGHUP, hangupHandler); @@ -122,6 +124,15 @@ void App::SetMinimumSize(int minWidth, int minHeight) { this->minHeight = std::max(0, minHeight); } +#ifdef WIN32 +void App::SetIcon(int resourceId) { + this->iconId = resourceId; + if (win32::GetMainWindow()) { + win32::SetIcon(resourceId); + } +} +#endif + void App::OnResized() { int cx = Screen::GetWidth(); int cy = Screen::GetHeight(); diff --git a/src/musikbox/cursespp/App.h b/src/musikbox/cursespp/App.h index 7a7da0936..303f7c1fc 100755 --- a/src/musikbox/cursespp/App.h +++ b/src/musikbox/cursespp/App.h @@ -55,6 +55,10 @@ namespace cursespp { void SetMinimumSize(int width, int height); bool IsOverlayVisible() { return this->state.overlay != nullptr; } +#ifdef WIN32 + void SetIcon(int resourceId); +#endif + void Run(ILayoutPtr layout); void ChangeLayout(ILayoutPtr layout); @@ -89,5 +93,9 @@ namespace cursespp { ResizeHandler resizeHandler; bool disableCustomColors; int minWidth, minHeight; + +#ifdef WIN32 + int iconId; +#endif }; } diff --git a/src/musikbox/app/util/Win32Util.cpp b/src/musikbox/cursespp/Win32Util.cpp similarity index 72% rename from src/musikbox/app/util/Win32Util.cpp rename to src/musikbox/cursespp/Win32Util.cpp index ffae34fcf..1317072bd 100644 --- a/src/musikbox/app/util/Win32Util.cpp +++ b/src/musikbox/cursespp/Win32Util.cpp @@ -63,28 +63,44 @@ static void findMainWindow() { } } -namespace musik { - namespace box { - namespace win32 { - void ShowMainWindow() { - findMainWindow(); - if (mainWindow) { - ShowWindow(mainWindow, SW_SHOWNORMAL); - } - } +static HICON loadIcon(int resourceId, int size) { + return (HICON) ::LoadImageA( + GetModuleHandle(nullptr), + MAKEINTRESOURCEA(resourceId), + IMAGE_ICON, + size, + size, + 0); +} - void HideMainWindow() { - findMainWindow(); - if (mainWindow) { - ShowWindow(mainWindow, SW_HIDE); - } +namespace cursespp { + namespace win32 { + void ShowMainWindow() { + findMainWindow(); + if (mainWindow) { + ShowWindow(mainWindow, SW_SHOWNORMAL); } + } - HWND GetMainWindow() { - findMainWindow(); - return mainWindow; + void HideMainWindow() { + findMainWindow(); + if (mainWindow) { + ShowWindow(mainWindow, SW_HIDE); } } + + HWND GetMainWindow() { + findMainWindow(); + return mainWindow; + } + + void SetIcon(int resourceId) { + const HWND hwnd = GetMainWindow(); + const HICON icon16 = loadIcon(resourceId, 16); + const HICON icon32 = loadIcon(resourceId, 48); + SendMessage(hwnd, WM_SETICON, ICON_SMALL, (LPARAM) icon16); + SendMessage(hwnd, WM_SETICON, ICON_BIG, (LPARAM) icon32); + } } } diff --git a/src/musikbox/app/util/Win32Util.h b/src/musikbox/cursespp/Win32Util.h similarity index 91% rename from src/musikbox/app/util/Win32Util.h rename to src/musikbox/cursespp/Win32Util.h index 1bd8122a4..fda774ad9 100644 --- a/src/musikbox/app/util/Win32Util.h +++ b/src/musikbox/cursespp/Win32Util.h @@ -38,13 +38,12 @@ #ifdef WIN32 -namespace musik { - namespace box { - namespace win32 { - void ShowMainWindow(); - void HideMainWindow(); - HWND GetMainWindow(); - } +namespace cursespp { + namespace win32 { + void ShowMainWindow(); + void HideMainWindow(); + HWND GetMainWindow(); + void SetIcon(int resourceId); } } diff --git a/src/musikbox/icon.ico b/src/musikbox/icon.ico new file mode 100644 index 0000000000000000000000000000000000000000..f56d16bafb296839d9b1870df128d17a7b36a5a4 GIT binary patch literal 14830 zcmeHMJ!n-i6pj`V2cbfRf*`M;PX&=q1-DYcO6lIZiY*84mE zzTW=xdG6JtkcO4N`1qa(S3gk^`T2KGtD;u7@*;5U$6Ko+a5i75SBP5Pau7*NuhKeq z_eNaa>PqI;?~lh$UdFi~s}pY31A|70aBWC1N? z9W7+7Zso6S{ZHP$B{uLGW#wiT39el{b4tslh#rpcX)nywW9koKlnP0(p!2|upIve7V5?^y+{?dzw))iCkhmlQ!Yluir z>{-bEsP8N8_xyC{%8v{A`)SNfpOLsYr;sB;^F*ROr;xM49I^#cS)i{qrYlaU|7cg9 zO?4b`^mZZhPd|3q{^@NTn}gZ@C)56N2UMQvagQ6@cgOr=+_Mz^1FkreboZ!j&v9dY zNWq`y9WH;A_5L=-tM0QD{6qE!f9%uia;qbkf4XiAE6%ls?Udfda3vW z3v(Frmwb3m?BjvD&^eQPuCDb{^4B=Xb6&XhEc3Z<-uUh(pf^qY!6$UKhOuKmb=s6a z&ewN#cB1zUx_zCeeRZ9i$J`I~!Iee1DSznTo&o`PC%!gAb#?et7qajf%pb(iyl=xF z7#s)O{oov)xUsYef89<@uPuMJ&#~xokH)q_X-fXUg#8gh_g~}{<3Sl;8q+(i_CL=4 zPoGb@{%Aj%r2o+FvHNC?t@AM+TF%YK^t$@Lixn%A2lfH_o<637XVmk_9R+`W-{89r z?^?X4z%jH(n^ykphfeXGv+(_O`Q6MhI!^p`Uzm@5clYT(*bl&8xE~@V!jCa4|`l0oi@6-Oo^re`)@N?`J;s3rd^65y2#hy}`nC^-#u)4yo_yfHbQj2&G2viu)8 C1j@_+ literal 0 HcmV?d00001 diff --git a/src/musikbox/musikbox.rc b/src/musikbox/musikbox.rc new file mode 100644 index 0000000000000000000000000000000000000000..4c4255c65c19a39bb84d05e7b519f1641909b18a GIT binary patch literal 3264 zcmdUxZ;ui&5XR@ViQl2Z8!sC0&nGzGL?VagfQu$1In6OKoE}He*z`Cp2fD?4u=oEBI^Z z7~Tphy$!t)eaA?vO>K!x#U9!NcBy(=hMO=uLwf9GOMChi`)nmIEzPo*n|M8~eQxip zYdz~*!&>&%hIVBaa2xbH*0v9Dy8JJ#2B%Fw?k^jP*P?ZiI&0#WT^~>I(!%DPe~owK zhaRVX&%ec~>zq^mxPbqHZ}&!ie+OT^e}mqA{}<0=(V`F?8+@fmnsDyZVk3G!u3Ib` zt#jONLjKLTsgxLS_Lw_Q7{xs7(hFIc+F4E%q?w$WdVf8-ms?|2JhxXwRmiC>`O_!6 z>g+ruy4p0Y`<>5b0k}0Fq67BdS$W8!mnT~Er~8yW9*@a1VN7Vkh&;U6 zkG6P6#X^;=HL_6SNF9+f;d z@zsGU2EFF1t?U|2=RK@yLobj+a!C`?jXa`Fy*18{vv!4-ZjOwqiWJRYcgk3n=pB_k z($T6jnyQm;+u1oZyp6KB1!lECJJk`&sADb49h1q|GbD zALA-gVa3Gz;?R4(pI^l~QP!H6Pm%s@WhcBlUfD%IX00ezUltz5(}YY_zV6p?`}eMu FegXEGgcSe) literal 0 HcmV?d00001 diff --git a/src/musikbox/musikbox.vcxproj b/src/musikbox/musikbox.vcxproj index b0b3f1b9d..f8c113cf4 100755 --- a/src/musikbox/musikbox.vcxproj +++ b/src/musikbox/musikbox.vcxproj @@ -140,7 +140,6 @@ - @@ -165,6 +164,7 @@ + @@ -192,7 +192,6 @@ - @@ -230,7 +229,9 @@ + + @@ -246,6 +247,12 @@ {01869283-4cc3-4da4-a06c-3df6a0de98cc} + + + + + + diff --git a/src/musikbox/musikbox.vcxproj.filters b/src/musikbox/musikbox.vcxproj.filters index 2278d2d5d..54fe15ca2 100755 --- a/src/musikbox/musikbox.vcxproj.filters +++ b/src/musikbox/musikbox.vcxproj.filters @@ -120,9 +120,6 @@ app\overlay - - app\util - app\overlay @@ -132,6 +129,9 @@ app\overlay + + cursespp + @@ -297,9 +297,6 @@ cursespp - - app\util - app\overlay @@ -309,6 +306,10 @@ app\overlay + + + cursespp + @@ -333,4 +334,10 @@ {a84f242d-d70b-49e9-975e-63fc73954a2b} + + + + + + \ No newline at end of file diff --git a/src/musikbox/resource.h b/src/musikbox/resource.h new file mode 100644 index 0000000000000000000000000000000000000000..4048786496432701c9d77c66d35efef3cd5548cf GIT binary patch literal 904 zcmb7?-A=+l5QWdRiSMupmnI^{7pN^4M5xA6qF0R|H7H8bQh#E6b@iJrL?lQglkLt- z&Yn3l)348_ntI1#ohwtMwk|kv?Zpb!AxiXt?Q0KgQ%*fiG*Y3NN=~jhxdFLSm2Na8 z3Uz=v-D#{RPCI^=Qjy(_ zn$5VZo1uE>@|IT{OYQ}V(+ zL-jrW2yD5+=XFoOdp@Ut=_l$dt<~E`I#eCd!5Mpq>bDJg%;Em~%_Z0XwDsN9H7p6= zo=(Yh@i)yYThz{Y)7BLlG8s?8n-nj^&rlM;km9e;(&lyiZ)V#`4-2RkZRK@3f!WM& rV|~w?bo-6>QEmNhQ|(~gjoVMscCnq;=JWFpHQ2sw%r@tz|2zH$&n