[gnome-games: 1/2] quadrapassel: Use gsettings
- From: Robert Ancell <rancell src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-games: 1/2] quadrapassel: Use gsettings
- Date: Mon, 2 Jan 2012 11:06:35 +0000 (UTC)
commit d43d33394b723b93c3dcf629a75d6c57166c29a8
Author: Robert Ancell <robert ancell canonical com>
Date: Sun Jan 1 19:15:30 2012 +1100
quadrapassel: Use gsettings
libgames-support/games-controls.c | 87 ++++++--
libgames-support/games-controls.h | 1 +
quadrapassel/data/Makefile.am | 21 +--
.../data/org.gnome.quadrapassel.gschema.xml.in | 99 +++++++++
quadrapassel/data/quadrapassel.schemas.in | 222 --------------------
quadrapassel/src/main.cpp | 5 -
quadrapassel/src/scoreframe.cpp | 8 +-
quadrapassel/src/tetris.cpp | 129 +++++-------
quadrapassel/src/tetris.h | 37 +---
9 files changed, 230 insertions(+), 379 deletions(-)
---
diff --git a/libgames-support/games-controls.c b/libgames-support/games-controls.c
index 3238e76..31edb63 100644
--- a/libgames-support/games-controls.c
+++ b/libgames-support/games-controls.c
@@ -47,6 +47,7 @@ struct GamesControlsListPrivate {
GtkListStore *store;
GtkWidget *view;
+ GSettings *settings;
char *conf_group;
gulong notify_handler_id;
};
@@ -81,7 +82,10 @@ accel_edited_cb (GtkCellRendererAccel *cell,
/* Note: the model is updated in the conf notification callback */
/* FIXME: what to do with the modifiers? */
- games_conf_set_keyval (list->priv->conf_group, conf_key, keyval);
+ if (list->priv->settings)
+ g_settings_set_int (list->priv->settings, conf_key, keyval);
+ else
+ games_conf_set_keyval (list->priv->conf_group, conf_key, keyval);
g_free (conf_key);
}
@@ -114,24 +118,19 @@ accel_cleared_cb (GtkCellRendererAccel *cell,
/* Note: the model is updated in the conf notification callback */
/* FIXME: what to do with the modifiers? */
- games_conf_set_keyval (list->priv->conf_group, conf_key, default_keyval);
+ if (list->priv->settings)
+ g_settings_set_int (list->priv->settings, conf_key, default_keyval);
+ else
+ games_conf_set_keyval (list->priv->conf_group, conf_key, default_keyval);
g_free (conf_key);
}
static void
-conf_value_changed_cb (GamesConf *conf,
- const char *group,
- const char *key,
- GamesControlsList *list)
+value_changed (GamesControlsList *list, const gchar *key)
{
GtkTreeIter iter;
gboolean valid;
- if ((group == NULL && list->priv->conf_group != NULL) ||
- (group != NULL && (list->priv->conf_group == NULL ||
- strcmp (group, list->priv->conf_group) != 0)))
- return;
-
/* find our gconf key in the list store and update it */
valid = gtk_tree_model_get_iter_first (list->priv->model, &iter);
while (valid) {
@@ -148,7 +147,10 @@ conf_value_changed_cb (GamesConf *conf,
DEFAULT_KEYCODE_COLUMN, &default_keyval,
-1);
- keyval = games_conf_get_keyval_with_default (list->priv->conf_group, key, default_keyval);
+ if (list->priv->settings)
+ keyval = g_settings_get_int (list->priv->settings, key);
+ else
+ keyval = games_conf_get_keyval_with_default (list->priv->conf_group, key, default_keyval);
gtk_list_store_set (list->priv->store, &iter,
KEYCODE_COLUMN, keyval,
@@ -165,6 +167,26 @@ conf_value_changed_cb (GamesConf *conf,
}
static void
+conf_value_changed_cb (GamesConf *conf,
+ const char *group,
+ const char *key,
+ GamesControlsList *list)
+{
+ if ((group == NULL && list->priv->conf_group != NULL) ||
+ (group != NULL && (list->priv->conf_group == NULL ||
+ strcmp (group, list->priv->conf_group) != 0)))
+ return;
+
+ value_changed (list, key);
+}
+
+static void
+settings_changed_cb (GSettings *settings, const gchar *key, GamesControlsList *list)
+{
+ value_changed (list, key);
+}
+
+static void
games_controls_list_init (GamesControlsList *list)
{
list->priv = G_TYPE_INSTANCE_GET_PRIVATE (list, GAMES_TYPE_CONTROLS_LIST, GamesControlsListPrivate);
@@ -232,11 +254,6 @@ games_controls_list_constructor (GType type,
gtk_container_add (GTK_CONTAINER (scrolled_window), list->priv->view);
- list->priv->notify_handler_id = g_signal_connect (games_conf_get_default (),
- "value-changed",
- G_CALLBACK (conf_value_changed_cb),
- list);
-
return object;
}
@@ -245,9 +262,14 @@ games_controls_list_finalize (GObject *object)
{
GamesControlsList *list = GAMES_CONTROLS_LIST (object);
- g_signal_handler_disconnect (games_conf_get_default (), list->priv->notify_handler_id);
+ if (list->priv->settings)
+ g_signal_handler_disconnect (list->priv->settings, list->priv->notify_handler_id);
+ else
+ g_signal_handler_disconnect (games_conf_get_default (), list->priv->notify_handler_id);
g_free (list->priv->conf_group);
+ if (list->priv->settings)
+ g_object_unref (list->priv->settings);
G_OBJECT_CLASS (games_controls_list_parent_class)->finalize (object);
}
@@ -277,6 +299,30 @@ games_controls_list_new (const char *conf_group)
NULL);
list->priv->conf_group = g_strdup (conf_group);
+ list->priv->notify_handler_id = g_signal_connect (games_conf_get_default (),
+ "value-changed",
+ G_CALLBACK (conf_value_changed_cb),
+ list);
+
+ return GTK_WIDGET (list);
+}
+
+GtkWidget *
+games_controls_list_new_settings (GSettings *settings)
+{
+ GamesControlsList *list;
+
+ list = g_object_new (GAMES_TYPE_CONTROLS_LIST,
+ "hscrollbar-policy", GTK_POLICY_NEVER,
+ "vscrollbar-policy", GTK_POLICY_AUTOMATIC,
+ "shadow-type", GTK_SHADOW_IN,
+ NULL);
+
+ list->priv->settings = g_object_ref (settings);
+ list->priv->notify_handler_id = g_signal_connect (list->priv->settings,
+ "changed",
+ G_CALLBACK (settings_changed_cb),
+ list);
return GTK_WIDGET (list);
}
@@ -296,7 +342,10 @@ games_controls_list_add_control (GamesControlsList *list,
if (!label)
label = _("Unknown Command");
- keyval = games_conf_get_keyval_with_default (list->priv->conf_group, conf_key, default_keyval);
+ if (list->priv->settings)
+ keyval = g_settings_get_int (list->priv->settings, conf_key);
+ else
+ keyval = games_conf_get_keyval_with_default (list->priv->conf_group, conf_key, default_keyval);
gtk_list_store_insert_with_values (list->priv->store, &iter, -1,
CONFKEY_COLUMN, conf_key,
diff --git a/libgames-support/games-controls.h b/libgames-support/games-controls.h
index 5d641e2..3fd4644 100644
--- a/libgames-support/games-controls.h
+++ b/libgames-support/games-controls.h
@@ -33,6 +33,7 @@ typedef struct {
GType games_controls_list_get_type (void);
GtkWidget *games_controls_list_new (const char *conf_group);
+GtkWidget *games_controls_list_new_settings (GSettings *settings);
void games_controls_list_add_control (GamesControlsList *list,
const char *conf_key,
const char *label,
diff --git a/quadrapassel/data/Makefile.am b/quadrapassel/data/Makefile.am
index 2b51050..6f1a4be 100644
--- a/quadrapassel/data/Makefile.am
+++ b/quadrapassel/data/Makefile.am
@@ -1,5 +1,10 @@
SUBDIRS = icons
+gsettings_in_file = org.gnome.quadrapassel.gschema.xml.in
+gsettings_SCHEMAS = $(gsettings_in_file:.xml.in=.xml)
+ INTLTOOL_XML_NOMERGE_RULE@
+ GSETTINGS_RULES@
+
pixmapdir = $(datadir)/quadrapassel/pixmaps
pixmap_DATA = \
quadrapassel.svg \
@@ -11,26 +16,14 @@ desktop_in_files = quadrapassel.desktop.in.in
desktop_DATA = $(desktop_in_files:.desktop.in.in=.desktop)
@INTLTOOL_DESKTOP_RULE@
-schema_in_files = quadrapassel.schemas.in
-if HAVE_GNOME
-schemadir = $(GCONF_SCHEMA_FILE_DIR)
-schema_DATA = $(schema_in_files:.schemas.in=.schemas)
-endif
- INTLTOOL_SCHEMAS_RULE@
-
man_MANS = quadrapassel.6
EXTRA_DIST = \
+ $(gsettings_in_file) \
$(pixmap_DATA) \
$(desktop_in_files) \
- $(schema_in_files) \
$(man_MANS)
-install-data-local:
-if GCONF_SCHEMAS_INSTALL
- GCONF_CONFIG_SOURCE=$(GCONF_SCHEMA_CONFIG_SOURCE) $(GCONFTOOL) --makefile-install-rule $(top_builddir)/quadrapassel/data/$(schema_DATA)
-endif
-
-DISTCLEANFILES = $(desktop_DATA) $(schema_DATA)
+DISTCLEANFILES = $(desktop_DATA) $(gsettings_SCHEMAS)
-include $(top_srcdir)/git.mk
diff --git a/quadrapassel/data/org.gnome.quadrapassel.gschema.xml.in b/quadrapassel/data/org.gnome.quadrapassel.gschema.xml.in
new file mode 100644
index 0000000..80adf4d
--- /dev/null
+++ b/quadrapassel/data/org.gnome.quadrapassel.gschema.xml.in
@@ -0,0 +1,99 @@
+<schemalist>
+ <schema id="org.gnome.quadrapassel" path="/org/gnome/quadrapassel/">
+ <key name="block-pixmap" type="s">
+ <default>'7blocks-gw.png'</default>
+ <_summary>Image to use for drawing blocks</_summary>
+ <_description>Image to use for drawing blocks.</_description>
+ </key>
+ <key name="theme" type="s">
+ <default>'tangoshaded'</default>
+ <_summary>The theme used for rendering the blocks</_summary>
+ <_description>The name of the theme used for rendering the blocks and the background.</_description>
+ </key>
+ <key name="starting-level" type="i">
+ <default>1</default>
+ <_summary>Level to start with</_summary>
+ <_description>Level to start with.</_description>
+ </key>
+ <key name="use-bg-image" type="b">
+ <default>true</default>
+ <_summary>Whether to use the background image</_summary>
+ <_description>This selects whether or not to draw the background image over the background color.</_description>
+ </key>
+ <key name="bg-color" type="s">
+ <default>'Black'</default>
+ <_summary>The background color</_summary>
+ <_description>The background color, in a format gdk_color_parse understands.</_description>
+ </key>
+ <key name="do-preview" type="b">
+ <default>true</default>
+ <_summary>Whether to preview the next block</_summary>
+ <_description>Whether to preview the next block.</_description>
+ </key>
+ <key name="use-target" type="b">
+ <default>false</default>
+ <_summary>Whether to provide a target</_summary>
+ <_description>Whether to provide a graphical representation of where a block will land.</_description>
+ </key>
+ <key name="random-block-colors" type="b">
+ <default>false</default>
+ <_summary>Whether to give blocks random colors</_summary>
+ <_description>Whether to give blocks random colors.</_description>
+ </key>
+ <key name="rotate-counter-clock-wise" type="b">
+ <default>true</default>
+ <_summary>Whether to rotate counter clock wise</_summary>
+ <_description>Whether to rotate counter clock wise.</_description>
+ </key>
+ <key name="line-fill-height" type="i">
+ <default>0</default>
+ <_summary>The number of rows to fill</_summary>
+ <_description>The number of rows that are filled with random blocks at the start of the game.</_description>
+ </key>
+ <key name="line-fill-probability" type="i">
+ <default>5</default>
+ <_summary>The density of filled rows</_summary>
+ <_description>The density of blocks in rows filled at the start of the game. The value is between 0 (for no blocks) and 10 (for a completely filled row).</_description>
+ </key>
+ <key name="sound" type="b">
+ <default>true</default>
+ <_summary>Whether to play sounds</_summary>
+ <_description>Whether to play sounds.</_description>
+ </key>
+ <key name="pick-difficult-blocks" type="b">
+ <default>true</default>
+ <_summary>Whether to pick blocks that are hard to place</_summary>
+ <_description>Whether to pick blocks that are hard to place.</_description>
+ </key>
+ <key name="key-left" type="i">
+ <default>65361</default>
+ <_summary>Move left</_summary>
+ <_description>Key press to move left.</_description>
+ </key>
+ <key name="key-right" type="i">
+ <default>65363</default>
+ <_summary>Move right</_summary>
+ <_description>Key press to move right.</_description>
+ </key>
+ <key name="key-down" type="i">
+ <default>65364</default>
+ <_summary>Move down</_summary>
+ <_description>Key press to move down.</_description>
+ </key>
+ <key name="key-drop" type="i">
+ <default>32</default>
+ <_summary>Drop</_summary>
+ <_description>Key press to drop.</_description>
+ </key>
+ <key name="key-rotate" type="i">
+ <default>65362</default>
+ <_summary>Rotate</_summary>
+ <_description>Key press to rotate.</_description>
+ </key>
+ <key name="key-pause" type="i">
+ <default>65299</default>
+ <_summary>Pause</_summary>
+ <_description>Key press to pause.</_description>
+ </key>
+ </schema>
+</schemalist>
diff --git a/quadrapassel/src/main.cpp b/quadrapassel/src/main.cpp
index f9f4939..52dbcbc 100644
--- a/quadrapassel/src/main.cpp
+++ b/quadrapassel/src/main.cpp
@@ -22,7 +22,6 @@
#include <config.h>
#include <libgames-support/games-scores.h>
-#include <libgames-support/games-conf.h>
#include <clutter-gtk/clutter-gtk.h>
#include "tetris.h"
@@ -63,8 +62,6 @@ main(int argc, char *argv[])
gtk_window_set_default_icon_name ("quadrapassel");
- games_conf_initialise ("Quadrapassel");
-
if (gtk_clutter_init_with_args (NULL, NULL, NULL, NULL, NULL, &error) != CLUTTER_INIT_SUCCESS || error) {
GtkWidget *dialog = gtk_message_dialog_new (NULL,
GTK_DIALOG_MODAL,
@@ -84,7 +81,5 @@ main(int argc, char *argv[])
delete t;
- games_conf_shutdown ();
-
return 0;
}
diff --git a/quadrapassel/src/scoreframe.cpp b/quadrapassel/src/scoreframe.cpp
index 779f6f6..d570fd7 100644
--- a/quadrapassel/src/scoreframe.cpp
+++ b/quadrapassel/src/scoreframe.cpp
@@ -31,13 +31,7 @@
ScoreFrame::ScoreFrame(int cmdlLevel)
: score(0), lines(0)
{
- if (cmdlLevel)
- startingLevel = cmdlLevel;
- else {
- startingLevel = games_conf_get_integer (KEY_OPTIONS_GROUP,
- KEY_STARTING_LEVEL,
- NULL);
- }
+ startingLevel = cmdlLevel;
startingLevel = CLAMP (startingLevel, 1, 20);
level = startingLevel;
diff --git a/quadrapassel/src/tetris.cpp b/quadrapassel/src/tetris.cpp
index c8aa14c..63bce52 100644
--- a/quadrapassel/src/tetris.cpp
+++ b/quadrapassel/src/tetris.cpp
@@ -150,6 +150,8 @@ Tetris::Tetris(int cmdlLevel):
default_bgimage = true;
}
+ settings = g_settings_new ("org.gnome.quadrapassel");
+
w = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_title (GTK_WINDOW (w), _("Quadrapassel"));
@@ -166,7 +168,7 @@ Tetris::Tetris(int cmdlLevel):
line_fill_prob = 5;
gtk_window_set_default_size (GTK_WINDOW (w), DEFAULT_WIDTH, DEFAULT_HEIGHT);
- games_conf_add_window (GTK_WINDOW (w), KEY_SAVED_GROUP);
+ //games_conf_add_window (GTK_WINDOW (w), KEY_SAVED_GROUP);
preview = new Preview ();
field = new BlockOps ();
@@ -224,6 +226,8 @@ Tetris::Tetris(int cmdlLevel):
gtk_box_pack_start(GTK_BOX(vb2), preview->getWidget(), FALSE, FALSE, 0);
+ if (cmdlineLevel <= 0)
+ cmdlineLevel = g_settings_get_int (settings, "starting-level");
scoreFrame = new ScoreFrame(cmdlineLevel);
gtk_box_pack_end(GTK_BOX(vb2), scoreFrame->getWidget(), TRUE, FALSE, 0);
@@ -239,8 +243,8 @@ Tetris::Tetris(int cmdlLevel):
gtk_action_set_sensitive(end_game_action, FALSE);
gtk_action_set_sensitive(preferences_action, TRUE);
- confNotifyID = g_signal_connect (games_conf_get_default (),
- "value-changed",
+ confNotifyID = g_signal_connect (settings,
+ "changed",
G_CALLBACK (confNotify),
this);
}
@@ -261,7 +265,7 @@ Tetris::~Tetris()
g_free(defaultPixmap);
if (confNotifyID != 0)
- g_signal_handler_disconnect (games_conf_get_default (), confNotifyID);
+ g_signal_handler_disconnect (settings, confNotifyID);
}
void
@@ -358,97 +362,67 @@ Tetris::setupPixmap()
}
void
-Tetris::confNotify (GamesConf *conf, const char *group, const char *key, gpointer data)
+Tetris::confNotify (GSettings *settings, const char *key, gpointer data)
{
- if (!group)
- return;
-
Tetris *t = (Tetris *) data;
t->initOptions ();
t->setOptions ();
}
-char *
-Tetris::confGetString (const char *group, const char *key, const char *default_val)
-{
- return games_conf_get_string_with_default (group, key, default_val);
-}
-
-int
-Tetris::confGetInt (const char *group, const char *key, int default_val)
-{
- return games_conf_get_integer_with_default (group, key, default_val);
-}
-
-gboolean
-Tetris::confGetBoolean (const char *group, const char *key, gboolean default_val)
-{
- gboolean val;
- GError *error = NULL;
-
- val = games_conf_get_boolean (group, key, &error);
- if (error) {
- g_error_free (error);
- val = default_val;
- }
-
- return val;
-}
-
void
Tetris::initOptions ()
{
gchar *bgcolourstr;
- themeno = themeNameToNumber (confGetString (KEY_OPTIONS_GROUP, KEY_THEME, "plain"));
+ themeno = themeNameToNumber (g_settings_get_string (settings, "theme"));
field->setTheme (themeno);
preview->setTheme (themeno);
- startingLevel = confGetInt (KEY_OPTIONS_GROUP, KEY_STARTING_LEVEL, 1);
+ startingLevel = g_settings_get_int (settings, "starting-level");
if (startingLevel < 1)
startingLevel = 1;
if (startingLevel > 20)
startingLevel = 20;
- sound_enable (confGetBoolean (KEY_OPTIONS_GROUP, KEY_SOUND, TRUE));
+ sound_enable (g_settings_get_boolean (settings, "sound"));
- do_preview = confGetBoolean (KEY_OPTIONS_GROUP, KEY_DO_PREVIEW, TRUE);
+ do_preview = g_settings_get_boolean (settings, "do-preview");
if (preview) {
preview->enable(do_preview);
}
- random_block_colors = confGetBoolean (KEY_OPTIONS_GROUP, KEY_RANDOM_BLOCK_COLORS, TRUE);
+ random_block_colors = g_settings_get_boolean (settings, "random-block-colors");
- bastard_mode = confGetBoolean (KEY_OPTIONS_GROUP, KEY_BASTARD_MODE, FALSE);
+ bastard_mode = g_settings_get_boolean (settings, "pick-difficult-blocks");
- rotateCounterClockWise = confGetBoolean (KEY_OPTIONS_GROUP, KEY_ROTATE_COUNTER_CLOCKWISE, TRUE);
+ rotateCounterClockWise = g_settings_get_boolean (settings, "rotate-counter-clock-wise");
- line_fill_height = confGetInt (KEY_OPTIONS_GROUP, KEY_LINE_FILL_HEIGHT, 0);
+ line_fill_height = g_settings_get_int (settings, "line-fill-height");
if (line_fill_height < 0)
line_fill_height = 0;
if (line_fill_height > 19)
line_fill_height = 19;
- line_fill_prob = confGetInt (KEY_OPTIONS_GROUP, KEY_LINE_FILL_PROBABILITY, 0);
+ line_fill_prob = g_settings_get_int (settings, "line-fill-probability");
if (line_fill_prob < 0)
line_fill_prob = 0;
if (line_fill_prob > 10)
line_fill_prob = 10;
- moveLeft = games_conf_get_keyval_with_default (KEY_CONTROLS_GROUP, KEY_MOVE_LEFT, GDK_KEY_Left);
- moveRight = games_conf_get_keyval_with_default (KEY_CONTROLS_GROUP, KEY_MOVE_RIGHT, GDK_KEY_Right);
- moveDown = games_conf_get_keyval_with_default (KEY_CONTROLS_GROUP, KEY_MOVE_DOWN, GDK_KEY_Down);
- moveDrop = games_conf_get_keyval_with_default (KEY_CONTROLS_GROUP, KEY_MOVE_DROP, GDK_KEY_Pause);
- moveRotate = games_conf_get_keyval_with_default (KEY_CONTROLS_GROUP, KEY_MOVE_ROTATE, GDK_KEY_Up);
- movePause = games_conf_get_keyval_with_default (KEY_CONTROLS_GROUP, KEY_MOVE_PAUSE, GDK_KEY_space);
+ moveLeft = g_settings_get_int (settings, "key-left");
+ moveRight = g_settings_get_int (settings, "key-right");
+ moveDown = g_settings_get_int (settings, "key-down");
+ moveDrop = g_settings_get_int (settings, "key-drop");
+ moveRotate = g_settings_get_int (settings, "key-rotate");
+ movePause = g_settings_get_int (settings, "key-pause");
- bgcolourstr = confGetString (KEY_OPTIONS_GROUP, KEY_BG_COLOUR, "Black");
+ bgcolourstr = g_settings_get_string (settings, "bg-color");
gdk_color_parse (bgcolourstr, &bgcolour);
g_free (bgcolourstr);
- usebg = confGetBoolean (KEY_OPTIONS_GROUP, KEY_USE_BG_IMAGE, TRUE);
+ usebg = g_settings_get_boolean (settings, "use-bg-image");
}
void
@@ -477,33 +451,32 @@ Tetris::setOptions ()
void
Tetris::setSound (GtkWidget *widget, gpointer data)
{
- games_conf_set_boolean (KEY_OPTIONS_GROUP, KEY_SOUND,
- gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget)));
+ Tetris *t = (Tetris *) data;
+ g_settings_set_boolean (t->settings, "sound", gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget)));
}
void
Tetris::setSelectionPreview(GtkWidget *widget, void *d)
{
- games_conf_set_boolean (KEY_OPTIONS_GROUP, KEY_DO_PREVIEW,
- gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget)));
+ Tetris *t = (Tetris *) d;
+ g_settings_set_boolean (t->settings, "do-preview", gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget)));
}
void
Tetris::setSelectionBlocks(GtkWidget *widget, void *d)
{
- games_conf_set_boolean (KEY_OPTIONS_GROUP, KEY_RANDOM_BLOCK_COLORS,
- gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget)));
+ Tetris *t = (Tetris *) d;
+ g_settings_set_boolean (t->settings, "random-block-colors", gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget)));
}
void
Tetris::setBastardMode(GtkWidget *widget, void *d)
{
- games_conf_set_boolean (KEY_OPTIONS_GROUP, KEY_BASTARD_MODE,
- gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget)));
+ Tetris *t = (Tetris *) d;
+ g_settings_set_boolean (t->settings, "pick-difficult-blocks", gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget)));
/* Disable the preview option to indicate that it is
unavailable in bastard mode */
- Tetris *t = (Tetris*) d;
gtk_widget_set_sensitive(t->do_preview_toggle,
gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget)) ? FALSE : TRUE);
}
@@ -511,8 +484,8 @@ Tetris::setBastardMode(GtkWidget *widget, void *d)
void
Tetris::setRotateCounterClockWise(GtkWidget *widget, void *d)
{
- games_conf_set_boolean (KEY_OPTIONS_GROUP, KEY_ROTATE_COUNTER_CLOCKWISE,
- gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget)));
+ Tetris *t = (Tetris *) d;
+ g_settings_set_boolean (t->settings, "rotate-counter-clock-wise", gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget)));
}
void
@@ -523,29 +496,31 @@ Tetris::setSelection(GtkWidget *widget, void *data)
t->themeno = gtk_combo_box_get_active (GTK_COMBO_BOX (widget));
t->field->setTheme (t->themeno);
- games_conf_set_string (KEY_OPTIONS_GROUP, KEY_THEME,
- ThemeTable[t->themeno].id);
+ g_settings_set_string (t->settings, "theme", ThemeTable[t->themeno].id);
}
void
Tetris::lineFillHeightChanged (GtkWidget *spin, gpointer data)
{
+ Tetris *t = (Tetris *) data;
gint value = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (spin));
- games_conf_set_integer (KEY_OPTIONS_GROUP, KEY_LINE_FILL_HEIGHT, value);
+ g_settings_set_int (t->settings, "line-fill-height", value);
}
void
Tetris::lineFillProbChanged (GtkWidget *spin, gpointer data)
{
+ Tetris *t = (Tetris *) data;
gint value = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (spin));
- games_conf_set_integer (KEY_OPTIONS_GROUP, KEY_LINE_FILL_PROBABILITY, value);
+ g_settings_set_int (t->settings, "line-fill-probability", value);
}
void
Tetris::startingLevelChanged (GtkWidget *spin, gpointer data)
{
+ Tetris *t = (Tetris *) data;
gint value = gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (spin));
- games_conf_set_integer (KEY_OPTIONS_GROUP, KEY_STARTING_LEVEL, value);
+ g_settings_set_int (t->settings, "starting-level", value);
}
int
@@ -736,14 +711,14 @@ Tetris::gameProperties(GtkAction *action, void *d)
fvbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 6);
gtk_container_add (GTK_CONTAINER (frame), fvbox);
- controls_list = games_controls_list_new (KEY_CONTROLS_GROUP);
+ controls_list = games_controls_list_new_settings (t->settings);
games_controls_list_add_controls (GAMES_CONTROLS_LIST (controls_list),
- KEY_MOVE_LEFT, _("Move left"), GDK_KEY_Left,
- KEY_MOVE_RIGHT, _("Move right"), GDK_KEY_Right,
- KEY_MOVE_DOWN, _("Move down"), GDK_KEY_Down,
- KEY_MOVE_DROP, _("Drop"), GDK_KEY_Pause,
- KEY_MOVE_ROTATE, _("Rotate"), GDK_KEY_Up,
- KEY_MOVE_PAUSE, _("Pause"), GDK_KEY_space,
+ "key-left", _("Move left"), GDK_KEY_Left,
+ "key-right", _("Move right"), GDK_KEY_Right,
+ "key-down", _("Move down"), GDK_KEY_Down,
+ "key-drop", _("Drop"), GDK_KEY_space,
+ "key-rotate", _("Rotate"), GDK_KEY_Up,
+ "key-pause", _("Pause"), GDK_KEY_Pause,
NULL);
gtk_box_pack_start (GTK_BOX (fvbox), controls_list, TRUE, TRUE, 0);
@@ -976,11 +951,11 @@ void Tetris::saveBgOptions ()
{
gchar cbuffer[64];
- games_conf_set_boolean (KEY_OPTIONS_GROUP, KEY_USE_BG_IMAGE, usebg);
+ g_settings_set_boolean (settings, "use-bg-image", usebg);
g_snprintf (cbuffer, sizeof (cbuffer), "#%04x%04x%04x",
bgcolour.red, bgcolour.green, bgcolour.blue);
- games_conf_set_string (KEY_OPTIONS_GROUP, KEY_BG_COLOUR, cbuffer);
+ g_settings_set_string (settings, "bg-color", cbuffer);
}
void
diff --git a/quadrapassel/src/tetris.h b/quadrapassel/src/tetris.h
index 399d1ac..5cf5350 100644
--- a/quadrapassel/src/tetris.h
+++ b/quadrapassel/src/tetris.h
@@ -28,33 +28,6 @@
#include <gtk/gtk.h>
//#include <gdk-pixbuf/gdk-pixbuf.h>
-#include <libgames-support/games-conf.h>
-
-#define KEY_OPTIONS_GROUP "options"
-#define KEY_BG_COLOUR "bgcolor"
-#define KEY_BLOCK_PIXMAP "block_pixmap"
-#define KEY_DO_PREVIEW "do_preview"
-#define KEY_LINE_FILL_HEIGHT "line_fill_height"
-#define KEY_LINE_FILL_PROBABILITY "line_fill_probability"
-#define KEY_BASTARD_MODE "bastard_mode"
-#define KEY_RANDOM_BLOCK_COLORS "random_block_colors"
-#define KEY_ROTATE_COUNTER_CLOCKWISE "rotate_counter_clock_wise"
-#define KEY_SOUND "sound"
-#define KEY_STARTING_LEVEL "starting_level"
-#define KEY_THEME "theme"
-#define KEY_USE_BG_IMAGE "usebgimage"
-#define KEY_USE_TARGET "use_target"
-
-#define KEY_CONTROLS_GROUP "controls"
-#define KEY_MOVE_DOWN "key_down"
-#define KEY_MOVE_DROP "key_drop"
-#define KEY_MOVE_LEFT "key_left"
-#define KEY_MOVE_PAUSE "key_pause"
-#define KEY_MOVE_RIGHT "key_right"
-#define KEY_MOVE_ROTATE "key_rotate"
-
-#define KEY_SAVED_GROUP "saved"
-
extern int LINES;
extern int COLUMNS;
@@ -87,6 +60,7 @@ public:
void setupPixmap ();
private:
+ GSettings *settings;
GtkWidget * w;
GList *themeList;
@@ -150,14 +124,7 @@ private:
static void lineFillProbChanged (GtkWidget * spin, gpointer data);
static void startingLevelChanged (GtkWidget * spin, gpointer data);
- static void confNotify (GamesConf *conf, const char *group,
- const char *key, gpointer data);
- static gchar *confGetString (const char *group, const char *key,
- const char *default_val);
- static int confGetInt (const char *group, const char *key,
- int default_val);
- static gboolean confGetBoolean (const char *group, const char *key,
- gboolean default_val);
+ static void confNotify (GSettings *setting, const char *key, gpointer data);
void initOptions ();
void setOptions ();
void writeOptions ();
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]