[five-or-more/gsoc-vala-port: 17/29] Get theme from settings
- From: Robert Roth <robertroth src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [five-or-more/gsoc-vala-port: 17/29] Get theme from settings
- Date: Mon, 13 Aug 2018 05:50:37 +0000 (UTC)
commit 585363d01d80c2e3f87cf317bba8904ddb297995
Author: Ruxandra Simion <ruxandra simion93 gmail com>
Date: Thu Aug 2 15:19:52 2018 +0300
Get theme from settings
src-vala/main.vala | 1 +
src-vala/theme-renderer.vala | 20 ++++++++++++++++----
src-vala/window.vala | 4 +---
3 files changed, 18 insertions(+), 7 deletions(-)
---
diff --git a/src-vala/main.vala b/src-vala/main.vala
index d5b9182..7f37848 100644
--- a/src-vala/main.vala
+++ b/src-vala/main.vala
@@ -2,6 +2,7 @@ public class FiveOrMoreApp: Gtk.Application
{
public const string KEY_SIZE = "size";
public const string KEY_BACKGROUND_COLOR = "background-color";
+ public const string KEY_THEME = "ball-theme";
private Settings settings;
diff --git a/src-vala/theme-renderer.vala b/src-vala/theme-renderer.vala
index d8ec349..f84ef41 100644
--- a/src-vala/theme-renderer.vala
+++ b/src-vala/theme-renderer.vala
@@ -1,19 +1,31 @@
public class ThemeRenderer
{
- public const string THEME = "balls.svg";
+ private Settings settings;
+
public const int DEFAULT_SPRITE_SIZE = 20;
+ private int sprite_size = DEFAULT_SPRITE_SIZE;
+ private string theme_name;
private Rsvg.Handle? theme = null;
private float sprite_sheet_width;
private float sprite_sheet_height;
private Cairo.Pattern? tile_pattern = null;
+ private Cairo.Context cr_preview;
- private int sprite_size = DEFAULT_SPRITE_SIZE;
+ public ThemeRenderer (Settings settings)
+ {
+ this.settings = settings;
- private Cairo.Context cr_preview;
- public ThemeRenderer (string theme_file)
+ settings.changed[FiveOrMoreApp.KEY_THEME].connect (change_theme_cb);
+ change_theme_cb ();
+ }
+
+ private void change_theme_cb ()
{
+ theme_name = settings.get_string (FiveOrMoreApp.KEY_THEME);
+ var theme_file = Path.build_filename (DATA_DIRECTORY, "themes", theme_name);
+
try
{
theme = new Rsvg.Handle.from_file (theme_file);
diff --git a/src-vala/window.vala b/src-vala/window.vala
index eec6db7..edec5fb 100644
--- a/src-vala/window.vala
+++ b/src-vala/window.vala
@@ -31,9 +31,7 @@ public class GameWindow : Gtk.ApplicationWindow
Object (application: app);
game = new Game (settings);
-
- var theme_file = Path.build_filename (DATA_DIRECTORY, "themes", ThemeRenderer.THEME);
- theme = new ThemeRenderer (theme_file);
+ theme = new ThemeRenderer (settings);
NextPiecesWidget next_pieces_widget = new NextPiecesWidget (settings, game, theme);
preview_hbox.pack_start (next_pieces_widget);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]