Use GResource.
This commit is contained in:
parent
f1f9fd3f4d
commit
ec662df5e7
6 changed files with 33 additions and 48 deletions
|
@ -53,6 +53,12 @@ AM_CONDITIONAL([WITH_PRCTL], [test x$ac_cv_header_linux_prctl_h = xyes])
|
|||
|
||||
AC_PATH_PROG([DESKTOP_FILE_VALIDATE], [desktop-file-validate], [/bin/true])
|
||||
|
||||
dnl ###########################################################################
|
||||
dnl GResources
|
||||
dnl ###########################################################################
|
||||
|
||||
AC_PATH_PROG([GLIB_COMPILE_RESOURCES],[glib-compile-resources])
|
||||
|
||||
dnl ###########################################################################
|
||||
dnl Internationalization
|
||||
dnl ###########################################################################
|
||||
|
|
|
@ -10,8 +10,7 @@ appstream_XML = $(appstream_in_files:.appdata.xml.in=.appdata.xml)
|
|||
@APPSTREAM_XML_RULES@
|
||||
@INTLTOOL_XML_RULE@
|
||||
|
||||
uidir = $(pkgdatadir)
|
||||
dist_ui_DATA = \
|
||||
dist_noinst_DATA = \
|
||||
gnome-chess.ui \
|
||||
preferences.ui \
|
||||
promotion-type-selector.ui \
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<?xml version="1.0"?>
|
||||
<interface>
|
||||
<!-- interface-requires gtk+ 3.0 -->
|
||||
<menu id="appmenu">
|
||||
<menu id="app-menu">
|
||||
<section>
|
||||
<item>
|
||||
<attribute name="label" translatable="yes">Preferences</attribute>
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
bin_PROGRAMS = gnome-chess
|
||||
|
||||
BUILT_SOURCES = chess-resources.c
|
||||
|
||||
gnome_chess_SOURCES = \
|
||||
config.vapi \
|
||||
portability.vapi \
|
||||
|
@ -11,7 +13,8 @@ gnome_chess_SOURCES = \
|
|||
chess-engine-cecp.vala \
|
||||
chess-engine-uci.vala \
|
||||
chess-scene.vala \
|
||||
chess-view.vala
|
||||
chess-view.vala \
|
||||
$(BUILT_SOURCES)
|
||||
|
||||
gnome_chess_CFLAGS = \
|
||||
-w
|
||||
|
@ -38,10 +41,15 @@ gnome_chess_VALAFLAGS = \
|
|||
--target-glib=$(GLIB_REQUIRED) \
|
||||
$(top_builddir)/lib/libchess.vapi
|
||||
|
||||
chess-resources.c: $(shell $(GLIB_COMPILE_RESOURCES) --generate-dependencies chess.gresource.xml)
|
||||
$(AM_V_GEN) $(GLIB_COMPILE_RESOURCES) --target=$@ --sourcedir=$(srcdir) --generate-source chess.gresource.xml
|
||||
|
||||
CLEANFILES = \
|
||||
$(patsubst %.vala,%.c,$(filter %.vala, $(SOURCES))) \
|
||||
*_vala.stamp \
|
||||
*.log \
|
||||
*.trs
|
||||
|
||||
EXTRA_DIST = chess.gresource.xml
|
||||
|
||||
-include $(top_srcdir)/git.mk
|
||||
|
|
12
src/chess.gresource.xml
Normal file
12
src/chess.gresource.xml
Normal file
|
@ -0,0 +1,12 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<gresources>
|
||||
<gresource prefix="/org/gnome/chess/ui">
|
||||
<file preprocess="xml-stripblanks" alias="gnome-chess.ui">../data/gnome-chess.ui</file>
|
||||
<file preprocess="xml-stripblanks" alias="preferences.ui">../data/preferences.ui</file>
|
||||
<file preprocess="xml-stripblanks" alias="promotion-type-selector.ui">../data/promotion-type-selector.ui</file>
|
||||
</gresource>
|
||||
<gresource prefix="/org/gnome/chess/gtk">
|
||||
<file preprocess="xml-stripblanks" alias="menus.ui">../data/menu.ui</file>
|
||||
</gresource>
|
||||
</gresources>
|
||||
|
|
@ -18,8 +18,6 @@ public class ChessApplication : Gtk.Application
|
|||
private int window_height;
|
||||
|
||||
private Settings settings;
|
||||
private Gtk.Builder builder;
|
||||
private Gtk.Builder preferences_builder;
|
||||
private Gtk.ApplicationWindow window;
|
||||
private Gtk.Container view_container;
|
||||
private ChessScene scene;
|
||||
|
@ -129,28 +127,7 @@ public class ChessApplication : Gtk.Application
|
|||
settings = new Settings ("org.gnome.chess");
|
||||
|
||||
add_action_entries (app_entries, this);
|
||||
builder = new Gtk.Builder ();
|
||||
|
||||
try
|
||||
{
|
||||
builder.add_from_file (Path.build_filename (PKGDATADIR, "menu.ui", null));
|
||||
}
|
||||
catch (Error e)
|
||||
{
|
||||
error ("Error loading menu UI: %s", e.message);
|
||||
}
|
||||
|
||||
var app_menu = (Menu) builder.get_object ("appmenu");
|
||||
set_app_menu (app_menu);
|
||||
|
||||
try
|
||||
{
|
||||
builder.add_from_file (Path.build_filename (PKGDATADIR, "gnome-chess.ui", null));
|
||||
}
|
||||
catch (Error e)
|
||||
{
|
||||
warning ("Could not load UI: %s", e.message);
|
||||
}
|
||||
Gtk.Builder builder = new Gtk.Builder.from_resource ("/org/gnome/chess/ui/gnome-chess.ui");
|
||||
|
||||
window = (Gtk.ApplicationWindow) builder.get_object ("gnome_chess_app");
|
||||
window.set_default_size (settings.get_int ("width"), settings.get_int ("height"));
|
||||
|
@ -292,17 +269,7 @@ public class ChessApplication : Gtk.Application
|
|||
|
||||
public PieceType? show_promotion_type_selector ()
|
||||
{
|
||||
Gtk.Builder promotion_type_selector_builder;
|
||||
|
||||
promotion_type_selector_builder = new Gtk.Builder ();
|
||||
try
|
||||
{
|
||||
promotion_type_selector_builder.add_from_file (Path.build_filename (PKGDATADIR, "promotion-type-selector.ui", null));
|
||||
}
|
||||
catch (Error e)
|
||||
{
|
||||
warning ("Could not load promotion type selector UI: %s", e.message);
|
||||
}
|
||||
Gtk.Builder promotion_type_selector_builder = new Gtk.Builder.from_resource ("/org/gnome/chess/ui/promotion-type-selector.ui");
|
||||
|
||||
Gtk.Dialog promotion_type_selector_dialog = promotion_type_selector_builder.get_object ("dialog_promotion_type_selector") as Gtk.Dialog;
|
||||
promotion_type_selector_dialog.transient_for = window;
|
||||
|
@ -1677,15 +1644,8 @@ public class ChessApplication : Gtk.Application
|
|||
return;
|
||||
}
|
||||
|
||||
preferences_builder = new Gtk.Builder ();
|
||||
try
|
||||
{
|
||||
preferences_builder.add_from_file (Path.build_filename (PKGDATADIR, "preferences.ui", null));
|
||||
}
|
||||
catch (Error e)
|
||||
{
|
||||
warning ("Could not load preferences UI: %s", e.message);
|
||||
}
|
||||
Gtk.Builder preferences_builder = new Gtk.Builder.from_resource ("/org/gnome/chess/ui/preferences.ui");
|
||||
|
||||
preferences_dialog = (Gtk.Dialog) preferences_builder.get_object ("preferences");
|
||||
preferences_dialog.transient_for = window;
|
||||
|
||||
|
|
Loading…
Reference in a new issue