summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Dirk Hohndel <dirk@hohndel.org>2011-10-29 09:14:15 -0700
committerGravatar Dirk Hohndel <dirk@hohndel.org>2011-10-29 09:14:15 -0700
commit7f0c866f486eab549e25853bedd2e96b1b211773 (patch)
tree4c04e9415eaec48ad24e8f0a7ba866ceeab8758e
parent2101f37c1b81840beda99a7b4e87e938f9e52a7a (diff)
downloadsubsurface-7f0c866f486eab549e25853bedd2e96b1b211773.tar.gz
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 <dirk@hohndel.org>
-rw-r--r--Makefile3
-rw-r--r--gtk-gui.c6
-rw-r--r--packaging/windows/subsurface.icobin0 -> 16958 bytes
-rw-r--r--packaging/windows/subsurface.rc25
-rw-r--r--packaging/windows/subsurface.resbin0 -> 18056 bytes
5 files changed, 32 insertions, 2 deletions
diff --git a/Makefile b/Makefile
index cc353f7d2..5b5adb044 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 ea3f646e7..b1bc82a73 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 000000000..fe7d1090b
--- /dev/null
+++ b/packaging/windows/subsurface.ico
Binary files differ
diff --git a/packaging/windows/subsurface.rc b/packaging/windows/subsurface.rc
new file mode 100644
index 000000000..af79f6de9
--- /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 000000000..616cf5ea9
--- /dev/null
+++ b/packaging/windows/subsurface.res
Binary files differ