From 77c3dabf7957398d25864e40f476c06104b38148 Mon Sep 17 00:00:00 2001 From: EnderIce2 Date: Mon, 13 May 2024 08:28:03 +0300 Subject: [PATCH] Enable Visual Styles --- .gitignore | 3 +- Makefile | 11 +++---- bridge.ico | Bin 0 -> 16446 bytes bridge.manifest | 32 ++++++++++++++++++++ bridge.rc | 44 ++++++++++++++++++++++++++++ docs/assets/gui.png | Bin 5664 -> 10694 bytes gui.c | 70 ++++++++++++++++++++++++++++++-------------- main.c | 5 ++++ 8 files changed, 135 insertions(+), 30 deletions(-) create mode 100644 bridge.ico create mode 100644 bridge.manifest create mode 100644 bridge.rc diff --git a/.gitignore b/.gitignore index 0393442..41b749b 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ *.o -*.exe \ No newline at end of file +*.exe +*.res diff --git a/Makefile b/Makefile index 385f538..c21b5f1 100644 --- a/Makefile +++ b/Makefile @@ -2,23 +2,20 @@ C_SOURCES = $(shell find ./ -type f -name '*.c') C_OBJECTS = $(C_SOURCES:.c=.o) CFLAGS = -std=c17 -Wno-int-conversion -LFLAGS = +LFLAGS = -lgdi32 # DBGFLAGS = -Wl,--export-all-symbols -g -O0 -ggdb3 -Wall all: build -# This is valid only if this directory is a subdirectory of drive_c -install: build - cp build/bridge.exe ../bridge.exe - build: $(C_OBJECTS) $(info Linking) - x86_64-w64-mingw32-gcc $(C_OBJECTS) $(LFLAGS) $(DBGFLAGS) -o build/bridge.exe + x86_64-w64-mingw32-windres bridge.rc -O coff -o bridge.res + x86_64-w64-mingw32-gcc $(C_OBJECTS) bridge.res $(LFLAGS) $(DBGFLAGS) -o build/bridge.exe %.o: %.c $(info Compiling $<) x86_64-w64-mingw32-gcc $(CFLAGS) $(DBGFLAGS) -c $< -o $@ clean: - rm -f $(C_OBJECTS) build/bridge.exe + rm -f $(C_OBJECTS) build/bridge.exe bridge.res diff --git a/bridge.ico b/bridge.ico new file mode 100644 index 0000000000000000000000000000000000000000..c5979667425589a3a6ed5779987180f8c0ca96e3 GIT binary patch literal 16446 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 literal 0 HcmV?d00001 diff --git a/bridge.manifest b/bridge.manifest new file mode 100644 index 0000000..0aaf206 --- /dev/null +++ b/bridge.manifest @@ -0,0 +1,32 @@ + + + +Simple bridge that allows you to use Discord Rich Presence with Wine games/software. + + + + + + + + + + + + + diff --git a/bridge.rc b/bridge.rc new file mode 100644 index 0000000..cc48ccf --- /dev/null +++ b/bridge.rc @@ -0,0 +1,44 @@ +#include +#include +#include + +#define VER_VERSION 1,1,0,0 +#define VER_VERSION_STR "1.1\0" + +#ifndef DEBUG +#define VER_DEBUG 0 +#else +#define VER_DEBUG VS_FF_DEBUG +#endif + +VS_VERSION_INFO VERSIONINFO +FILEVERSION VER_VERSION +PRODUCTVERSION VER_VERSION +FILEFLAGSMASK VS_FFI_FILEFLAGSMASK +FILEOS VOS_NT_WINDOWS32 +FILETYPE VFT_APP +FILESUBTYPE VFT2_UNKNOWN +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "040904E4" + BEGIN + VALUE "FileDescription", "Simple bridge that allows you to use Discord Rich Presence with Wine games/software." + VALUE "FileVersion", VER_VERSION_STR + VALUE "InternalName", "bridge" + VALUE "LegalCopyright", "Copyright (c) 2024 EnderIce2" + VALUE "OriginalFilename", "bridge.exe" + VALUE "ProductName", "rpc-bridge" + VALUE "ProductVersion", VER_VERSION_STR + END + END + + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x409, 1252 + END +END + +IDI_ICON_128 ICON "bridge.ico" + +CREATEPROCESS_MANIFEST_RESOURCE_ID RT_MANIFEST bridge.manifest diff --git a/docs/assets/gui.png b/docs/assets/gui.png index 6f7270f5a00501a8085dcf0bc83a73380578b7db..fcd71038ff1f28b00995ec5988240772746c4d2a 100644 GIT binary patch literal 10694 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 literal 5664 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

mhx`QelP-ujFAc7*9Vt8=Lj^Q8!D= zrE8jx!reL-RKeR6Qw;e{Oc-A0w0%7VP*SoJlTuO&CJNSpFT9&ISR8F^6kQZJ4BHsTL9hHiIVN2*9%89XOl{w z*67<-Em`%mr+GCmrgu;Id8swFR!$xaoKu~JDjStXpvrF`H#b1b@W-7ygqrS|tmE;krXshc+UU0l&yQiV! z*qy9?_V%ABL{m{Wo#P$Sq23%O~S&wnXj`-T=Mm9V|4)OBx$1}`+W9?=)+>|W%LD1`=!hu)_;oB`}xdcDb> zX^AI87f>$hlN!0qGwxudT=H9{0ut>Jb8Y%EHf z_p32+=NAGx0mAl9V^^N|?Se8%rT9IkuSAA7dV}%n8f9Rrb>@BBPmA4l%g)|6P)KxA z&AjF)!HxlMjZL9piiD@K0aN-SQW>uF+s7Pho;UiXLPc|x76vA6A52Os!hKi1;Vb4v zAUrWuvhjRX@$=9jn{AWqqdfNlX z%9m>+IG{3vdKZ5fY$G0dWx|2FWiH346-MCQA)uV>6Qp{Li3;ddn|RmS^)~ zKeH`{p>GsIQwP1(v<*F$0)F-isk)$awBnt;K0-`gd6u3vmebnaNM~_2C$UzUDvX=F zW5|n~5O@dSngwwnbk69@7jL|?^GgQ1ysnNnXv50$LS)vDJ$Jv^@lTR{kYbK=_6ij` z6G-IHv+A&&R$=f9k$$kTu|Wy7B>(W&eyIGVSBt9ZZWyw4i)74;1X<7=T*&PDNHVAL z8TO$jN_1;&CSc7GRxrhyyIjS<1dD|rcB7#0E$_9y`&e=0olqOrC>-?QOB^5R4ABur z;Bd}t^l}hKb8HVt*qSvnX(hIch`4313TK?|FFvOjH$F*dj@G$R{p2N-uqhzJCc_}~ zo{+R@b8|CFDn5{Urg4Wf)G9E(^w@$PV_-LyP@ycD7++Pj3-;zDtFmI~U{cMlU6TYf z2OAyZ>G*JBS&HtYq66F+X1B>pYbuxtF;4hpEhy~Rfsl1@aZ2Zu%r zl)i(iMwsKybu8Hz{dDt|sOwg!g}BitE2N{MPcPTvv&SA8fIpc@#X3=Ur56=%sxeem`vq#-H$3C2qN5q W;%CgRS}@&PEQNQfGG%W~zWf_Yh1jbA diff --git a/gui.c b/gui.c index a3c25a3..837cdd0 100644 --- a/gui.c +++ b/gui.c @@ -36,8 +36,10 @@ VOID HandleStartButton(BOOL Silent) RedrawWindow(item, NULL, NULL, RDW_ERASE | RDW_INVALIDATE | RDW_FRAME | RDW_ALLCHILDREN); print("Killing %#x, %#lx and waiting for %#lx\n", hIn, hOut, hBridge); - TerminateThread(hIn, 0); - TerminateThread(hOut, 0); + if (hIn != NULL) + TerminateThread(hIn, 0); + if (hOut != NULL) + TerminateThread(hOut, 0); WaitForSingleObject(hBridge, INFINITE); EnableWindow(item, TRUE); @@ -162,6 +164,12 @@ LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) PostQuitMessage(0); ExitProcess(0); break; + case WM_CTLCOLORSTATIC: + { + HDC hdcStatic = (HDC)wParam; + SetBkMode(hdcStatic, TRANSPARENT); + return (INT_PTR)(HBRUSH)GetStockObject(NULL_BRUSH); + } default: return DefWindowProc(hwnd, msg, wParam, lParam); } @@ -204,8 +212,8 @@ VOID SetButtonStyles(INT *btnStartStyle, INT *btnRemoveStyle, INT *btnInstallSty CloseServiceHandle(hSCManager); } -int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, - LPSTR lpCmdLine, int nCmdShow) +int WINAPI __WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, + LPSTR lpCmdLine, int nCmdShow) { INT btnStartStyle, btnRemoveStyle, btnInstallStyle; SetButtonStyles(&btnStartStyle, &btnRemoveStyle, &btnInstallStyle); @@ -228,7 +236,7 @@ int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, assert(RegisterClassEx(&wc)); - hwnd = CreateWindowEx(WS_EX_CLIENTEDGE, + hwnd = CreateWindowEx(WS_EX_WINDOWEDGE, szClassName, "Discord RPC Bridge", WS_OVERLAPPEDWINDOW & ~WS_THICKFRAME, @@ -237,25 +245,43 @@ int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, 400, 150, NULL, NULL, hInstance, NULL); - CreateWindow("STATIC", "Do you want to start, install or remove the bridge?", - WS_CHILD | WS_VISIBLE | SS_CENTER, - 0, 0, 400, 50, - hwnd, (HMENU)4, hInstance, NULL); + HICON hIcon = LoadIcon(hInstance, "IDI_ICON_128"); + SendMessage(hwnd, WM_SETICON, ICON_BIG, (LPARAM)hIcon); - CreateWindow("BUTTON", "Start", - btnStartStyle, - 50, 50, 100, 30, - hwnd, (HMENU)1, hInstance, NULL); + HWND hLbl4 = CreateWindowEx(WS_EX_TRANSPARENT, + "STATIC", "Do you want to start, install or remove the bridge?", + WS_CHILD | WS_VISIBLE | SS_CENTER, + 0, 15, 400, 25, + hwnd, (HMENU)4, hInstance, NULL); - CreateWindow("BUTTON", "Install", - btnInstallStyle, - 150, 50, 100, 30, - hwnd, (HMENU)2, hInstance, NULL); + HWND hbtn1 = CreateWindow("BUTTON", "Start", + btnStartStyle, + 40, 60, 100, 30, + hwnd, (HMENU)1, hInstance, NULL); - CreateWindow("BUTTON", "Remove", - btnRemoveStyle, - 250, 50, 100, 30, - hwnd, (HMENU)3, hInstance, NULL); + HWND hbtn2 = CreateWindow("BUTTON", "Install", + btnInstallStyle, + 150, 60, 100, 30, + hwnd, (HMENU)2, hInstance, NULL); + + HWND hbtn3 = CreateWindow("BUTTON", "Remove", + btnRemoveStyle, + 260, 60, 100, 30, + hwnd, (HMENU)3, hInstance, NULL); + + HDC hDC = GetDC(hwnd); + int nHeight = -MulDiv(11, GetDeviceCaps(hDC, LOGPIXELSY), 72); + + HFONT hFont = CreateFont(nHeight, 0, 0, 0, FW_DONTCARE, FALSE, FALSE, FALSE, ANSI_CHARSET, + OUT_TT_PRECIS, CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY, + DEFAULT_PITCH | FF_DONTCARE, TEXT("Segoe UI")); + ReleaseDC(hwnd, hDC); + + SendMessage(hwnd, WM_SETFONT, hFont, TRUE); + SendMessage(hLbl4, WM_SETFONT, hFont, TRUE); + SendMessage(hbtn1, WM_SETFONT, hFont, TRUE); + SendMessage(hbtn2, WM_SETFONT, hFont, TRUE); + SendMessage(hbtn3, WM_SETFONT, hFont, TRUE); ShowWindow(hwnd, nCmdShow); UpdateWindow(hwnd); @@ -272,5 +298,5 @@ int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, void CreateGUI() { ShowWindow(GetConsoleWindow(), SW_MINIMIZE); - ExitProcess(WinMain(GetModuleHandle(NULL), NULL, GetCommandLine(), SW_SHOWNORMAL)); + ExitProcess(__WinMain(GetModuleHandle(NULL), NULL, GetCommandLine(), SW_SHOWNORMAL)); } diff --git a/main.c b/main.c index 2fa40e9..833c8ae 100644 --- a/main.c +++ b/main.c @@ -327,3 +327,8 @@ int main(int argc, char *argv[]) fclose(g_logFile); ExitProcess(0); } + +int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) +{ + return main(__argc, __argv); +}