[gnome-games/gsoc-seed-games] [same-gnome-clutter] All settings persist through GConf now
- From: Tim Horton <hortont src gnome org>
- To: svn-commits-list gnome org
- Subject: [gnome-games/gsoc-seed-games] [same-gnome-clutter] All settings persist through GConf now
- Date: Mon, 13 Jul 2009 00:37:18 +0000 (UTC)
commit 778b85ce722174e41c4c3f334ad058bb1c95de30
Author: Tim Horton <hortont424 gmail com>
Date: Sun Jul 12 20:36:55 2009 -0400
[same-gnome-clutter] All settings persist through GConf now
same-gnome-clutter/data/settings.ui | 53 +++++++++++++++-
same-gnome-clutter/src/Settings.js | 116 +++++++++++++++++++++++++++++++++--
2 files changed, 160 insertions(+), 9 deletions(-)
---
diff --git a/same-gnome-clutter/data/settings.ui b/same-gnome-clutter/data/settings.ui
index 4309e1c..d531377 100644
--- a/same-gnome-clutter/data/settings.ui
+++ b/same-gnome-clutter/data/settings.ui
@@ -52,6 +52,16 @@
<property name="position">1</property>
</packing>
</child>
+ <child>
+ <object class="GtkLabel" id="label9">
+ <property name="visible">True</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">Number of colors:</property>
+ </object>
+ <packing>
+ <property name="position">2</property>
+ </packing>
+ </child>
</object>
<packing>
<property name="position">0</property>
@@ -62,25 +72,41 @@
<property name="visible">True</property>
<property name="orientation">vertical</property>
<child>
- <object class="GtkSpinButton" id="spinbutton1">
+ <object class="GtkSpinButton" id="rows-spinner">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="invisible_char">•</property>
+ <property name="adjustment">rows-adjustment</property>
+ <signal name="value_changed" handler="update_rows"/>
</object>
<packing>
<property name="position">0</property>
</packing>
</child>
<child>
- <object class="GtkSpinButton" id="spinbutton2">
+ <object class="GtkSpinButton" id="columns-spinner">
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="invisible_char">•</property>
+ <property name="adjustment">columns-adjustment</property>
+ <signal name="value_changed" handler="update_columns"/>
</object>
<packing>
<property name="position">1</property>
</packing>
</child>
+ <child>
+ <object class="GtkSpinButton" id="colors-spinner">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="invisible_char">•</property>
+ <property name="adjustment">color-adjustment</property>
+ <signal name="value_changed" handler="update_colors"/>
+ </object>
+ <packing>
+ <property name="position">2</property>
+ </packing>
+ </child>
</object>
<packing>
<property name="position">1</property>
@@ -134,6 +160,7 @@
<object class="GtkComboBox" id="theme-selector">
<property name="visible">True</property>
<property name="model">liststore1</property>
+ <signal name="changed" handler="select_theme"/>
</object>
<packing>
<property name="padding">8</property>
@@ -184,24 +211,26 @@
<property name="visible">True</property>
<property name="orientation">vertical</property>
<child>
- <object class="GtkCheckButton" id="checkbutton1">
+ <object class="GtkCheckButton" id="zealous-checkbox">
<property name="label" translatable="yes">Zealous Animation</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
<property name="draw_indicator">True</property>
+ <signal name="toggled" handler="set_zealous_animation"/>
</object>
<packing>
<property name="position">0</property>
</packing>
</child>
<child>
- <object class="GtkCheckButton" id="checkbutton2">
+ <object class="GtkCheckButton" id="fly-score-checkbox">
<property name="label" translatable="yes">Fly score increment (words!)</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
<property name="draw_indicator">True</property>
+ <signal name="toggled" handler="set_fly_score"/>
</object>
<packing>
<property name="position">1</property>
@@ -236,6 +265,7 @@
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="use_stock">True</property>
+ <signal name="activate" handler="reset_defaults"/>
</object>
<packing>
<property name="expand">False</property>
@@ -277,4 +307,19 @@
<column type="gchararray"/>
</columns>
</object>
+ <object class="GtkAdjustment" id="rows-adjustment">
+ <property name="lower">3</property>
+ <property name="upper">21</property>
+ <property name="step_increment">1</property>
+ </object>
+ <object class="GtkAdjustment" id="columns-adjustment">
+ <property name="lower">3</property>
+ <property name="upper">21</property>
+ <property name="step_increment">1</property>
+ </object>
+ <object class="GtkAdjustment" id="color-adjustment">
+ <property name="lower">2</property>
+ <property name="upper">4</property>
+ <property name="step_increment">1</property>
+ </object>
</interface>
diff --git a/same-gnome-clutter/src/Settings.js b/same-gnome-clutter/src/Settings.js
index 1d0134e..ed5d4df 100644
--- a/same-gnome-clutter/src/Settings.js
+++ b/same-gnome-clutter/src/Settings.js
@@ -8,8 +8,13 @@ ThemeLoader = imports.ThemeLoader;
GConf.init(Seed.argv);
// Defaults
-var theme;
+var theme, columns, rows, colors, zealous, fly_score;
var default_theme = "Tango";
+var default_columns = 15;
+var default_rows = 10;
+var default_colors = 3;
+var default_zealous = true;
+var default_fly_score = true;
// Map theme names to themes
var themes = ThemeLoader.load_themes();
@@ -18,6 +23,20 @@ try
{
gconf_client = GConf.Client.get_default();
theme = themes[gconf_client.get_string("/apps/same-gnome-clutter/theme")];
+ columns = gconf_client.get_int("/apps/same-gnome-clutter/columns");
+ rows = gconf_client.get_int("/apps/same-gnome-clutter/rows");
+ colors = gconf_client.get_int("/apps/same-gnome-clutter/colors");
+ zealous = gconf_client.get_bool("/apps/same-gnome-clutter/zealous");
+ fly_score = gconf_client.get_bool("/apps/same-gnome-clutter/fly_score");
+
+ if(columns < 4 || columns > 20) // TODO: arbitrary. determine reasonable limits
+ columns = default_columns;
+
+ if(rows < 4 || rows > 20)
+ rows = default_rows;
+
+ if(colors < 2 || colors > 4)
+ colors = default_colors;
if(theme == null)
theme = themes[default_theme];
@@ -26,6 +45,11 @@ catch(e)
{
print("Couldn't load settings from GConf.");
theme = themes[default_theme];
+ columns = default_columns;
+ rows = default_rows;
+ colors = default_colors;
+ zealous = default_zealous;
+ fly_score = default_fly_score;
}
// Settings Event Handler
@@ -33,7 +57,7 @@ catch(e)
SettingsWatcher = new GType({
parent: Gtk.Button.type, // TODO: Can I make something inherit directly from GObject?!
name: "SettingsWatcher",
- signals: [{name: "theme_changed"}],
+ signals: [{name: "theme_changed"}, {name: "size_changed"}, {name: "colors_changed"}],
init: function()
{
@@ -57,14 +81,89 @@ handlers = {
try
{
- gconf_client.set_string("/apps/lightsoff/theme", selector.get_active_text());
+ gconf_client.set_string("/apps/same-gnome-clutter/theme", selector.get_active_text());
}
catch(e)
{
- Seed.print("Couldn't save settings to GConf.");
+ print("Couldn't save settings to GConf.");
}
Watcher.signal.theme_changed.emit();
+ },
+ set_zealous_animation: function(widget, ud)
+ {
+ zealous = widget.active;
+
+ try
+ {
+ gconf_client.set_bool("/apps/same-gnome-clutter/zealous", zealous);
+ }
+ catch(e)
+ {
+ print("Couldn't save settings to GConf.");
+ }
+ },
+ set_fly_score: function(widget, ud)
+ {
+ fly_score = widget.active;
+
+ try
+ {
+ gconf_client.set_bool("/apps/same-gnome-clutter/fly_score", fly_score);
+ }
+ catch(e)
+ {
+ print("Couldn't save settings to GConf.");
+ }
+ },
+ update_rows: function(widget, ud)
+ {
+ rows = widget.get_value();
+
+ try
+ {
+ gconf_client.set_int("/apps/same-gnome-clutter/rows", rows);
+ }
+ catch(e)
+ {
+ print("Couldn't save settings to GConf.");
+ }
+
+ Watcher.signal.size_changed.emit();
+ },
+ update_columns: function(widget, ud)
+ {
+ columns = widget.get_value();
+
+ try
+ {
+ gconf_client.set_int("/apps/same-gnome-clutter/columns", columns);
+ }
+ catch(e)
+ {
+ print("Couldn't save settings to GConf.");
+ }
+
+ Watcher.signal.size_changed.emit();
+ },
+ update_colors: function(widget, ud)
+ {
+ colors = widget.get_value();
+
+ try
+ {
+ gconf_client.set_int("/apps/same-gnome-clutter/colors", colors);
+ }
+ catch(e)
+ {
+ print("Couldn't save settings to GConf.");
+ }
+
+ Watcher.signal.colors_changed.emit();
+ },
+ reset_defaults: function(widget, ud)
+ {
+ print("Not yet implemented.");
}
};
@@ -77,7 +176,14 @@ function show_settings()
b.connect_signals(handlers);
populate_theme_selector(b.get_object("theme-selector"));
-
+
+ // Set current values
+ b.get_object("rows-spinner").value = rows;
+ b.get_object("columns-spinner").value = columns;
+ b.get_object("colors-spinner").value = colors;
+ b.get_object("zealous-checkbox").active = zealous;
+ b.get_object("fly-score-checkbox").active = fly_score;
+
settings_dialog = b.get_object("dialog1");
settings_dialog.set_transient_for(main.window);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]