mirror of
https://github.com/JockeTF/fimfareader.git
synced 2024-11-27 07:28:00 +01:00
TEMPORARY COMMIT - DO NOT MERGE
This commit is contained in:
parent
af165d68a1
commit
018b7ea7d9
4 changed files with 973 additions and 1 deletions
866
Cargo.lock
generated
866
Cargo.lock
generated
File diff suppressed because it is too large
Load diff
|
@ -7,11 +7,13 @@ edition = "2021"
|
||||||
[workspace]
|
[workspace]
|
||||||
members = [
|
members = [
|
||||||
"cli",
|
"cli",
|
||||||
|
"gtk",
|
||||||
"query",
|
"query",
|
||||||
]
|
]
|
||||||
|
|
||||||
default-members = [
|
default-members = [
|
||||||
"cli",
|
"cli",
|
||||||
|
"gtk",
|
||||||
]
|
]
|
||||||
|
|
||||||
[profile.release]
|
[profile.release]
|
||||||
|
|
21
gtk/Cargo.toml
Normal file
21
gtk/Cargo.toml
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
[package]
|
||||||
|
name = "fimfareader-gtk"
|
||||||
|
version = "0.1.0"
|
||||||
|
authors = ["Joakim Soderlund <joakim.soderlund@gmail.com>"]
|
||||||
|
edition = "2021"
|
||||||
|
|
||||||
|
[dependencies.fimfareader]
|
||||||
|
path = ".."
|
||||||
|
|
||||||
|
[dependencies.fimfareader-query]
|
||||||
|
path = "../query"
|
||||||
|
|
||||||
|
[dependencies.relm4]
|
||||||
|
git = "https://github.com/Relm4/Relm4.git"
|
||||||
|
features = ["all"]
|
||||||
|
|
||||||
|
[dependencies.relm4-macros]
|
||||||
|
git = "https://github.com/Relm4/Relm4.git"
|
||||||
|
|
||||||
|
[dependencies.relm4-components]
|
||||||
|
git = "https://github.com/Relm4/Relm4.git"
|
85
gtk/src/main.rs
Normal file
85
gtk/src/main.rs
Normal file
|
@ -0,0 +1,85 @@
|
||||||
|
use relm4::component;
|
||||||
|
use relm4::gtk;
|
||||||
|
use relm4::gtk::traits::BoxExt;
|
||||||
|
use relm4::gtk::traits::ButtonExt;
|
||||||
|
use relm4::gtk::traits::GtkWindowExt;
|
||||||
|
use relm4::gtk::traits::OrientableExt;
|
||||||
|
use relm4::ComponentParts;
|
||||||
|
use relm4::ComponentSender;
|
||||||
|
use relm4::RelmApp;
|
||||||
|
use relm4::SimpleComponent;
|
||||||
|
use relm4::WidgetPlus;
|
||||||
|
|
||||||
|
struct AppModel {
|
||||||
|
counter: u8,
|
||||||
|
}
|
||||||
|
|
||||||
|
#[derive(Debug)]
|
||||||
|
enum AppInput {
|
||||||
|
Decrement,
|
||||||
|
Increment,
|
||||||
|
}
|
||||||
|
|
||||||
|
#[component]
|
||||||
|
impl SimpleComponent for AppModel {
|
||||||
|
type Input = AppInput;
|
||||||
|
type Output = ();
|
||||||
|
type InitParams = u8;
|
||||||
|
type Widgets = AppWidgets;
|
||||||
|
|
||||||
|
fn init(
|
||||||
|
params: Self::InitParams,
|
||||||
|
root: &Self::Root,
|
||||||
|
sender: ComponentSender<Self>,
|
||||||
|
) -> ComponentParts<Self> {
|
||||||
|
let model = Self { counter: params };
|
||||||
|
let widgets = view_output!();
|
||||||
|
|
||||||
|
ComponentParts { model, widgets }
|
||||||
|
}
|
||||||
|
|
||||||
|
fn update(&mut self, message: Self::Input, _: ComponentSender<Self>) {
|
||||||
|
use AppInput::*;
|
||||||
|
|
||||||
|
match message {
|
||||||
|
Decrement => self.counter = self.counter.saturating_sub(1),
|
||||||
|
Increment => self.counter = self.counter.saturating_add(1),
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
view! {
|
||||||
|
gtk::Window {
|
||||||
|
set_title: Some("Fimfarchive"),
|
||||||
|
set_default_width: 320,
|
||||||
|
set_default_height: 240,
|
||||||
|
|
||||||
|
gtk::Box {
|
||||||
|
set_orientation: gtk::Orientation::Vertical,
|
||||||
|
set_margin_all: 5,
|
||||||
|
set_spacing: 5,
|
||||||
|
|
||||||
|
gtk::Button::with_label("Increment") {
|
||||||
|
connect_clicked[sender] => move |_| {
|
||||||
|
sender.input(AppInput::Increment)
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
|
gtk::Button::with_label("Decrement") {
|
||||||
|
connect_clicked[sender] => move |_| {
|
||||||
|
sender.input(AppInput::Decrement)
|
||||||
|
},
|
||||||
|
},
|
||||||
|
|
||||||
|
gtk::Label {
|
||||||
|
#[watch]
|
||||||
|
set_label: &format!("Count: {}", model.counter),
|
||||||
|
set_margin_all: 5,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fn main() {
|
||||||
|
RelmApp::new("net.fimfarchive.reader").run::<AppModel>(0);
|
||||||
|
}
|
Loading…
Reference in a new issue