mirror of
https://github.com/13hannes11/toolbx-tuner.git
synced 2024-09-03 23:21:00 +02:00
64 lines
2.1 KiB
Rust
64 lines
2.1 KiB
Rust
use gtk::Orientation;
|
|
use gtk::PolicyType;
|
|
use relm4::adw;
|
|
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::prelude::*;
|
|
|
|
use crate::ui::app::model::AppModel;
|
|
use crate::ui::components::toolbox_apps::messages::ToolboxAppDialogMsg;
|
|
|
|
use super::model::ToolboxAppDialogModel;
|
|
|
|
#[derive(Debug)]
|
|
pub struct AppFactoryWidgets {
|
|
pub app_box: gtk::Box,
|
|
}
|
|
|
|
#[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,
|
|
factory!(model.apps),
|
|
}
|
|
}
|
|
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|