[gnome-games/wip/exalm/ds: 1/2] retro-runner-builder: Allow subclassing
- From: Alexander Mikhaylenko <alexm src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-games/wip/exalm/ds: 1/2] retro-runner-builder: Allow subclassing
- Date: Wed, 19 Jun 2019 10:45:54 +0000 (UTC)
commit 1493c295e3300929def4f822aa00a5493435430a
Author: Alexander Mikhaylenko <exalm7659 gmail com>
Date: Wed Jun 19 15:43:32 2019 +0500
retro-runner-builder: Allow subclassing
src/retro/retro-runner-builder.vala | 4 ++--
src/retro/retro-runner.vala | 36 +++++++++++++++++++-----------------
2 files changed, 21 insertions(+), 19 deletions(-)
---
diff --git a/src/retro/retro-runner-builder.vala b/src/retro/retro-runner-builder.vala
index 2f1150e5..543c8c6e 100644
--- a/src/retro/retro-runner-builder.vala
+++ b/src/retro/retro-runner-builder.vala
@@ -46,11 +46,11 @@ public class Games.RetroRunnerBuilder : Object {
media_set = new MediaSet ();
}
- public RetroRunner to_runner () {
+ public RetroRunner to_runner (Type type = typeof (RetroRunner)) {
return_val_if_fail (uid != null, null);
return_val_if_fail (title != null, null);
return_val_if_fail (platform != null, null);
- return new RetroRunner (this);
+ return Object.new (type, "builder", this, null) as RetroRunner;
}
}
diff --git a/src/retro/retro-runner.vala b/src/retro/retro-runner.vala
index 81ecf792..8da75815 100644
--- a/src/retro/retro-runner.vala
+++ b/src/retro/retro-runner.vala
@@ -80,24 +80,26 @@ public class Games.RetroRunner : Object, Runner {
private bool is_ready;
private bool should_save;
- internal RetroRunner (RetroRunnerBuilder builder) {
+ public RetroRunnerBuilder builder {
+ construct {
+ core_descriptor = value.core_descriptor;
+ _media_set = value.media_set;
+
+ uid = value.uid;
+ core_source = value.core_source;
+ platform = value.platform;
+ input_capabilities = value.input_capabilities;
+ game_title = value.title;
+
+ _media_set.notify["selected-media-number"].connect (on_media_number_changed);
+ }
+ }
+
+ construct {
is_initialized = false;
is_ready = false;
should_save = false;
- core_descriptor = builder.core_descriptor;
- _media_set = builder.media_set;
-
- uid = builder.uid;
- core_source = builder.core_source;
- platform = builder.platform;
- input_capabilities = builder.input_capabilities;
- game_title = builder.title;
-
- _media_set.notify["selected-media-number"].connect (on_media_number_changed);
- }
-
- construct {
settings = new Settings ("org.gnome.Games");
}
@@ -133,7 +135,7 @@ public class Games.RetroRunner : Object, Runner {
return view;
}
- public Gtk.Widget? get_extra_widget () {
+ public virtual Gtk.Widget? get_extra_widget () {
return null;
}
@@ -309,11 +311,11 @@ public class Games.RetroRunner : Object, Runner {
return { InputMode.GAMEPAD };
}
- public bool key_press_event (Gdk.EventKey event) {
+ public virtual bool key_press_event (Gdk.EventKey event) {
return false;
}
- public bool gamepad_button_press_event (uint16 button) {
+ public virtual bool gamepad_button_press_event (uint16 button) {
return false;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]