[gnome-games] gnibbles: Use gsettings



commit 4ee3c7cb6b75f116552b2bd5a594b3a4a11e3e4f
Author: Robert Ancell <robert ancell canonical com>
Date:   Tue Jan 3 13:37:33 2012 +1100

    gnibbles: Use gsettings

 gnibbles/data/Makefile.am                       |   24 +-
 gnibbles/data/gnibbles.schemas.in               |  504 -----------------------
 gnibbles/data/org.gnome.gnibbles.gschema.xml.in |  245 +++++++++++
 gnibbles/src/Makefile.am                        |    5 -
 gnibbles/src/main.c                             |    5 +-
 gnibbles/src/properties.c                       |   66 ++--
 6 files changed, 281 insertions(+), 568 deletions(-)
---
diff --git a/gnibbles/data/Makefile.am b/gnibbles/data/Makefile.am
index 528a974..0f1fc5e 100644
--- a/gnibbles/data/Makefile.am
+++ b/gnibbles/data/Makefile.am
@@ -1,38 +1,30 @@
 SUBDIRS = icons levels pix
 
+gsettings_in_file = org.gnome.gnibbles.gschema.xml.in
+gsettings_SCHEMAS = $(gsettings_in_file:.xml.in=.xml)
+ INTLTOOL_XML_NOMERGE_RULE@
+ GSETTINGS_RULES@
+
 pixmapdir = $(datadir)/gnibbles/pixmaps
 pixmap_DATA = gnibbles-logo.svg
 
 desktopdir=$(datadir)/applications
 desktop_in_files = gnibbles.desktop.in.in
 desktop_DATA = $(desktop_in_files:.desktop.in.in=.desktop)
-
-schema_in_files = gnibbles.schemas.in
-if HAVE_GNOME
-schemadir = $(GCONF_SCHEMA_FILE_DIR)
-schema_DATA = $(schema_in_files:.schemas.in=.schemas)
-endif
+ INTLTOOL_DESKTOP_RULE@
 
 man_MANS = gnibbles.6
 
 EXTRA_DIST = \
 	$(pixmap_DATA) 	\
-	$(schema_in_files) \
+	$(gsettings_in_file) \
 	$(man_MANS)
 
-DISTCLEANFILES = $(desktop_DATA) $(schema_DATA)
-
-install-data-local:
-if GCONF_SCHEMAS_INSTALL
-	GCONF_CONFIG_SOURCE=$(GCONF_SCHEMA_CONFIG_SOURCE) $(GCONFTOOL) --makefile-install-rule $(top_builddir)/gnibbles/data/$(schema_DATA)
-endif
+DISTCLEANFILES = $(desktop_DATA) $(gsettings_SCHEMAS)
 
 install-exec-hook:
 	-if test "$(setgid)" = "true"; then \
 	  chgrp $(scores_group) $(DESTDIR)$(bindir)/gnibbles && chmod 2555 $(DESTDIR)$(bindir)/gnibbles ;\
 	fi
 
- INTLTOOL_DESKTOP_RULE@
- INTLTOOL_SCHEMAS_RULE@
-
 -include $(top_srcdir)/git.mk
diff --git a/gnibbles/data/org.gnome.gnibbles.gschema.xml.in b/gnibbles/data/org.gnome.gnibbles.gschema.xml.in
new file mode 100644
index 0000000..2f581ff
--- /dev/null
+++ b/gnibbles/data/org.gnome.gnibbles.gschema.xml.in
@@ -0,0 +1,245 @@
+<schemalist>
+  <schema id="org.gnome.gnibbles" path="/org/gnome/gnibbles/">
+    <key name="players" type="i">
+      <default>1</default>
+      <_summary>Number of human players</_summary>
+      <_description>Number of human players.</_description>
+    </key>
+    <key name="ai" type="i">
+      <default>3</default>
+      <_summary>Number of AI players</_summary>
+      <_description>Number of AI players.</_description>
+    </key>
+    <key name="speed" type="i">
+      <default>3</default>
+      <_summary>Game speed</_summary>
+      <_description>Game speed (1=fast, 4=slow).</_description>
+    </key>
+    <key name="fakes" type="b">
+      <default>false</default>
+      <_summary>Enable fake bonuses</_summary>
+      <_description>Enable fake bonuses.</_description>
+    </key>
+    <key name="random" type="b">
+      <default>false</default>
+      <_summary>Play levels in random order</_summary>
+      <_description>Play levels in random order.</_description>
+    </key>
+    <key name="start-level" type="i">
+      <default>1</default>
+      <_summary>Game level to start on</_summary>
+      <_description>Game level to start on.</_description>
+    </key>
+    <key name="sound" type="b">
+      <default>false</default>
+      <_summary>Enable sounds</_summary>
+      <_description>Enable sounds.</_description>
+    </key>
+    <key name="tile-size" type="i">
+      <default>7</default>
+      <_summary>Size of game tiles</_summary>
+      <_description>Size of game tiles.</_description>
+    </key>
+    <child name="worm" schema="org.gnome.gnibbles.worm"/>
+  </schema>
+  <schema id="org.gnome.gnibbles.worm" path="/org/gnome/gnibbles/worm/">
+    <child name="0" schema="org.gnome.gnibbles.worm.0"/>
+    <child name="1" schema="org.gnome.gnibbles.worm.1"/>
+    <child name="2" schema="org.gnome.gnibbles.worm.2"/>
+    <child name="3" schema="org.gnome.gnibbles.worm.3"/>
+    <child name="4" schema="org.gnome.gnibbles.worm.4"/>
+    <child name="5" schema="org.gnome.gnibbles.worm.5"/>
+  </schema>
+  <schema id="org.gnome.gnibbles.worm.0" path="/org/gnome/gnibbles/worm/0/">
+    <key name="color" type="s">
+      <default>'red'</default>
+      <_summary>Color to use for worm</_summary>
+      <_description>Color to use for worm.</_description>
+    </key>
+    <key name="move-relative" type="b">
+      <default>false</default>
+      <_summary>Use relative movement</_summary>
+      <_description>Use relative movement (ie. left or right only).</_description>
+    </key>
+    <key name="key-up" type="s">
+      <default>'Up'</default>
+      <_summary>Move up</_summary>
+      <_description>Key to use for motion up.</_description>
+    </key>
+    <key name="key-down" type="s">
+      <default>'Down'</default>
+      <_summary>Move down</_summary>
+      <_description>Key to use for motion down.</_description>
+    </key>
+    <key name="key-left" type="s">
+      <default>'Left'</default>
+      <_summary>Move left</_summary>
+      <_description>Key to use for motion left.</_description>
+    </key>
+    <key name="key-right" type="s">
+      <default>'Right'</default>
+      <_summary>Move right</_summary>
+      <_description>Key to use for motion right.</_description>
+    </key>
+  </schema>
+  <schema id="org.gnome.gnibbles.worm.1" path="/org/gnome/gnibbles/worm/1/">
+    <key name="color" type="s">
+      <default>'green'</default>
+      <_summary>Color to use for worm</_summary>
+      <_description>Color to use for worm.</_description>
+    </key>
+    <key name="move-relative" type="b">
+      <default>false</default>
+      <_summary>Use relative movement</_summary>
+      <_description>Use relative movement (ie. left or right only).</_description>
+    </key>
+    <key name="key-up" type="s">
+      <default>'Up'</default>
+      <_summary>Move up</_summary>
+      <_description>Key to use for motion up.</_description>
+    </key>
+    <key name="key-down" type="s">
+      <default>'Down'</default>
+      <_summary>Move down</_summary>
+      <_description>Key to use for motion down.</_description>
+    </key>
+    <key name="key-left" type="s">
+      <default>'Left'</default>
+      <_summary>Move left</_summary>
+      <_description>Key to use for motion left.</_description>
+    </key>
+    <key name="key-right" type="s">
+      <default>'Right'</default>
+      <_summary>Move right</_summary>
+      <_description>Key to use for motion right.</_description>
+    </key>
+  </schema>
+  <schema id="org.gnome.gnibbles.worm.2" path="/org/gnome/gnibbles/worm/2/">
+    <key name="color" type="s">
+      <default>'blue'</default>
+      <_summary>Color to use for worm</_summary>
+      <_description>Color to use for worm.</_description>
+    </key>
+    <key name="move-relative" type="b">
+      <default>false</default>
+      <_summary>Use relative movement</_summary>
+      <_description>Use relative movement (ie. left or right only).</_description>
+    </key>
+    <key name="key-up" type="s">
+      <default>'Up'</default>
+      <_summary>Move up</_summary>
+      <_description>Key to use for motion up.</_description>
+    </key>
+    <key name="key-down" type="s">
+      <default>'Down'</default>
+      <_summary>Move down</_summary>
+      <_description>Key to use for motion down.</_description>
+    </key>
+    <key name="key-left" type="s">
+      <default>'Left'</default>
+      <_summary>Move left</_summary>
+      <_description>Key to use for motion left.</_description>
+    </key>
+    <key name="key-right" type="s">
+      <default>'Right'</default>
+      <_summary>Move right</_summary>
+      <_description>Key to use for motion right.</_description>
+    </key>
+  </schema>
+  <schema id="org.gnome.gnibbles.worm.3" path="/org/gnome/gnibbles/worm/3/">
+    <key name="color" type="s">
+      <default>'yellow'</default>
+      <_summary>Color to use for worm</_summary>
+      <_description>Color to use for worm.</_description>
+    </key>
+    <key name="move-relative" type="b">
+      <default>false</default>
+      <_summary>Use relative movement</_summary>
+      <_description>Use relative movement (ie. left or right only).</_description>
+    </key>
+    <key name="key-up" type="s">
+      <default>'Up'</default>
+      <_summary>Move up</_summary>
+      <_description>Key to use for motion up.</_description>
+    </key>
+    <key name="key-down" type="s">
+      <default>'Down'</default>
+      <_summary>Move down</_summary>
+      <_description>Key to use for motion down.</_description>
+    </key>
+    <key name="key-left" type="s">
+      <default>'Left'</default>
+      <_summary>Move left</_summary>
+      <_description>Key to use for motion left.</_description>
+    </key>
+    <key name="key-right" type="s">
+      <default>'Right'</default>
+      <_summary>Move right</_summary>
+      <_description>Key to use for motion right.</_description>
+    </key>
+  </schema>
+  <schema id="org.gnome.gnibbles.worm.4" path="/org/gnome/gnibbles/worm/4/">
+    <key name="color" type="s">
+      <default>'cyan'</default>
+      <_summary>Color to use for worm</_summary>
+      <_description>Color to use for worm.</_description>
+    </key>
+    <key name="move-relative" type="b">
+      <default>false</default>
+      <_summary>Use relative movement</_summary>
+      <_description>Use relative movement (ie. left or right only).</_description>
+    </key>
+    <key name="key-up" type="s">
+      <default>'Up'</default>
+      <_summary>Move up</_summary>
+      <_description>Key to use for motion up.</_description>
+    </key>
+    <key name="key-down" type="s">
+      <default>'Down'</default>
+      <_summary>Move down</_summary>
+      <_description>Key to use for motion down.</_description>
+    </key>
+    <key name="key-left" type="s">
+      <default>'Left'</default>
+      <_summary>Move left</_summary>
+      <_description>Key to use for motion left.</_description>
+    </key>
+    <key name="key-right" type="s">
+      <default>'Right'</default>
+      <_summary>Move right</_summary>
+      <_description>Key to use for motion right.</_description>
+    </key>
+  </schema>
+  <schema id="org.gnome.gnibbles.worm.5" path="/org/gnome/gnibbles/worm/5/">
+    <key name="color" type="s">
+      <default>'purple'</default>
+      <_summary>Color to use for worm</_summary>
+      <_description>Color to use for worm.</_description>
+    </key>
+    <key name="move-relative" type="b">
+      <default>false</default>
+      <_summary>Use relative movement</_summary>
+      <_description>Use relative movement (ie. left or right only).</_description>
+    </key>
+    <key name="key-up" type="s">
+      <default>'Up'</default>
+      <_summary>Move up</_summary>
+      <_description>Key to use for motion up.</_description>
+    </key>
+    <key name="key-down" type="s">
+      <default>'Down'</default>
+      <_summary>Move down</_summary>
+      <_description>Key to use for motion down.</_description>
+    </key>
+    <key name="key-left" type="s">
+      <default>'Left'</default>
+      <_summary>Move left</_summary>
+      <_description>Key to use for motion left.</_description>
+    </key>
+    <key name="key-right" type="s">
+      <default>'Right'</default>
+      <_summary>Move right</_summary>
+      <_description>Key to use for motion right.</_description>
+    </key>
+  </schema>
+</schemalist>
diff --git a/gnibbles/src/Makefile.am b/gnibbles/src/Makefile.am
index 36e04fb..56d3242 100644
--- a/gnibbles/src/Makefile.am
+++ b/gnibbles/src/Makefile.am
@@ -47,11 +47,6 @@ gnibbles_LDADD = \
 	$(CLUTTER_LIBS) \
 	$(INTLLIBS)
 
-if HAVE_GNOME
-gnibbles_CFLAGS += $(GNOME_CFLAGS)
-gnibbles_LDADD += $(GNOME_LIBS)
-endif
-
 if HAVE_RSVG
 gnibbles_CFLAGS += $(RSVG_CFLAGS)
 gnibbles_LDADD += $(RSVG_LIBS)
diff --git a/gnibbles/src/main.c b/gnibbles/src/main.c
index 51f3dbc..11cc975 100644
--- a/gnibbles/src/main.c
+++ b/gnibbles/src/main.c
@@ -30,7 +30,6 @@
 #include <gtk/gtk.h>
 #include <gdk/gdkkeysyms.h>
 
-#include <libgames-support/games-conf.h>
 #include <libgames-support/games-gridframe.h>
 #include <libgames-support/games-scores.h>
 #include <libgames-support/games-stock.h>
@@ -699,7 +698,7 @@ setup_window (void)
 
   gtk_window_set_default_size (GTK_WINDOW (window),
                                DEFAULT_WIDTH, DEFAULT_HEIGHT);
-  games_conf_add_window (GTK_WINDOW (window), KEY_PREFERENCES_GROUP);
+  //games_conf_add_window (GTK_WINDOW (window), KEY_PREFERENCES_GROUP);
 
   g_signal_connect (G_OBJECT (window), "destroy",
                     G_CALLBACK (gtk_main_quit), NULL);
@@ -924,7 +923,6 @@ main (int argc, char **argv)
                                  0 /* default category */,
                                  GAMES_SCORES_STYLE_PLAIN_DESCENDING);
 
-  games_conf_initialise ("Gnibbles");
   properties = gnibbles_properties_new ();
   setup_window ();
   gnibbles_load_pixmap (properties->tilesize);
@@ -937,7 +935,6 @@ main (int argc, char **argv)
   gtk_main ();
 
   gnibbles_properties_destroy (properties);
-  games_conf_shutdown ();
 
   return 0;
 }
diff --git a/gnibbles/src/properties.c b/gnibbles/src/properties.c
index f9d1712..3e9507d 100644
--- a/gnibbles/src/properties.c
+++ b/gnibbles/src/properties.c
@@ -27,7 +27,6 @@
 #include <gdk/gdkkeysyms.h>
 
 #include <libgames-support/games-scores.h>
-#include <libgames-support/games-conf.h>
 
 #include "properties.h"
 #include "main.h"
@@ -84,14 +83,13 @@ gnibbles_properties_update (GnibblesProperties * tmp)
   gchar *category;
   gchar *color_name;
 
-  tmp->human = games_conf_get_integer (KEY_PREFERENCES_GROUP,
-                                       KEY_NUM_WORMS, NULL);
+  tmp->human = g_settings_get_integer (settings, KEY_NUM_WORMS, NULL);
   if (tmp->human < 0)
     tmp->human = 0;
   else if (tmp->human > NUMWORMS)
     tmp->human = NUMWORMS;
 
-  tmp->ai = games_conf_get_integer (KEY_PREFERENCES_GROUP, KEY_NUM_AI, NULL);
+  tmp->ai = g_settings_get_integer (settings, KEY_NUM_AI, NULL);
   if (tmp->ai < 0)
     tmp->ai = 0;
   else if (tmp->ai > NUMWORMS)
@@ -99,30 +97,30 @@ gnibbles_properties_update (GnibblesProperties * tmp)
 
   tmp->numworms = tmp->human + tmp->ai;
 
-  tmp->gamespeed = games_conf_get_integer (KEY_PREFERENCES_GROUP,
+  tmp->gamespeed = g_settings_get_integer (settings,
                                            KEY_SPEED, NULL);
   if (tmp->gamespeed < 1)
     tmp->gamespeed = 2;
   else if (tmp->gamespeed > MAX_SPEED)
     tmp->gamespeed = MAX_SPEED;
 
-  tmp->fakes = games_conf_get_boolean (KEY_PREFERENCES_GROUP,
+  tmp->fakes = g_settings_get_boolean (settings,
                                        KEY_FAKES, NULL);
 
-  tmp->random = games_conf_get_boolean (KEY_PREFERENCES_GROUP,
+  tmp->random = g_settings_get_boolean (settings,
                                         KEY_RANDOM, NULL);
 
-  tmp->startlevel = games_conf_get_integer (KEY_PREFERENCES_GROUP,
+  tmp->startlevel = g_settings_get_integer (settings,
                                             KEY_START_LEVEL, NULL);
   if (tmp->startlevel < 1)
     tmp->startlevel = 1;
   if (tmp->startlevel > MAXLEVEL)
     tmp->startlevel = MAXLEVEL;
 
-  tmp->sound = games_conf_get_boolean (KEY_PREFERENCES_GROUP, KEY_SOUND, NULL);
+  tmp->sound = g_settings_get_boolean (settings, KEY_SOUND, NULL);
   sound_enable (tmp->sound);
 
-  tmp->tilesize = games_conf_get_integer (KEY_PREFERENCES_GROUP,
+  tmp->tilesize = g_settings_get_integer (settings,
                                           KEY_TILE_SIZE, NULL);
   if (tmp->tilesize < 1)
     tmp->tilesize = 5;
@@ -133,7 +131,7 @@ gnibbles_properties_update (GnibblesProperties * tmp)
     tmp->wormprops[i] = g_slice_new0 (GnibblesWormProps);
 
     g_snprintf (buffer, sizeof (buffer), KEY_WORM_COLOR, i);
-    color_name = games_conf_get_string_with_default (KEY_PREFERENCES_GROUP,
+    color_name = g_settings_get_string_with_default (settings,
                                                      buffer, "red");
     tmp->wormprops[i]->color = colorval_from_name (color_name);
     g_free (color_name);
@@ -144,29 +142,19 @@ gnibbles_properties_update (GnibblesProperties * tmp)
       tmp->wormprops[i]->color = (i % NUM_COLORS) + WORMRED;
 
     g_snprintf (buffer, sizeof (buffer), KEY_WORM_REL_MOVE, i);
-    tmp->wormprops[i]->relmove =
-                 games_conf_get_boolean (KEY_PREFERENCES_GROUP,
-                                         buffer, NULL);
+    tmp->wormprops[i]->relmove = g_settings_get_boolean (settings, buffer);
 
     g_snprintf (buffer, sizeof (buffer), KEY_WORM_UP, i);
-    tmp->wormprops[i]->up =
-                 games_conf_get_keyval_with_default (KEY_PREFERENCES_GROUP,
-                                                     buffer, GDK_KEY_Up);
+    tmp->wormprops[i]->up = g_settings_get_int (settings, buffer);
 
     g_snprintf (buffer, sizeof (buffer), KEY_WORM_DOWN, i);
-    tmp->wormprops[i]->down =
-                 games_conf_get_keyval_with_default (KEY_PREFERENCES_GROUP,
-                                                     buffer, GDK_KEY_Down);
+    tmp->wormprops[i]->down = g_settings_get_int (settings, buffer);
 
     g_snprintf (buffer, sizeof (buffer), KEY_WORM_LEFT, i);
-    tmp->wormprops[i]->left =
-                 games_conf_get_keyval_with_default (KEY_PREFERENCES_GROUP,
-                                                     buffer, GDK_KEY_Left);
+    tmp->wormprops[i]->left = g_settings_get_int (settings, buffer);
 
     g_snprintf (buffer, sizeof (buffer), KEY_WORM_RIGHT, i);
-    tmp->wormprops[i]->right =
-                 games_conf_get_keyval_with_default (KEY_PREFERENCES_GROUP,
-                                                     buffer, GDK_KEY_Right);
+    tmp->wormprops[i]->right = g_settings_get_int (settings, buffer);
   }
 
   category = g_strdup_printf ("%d.%d", tmp->gamespeed, tmp->fakes);
@@ -182,7 +170,7 @@ conf_value_changed_cb (GamesConf *conf,
 {
   GnibblesProperties *props = (GnibblesProperties *) data;
 
-  if (!group || strcmp (group, KEY_PREFERENCES_GROUP) != 0)
+  if (!group || strcmp (group, settings) != 0)
     return;
 
   gnibbles_properties_update (props);
@@ -195,7 +183,7 @@ gnibbles_properties_new (void)
 
   props = g_slice_new0 (GnibblesProperties);
 
-  props->conf_notify_id = g_signal_connect (games_conf_get_default (),
+  props->conf_notify_id = g_signal_connect (g_settings_get_default (),
                                             "value-changed",
                                             G_CALLBACK (conf_value_changed_cb),
                                             props);
@@ -213,7 +201,7 @@ gnibbles_properties_destroy (GnibblesProperties * props)
   for (i = 0; i < NUMWORMS; i++)
     g_slice_free (GnibblesWormProps, props->wormprops[i]);
 
-  g_signal_handler_disconnect (games_conf_get_default (),
+  g_signal_handler_disconnect (g_settings_get_default (),
                                props->conf_notify_id);
 
   g_slice_free (GnibblesProperties, props);
@@ -224,49 +212,49 @@ gnibbles_properties_destroy (GnibblesProperties * props)
 void
 gnibbles_properties_set_worms_number (gint value)
 {
-  games_conf_set_integer (KEY_PREFERENCES_GROUP, KEY_NUM_WORMS, value);
+  g_settings_set_integer (settings, KEY_NUM_WORMS, value);
 }
 
 void
 gnibbles_properties_set_ai_number (gint value)
 {
-  games_conf_set_integer (KEY_PREFERENCES_GROUP, KEY_NUM_AI, value);
+  g_settings_set_integer (settings, KEY_NUM_AI, value);
 }
 
 void
 gnibbles_properties_set_speed (gint value)
 {
-  games_conf_set_integer (KEY_PREFERENCES_GROUP, KEY_SPEED, value);
+  g_settings_set_integer (settings, KEY_SPEED, value);
 }
 
 void
 gnibbles_properties_set_fakes (gboolean value)
 {
-  games_conf_set_boolean (KEY_PREFERENCES_GROUP, KEY_FAKES, value);
+  g_settings_set_boolean (settings, KEY_FAKES, value);
 }
 
 void
 gnibbles_properties_set_random (gboolean value)
 {
-  games_conf_set_boolean (KEY_PREFERENCES_GROUP, KEY_RANDOM, value);
+  g_settings_set_boolean (settings, KEY_RANDOM, value);
 }
 
 void
 gnibbles_properties_set_start_level (gint value)
 {
-  games_conf_set_integer (KEY_PREFERENCES_GROUP, KEY_START_LEVEL, value);
+  g_settings_set_integer (settings, KEY_START_LEVEL, value);
 }
 
 void
 gnibbles_properties_set_sound (gboolean value)
 {
-  games_conf_set_boolean (KEY_PREFERENCES_GROUP, KEY_SOUND, value);
+  g_settings_set_boolean (settings, KEY_SOUND, value);
 }
 
 void
 gnibbles_properties_set_tile_size (gint value)
 {
-  games_conf_set_integer (KEY_PREFERENCES_GROUP, KEY_TILE_SIZE, value);
+  g_settings_set_integer (settings, KEY_TILE_SIZE, value);
 }
 
 void
@@ -274,7 +262,7 @@ gnibbles_properties_set_worm_relative_movement (gint i, gboolean value)
 {
   char key[64];
   g_snprintf (key, sizeof (key), KEY_WORM_REL_MOVE, i);
-  games_conf_set_boolean (KEY_PREFERENCES_GROUP, key, value);
+  g_settings_set_boolean (settings, key, value);
 }
 
 void
@@ -286,7 +274,7 @@ gnibbles_properties_set_worm_color (gint i, gint value)
   g_snprintf (key, sizeof (key), KEY_WORM_COLOR, i);
 
   color_name = colorval_name (value);
-  games_conf_set_string (KEY_PREFERENCES_GROUP, key, color_name);
+  g_settings_set_string (settings, key, color_name);
 }
 
 void



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]