[gnome-nibbles/arnaudb/modernize-code: 48/58] Less buttons.
- From: Arnaud B. <arnaudb src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-nibbles/arnaudb/modernize-code: 48/58] Less buttons.
- Date: Wed, 10 Jun 2020 17:16:58 +0000 (UTC)
commit bc26872af0c44b6bb2901ceb005b58262ae9acc2
Author: Arnaud Bonatti <arnaud bonatti gmail com>
Date: Sun May 31 22:48:24 2020 +0200
Less buttons.
data/nibbles.ui | 60 ++++++++++------------------------------------
src/nibbles-window.vala | 63 +++++++++++++++++++++----------------------------
2 files changed, 39 insertions(+), 84 deletions(-)
---
diff --git a/data/nibbles.ui b/data/nibbles.ui
index b7c28ee..7baa8b9 100644
--- a/data/nibbles.ui
+++ b/data/nibbles.ui
@@ -281,75 +281,39 @@
<property name="spacing">10</property>
<property name="vexpand">True</property>
<child>
- <object class="GtkToggleButton" id="ai0">
- <property name="use-underline">True</property>
- <property name="label">_0</property>
- <property name="action-name">win.change-number-of-ais</property>
- <property name="action-target">@i 0</property>
- <property name="sensitive" bind-source="ai0" bind-property="active"
bind-flags="invert-boolean"/>
- <style>
- <class name="number-box"/>
- </style>
- </object>
- </child>
- <child>
- <object class="GtkToggleButton" id="ai1">
- <property name="use-underline">True</property>
- <property name="label">_1</property>
- <property name="action-name">win.change-number-of-ais</property>
- <property name="action-target">@i 1</property>
- <property name="sensitive" bind-source="ai1" bind-property="active"
bind-flags="invert-boolean"/>
- <style>
- <class name="number-box"/>
- </style>
- </object>
- </child>
- <child>
- <object class="GtkToggleButton" id="ai2">
- <property name="use-underline">True</property>
- <property name="label">_2</property>
- <property name="action-name">win.change-number-of-ais</property>
- <property name="action-target">@i 2</property>
- <property name="sensitive" bind-source="ai2" bind-property="active"
bind-flags="invert-boolean"/>
- <style>
- <class name="number-box"/>
- </style>
- </object>
- </child>
- <child>
- <object class="GtkToggleButton" id="ai3">
+ <object class="GtkToggleButton" id="worms4">
<property name="visible">True</property>
<property name="use-underline">True</property>
<property name="label">_3</property>
- <property name="action-name">win.change-number-of-ais</property>
- <property name="action-target">@i 3</property>
- <property name="sensitive" bind-source="ai3" bind-property="active"
bind-flags="invert-boolean"/>
+ <property name="action-name">win.change-worms-number</property>
+ <property name="action-target">@i 4</property>
+ <property name="sensitive" bind-source="worms4" bind-property="active"
bind-flags="invert-boolean"/>
<style>
<class name="number-box"/>
</style>
</object>
</child>
<child>
- <object class="GtkToggleButton" id="ai4">
+ <object class="GtkToggleButton" id="worms5">
<property name="visible">True</property>
<property name="use-underline">True</property>
<property name="label">_4</property>
- <property name="action-name">win.change-number-of-ais</property>
- <property name="action-target">@i 4</property>
- <property name="sensitive" bind-source="ai4" bind-property="active"
bind-flags="invert-boolean"/>
+ <property name="action-name">win.change-worms-number</property>
+ <property name="action-target">@i 5</property>
+ <property name="sensitive" bind-source="worms5" bind-property="active"
bind-flags="invert-boolean"/>
<style>
<class name="number-box"/>
</style>
</object>
</child>
<child>
- <object class="GtkToggleButton" id="ai5">
+ <object class="GtkToggleButton" id="worms6">
<property name="visible">True</property>
<property name="use-underline">True</property>
<property name="label">_5</property>
- <property name="action-name">win.change-number-of-ais</property>
- <property name="action-target">@i 5</property>
- <property name="sensitive" bind-source="ai5" bind-property="active"
bind-flags="invert-boolean"/>
+ <property name="action-name">win.change-worms-number</property>
+ <property name="action-target">@i 6</property>
+ <property name="sensitive" bind-source="worms6" bind-property="active"
bind-flags="invert-boolean"/>
<style>
<class name="number-box"/>
</style>
diff --git a/src/nibbles-window.vala b/src/nibbles-window.vala
index 1ec9c3f..f29c68d 100644
--- a/src/nibbles-window.vala
+++ b/src/nibbles-window.vala
@@ -41,13 +41,9 @@ private class NibblesWindow : ApplicationWindow
[GtkChild] private Button pause_button;
/* Pre-game screen widgets */
- private Gee.LinkedList<ToggleButton> number_of_ai_buttons;
- [GtkChild] private ToggleButton ai0;
- [GtkChild] private ToggleButton ai1;
- [GtkChild] private ToggleButton ai2;
- [GtkChild] private ToggleButton ai3;
- [GtkChild] private ToggleButton ai4;
- [GtkChild] private ToggleButton ai5;
+ [GtkChild] private ToggleButton worms4;
+ [GtkChild] private ToggleButton worms5;
+ [GtkChild] private ToggleButton worms6;
[GtkChild] private Button next_button;
[GtkChild] private Button start_button;
@@ -95,7 +91,7 @@ private class NibblesWindow : ApplicationWindow
{"preferences", preferences_cb},
{"scores", scores_cb},
- {"change-number-of-ais", null, "i", "3", change_number_of_ais },
+ {"change-worms-number", null, "i", "4", change_worms_number },
{"change-humans-number", null, "i", "1", change_humans_number },
{"show-new-game-screen", show_new_game_screen_cb},
{"show-controls-screen", show_controls_screen_cb},
@@ -129,14 +125,6 @@ private class NibblesWindow : ApplicationWindow
key_controller = new EventControllerKey (this);
key_controller.key_pressed.connect (key_press_event_cb);
- number_of_ai_buttons = new Gee.LinkedList<ToggleButton> ();
- number_of_ai_buttons.add (ai0);
- number_of_ai_buttons.add (ai1);
- number_of_ai_buttons.add (ai2);
- number_of_ai_buttons.add (ai3);
- number_of_ai_buttons.add (ai4);
- number_of_ai_buttons.add (ai5);
-
/* Create game */
game = new NibblesGame (settings.get_int ("start-level"),
settings.get_int ("speed"),
@@ -167,10 +155,17 @@ private class NibblesWindow : ApplicationWindow
/* Number of worms */
game.numhumans = settings.get_int ("players");
- game.numai = settings.get_int ("ai");
- ((SimpleAction) lookup_action ("change-number-of-ais")).set_state (game.numai);
+ int numai = settings.get_int ("ai");
+ if (numai + game.numhumans > NibblesGame.MAX_WORMS
+ || numai + game.numhumans < 4)
+ {
+ numai = 4 - game.numhumans;
+ settings.set_int ("ai", numai);
+ }
+ game.numai = numai;
+ ((SimpleAction) lookup_action ("change-worms-number" )).set_state (game.numhumans + numai);
((SimpleAction) lookup_action ("change-humans-number")).set_state (game.numhumans);
- update_visible_buttons ();
+ update_buttons_labels ();
/* Controls screen */
arrow_pixbuf = NibblesView.load_pixmap_file ("arrow.svg", 5 * view.tile_size, 5 * view.tile_size);
@@ -543,32 +538,28 @@ private class NibblesWindow : ApplicationWindow
game.numhumans = humans_number;
settings.set_int ("players", humans_number);
- update_visible_buttons ();
- number_of_ai_buttons[number_of_worms - game.numhumans].set_active (true);
+ int number_of_ais = number_of_worms - humans_number;
+ game.numai = number_of_ais;
+ settings.set_int ("ai", number_of_ais);
+ update_buttons_labels ();
}
- private void update_visible_buttons ()
+ private void update_buttons_labels ()
{
int min_ai = 4 - game.numhumans;
- int max_ai = NibblesGame.MAX_WORMS - game.numhumans;
-
- for (int i = 0; i < min_ai; i++)
- number_of_ai_buttons[i].hide ();
- for (int i = min_ai; i <= max_ai; i++)
- number_of_ai_buttons[i].show ();
- for (int i = max_ai + 1; i < number_of_ai_buttons.size; i++)
- number_of_ai_buttons[i].hide ();
- if (game.numhumans == 4)
- number_of_ai_buttons[0].show ();
+ worms4.set_label (@"_$min_ai");
+ worms5.set_label (@"_$(min_ai + 1)");
+ worms6.set_label (@"_$(min_ai + 2)");
}
- private inline void change_number_of_ais (SimpleAction action, Variant variant)
+ private inline void change_worms_number (SimpleAction action, Variant variant)
{
- int number_of_ais = variant.get_int32 ();
- if (number_of_ais > 5)
+ int worms_number = variant.get_int32 ();
+ if (worms_number < 4 || worms_number > 6)
assert_not_reached ();
- action.set_state (number_of_ais);
+ action.set_state (worms_number);
+ int number_of_ais = worms_number - game.numhumans;
game.numai = number_of_ais;
settings.set_int ("ai", number_of_ais);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]