mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
Make icon file name OS helper function
This way we can load the correct icon on the Mac without ugly hacks in the OS independent code. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
parent
a8676438a7
commit
565736a471
5 changed files with 34 additions and 10 deletions
21
macos.c
21
macos.c
|
@ -2,6 +2,7 @@
|
|||
/* implements Mac OS X specific functions */
|
||||
#include "display-gtk.h"
|
||||
#include <CoreFoundation/CoreFoundation.h>
|
||||
#include <mach-o/dyld.h>
|
||||
|
||||
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";
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue