mirror of
https://github.com/13hannes11/toolbx-tuner.git
synced 2024-09-03 23:21:00 +02:00
add app dialogue concept
This commit is contained in:
70
src/main.rs
70
src/main.rs
@@ -22,6 +22,76 @@ fn main() {
|
|||||||
status: ToolboxStatus::Stopped,
|
status: ToolboxStatus::Stopped,
|
||||||
update_available: true,
|
update_available: true,
|
||||||
});
|
});
|
||||||
|
factory_vec.push(ToolboxContainer {
|
||||||
|
name: "Rust".to_string(),
|
||||||
|
status: ToolboxStatus::Stopped,
|
||||||
|
update_available: true,
|
||||||
|
});
|
||||||
|
factory_vec.push(ToolboxContainer {
|
||||||
|
name: "Rust".to_string(),
|
||||||
|
status: ToolboxStatus::Stopped,
|
||||||
|
update_available: true,
|
||||||
|
});
|
||||||
|
factory_vec.push(ToolboxContainer {
|
||||||
|
name: "Rust".to_string(),
|
||||||
|
status: ToolboxStatus::Stopped,
|
||||||
|
update_available: true,
|
||||||
|
});
|
||||||
|
factory_vec.push(ToolboxContainer {
|
||||||
|
name: "Rust".to_string(),
|
||||||
|
status: ToolboxStatus::Stopped,
|
||||||
|
update_available: true,
|
||||||
|
});
|
||||||
|
factory_vec.push(ToolboxContainer {
|
||||||
|
name: "Rust".to_string(),
|
||||||
|
status: ToolboxStatus::Stopped,
|
||||||
|
update_available: true,
|
||||||
|
});
|
||||||
|
factory_vec.push(ToolboxContainer {
|
||||||
|
name: "Rust".to_string(),
|
||||||
|
status: ToolboxStatus::Stopped,
|
||||||
|
update_available: true,
|
||||||
|
});
|
||||||
|
factory_vec.push(ToolboxContainer {
|
||||||
|
name: "Rust".to_string(),
|
||||||
|
status: ToolboxStatus::Stopped,
|
||||||
|
update_available: true,
|
||||||
|
});
|
||||||
|
factory_vec.push(ToolboxContainer {
|
||||||
|
name: "Rust".to_string(),
|
||||||
|
status: ToolboxStatus::Stopped,
|
||||||
|
update_available: true,
|
||||||
|
});
|
||||||
|
factory_vec.push(ToolboxContainer {
|
||||||
|
name: "Rust".to_string(),
|
||||||
|
status: ToolboxStatus::Stopped,
|
||||||
|
update_available: true,
|
||||||
|
});
|
||||||
|
factory_vec.push(ToolboxContainer {
|
||||||
|
name: "Rust".to_string(),
|
||||||
|
status: ToolboxStatus::Stopped,
|
||||||
|
update_available: true,
|
||||||
|
});
|
||||||
|
factory_vec.push(ToolboxContainer {
|
||||||
|
name: "Rust".to_string(),
|
||||||
|
status: ToolboxStatus::Stopped,
|
||||||
|
update_available: true,
|
||||||
|
});
|
||||||
|
factory_vec.push(ToolboxContainer {
|
||||||
|
name: "Rust".to_string(),
|
||||||
|
status: ToolboxStatus::Stopped,
|
||||||
|
update_available: true,
|
||||||
|
});
|
||||||
|
factory_vec.push(ToolboxContainer {
|
||||||
|
name: "Rust".to_string(),
|
||||||
|
status: ToolboxStatus::Stopped,
|
||||||
|
update_available: true,
|
||||||
|
});
|
||||||
|
factory_vec.push(ToolboxContainer {
|
||||||
|
name: "Rust".to_string(),
|
||||||
|
status: ToolboxStatus::Stopped,
|
||||||
|
update_available: true,
|
||||||
|
});
|
||||||
|
|
||||||
let model = AppModel {
|
let model = AppModel {
|
||||||
toolboxes: factory_vec,
|
toolboxes: factory_vec,
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
pub enum AppMsg {
|
pub enum AppMsg {
|
||||||
ShowToolboxSettingsRequest,
|
ShowToolboxSettingsRequest,
|
||||||
|
ShowToolboxAppsRequest,
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
use relm4::{factory::FactoryVec, Model};
|
use relm4::{factory::FactoryVec, Model};
|
||||||
|
|
||||||
use crate::ui::components::toolbox_settings::model::AppComponents;
|
use crate::ui::components::AppComponents;
|
||||||
|
|
||||||
use super::{messages::AppMsg, widgets::AppWidgets};
|
use super::{messages::AppMsg, widgets::AppWidgets};
|
||||||
|
|
||||||
|
|||||||
@@ -43,6 +43,9 @@ impl FactoryPrototype for ToolboxContainer {
|
|||||||
set_margin_bottom: 10,
|
set_margin_bottom: 10,
|
||||||
set_tooltip_text: Some(APP_TOOLTIP),
|
set_tooltip_text: Some(APP_TOOLTIP),
|
||||||
set_css_classes: &["flat"],
|
set_css_classes: &["flat"],
|
||||||
|
connect_clicked(sender) => move |btn| {
|
||||||
|
send!(sender, AppMsg::ShowToolboxAppsRequest);
|
||||||
|
},
|
||||||
},
|
},
|
||||||
append = >k::Button::from_icon_name(TERMINAL_ICON) {
|
append = >k::Button::from_icon_name(TERMINAL_ICON) {
|
||||||
set_margin_start: 10,
|
set_margin_start: 10,
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
use relm4::{AppUpdate, Sender};
|
use relm4::{AppUpdate, Sender};
|
||||||
|
|
||||||
use crate::ui::components::toolbox_settings::{
|
use crate::ui::components::{toolbox_settings::{
|
||||||
messages::ToolboxSettingsDialogMsg, model::AppComponents,
|
messages::ToolboxSettingsDialogMsg,
|
||||||
};
|
}, toolbox_apps::messages::ToolboxAppDialogMsg, AppComponents};
|
||||||
|
|
||||||
use super::{messages::AppMsg, model::AppModel};
|
use super::{messages::AppMsg, model::AppModel};
|
||||||
|
|
||||||
@@ -14,6 +14,11 @@ impl AppUpdate for AppModel {
|
|||||||
.toolbox_settings_dialog
|
.toolbox_settings_dialog
|
||||||
.send(ToolboxSettingsDialogMsg::Show)
|
.send(ToolboxSettingsDialogMsg::Show)
|
||||||
.unwrap();
|
.unwrap();
|
||||||
|
},
|
||||||
|
AppMsg::ShowToolboxAppsRequest => {
|
||||||
|
components.toolbox_apps_dialog
|
||||||
|
.send(ToolboxAppDialogMsg::Show)
|
||||||
|
.unwrap();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
true
|
true
|
||||||
|
|||||||
@@ -16,24 +16,26 @@ impl Widgets<AppModel, ()> for AppWidgets {
|
|||||||
main_window = adw::ApplicationWindow {
|
main_window = adw::ApplicationWindow {
|
||||||
set_default_width: 800,
|
set_default_width: 800,
|
||||||
set_default_height: 600,
|
set_default_height: 600,
|
||||||
|
set_content : main_box = Some(>k::Box) {
|
||||||
set_content: main_box = Some(>k::Box) {
|
|
||||||
set_orientation: gtk::Orientation::Vertical,
|
set_orientation: gtk::Orientation::Vertical,
|
||||||
|
|
||||||
append = &adw::HeaderBar {
|
append = &adw::HeaderBar {
|
||||||
set_title_widget = Some(>k::Label) {
|
set_title_widget = Some(>k::Label) {
|
||||||
set_label: "Toolbox Tuner",
|
set_label: "Toolbox Tuner",
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
append = >k::ListBox {
|
append = >k::ScrolledWindow {
|
||||||
set_selection_mode: SelectionMode::None,
|
set_hexpand: true,
|
||||||
set_margin_all: 30,
|
set_vexpand: true,
|
||||||
set_css_classes: &["boxed-list"],
|
set_child = Some(>k::ListBox) {
|
||||||
factory!(model.toolboxes)
|
set_selection_mode: SelectionMode::None,
|
||||||
|
set_margin_all: 30,
|
||||||
|
set_css_classes: &["boxed-list"],
|
||||||
|
factory!(model.toolboxes)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
},
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1 +1,15 @@
|
|||||||
|
use relm4::Sender;
|
||||||
|
use relm4::RelmComponent;
|
||||||
|
|
||||||
|
use self::{toolbox_settings::model::ToolboxSettingsDialogModel, toolbox_apps::model::ToolboxAppDialogModel};
|
||||||
|
|
||||||
|
use super::app::model::AppModel;
|
||||||
|
|
||||||
pub mod toolbox_settings;
|
pub mod toolbox_settings;
|
||||||
|
pub mod toolbox_apps;
|
||||||
|
|
||||||
|
#[derive(relm4::Components)]
|
||||||
|
pub struct AppComponents {
|
||||||
|
pub toolbox_settings_dialog: RelmComponent<ToolboxSettingsDialogModel, AppModel>,
|
||||||
|
pub toolbox_apps_dialog: RelmComponent<ToolboxAppDialogModel, AppModel>,
|
||||||
|
}
|
||||||
4
src/ui/components/toolbox_apps/messages.rs
Normal file
4
src/ui/components/toolbox_apps/messages.rs
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
pub enum ToolboxAppDialogMsg {
|
||||||
|
Show,
|
||||||
|
Close,
|
||||||
|
}
|
||||||
4
src/ui/components/toolbox_apps/mod.rs
Normal file
4
src/ui/components/toolbox_apps/mod.rs
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
pub mod messages;
|
||||||
|
pub mod model;
|
||||||
|
pub mod update;
|
||||||
|
pub mod widgets;
|
||||||
14
src/ui/components/toolbox_apps/model.rs
Normal file
14
src/ui/components/toolbox_apps/model.rs
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
use relm4::{Model};
|
||||||
|
|
||||||
|
|
||||||
|
use super::{messages::ToolboxAppDialogMsg, widgets::ToolboxAppDialogWidgets};
|
||||||
|
|
||||||
|
pub struct ToolboxAppDialogModel {
|
||||||
|
pub hidden: bool,
|
||||||
|
}
|
||||||
|
|
||||||
|
impl Model for ToolboxAppDialogModel {
|
||||||
|
type Msg = ToolboxAppDialogMsg;
|
||||||
|
type Widgets = ToolboxAppDialogWidgets;
|
||||||
|
type Components = ();
|
||||||
|
}
|
||||||
24
src/ui/components/toolbox_apps/update.rs
Normal file
24
src/ui/components/toolbox_apps/update.rs
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
use relm4::{ComponentUpdate, Sender};
|
||||||
|
|
||||||
|
use crate::ui::app::{messages::AppMsg, model::AppModel};
|
||||||
|
|
||||||
|
use super::{messages::ToolboxAppDialogMsg, model::ToolboxAppDialogModel};
|
||||||
|
|
||||||
|
impl ComponentUpdate<AppModel> for ToolboxAppDialogModel {
|
||||||
|
fn init_model(_parent_model: &AppModel) -> Self {
|
||||||
|
ToolboxAppDialogModel { hidden: true }
|
||||||
|
}
|
||||||
|
|
||||||
|
fn update(
|
||||||
|
&mut self,
|
||||||
|
msg: ToolboxAppDialogMsg,
|
||||||
|
_components: &(),
|
||||||
|
_sender: Sender<ToolboxAppDialogMsg>,
|
||||||
|
parent_sender: Sender<AppMsg>,
|
||||||
|
) {
|
||||||
|
match msg {
|
||||||
|
ToolboxAppDialogMsg::Show => self.hidden = false,
|
||||||
|
ToolboxAppDialogMsg::Close => self.hidden = true,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
391
src/ui/components/toolbox_apps/widgets.rs
Normal file
391
src/ui/components/toolbox_apps/widgets.rs
Normal file
@@ -0,0 +1,391 @@
|
|||||||
|
use std::cell::Cell;
|
||||||
|
|
||||||
|
|
||||||
|
use gtk::Orientation;
|
||||||
|
use gtk::PolicyType;
|
||||||
|
use relm4::adw;
|
||||||
|
use relm4::adw::prelude::BoxExt;
|
||||||
|
use relm4::adw::prelude::GtkWindowExt;
|
||||||
|
use relm4::adw::prelude::WidgetExt;
|
||||||
|
use relm4::adw::traits::PreferencesGroupExt;
|
||||||
|
use relm4::adw::traits::PreferencesPageExt;
|
||||||
|
use relm4::adw::traits::PreferencesWindowExt;
|
||||||
|
use relm4::gtk;
|
||||||
|
use relm4::send;
|
||||||
|
use relm4::WidgetPlus;
|
||||||
|
use relm4::Widgets;
|
||||||
|
use gtk::glib;
|
||||||
|
|
||||||
|
use gtk::prelude::*;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
use crate::ui::app::model::AppModel;
|
||||||
|
use crate::ui::components::toolbox_apps::messages::ToolboxAppDialogMsg;
|
||||||
|
|
||||||
|
use super::model::ToolboxAppDialogModel;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#[relm4::widget(pub)]
|
||||||
|
impl Widgets<ToolboxAppDialogModel, AppModel> for ToolboxAppDialogWidgets {
|
||||||
|
view! {
|
||||||
|
adw::PreferencesWindow {
|
||||||
|
set_title: Some("Applications: <Toolbox_name>"),
|
||||||
|
set_transient_for: parent!{Some(&parent_widgets.main_window)},
|
||||||
|
set_modal: true,
|
||||||
|
set_search_enabled: false,
|
||||||
|
set_visible: watch!(!model.hidden),
|
||||||
|
connect_close_request(sender) => move |_| {
|
||||||
|
send!(sender, ToolboxAppDialogMsg::Close);
|
||||||
|
gtk::Inhibit(true)
|
||||||
|
},
|
||||||
|
add = &adw::PreferencesPage {
|
||||||
|
set_hexpand: true,
|
||||||
|
set_vexpand: false,
|
||||||
|
add = &adw::PreferencesGroup {
|
||||||
|
add = >k::ScrolledWindow {
|
||||||
|
set_hscrollbar_policy: PolicyType::Never,
|
||||||
|
set_hexpand: false,
|
||||||
|
set_vexpand: true,
|
||||||
|
set_child = Some(>k::FlowBox) {
|
||||||
|
set_halign: gtk::Align::Fill,
|
||||||
|
set_valign: gtk::Align::Start,
|
||||||
|
set_selection_mode: gtk::SelectionMode::None,
|
||||||
|
set_margin_all: 5,
|
||||||
|
set_column_spacing: 5,
|
||||||
|
set_row_spacing: 5,
|
||||||
|
set_orientation: Orientation::Horizontal,
|
||||||
|
insert(1) = >k::Box {
|
||||||
|
set_css_classes: &[&"card"],
|
||||||
|
set_halign: gtk::Align::Center,
|
||||||
|
set_valign: gtk::Align::Center,
|
||||||
|
set_orientation: Orientation::Vertical,
|
||||||
|
set_hexpand: false,
|
||||||
|
set_vexpand: false,
|
||||||
|
set_width_request: 100,
|
||||||
|
set_height_request: 100,
|
||||||
|
|
||||||
|
append = >k::Switch {
|
||||||
|
set_halign: gtk::Align::Center,
|
||||||
|
set_valign: gtk::Align::Center,
|
||||||
|
set_hexpand: false,
|
||||||
|
set_vexpand: false,
|
||||||
|
set_margin_all: 10,
|
||||||
|
},
|
||||||
|
append = >k::Button {
|
||||||
|
set_halign: gtk::Align::Center,
|
||||||
|
set_valign: gtk::Align::Center,
|
||||||
|
set_width_request: 64,
|
||||||
|
set_height_request: 64,
|
||||||
|
set_margin_start: 36,
|
||||||
|
set_margin_end: 36,
|
||||||
|
set_hexpand: false,
|
||||||
|
set_vexpand: false,
|
||||||
|
},
|
||||||
|
append = >k::Label {
|
||||||
|
set_halign: gtk::Align::Center,
|
||||||
|
set_valign: gtk::Align::Center,
|
||||||
|
set_text: "Firefox",
|
||||||
|
set_margin_all: 5,
|
||||||
|
set_hexpand: false,
|
||||||
|
set_vexpand: false,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
insert(1) = >k::Box {
|
||||||
|
set_css_classes: &[&"card"],
|
||||||
|
set_halign: gtk::Align::Center,
|
||||||
|
set_valign: gtk::Align::Center,
|
||||||
|
set_orientation: Orientation::Vertical,
|
||||||
|
set_hexpand: false,
|
||||||
|
set_vexpand: false,
|
||||||
|
set_width_request: 100,
|
||||||
|
set_height_request: 100,
|
||||||
|
|
||||||
|
append = >k::Switch {
|
||||||
|
set_halign: gtk::Align::Center,
|
||||||
|
set_valign: gtk::Align::Center,
|
||||||
|
set_hexpand: false,
|
||||||
|
set_vexpand: false,
|
||||||
|
set_margin_all: 10,
|
||||||
|
},
|
||||||
|
append = >k::Button {
|
||||||
|
set_halign: gtk::Align::Center,
|
||||||
|
set_valign: gtk::Align::Center,
|
||||||
|
set_width_request: 64,
|
||||||
|
set_height_request: 64,
|
||||||
|
set_margin_start: 36,
|
||||||
|
set_margin_end: 36,
|
||||||
|
set_hexpand: false,
|
||||||
|
set_vexpand: false,
|
||||||
|
},
|
||||||
|
append = >k::Label {
|
||||||
|
set_halign: gtk::Align::Center,
|
||||||
|
set_valign: gtk::Align::Center,
|
||||||
|
set_text: "Firefox",
|
||||||
|
set_margin_all: 5,
|
||||||
|
set_hexpand: false,
|
||||||
|
set_vexpand: false,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
insert(1) = >k::Box {
|
||||||
|
set_css_classes: &[&"card"],
|
||||||
|
set_halign: gtk::Align::Center,
|
||||||
|
set_valign: gtk::Align::Center,
|
||||||
|
set_orientation: Orientation::Vertical,
|
||||||
|
set_hexpand: false,
|
||||||
|
set_vexpand: false,
|
||||||
|
set_width_request: 100,
|
||||||
|
set_height_request: 100,
|
||||||
|
|
||||||
|
append = >k::Switch {
|
||||||
|
set_halign: gtk::Align::Center,
|
||||||
|
set_valign: gtk::Align::Center,
|
||||||
|
set_hexpand: false,
|
||||||
|
set_vexpand: false,
|
||||||
|
set_margin_all: 10,
|
||||||
|
},
|
||||||
|
append = >k::Button {
|
||||||
|
set_halign: gtk::Align::Center,
|
||||||
|
set_valign: gtk::Align::Center,
|
||||||
|
set_width_request: 64,
|
||||||
|
set_height_request: 64,
|
||||||
|
set_margin_start: 36,
|
||||||
|
set_margin_end: 36,
|
||||||
|
set_hexpand: false,
|
||||||
|
set_vexpand: false,
|
||||||
|
},
|
||||||
|
append = >k::Label {
|
||||||
|
set_halign: gtk::Align::Center,
|
||||||
|
set_valign: gtk::Align::Center,
|
||||||
|
set_text: "Firefox",
|
||||||
|
set_margin_all: 5,
|
||||||
|
set_hexpand: false,
|
||||||
|
set_vexpand: false,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
insert(1) = >k::Box {
|
||||||
|
set_css_classes: &[&"card"],
|
||||||
|
set_halign: gtk::Align::Center,
|
||||||
|
set_valign: gtk::Align::Center,
|
||||||
|
set_orientation: Orientation::Vertical,
|
||||||
|
set_hexpand: false,
|
||||||
|
set_vexpand: false,
|
||||||
|
set_width_request: 100,
|
||||||
|
set_height_request: 100,
|
||||||
|
|
||||||
|
append = >k::Switch {
|
||||||
|
set_halign: gtk::Align::Center,
|
||||||
|
set_valign: gtk::Align::Center,
|
||||||
|
set_hexpand: false,
|
||||||
|
set_vexpand: false,
|
||||||
|
set_margin_all: 10,
|
||||||
|
},
|
||||||
|
append = >k::Button {
|
||||||
|
set_halign: gtk::Align::Center,
|
||||||
|
set_valign: gtk::Align::Center,
|
||||||
|
set_width_request: 64,
|
||||||
|
set_height_request: 64,
|
||||||
|
set_margin_start: 36,
|
||||||
|
set_margin_end: 36,
|
||||||
|
set_hexpand: false,
|
||||||
|
set_vexpand: false,
|
||||||
|
},
|
||||||
|
append = >k::Label {
|
||||||
|
set_halign: gtk::Align::Center,
|
||||||
|
set_valign: gtk::Align::Center,
|
||||||
|
set_text: "Firefox",
|
||||||
|
set_margin_all: 5,
|
||||||
|
set_hexpand: false,
|
||||||
|
set_vexpand: false,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
insert(1) = >k::Box {
|
||||||
|
set_css_classes: &[&"card"],
|
||||||
|
set_halign: gtk::Align::Center,
|
||||||
|
set_valign: gtk::Align::Center,
|
||||||
|
set_orientation: Orientation::Vertical,
|
||||||
|
set_hexpand: false,
|
||||||
|
set_vexpand: false,
|
||||||
|
set_width_request: 100,
|
||||||
|
set_height_request: 100,
|
||||||
|
|
||||||
|
append = >k::Switch {
|
||||||
|
set_halign: gtk::Align::Center,
|
||||||
|
set_valign: gtk::Align::Center,
|
||||||
|
set_hexpand: false,
|
||||||
|
set_vexpand: false,
|
||||||
|
set_margin_all: 10,
|
||||||
|
},
|
||||||
|
append = >k::Button {
|
||||||
|
set_halign: gtk::Align::Center,
|
||||||
|
set_valign: gtk::Align::Center,
|
||||||
|
set_width_request: 64,
|
||||||
|
set_height_request: 64,
|
||||||
|
set_margin_start: 36,
|
||||||
|
set_margin_end: 36,
|
||||||
|
set_hexpand: false,
|
||||||
|
set_vexpand: false,
|
||||||
|
},
|
||||||
|
append = >k::Label {
|
||||||
|
set_halign: gtk::Align::Center,
|
||||||
|
set_valign: gtk::Align::Center,
|
||||||
|
set_text: "Firefox",
|
||||||
|
set_margin_all: 5,
|
||||||
|
set_hexpand: false,
|
||||||
|
set_vexpand: false,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
insert(1) = >k::Box {
|
||||||
|
set_css_classes: &[&"card"],
|
||||||
|
set_halign: gtk::Align::Center,
|
||||||
|
set_valign: gtk::Align::Center,
|
||||||
|
set_orientation: Orientation::Vertical,
|
||||||
|
set_hexpand: false,
|
||||||
|
set_vexpand: false,
|
||||||
|
set_width_request: 100,
|
||||||
|
set_height_request: 100,
|
||||||
|
|
||||||
|
append = >k::Switch {
|
||||||
|
set_halign: gtk::Align::Center,
|
||||||
|
set_valign: gtk::Align::Center,
|
||||||
|
set_hexpand: false,
|
||||||
|
set_vexpand: false,
|
||||||
|
set_margin_all: 10,
|
||||||
|
},
|
||||||
|
append = >k::Button {
|
||||||
|
set_halign: gtk::Align::Center,
|
||||||
|
set_valign: gtk::Align::Center,
|
||||||
|
set_width_request: 64,
|
||||||
|
set_height_request: 64,
|
||||||
|
set_margin_start: 36,
|
||||||
|
set_margin_end: 36,
|
||||||
|
set_hexpand: false,
|
||||||
|
set_vexpand: false,
|
||||||
|
},
|
||||||
|
append = >k::Label {
|
||||||
|
set_halign: gtk::Align::Center,
|
||||||
|
set_valign: gtk::Align::Center,
|
||||||
|
set_text: "Firefox",
|
||||||
|
set_margin_all: 5,
|
||||||
|
set_hexpand: false,
|
||||||
|
set_vexpand: false,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
insert(1) = >k::Box {
|
||||||
|
set_css_classes: &[&"card"],
|
||||||
|
set_halign: gtk::Align::Center,
|
||||||
|
set_valign: gtk::Align::Center,
|
||||||
|
set_orientation: Orientation::Vertical,
|
||||||
|
set_hexpand: false,
|
||||||
|
set_vexpand: false,
|
||||||
|
set_width_request: 100,
|
||||||
|
set_height_request: 100,
|
||||||
|
|
||||||
|
append = >k::Switch {
|
||||||
|
set_halign: gtk::Align::Center,
|
||||||
|
set_valign: gtk::Align::Center,
|
||||||
|
set_hexpand: false,
|
||||||
|
set_vexpand: false,
|
||||||
|
set_margin_all: 10,
|
||||||
|
},
|
||||||
|
append = >k::Button {
|
||||||
|
set_halign: gtk::Align::Center,
|
||||||
|
set_valign: gtk::Align::Center,
|
||||||
|
set_width_request: 64,
|
||||||
|
set_height_request: 64,
|
||||||
|
set_margin_start: 36,
|
||||||
|
set_margin_end: 36,
|
||||||
|
set_hexpand: false,
|
||||||
|
set_vexpand: false,
|
||||||
|
},
|
||||||
|
append = >k::Label {
|
||||||
|
set_halign: gtk::Align::Center,
|
||||||
|
set_valign: gtk::Align::Center,
|
||||||
|
set_text: "Firefox",
|
||||||
|
set_margin_all: 5,
|
||||||
|
set_hexpand: false,
|
||||||
|
set_vexpand: false,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
insert(1) = >k::Box {
|
||||||
|
set_css_classes: &[&"card"],
|
||||||
|
set_halign: gtk::Align::Center,
|
||||||
|
set_valign: gtk::Align::Center,
|
||||||
|
set_orientation: Orientation::Vertical,
|
||||||
|
set_hexpand: false,
|
||||||
|
set_vexpand: false,
|
||||||
|
set_width_request: 100,
|
||||||
|
set_height_request: 100,
|
||||||
|
|
||||||
|
append = >k::Switch {
|
||||||
|
set_halign: gtk::Align::Center,
|
||||||
|
set_valign: gtk::Align::Center,
|
||||||
|
set_hexpand: false,
|
||||||
|
set_vexpand: false,
|
||||||
|
set_margin_all: 10,
|
||||||
|
},
|
||||||
|
append = >k::Button {
|
||||||
|
set_halign: gtk::Align::Center,
|
||||||
|
set_valign: gtk::Align::Center,
|
||||||
|
set_width_request: 64,
|
||||||
|
set_height_request: 64,
|
||||||
|
set_margin_start: 36,
|
||||||
|
set_margin_end: 36,
|
||||||
|
set_hexpand: false,
|
||||||
|
set_vexpand: false,
|
||||||
|
},
|
||||||
|
append = >k::Label {
|
||||||
|
set_halign: gtk::Align::Center,
|
||||||
|
set_valign: gtk::Align::Center,
|
||||||
|
set_text: "Firefox",
|
||||||
|
set_margin_all: 5,
|
||||||
|
set_hexpand: false,
|
||||||
|
set_vexpand: false,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
insert(1) = >k::Box {
|
||||||
|
set_css_classes: &[&"card"],
|
||||||
|
set_halign: gtk::Align::Center,
|
||||||
|
set_valign: gtk::Align::Center,
|
||||||
|
set_orientation: Orientation::Vertical,
|
||||||
|
set_hexpand: false,
|
||||||
|
set_vexpand: false,
|
||||||
|
set_width_request: 100,
|
||||||
|
set_height_request: 100,
|
||||||
|
|
||||||
|
append = >k::Switch {
|
||||||
|
set_halign: gtk::Align::Center,
|
||||||
|
set_valign: gtk::Align::Center,
|
||||||
|
set_hexpand: false,
|
||||||
|
set_vexpand: false,
|
||||||
|
set_margin_all: 10,
|
||||||
|
},
|
||||||
|
append = >k::Button {
|
||||||
|
set_halign: gtk::Align::Center,
|
||||||
|
set_valign: gtk::Align::Center,
|
||||||
|
set_width_request: 64,
|
||||||
|
set_height_request: 64,
|
||||||
|
set_margin_start: 36,
|
||||||
|
set_margin_end: 36,
|
||||||
|
set_hexpand: false,
|
||||||
|
set_vexpand: false,
|
||||||
|
},
|
||||||
|
append = >k::Label {
|
||||||
|
set_halign: gtk::Align::Center,
|
||||||
|
set_valign: gtk::Align::Center,
|
||||||
|
set_text: "Firefox",
|
||||||
|
set_margin_all: 5,
|
||||||
|
set_hexpand: false,
|
||||||
|
set_vexpand: false,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,14 +1,9 @@
|
|||||||
use relm4::Sender;
|
use relm4::{Model};
|
||||||
use relm4::{Model, RelmComponent};
|
|
||||||
|
|
||||||
use crate::ui::app::model::AppModel;
|
|
||||||
|
|
||||||
use super::{messages::ToolboxSettingsDialogMsg, widgets::ToolboxSettingsDialogWidgets};
|
use super::{messages::ToolboxSettingsDialogMsg, widgets::ToolboxSettingsDialogWidgets};
|
||||||
|
|
||||||
#[derive(relm4::Components)]
|
|
||||||
pub struct AppComponents {
|
|
||||||
pub toolbox_settings_dialog: RelmComponent<ToolboxSettingsDialogModel, AppModel>,
|
|
||||||
}
|
|
||||||
pub struct ToolboxSettingsDialogModel {
|
pub struct ToolboxSettingsDialogModel {
|
||||||
pub hidden: bool,
|
pub hidden: bool,
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user