guessing is completed
This commit is contained in:
@@ -1,10 +1,13 @@
|
||||
|
||||
use crate::labled_switch::LabledSwitch;
|
||||
|
||||
use glib::subclass::InitializingObject;
|
||||
use gtk::subclass::prelude::*;
|
||||
use gtk::{glib, CompositeTemplate};
|
||||
use crate::ui::guessing::game::GuessingScene;
|
||||
use crate::APP_ID;
|
||||
|
||||
use gio::Settings;
|
||||
use glib::subclass::InitializingObject;
|
||||
use gtk::glib::closure_local;
|
||||
use gtk::subclass::prelude::*;
|
||||
use gtk::{gio, glib, prelude::*, Button, CompositeTemplate};
|
||||
|
||||
#[derive(CompositeTemplate, Default)]
|
||||
#[template(resource = "/org/foxarmy/learn-hieroglyph/guessing/setup/ui.xml")]
|
||||
@@ -17,6 +20,8 @@ pub struct GuessingSetupScene {
|
||||
pub ktr_enable: TemplateChild<LabledSwitch>,
|
||||
#[template_child]
|
||||
pub rtk_enable: TemplateChild<LabledSwitch>,
|
||||
#[template_child]
|
||||
pub start_button: TemplateChild<Button>,
|
||||
}
|
||||
|
||||
#[glib::object_subclass]
|
||||
@@ -39,6 +44,41 @@ impl ObjectImpl for GuessingSetupScene {
|
||||
self.parent_constructed();
|
||||
|
||||
//TODO: tie switches to settings and make "start" button
|
||||
|
||||
let settings: Settings = Settings::new(APP_ID);
|
||||
|
||||
let hiragana_enable_ref: &LabledSwitch = self.hiragana_enable.as_ref();
|
||||
let hiragana_enable_ref = hiragana_enable_ref.get_switch();
|
||||
settings
|
||||
.bind("is-hiragana-enabled", hiragana_enable_ref, "active")
|
||||
.build();
|
||||
|
||||
let katakana_enable_ref: &LabledSwitch = self.katakana_enable.as_ref();
|
||||
let katakana_enable_ref = katakana_enable_ref.get_switch();
|
||||
settings
|
||||
.bind("is-katakana-enabled", katakana_enable_ref, "active")
|
||||
.build();
|
||||
|
||||
let ktr_enable_ref: &LabledSwitch = self.ktr_enable.as_ref();
|
||||
let ktr_enable_ref = ktr_enable_ref.get_switch();
|
||||
settings
|
||||
.bind("is-ktr-enabled", ktr_enable_ref, "active")
|
||||
.build();
|
||||
|
||||
let rtk_enable_ref: &LabledSwitch = self.rtk_enable.as_ref();
|
||||
let rtk_enable_ref = rtk_enable_ref.get_switch();
|
||||
settings
|
||||
.bind("is-rtk-enabled", rtk_enable_ref, "active")
|
||||
.build();
|
||||
|
||||
let binding = self.obj();
|
||||
|
||||
self.start_button.connect_closure("clicked",
|
||||
false,
|
||||
closure_local!(@strong binding => move |_b: &Button| {
|
||||
let new_win: GuessingScene = GuessingScene::new(&binding.application().unwrap());
|
||||
new_win.present();
|
||||
}));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -46,4 +86,4 @@ impl WidgetImpl for GuessingSetupScene {}
|
||||
|
||||
impl WindowImpl for GuessingSetupScene {}
|
||||
|
||||
impl ApplicationWindowImpl for GuessingSetupScene {}
|
||||
impl ApplicationWindowImpl for GuessingSetupScene {}
|
||||
|
||||
Reference in New Issue
Block a user