X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=macos.c;h=4c856ce03717b652d9a7ae54cfe17809d07c05f5;hb=565736a471e9ba66cbc68ce76c90d5e0c2fa57cf;hp=25f946c81db9a52abad2547286e3f12c3b75e5ad;hpb=b5139aeb22c8a28cac89b7f9a561bd9d4e2bb358;p=ext%2Fsubsurface.git diff --git a/macos.c b/macos.c index 25f946c..4c856ce 100644 --- a/macos.c +++ b/macos.c @@ -2,6 +2,7 @@ /* implements Mac OS X specific functions */ #include "display-gtk.h" #include +#include static CFURLRef fileURL; static CFPropertyListRef propertyList; @@ -94,3 +95,23 @@ const char *subsurface_USB_name() { return "/dev/tty.SLAB_USBtoUART"; } + +#define REL_ICON_PATH "Resources/Subsurface.icns" +const char *subsurface_icon_name() +{ + static char path[1024]; + char *ptr1, *ptr2; + uint32_t size = sizeof(path); /* need extra space to copy icon path */ + if (_NSGetExecutablePath(path, &size) == 0) { + ptr1 = strcasestr(path,"MacOS/subsurface"); + ptr2 = strcasestr(path,"Contents"); + if (ptr1 && ptr2) { + /* we are running as installed app from a bundle */ + if (ptr1 - path < size - strlen(REL_ICON_PATH)) { + strcpy(ptr1,REL_ICON_PATH); + return path; + } + } + } + return "packaging/macosx/Subsurface.icns"; +}