From 7f0c866f486eab549e25853bedd2e96b1b211773 Mon Sep 17 00:00:00 2001 From: Dirk Hohndel Date: Sat, 29 Oct 2011 09:14:15 -0700 Subject: [PATCH] Get icons working correctly under Windows With this we are able to include both a separate .ico file that the program can load at runtime and a .res file (that is created from the .rc file, both in the packaging/windows directory) that is linked into the executable and makes the Windows Explorer show the correct icon for subsurface. Signed-off-by: Dirk Hohndel --- Makefile | 3 ++- gtk-gui.c | 6 +++++- packaging/windows/subsurface.ico | Bin 0 -> 16958 bytes packaging/windows/subsurface.rc | 25 +++++++++++++++++++++++++ packaging/windows/subsurface.res | Bin 0 -> 18056 bytes 5 files changed, 32 insertions(+), 2 deletions(-) create mode 100644 packaging/windows/subsurface.ico create mode 100644 packaging/windows/subsurface.rc create mode 100644 packaging/windows/subsurface.res diff --git a/Makefile b/Makefile index cc353f7..5b5adb0 100644 --- a/Makefile +++ b/Makefile @@ -34,6 +34,7 @@ ifeq ($(CC), i686-w64-mingw32-gcc) LIBDIVECOMPUTERDIR = /usr/i686-w64-mingw32/sys-root/mingw/include/libdivecomputer LIBDIVECOMPUTERINCLUDES = `$(PKGCONFIG) --cflags libdivecomputer` LIBDIVECOMPUTERARCHIVE = `$(PKGCONFIG) --libs libdivecomputer` + RESFILE = packaging/windows/subsurface.res else libdc-local := $(wildcard /usr/local/lib/libdivecomputer.a) @@ -76,7 +77,7 @@ LIBS = $(LIBXML2) $(LIBGTK) $(LIBDIVECOMPUTER) -lpthread OBJS = main.o dive.o profile.o info.o equipment.o divelist.o \ parse-xml.o save-xml.o libdivecomputer.o print.o uemis.o \ - gtk-gui.o + gtk-gui.o $(RESFILE) $(NAME): $(OBJS) $(CC) $(LDFLAGS) -o $(NAME) $(OBJS) $(LIBS) diff --git a/gtk-gui.c b/gtk-gui.c index ea3f646..b1bc82a 100644 --- a/gtk-gui.c +++ b/gtk-gui.c @@ -552,7 +552,11 @@ static void about_dialog(GtkWidget *w, gpointer data) GdkPixbuf *logo = NULL; if (need_icon) { +#ifndef WIN32 GtkWidget *image = gtk_image_new_from_file("subsurface.svg"); +#else + GtkWidget *image = gtk_image_new_from_file("subsurface.ico"); +#endif if (image) { logo = gtk_image_get_pixbuf(GTK_IMAGE(image)); @@ -823,7 +827,7 @@ void init_ui(int argc, char **argv) #ifndef WIN32 gtk_window_set_icon_from_file(GTK_WINDOW(win), "subsurface.svg", NULL); #else - gtk_window_set_icon_from_file(GTK_WINDOW(win), "subsurface.bmp", NULL); + gtk_window_set_icon_from_file(GTK_WINDOW(win), "subsurface.ico", NULL); #endif g_signal_connect(G_OBJECT(win), "delete-event", G_CALLBACK(on_delete), NULL); g_signal_connect(G_OBJECT(win), "destroy", G_CALLBACK(on_destroy), NULL); diff --git a/packaging/windows/subsurface.ico b/packaging/windows/subsurface.ico new file mode 100644 index 0000000000000000000000000000000000000000..fe7d1090b194db5b3bd56113a156d4004f530351 GIT binary patch literal 16958 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 imd}Jb%P~^veEZYir=G(5k&hl9)?*9jX$O9Gt literal 0 HcmV?d00001 diff --git a/packaging/windows/subsurface.rc b/packaging/windows/subsurface.rc new file mode 100644 index 0000000..af79f6d --- /dev/null +++ b/packaging/windows/subsurface.rc @@ -0,0 +1,25 @@ +1 VERSIONINFO +FILEVERSION 1,1,0,0 +PRODUCTVERSION 1,1,0,0 +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "080904E4" + BEGIN + VALUE "CompanyName", "subsurface team" + VALUE "FileDescription", "subsurface dive log" + VALUE "FileVersion", "1.1" + VALUE "InternalName", "subsurface" + VALUE "LegalCopyright", "Linus Torvalds, Dirk Hohndel and others" + VALUE "OriginalFilename", "subsurface.exe" + VALUE "ProductName", "subsurface" + VALUE "ProductVersion", "1.1" + END + END + + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x809, 1252 + END +END +ID ICON "subsurface.ico" \ No newline at end of file diff --git a/packaging/windows/subsurface.res b/packaging/windows/subsurface.res new file mode 100644 index 0000000000000000000000000000000000000000..616cf5ea91f052151757396a3e7e37e11f47f931 GIT binary patch literal 18056 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 literal 0 HcmV?d00001 -- 2.43.0