From 1f84c507a058f5baa01a632ce2478fa31854907d Mon Sep 17 00:00:00 2001
From: TingPing <tingping@tingping.se>
Date: Fri, 27 Sep 2013 21:56:13 -0400
Subject: Reorganize files and migrate images to gresource

---
 src/fe-gtk/Makefile.am            |  8 +++--
 src/fe-gtk/fe-gtk.vcxproj         | 14 ++++++--
 src/fe-gtk/fe-gtk.vcxproj.filters | 10 ++++--
 src/fe-gtk/hexchat.rc             |  2 +-
 src/fe-gtk/pixmaps.c              | 70 +++++++++++++++------------------------
 5 files changed, 52 insertions(+), 52 deletions(-)

(limited to 'src/fe-gtk')

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");
 }
-- 
cgit 1.4.1

t: bold } /* Name.Function.Magic */
.highlight .vc { color: #336699 } /* Name.Variable.Class */
.highlight .vg { color: #dd7700 } /* Name.Variable.Global */
.highlight .vi { color: #3333bb } /* Name.Variable.Instance */
.highlight .vm { color: #336699 } /* Name.Variable.Magic */
.highlight .il { color: #0000DD; font-weight: bold } /* Literal.Number.Integer.Long */</style><div class="highlight"><pre><span></span>EXPORTS<span class="w"> </span>
xchat_plugin_init<span class="w"> </span>
xchat_plugin_deinit<span class="w"> </span>
</pre></div>
</code></pre></td></tr></table>
</div> <!-- class=content -->
<div class='footer'>generated by <a href='https://git.causal.agency/cgit-pink/about/'>cgit-pink 1.4.1</a> (<a href='https://git-scm.com/'>git 2.36.1</a>) at 2024-11-10 09:43:34 +0000</div>
</div> <!-- id=cgit -->
</body>
</html>
