summary refs log tree commit diff stats
path: root/src/fe-gtk
diff options
context:
space:
mode:
Diffstat (limited to 'src/fe-gtk')
-rw-r--r--src/fe-gtk/Makefile.am8
-rw-r--r--src/fe-gtk/fe-gtk.vcxproj14
-rw-r--r--src/fe-gtk/fe-gtk.vcxproj.filters10
-rw-r--r--src/fe-gtk/hexchat.rc2
-rw-r--r--src/fe-gtk/pixmaps.c70
5 files changed, 52 insertions, 52 deletions
diff --git a/src/fe-gtk/Makefile.am b/src/fe-gtk/Makefile.am
index 88e3dfea..9ae2d084 100644
--- a/src/fe-gtk/Makefile.am
+++ b/src/fe-gtk/Makefile.am
@@ -11,7 +11,8 @@ EXTRA_DIST = \
 	chanview-tree.c custom-list.h editlist.h fe-gtk.h fkeys.h gtkutil.h joind.h \
 	maingui.h menu.h notifygui.h palette.h pixmaps.h \
 	plugin-tray.h plugingui.c plugingui.h rawlog.h sexy-iso-codes.h \
-	sexy-spell-entry.h sexy-marshal.h textgui.h urlgrab.h userlistgui.h xtext.h
+	sexy-spell-entry.h sexy-marshal.h textgui.h urlgrab.h userlistgui.h xtext.h \
+	../../data/hexchat.gresource.xml
 
 if DO_PLUGIN
 plugingui_c = plugingui.c
@@ -25,5 +26,8 @@ endif
 hexchat_SOURCES = ascii.c banlist.c chanlist.c chanview.c custom-list.c \
 	dccgui.c editlist.c fe-gtk.c fkeys.c gtkutil.c ignoregui.c joind.c menu.c \
 	maingui.c notifygui.c palette.c pixmaps.c plugin-tray.c $(plugingui_c) \
-	rawlog.c servlistgui.c setup.c $(sexy_spell) textgui.c \
+	rawlog.c resources.c servlistgui.c setup.c $(sexy_spell) textgui.c \
 	urlgrab.c userlistgui.c xtext.c
+
+resources.c: ../../data/hexchat.gresource.xml $(shell $(GLIB_COMPILE_RESOURCES) --sourcedir=../../data --generate-dependencies ../../data/hexchat.gresource.xml)
+	$(AM_V_GEN) $(GLIB_COMPILE_RESOURCES) --target=$@ --sourcedir=../../data --generate-source $<
diff --git a/src/fe-gtk/fe-gtk.vcxproj b/src/fe-gtk/fe-gtk.vcxproj
index a7c40a19..73526766 100644
--- a/src/fe-gtk/fe-gtk.vcxproj
+++ b/src/fe-gtk/fe-gtk.vcxproj
@@ -22,13 +22,11 @@
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">

     <ConfigurationType>Application</ConfigurationType>

     <UseDebugLibraries>false</UseDebugLibraries>

-    <WholeProgramOptimization>true</WholeProgramOptimization>

     <CharacterSet>MultiByte</CharacterSet>

   </PropertyGroup>

   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">

     <ConfigurationType>Application</ConfigurationType>

     <UseDebugLibraries>false</UseDebugLibraries>

-    <WholeProgramOptimization>true</WholeProgramOptimization>

     <CharacterSet>MultiByte</CharacterSet>

   </PropertyGroup>

   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />

@@ -97,6 +95,12 @@
       <EntryPointSymbol>mainCRTStartup</EntryPointSymbol>

     </Link>

   </ItemDefinitionGroup>

+  <ItemDefinitionGroup>

+    <PreBuildEvent>

+      <Command>$(DepsRoot)\bin\glib-compile-resources.exe --generate-source --sourcedir $(DataDir) --target "$(ProjectDir)resources.c" "$(DataDir)hexchat.gresource.xml"</Command>

+      <Message>Build gresource file</Message>

+    </PreBuildEvent>

+  </ItemDefinitionGroup>

   <ItemGroup>

     <ClInclude Include="ascii.h" />

     <ClInclude Include="banlist.h" />

@@ -147,6 +151,7 @@
     <ClCompile Include="plugin-tray.c" />

     <ClCompile Include="plugingui.c" />

     <ClCompile Include="rawlog.c" />

+    <ClCompile Include="resources.c" />

     <ClCompile Include="servlistgui.c" />

     <ClCompile Include="setup.c" />

     <ClCompile Include="sexy-iso-codes.c" />

@@ -164,7 +169,10 @@
     <ResourceCompile Include="hexchat.rc" />

   </ItemGroup>

   <ItemGroup>

-    <None Include="..\..\share\icons\hexchat.ico" />

+    <None Include="..\..\data\icons\hexchat.ico" />

+  </ItemGroup>

+  <ItemGroup>

+    <Xml Include="..\..\data\hexchat.gresource.xml" />

   </ItemGroup>

   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />

   <ImportGroup Label="ExtensionTargets">

diff --git a/src/fe-gtk/fe-gtk.vcxproj.filters b/src/fe-gtk/fe-gtk.vcxproj.filters
index e1de7844..765e8cba 100644
--- a/src/fe-gtk/fe-gtk.vcxproj.filters
+++ b/src/fe-gtk/fe-gtk.vcxproj.filters
@@ -185,6 +185,9 @@
     <ClCompile Include="xtext.c">

       <Filter>Source Files</Filter>

     </ClCompile>

+    <ClCompile Include="resources.c">

+      <Filter>Source Files</Filter>

+    </ClCompile>

   </ItemGroup>

   <ItemGroup>

     <Manifest Include="hexchat.exe.manifest">

@@ -197,8 +200,11 @@
     </ResourceCompile>

   </ItemGroup>

   <ItemGroup>

-    <None Include="..\..\share\icons\hexchat.ico">

+    <None Include="..\..\data\icons\hexchat.ico">

       <Filter>Resource Files</Filter>

     </None>

   </ItemGroup>

-</Project>
\ No newline at end of file
+  <ItemGroup>

+    <Xml Include="..\..\data\hexchat.gresource.xml" />

+  </ItemGroup>

+</Project>

diff --git a/src/fe-gtk/hexchat.rc b/src/fe-gtk/hexchat.rc
index 9b1018e0..789aa26e 100644
--- a/src/fe-gtk/hexchat.rc
+++ b/src/fe-gtk/hexchat.rc
@@ -2,7 +2,7 @@
 #include "../../config-win32.h"

 #include "../../resource.h"

 

-XC_ICON ICON "../../share/icons/hexchat.ico"

+XC_ICON ICON "../../data/icons/hexchat.ico"

 

 VS_VERSION_INFO VERSIONINFO

 	FILEVERSION    COMMA_VERSION

diff --git a/src/fe-gtk/pixmaps.c b/src/fe-gtk/pixmaps.c
index bdd74e1e..cbec6f71 100644
--- a/src/fe-gtk/pixmaps.c
+++ b/src/fe-gtk/pixmaps.c
@@ -25,10 +25,9 @@
 #include "../common/hexchat.h"
 #include "../common/fe.h"
 
+#include <gio/gio.h>
 #include <gdk-pixbuf/gdk-pixbuf.h>
 
-#include "../pixmaps/inline_pngs.h"
-
 GdkPixbuf *pix_ulist_voice;
 GdkPixbuf *pix_ulist_halfop;
 GdkPixbuf *pix_ulist_op;
@@ -84,21 +83,9 @@ pixmap_load_from_file (char *filename)
 	return pix;
 }
 
-#if 0
-#define LOADPIX(vv,pp,ff) \
-	vv = gdk_pixbuf_new_from_file (HEXCHATSHAREDIR"/hexchat/"ff, 0); \
-	if (!vv) \
-		vv = gdk_pixbuf_new_from_inline (-1, pp, FALSE, 0);
-
-#define LOADPIX_DISKONLY(vv,ff) \
-	vv = gdk_pixbuf_new_from_file (HEXCHATSHAREDIR"/hexchat/"ff, 0);
-
-#define EXT ".png"
-#endif
-
 /* load custom icons from <config>/icons, don't mess in system folders */
 static GdkPixbuf *
-load_pixmap (const char *filename, const char *name, int has_inline)
+load_pixmap (const char *filename)
 {
 	gchar *path;
 	GdkPixbuf *pixbuf;
@@ -107,45 +94,40 @@ load_pixmap (const char *filename, const char *name, int has_inline)
 	pixbuf = gdk_pixbuf_new_from_file (path, 0);
 	g_free (path);
 
-	if (has_inline && !pixbuf && name)
+	if (!pixbuf)
 	{
-		pixbuf = gdk_pixbuf_new_from_inline (-1, name, FALSE, 0);
+		path = g_strdup_printf ("/icons/%s.png", filename);
+		pixbuf = gdk_pixbuf_new_from_resource (path, NULL);
+		g_free (path);
 	}
 
+	g_warn_if_fail (pixbuf != NULL);
+
 	return pixbuf;
 }
 
 void
 pixmaps_init (void)
 {
-	/* userlist icons, with inlined defaults */
-	pix_ulist_voice = load_pixmap ("ulist_voice", png_ulist_voice, 1);
-	pix_ulist_halfop = load_pixmap ("ulist_halfop", png_ulist_halfop, 1);
-	pix_ulist_op = load_pixmap ("ulist_op", png_ulist_op, 1);
-	pix_ulist_owner = load_pixmap ("ulist_owner", png_ulist_owner, 1);
-	pix_ulist_founder = load_pixmap ("ulist_founder", png_ulist_founder, 1);
-	pix_ulist_netop = load_pixmap ("ulist_netop", png_ulist_netop, 1);
-
-	/* tray icons, with inlined defaults */
-	pix_tray_fileoffer = load_pixmap ("tray_fileoffer", png_tray_fileoffer, 1);
-	pix_tray_highlight = load_pixmap ("tray_highlight", png_tray_highlight, 1);
-	pix_tray_message = load_pixmap ("tray_message", png_tray_message, 1);
-
-#if 0
-	/* treeview icons, no defaults, load from disk only */
-	pix_tree_channel = load_pixmap ("tree_channel", NULL, 0);
-	pix_tree_dialog = load_pixmap ("tree_dialog", NULL, 0);
-	pix_tree_server = load_pixmap ("tree_server", NULL, 0);
-	pix_tree_util = load_pixmap ("tree_util", NULL, 0);
-#endif
-	/* provide inline defaults for these coz they are nice! */
-	pix_tree_channel = load_pixmap ("tree_channel", png_tree_channel, 1);
-	pix_tree_dialog = load_pixmap ("tree_dialog", png_tree_dialog, 1);
-	pix_tree_server = load_pixmap ("tree_server", png_tree_server, 1);
-	pix_tree_util = load_pixmap ("tree_util", png_tree_util, 1);
+	pix_ulist_voice = load_pixmap ("ulist_voice");
+	pix_ulist_halfop = load_pixmap ("ulist_halfop");
+	pix_ulist_op = load_pixmap ("ulist_op");
+	pix_ulist_owner = load_pixmap ("ulist_owner");
+	pix_ulist_founder = load_pixmap ("ulist_founder");
+	pix_ulist_netop = load_pixmap ("ulist_netop");
+
+	pix_tray_fileoffer = load_pixmap ("tray_fileoffer");
+	pix_tray_highlight = load_pixmap ("tray_highlight");
+	pix_tray_message = load_pixmap ("tray_message");
+
+	pix_tree_channel = load_pixmap ("tree_channel");
+	pix_tree_dialog = load_pixmap ("tree_dialog");
+	pix_tree_server = load_pixmap ("tree_server");
+	pix_tree_util = load_pixmap ("tree_util");
 
 	/* non-replaceable book pixmap */
-	pix_book = gdk_pixbuf_new_from_inline (-1, png_book, FALSE, 0);
+	pix_book = gdk_pixbuf_new_from_resource ("/icons/book.png", NULL);
+
 	/* used in About window, tray icon and WindowManager icon. */
-	pix_hexchat = load_pixmap ("hexchat", png_hexchat, 1);
+	pix_hexchat = load_pixmap ("hexchat");
 }