summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBenjamin Otte <otte@redhat.com>2011-10-13 01:20:46 -0700
committerBenjamin Otte <otte@redhat.com>2011-10-14 00:31:15 -0700
commit7855806ed806cabe61acd807d6a69b63c6eba45d (patch)
treee381718932a5566468de7691d80fe292fc5e5857
parent3744fb097006ed0f46bc3b02d580e921142bd453 (diff)
gnome: Convert glade to GtkBuilder
This removes the requirement for libglade.
-rw-r--r--configure.ac9
-rw-r--r--po/POTFILES.in3
-rw-r--r--src/gnome/data/Makefile.am8
-rw-r--r--src/gnome/data/connect-multiplayer.glade234
-rw-r--r--src/gnome/data/connect-multiplayer.ui219
-rw-r--r--src/gnome/data/start-multiplayer.glade221
-rw-r--r--src/gnome/data/start-multiplayer.ui205
-rw-r--r--src/gnome/gnome-window.c68
-rw-r--r--tests/Makefile.am2
9 files changed, 471 insertions, 498 deletions
diff --git a/configure.ac b/configure.ac
index cc2f558..64eafb2 100644
--- a/configure.ac
+++ b/configure.ac
@@ -75,7 +75,6 @@ GAME_CFLAGS="-I\$(top_srcdir)"
GAME_LIBS="\$(top_builddir)/libgame/$PACKAGE-$LIBGAME_VERS.la"
dnl Gnome Frontend
-PKG_CHECK_MODULES(GNOME, libglade-2.0)
PKG_CHECK_MODULES(GCONF, gconf-2.0 >= 2.10.0, HAVE_GCONF="yes", HAVE_GCONF="no")
AM_CONDITIONAL(HAVE_GCONF, test "x$HAVE_GCONF" = "xyes")
if test "x$HAVE_GCONF" = "xyes"
@@ -91,12 +90,12 @@ AC_SUBST(GNOME_LIBS)
libgame_datadir="${datadir}/libgame"
AC_SUBST(libgame_datadir)
AC_DEFINE_DIR(LIBGAME_DATADIR, "${libgame_datadir}", [Data Directory])
-gladedir="${datadir}/libgame/glade"
-AC_SUBST(gladedir)
-AC_DEFINE_DIR(GLADEDIR, "${gladedir}", [Glade Resources Directory])
+uidir="${datadir}/libgame/ui"
+AC_SUBST(uidir)
+AC_DEFINE_DIR(UIDIR, "${uidir}", [UI file Resources Directory])
HIGHSCOREDIR="${localstatedir}/games/libgame"
AC_SUBST(HIGHSCOREDIR)
- AC_DEFINE_DIR(HIGHSCOREDIR, "${HIGHSCOREDIR}", [High Scores Directory])
+AC_DEFINE_DIR(HIGHSCOREDIR, "${HIGHSCOREDIR}", [High Scores Directory])
dnl the games
GAME_CFLAGS="$GAME_CFLAGS $LIBGAME_CFLAGS"
diff --git a/po/POTFILES.in b/po/POTFILES.in
index cc54a2e..1a47bc8 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -34,7 +34,8 @@ libgame/game-text.c
libgame/game-types.c
libgame/game-viewport.c
libgame/game-xml.c
-src/gnome/data/start-multiplayer.glade
+src/gnome/data/connect-multiplayer.ui
+src/gnome/data/start-multiplayer.ui
src/gnome/gnome-board.c
src/gnome/gnome-cellrenderercolor.c
src/gnome/gnome-cellrendererkeys.c
diff --git a/src/gnome/data/Makefile.am b/src/gnome/data/Makefile.am
index 69187a5..8f873f6 100644
--- a/src/gnome/data/Makefile.am
+++ b/src/gnome/data/Makefile.am
@@ -1,6 +1,6 @@
-glade_DATA = \
- connect-multiplayer.glade \
- start-multiplayer.glade
+ui_DATA = \
+ connect-multiplayer.ui \
+ start-multiplayer.ui
-EXTRA_DIST = $(glade_DATA)
+EXTRA_DIST = $(ui_DATA)
diff --git a/src/gnome/data/connect-multiplayer.glade b/src/gnome/data/connect-multiplayer.glade
deleted file mode 100644
index a6d851d..0000000
--- a/src/gnome/data/connect-multiplayer.glade
+++ /dev/null
@@ -1,234 +0,0 @@
-<?xml version="1.0" standalone="no"?> <!--*- mode: xml -*-->
-<!DOCTYPE glade-interface SYSTEM "http://glade.gnome.org/glade-2.0.dtd">
-
-<glade-interface>
-
-<widget class="GtkDialog" id="dialog">
- <property name="visible">True</property>
- <property name="title" translatable="yes">Connect to Game</property>
- <property name="type">GTK_WINDOW_TOPLEVEL</property>
- <property name="window_position">GTK_WIN_POS_NONE</property>
- <property name="modal">False</property>
- <property name="resizable">True</property>
- <property name="destroy_with_parent">False</property>
- <property name="icon_name">gtk-network</property>
- <property name="decorated">True</property>
- <property name="skip_taskbar_hint">False</property>
- <property name="skip_pager_hint">False</property>
- <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
- <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
- <property name="focus_on_map">True</property>
- <property name="urgency_hint">False</property>
- <property name="has_separator">True</property>
-
- <child internal-child="vbox">
- <widget class="GtkVBox" id="dialog-vbox1">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">0</property>
-
- <child internal-child="action_area">
- <widget class="GtkHButtonBox" id="dialog-action_area1">
- <property name="visible">True</property>
- <property name="layout_style">GTK_BUTTONBOX_END</property>
-
- <child>
- <widget class="GtkButton" id="button1">
- <property name="visible">True</property>
- <property name="can_default">True</property>
- <property name="can_focus">True</property>
- <property name="label">gtk-cancel</property>
- <property name="use_stock">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="response_id">-6</property>
- </widget>
- </child>
-
- <child>
- <widget class="GtkButton" id="button2">
- <property name="visible">True</property>
- <property name="can_default">True</property>
- <property name="has_default">True</property>
- <property name="can_focus">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="response_id">-3</property>
-
- <child>
- <widget class="GtkAlignment" id="alignment1">
- <property name="visible">True</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xscale">0</property>
- <property name="yscale">0</property>
- <property name="top_padding">0</property>
- <property name="bottom_padding">0</property>
- <property name="left_padding">0</property>
- <property name="right_padding">0</property>
-
- <child>
- <widget class="GtkHBox" id="hbox1">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">2</property>
-
- <child>
- <widget class="GtkImage" id="image1">
- <property name="visible">True</property>
- <property name="stock">gtk-network</property>
- <property name="icon_size">4</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkLabel" id="label1">
- <property name="visible">True</property>
- <property name="label" translatable="yes">_Connect</property>
- <property name="use_underline">True</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
- <property name="width_chars">-1</property>
- <property name="single_line_mode">False</property>
- <property name="angle">0</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
- </widget>
- </child>
- </widget>
- </child>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="pack_type">GTK_PACK_END</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkAlignment" id="alignment2">
- <property name="visible">True</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xscale">0</property>
- <property name="yscale">0</property>
- <property name="top_padding">0</property>
- <property name="bottom_padding">0</property>
- <property name="left_padding">0</property>
- <property name="right_padding">0</property>
-
- <child>
- <widget class="GtkVBox" id="vbox1">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">0</property>
-
- <child>
- <widget class="GtkHBox" id="hbox2">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">6</property>
-
- <child>
- <widget class="GtkLabel" id="label2">
- <property name="visible">True</property>
- <property name="label" translatable="yes">Enter address to connect to:</property>
- <property name="use_underline">False</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_RIGHT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">1</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
- <property name="width_chars">-1</property>
- <property name="single_line_mode">False</property>
- <property name="angle">0</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkEntry" id="entry">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="editable">True</property>
- <property name="visibility">True</property>
- <property name="max_length">0</property>
- <property name="text" translatable="yes">localhost</property>
- <property name="has_frame">True</property>
- <property name="invisible_char">*</property>
- <property name="activates_default">True</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- <property name="pack_type">GTK_PACK_END</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkProgressBar" id="progress">
- <property name="orientation">GTK_PROGRESS_LEFT_TO_RIGHT</property>
- <property name="fraction">0</property>
- <property name="pulse_step">0.10000000149</property>
- <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
- </widget>
- </child>
-</widget>
-
-</glade-interface>
diff --git a/src/gnome/data/connect-multiplayer.ui b/src/gnome/data/connect-multiplayer.ui
new file mode 100644
index 0000000..4f1dfb5
--- /dev/null
+++ b/src/gnome/data/connect-multiplayer.ui
@@ -0,0 +1,219 @@
+<?xml version="1.0"?>
+<!--*- mode: xml -*-->
+<interface>
+ <object class="GtkDialog" id="dialog">
+ <property name="visible">True</property>
+ <property name="title" translatable="yes">Connect to Game</property>
+ <property name="type">GTK_WINDOW_TOPLEVEL</property>
+ <property name="window_position">GTK_WIN_POS_NONE</property>
+ <property name="modal">False</property>
+ <property name="resizable">True</property>
+ <property name="destroy_with_parent">False</property>
+ <property name="icon_name">gtk-network</property>
+ <property name="decorated">True</property>
+ <property name="skip_taskbar_hint">False</property>
+ <property name="skip_pager_hint">False</property>
+ <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
+ <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+ <property name="focus_on_map">True</property>
+ <property name="urgency_hint">False</property>
+ <property name="has_separator">True</property>
+ <child internal-child="vbox">
+ <object class="GtkVBox" id="dialog-vbox1">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">0</property>
+ <child internal-child="action_area">
+ <object class="GtkHButtonBox" id="dialog-action_area1">
+ <property name="visible">True</property>
+ <property name="layout_style">GTK_BUTTONBOX_END</property>
+ <child>
+ <object class="GtkButton" id="button1">
+ <property name="visible">True</property>
+ <property name="can_default">True</property>
+ <property name="can_focus">True</property>
+ <property name="label">gtk-cancel</property>
+ <property name="use_stock">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkButton" id="button2">
+ <property name="visible">True</property>
+ <property name="can_default">True</property>
+ <property name="has_default">True</property>
+ <property name="can_focus">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
+ <child>
+ <object class="GtkAlignment" id="alignment1">
+ <property name="visible">True</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xscale">0</property>
+ <property name="yscale">0</property>
+ <property name="top_padding">0</property>
+ <property name="bottom_padding">0</property>
+ <property name="left_padding">0</property>
+ <property name="right_padding">0</property>
+ <child>
+ <object class="GtkHBox" id="hbox1">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">2</property>
+ <child>
+ <object class="GtkImage" id="image1">
+ <property name="visible">True</property>
+ <property name="stock">gtk-network</property>
+ <property name="icon_size">4</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ </object>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="label1">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">_Connect</property>
+ <property name="use_underline">True</property>
+ <property name="use_markup">False</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</property>
+ </object>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="pack_type">GTK_PACK_END</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkAlignment" id="alignment2">
+ <property name="visible">True</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xscale">0</property>
+ <property name="yscale">0</property>
+ <property name="top_padding">0</property>
+ <property name="bottom_padding">0</property>
+ <property name="left_padding">0</property>
+ <property name="right_padding">0</property>
+ <child>
+ <object class="GtkVBox" id="vbox1">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">0</property>
+ <child>
+ <object class="GtkHBox" id="hbox2">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">6</property>
+ <child>
+ <object class="GtkLabel" id="label2">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">Enter address to connect to:</property>
+ <property name="use_underline">False</property>
+ <property name="use_markup">False</property>
+ <property name="justify">GTK_JUSTIFY_RIGHT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">1</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</property>
+ </object>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkEntry" id="entry">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="editable">True</property>
+ <property name="visibility">True</property>
+ <property name="max_length">0</property>
+ <property name="text" translatable="yes">localhost</property>
+ <property name="has_frame">True</property>
+ <property name="invisible_char">*</property>
+ <property name="activates_default">True</property>
+ </object>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="pack_type">GTK_PACK_END</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkProgressBar" id="progress">
+ <property name="orientation">GTK_PROGRESS_LEFT_TO_RIGHT</property>
+ <property name="fraction">0</property>
+ <property name="pulse_step">0.10000000149</property>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ </object>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ <action-widgets>
+ <action-widget response="-6">button1</action-widget>
+ <action-widget response="-3">button2</action-widget>
+ </action-widgets>
+ </object>
+</interface>
diff --git a/src/gnome/data/start-multiplayer.glade b/src/gnome/data/start-multiplayer.glade
deleted file mode 100644
index 6813dcf..0000000
--- a/src/gnome/data/start-multiplayer.glade
+++ /dev/null
@@ -1,221 +0,0 @@
-<?xml version="1.0" standalone="no"?> <!--*- mode: xml -*-->
-<!DOCTYPE glade-interface SYSTEM "http://glade.gnome.org/glade-2.0.dtd">
-
-<glade-interface>
-
-<widget class="GtkDialog" id="dialog">
- <property name="visible">True</property>
- <property name="title" translatable="yes">Start Multiplayer Game</property>
- <property name="type">GTK_WINDOW_TOPLEVEL</property>
- <property name="window_position">GTK_WIN_POS_NONE</property>
- <property name="modal">False</property>
- <property name="default_width">400</property>
- <property name="default_height">300</property>
- <property name="resizable">True</property>
- <property name="destroy_with_parent">False</property>
- <property name="icon_name">gtk-network</property>
- <property name="decorated">True</property>
- <property name="skip_taskbar_hint">False</property>
- <property name="skip_pager_hint">False</property>
- <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
- <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
- <property name="focus_on_map">True</property>
- <property name="urgency_hint">False</property>
- <property name="has_separator">True</property>
-
- <child internal-child="vbox">
- <widget class="GtkVBox" id="dialog-vbox1">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">0</property>
-
- <child internal-child="action_area">
- <widget class="GtkHButtonBox" id="dialog-action_area1">
- <property name="visible">True</property>
- <property name="layout_style">GTK_BUTTONBOX_END</property>
-
- <child>
- <widget class="GtkButton" id="button1">
- <property name="visible">True</property>
- <property name="can_default">True</property>
- <property name="can_focus">True</property>
- <property name="label">gtk-cancel</property>
- <property name="use_stock">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="response_id">-6</property>
- </widget>
- </child>
-
- <child>
- <widget class="GtkButton" id="start">
- <property name="visible">True</property>
- <property name="can_default">True</property>
- <property name="has_default">True</property>
- <property name="can_focus">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="response_id">-3</property>
-
- <child>
- <widget class="GtkAlignment" id="alignment1">
- <property name="visible">True</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xscale">0</property>
- <property name="yscale">0</property>
- <property name="top_padding">0</property>
- <property name="bottom_padding">0</property>
- <property name="left_padding">0</property>
- <property name="right_padding">0</property>
-
- <child>
- <widget class="GtkHBox" id="hbox1">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">2</property>
-
- <child>
- <widget class="GtkImage" id="image1">
- <property name="visible">True</property>
- <property name="stock">gtk-media-play</property>
- <property name="icon_size">4</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkLabel" id="label1">
- <property name="visible">True</property>
- <property name="label" translatable="yes">_Start Game</property>
- <property name="use_underline">True</property>
- <property name="use_markup">False</property>
- <property name="justify">GTK_JUSTIFY_LEFT</property>
- <property name="wrap">False</property>
- <property name="selectable">False</property>
- <property name="xalign">0.5</property>
- <property name="yalign">0.5</property>
- <property name="xpad">0</property>
- <property name="ypad">0</property>
- <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
- <property name="width_chars">-1</property>
- <property name="single_line_mode">False</property>
- <property name="angle">0</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
- </widget>
- </child>
- </widget>
- </child>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="pack_type">GTK_PACK_END</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkHBox" id="hbox2">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">6</property>
-
- <child>
- <widget class="GtkScrolledWindow" id="scrolledwindow1">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
- <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
- <property name="shadow_type">GTK_SHADOW_IN</property>
- <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
-
- <child>
- <widget class="GtkTreeView" id="players">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="headers_visible">True</property>
- <property name="rules_hint">False</property>
- <property name="reorderable">False</property>
- <property name="enable_search">True</property>
- <property name="fixed_height_mode">False</property>
- <property name="hover_selection">False</property>
- <property name="hover_expand">False</property>
- </widget>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
-
- <child>
- <widget class="GtkVBox" id="vbox1">
- <property name="visible">True</property>
- <property name="homogeneous">False</property>
- <property name="spacing">0</property>
-
- <child>
- <widget class="GtkCheckButton" id="networkgame">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="label" translatable="yes">Network Game</property>
- <property name="use_underline">True</property>
- <property name="relief">GTK_RELIEF_NORMAL</property>
- <property name="focus_on_click">True</property>
- <property name="active">True</property>
- <property name="inconsistent">False</property>
- <property name="draw_indicator">True</property>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="pack_type">GTK_PACK_END</property>
- </packing>
- </child>
-
- <child>
- <placeholder/>
- </child>
-
- <child>
- <placeholder/>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">False</property>
- <property name="fill">False</property>
- </packing>
- </child>
- </widget>
- <packing>
- <property name="padding">0</property>
- <property name="expand">True</property>
- <property name="fill">True</property>
- </packing>
- </child>
- </widget>
- </child>
-</widget>
-
-</glade-interface>
diff --git a/src/gnome/data/start-multiplayer.ui b/src/gnome/data/start-multiplayer.ui
new file mode 100644
index 0000000..6fadb5f
--- /dev/null
+++ b/src/gnome/data/start-multiplayer.ui
@@ -0,0 +1,205 @@
+<?xml version="1.0"?>
+<!--*- mode: xml -*-->
+<interface>
+ <object class="GtkDialog" id="dialog">
+ <property name="visible">True</property>
+ <property name="title" translatable="yes">Start Multiplayer Game</property>
+ <property name="type">GTK_WINDOW_TOPLEVEL</property>
+ <property name="window_position">GTK_WIN_POS_NONE</property>
+ <property name="modal">False</property>
+ <property name="default_width">400</property>
+ <property name="default_height">300</property>
+ <property name="resizable">True</property>
+ <property name="destroy_with_parent">False</property>
+ <property name="icon_name">gtk-network</property>
+ <property name="decorated">True</property>
+ <property name="skip_taskbar_hint">False</property>
+ <property name="skip_pager_hint">False</property>
+ <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
+ <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+ <property name="focus_on_map">True</property>
+ <property name="urgency_hint">False</property>
+ <property name="has_separator">True</property>
+ <child internal-child="vbox">
+ <object class="GtkVBox" id="dialog-vbox1">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">0</property>
+ <child internal-child="action_area">
+ <object class="GtkHButtonBox" id="dialog-action_area1">
+ <property name="visible">True</property>
+ <property name="layout_style">GTK_BUTTONBOX_END</property>
+ <child>
+ <object class="GtkButton" id="button1">
+ <property name="visible">True</property>
+ <property name="can_default">True</property>
+ <property name="can_focus">True</property>
+ <property name="label">gtk-cancel</property>
+ <property name="use_stock">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
+ </object>
+ </child>
+ <child>
+ <object class="GtkButton" id="start">
+ <property name="visible">True</property>
+ <property name="can_default">True</property>
+ <property name="has_default">True</property>
+ <property name="can_focus">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
+ <child>
+ <object class="GtkAlignment" id="alignment1">
+ <property name="visible">True</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xscale">0</property>
+ <property name="yscale">0</property>
+ <property name="top_padding">0</property>
+ <property name="bottom_padding">0</property>
+ <property name="left_padding">0</property>
+ <property name="right_padding">0</property>
+ <child>
+ <object class="GtkHBox" id="hbox1">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">2</property>
+ <child>
+ <object class="GtkImage" id="image1">
+ <property name="visible">True</property>
+ <property name="stock">gtk-media-play</property>
+ <property name="icon_size">4</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ </object>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="label1">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">_Start Game</property>
+ <property name="use_underline">True</property>
+ <property name="use_markup">False</property>
+ <property name="justify">GTK_JUSTIFY_LEFT</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</property>
+ </object>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="pack_type">GTK_PACK_END</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkHBox" id="hbox2">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">6</property>
+ <child>
+ <object class="GtkScrolledWindow" id="scrolledwindow1">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+ <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+ <property name="shadow_type">GTK_SHADOW_IN</property>
+ <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
+ <child>
+ <object class="GtkTreeView" id="players">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="headers_visible">True</property>
+ <property name="rules_hint">False</property>
+ <property name="reorderable">False</property>
+ <property name="enable_search">True</property>
+ <property name="fixed_height_mode">False</property>
+ <property name="hover_selection">False</property>
+ <property name="hover_expand">False</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkVBox" id="vbox1">
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">0</property>
+ <child>
+ <object class="GtkCheckButton" id="networkgame">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="label" translatable="yes">Network Game</property>
+ <property name="use_underline">True</property>
+ <property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
+ <property name="active">True</property>
+ <property name="inconsistent">False</property>
+ <property name="draw_indicator">True</property>
+ </object>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="pack_type">GTK_PACK_END</property>
+ </packing>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ </object>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ </packing>
+ </child>
+ </object>
+ </child>
+ <action-widgets>
+ <action-widget response="-6">button1</action-widget>
+ <action-widget response="-3">start</action-widget>
+ </action-widgets>
+ </object>
+</interface>
diff --git a/src/gnome/gnome-window.c b/src/gnome/gnome-window.c
index 6f3d09f..6db1656 100644
--- a/src/gnome/gnome-window.c
+++ b/src/gnome/gnome-window.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2003 Benjamin Otte <otte@gnome.org>
+ * Copyright (C) 2003,2011 Benjamin Otte <otte@gnome.org>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -28,7 +28,6 @@
#include <string.h>
#include <libgame/libgame.h>
#include <libgame/knot/knot.h>
-#include <glade/glade-xml.h>
#include "gnome-board.h"
#include "gnome-cellrenderercolor.h"
@@ -341,29 +340,34 @@ multiplayer_notify_cb (GameNetworkMatch *match, GParamSpec *pspec, GtkDialog *di
}
}
-static GladeXML *
-open_glade_xml (const char *filename)
+static GtkBuilder *
+open_builder (const char *filename)
{
char *path;
- GladeXML *xml;
+ GtkBuilder *builder;
+ GError *error = NULL;
#ifdef G_OS_WIN32
char *dir;
dir = g_win32_get_package_installation_subdirectory ("libgame",
"libgame", "data");
- path = g_build_filename (dir, "glade", filename, NULL);
+ path = g_build_filename (dir, "ui", filename, NULL);
g_free (dir);
#else
- path = g_build_filename (GLADEDIR, filename, NULL);
+ path = g_build_filename (UIDIR, filename, NULL);
#endif
- xml = glade_xml_new (path, NULL, NULL);
-
- if (!xml)
- g_warning ("failed to load Glade file %s, which was expected at \"%s\"",
- filename, path);
+
+ builder = gtk_builder_new ();
+
+ if (!gtk_builder_add_from_file (builder, path, &error))
+ {
+ g_warning ("failed to load Glade file %s, which was expected at \"%s\": %s",
+ filename, path, error->message);
+ g_error_free (error);
+ }
g_free (path);
- return xml;
+ return builder;
}
static void
@@ -381,16 +385,16 @@ create_multiplayer_window (GameGnomeWindow *window, GameMatch *match)
GtkWidget *widget;
GtkTreeView *tree;
GameGnomeMatch *model;
- GladeXML *xml;
+ GtkBuilder *builder;
g_assert (window->window_multiplayer == NULL);
g_assert (GAME_IS_NETWORK_MATCH (match));
- xml = open_glade_xml ("start-multiplayer.glade");
- if (!xml)
+ builder = open_builder ("start-multiplayer.ui");
+ if (!builder)
return;
g_object_set (match, "networked", TRUE, NULL);
- window->window_multiplayer = glade_xml_get_widget (xml, "dialog");
+ window->window_multiplayer = GTK_WIDGET (gtk_builder_get_object (builder, "dialog"));
g_signal_connect (window->window_multiplayer, "response",
G_CALLBACK (callback_host_response), window);
model = game_gnome_match_new (match);
@@ -398,10 +402,10 @@ create_multiplayer_window (GameGnomeWindow *window, GameMatch *match)
g_object_set_data_full (G_OBJECT (window->window_multiplayer), "game-match", match,
g_object_unref);
- tree = GTK_TREE_VIEW (glade_xml_get_widget (xml, "players"));
+ tree = GTK_TREE_VIEW (gtk_builder_get_object (builder, "players"));
callback_host_populate_treeview (tree, GTK_TREE_MODEL (model));
- widget = glade_xml_get_widget (xml, "networkgame");
+ widget = GTK_WIDGET (gtk_builder_get_object (builder, "networkgame"));
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget),
GAME_NETWORK_MATCH (match)->networked);
knot_knot_create_for_properties (match, "networked", widget, "active");
@@ -410,10 +414,10 @@ create_multiplayer_window (GameGnomeWindow *window, GameMatch *match)
window->window_multiplayer);
g_object_weak_ref (G_OBJECT (window->window_multiplayer), remove_match_callbacks, match);
- widget = glade_xml_get_widget (xml, "start");
+ widget = GTK_WIDGET (gtk_builder_get_object (builder, "start"));
gtk_widget_set_sensitive (widget, GAME_NETWORK_MATCH (match)->host);
- g_object_unref (xml);
+ g_object_unref (builder);
g_signal_connect (window->window_multiplayer, "delete-event",
G_CALLBACK (gtk_widget_hide_on_delete), NULL);
gtk_widget_show (window->window_multiplayer);
@@ -449,8 +453,8 @@ remove_notify_signal (gpointer match, GObject *dialog)
static void
callback_client_cancel_connect (GtkWidget *dialog)
{
- GladeXML *xml = g_object_get_data (G_OBJECT (dialog), "xml");
- GtkWidget *progress = glade_xml_get_widget (xml, "progress");
+ GtkBuilder *builder = g_object_get_data (G_OBJECT (dialog), "builder");
+ GtkWidget *progress = GTK_WIDGET (gtk_builder_get_object (builder, "progress"));
GameMatch *match;
match = g_object_steal_data (G_OBJECT (dialog), "match");
@@ -492,9 +496,9 @@ callback_client_response (GtkWidget *dialog, gint response, GameGnomeWindow *win
if (response == GTK_RESPONSE_ACCEPT) {
GameMatch *match;
GSource *source;
- GladeXML *xml = g_object_get_data (G_OBJECT (dialog), "xml");
- GtkWidget *entry = glade_xml_get_widget (xml, "entry");
- GtkWidget *progress = glade_xml_get_widget (xml, "progress");
+ GtkBuilder *builder = g_object_get_data (G_OBJECT (dialog), "builder");
+ GtkWidget *entry = GTK_WIDGET (gtk_builder_get_object (builder, "entry"));
+ GtkWidget *progress = GTK_WIDGET (gtk_builder_get_object (builder, "progress"));
callback_client_cancel_connect (dialog);
/* add new text to the list */
@@ -549,7 +553,7 @@ set_strv_entry_completion (GtkEntry *entry, GameGnomeState *state, const char *p
static void
callback_client (GtkAction *action, GameGnomeWindow *window)
{
- GladeXML *xml;
+ GtkBuilder *builder;
GtkWidget *entry;
if (window->window_multiplayer != NULL) {
@@ -562,15 +566,15 @@ callback_client (GtkAction *action, GameGnomeWindow *window)
return;
}
- xml = open_glade_xml ("connect-multiplayer.glade");
- if (!xml)
+ builder = open_builder ("connect-multiplayer.ui");
+ if (!builder)
return;
- window->window_client = glade_xml_get_widget (xml, "dialog");
+ window->window_client = GTK_WIDGET (gtk_builder_get_object (builder, "dialog"));
g_signal_connect (window->window_client, "response",
G_CALLBACK (callback_client_response), window);
- g_object_set_data_full (G_OBJECT (window->window_client), "xml", xml,
+ g_object_set_data_full (G_OBJECT (window->window_client), "builder", builder,
g_object_unref);
- entry = glade_xml_get_widget (xml, "entry");
+ entry = GTK_WIDGET (gtk_builder_get_object (builder, "entry"));
set_strv_entry_completion (GTK_ENTRY (entry), window->state, "/network-locations");
gtk_widget_show (window->window_client);
diff --git a/tests/Makefile.am b/tests/Makefile.am
index 7378be5..76d5387 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -1,4 +1,4 @@
-noinst_PROGRAMS = view text idle-client
+check_PROGRAMS = view text idle-client
INCLUDES = $(LIBGAME_CFLAGS) $(GAME_CFLAGS) -I$(top_srcdir)
LIBS = $(LIBGAME_LIBS) $(GAME_LIBS)