mirror of
https://gitlab.com/gabmus/envision.git
synced 2025-08-04 23:29:00 +00:00
feat(stardust): clients ui
This commit is contained in:
parent
eb7fdb2b08
commit
0f0a0f8e68
1 changed files with 63 additions and 0 deletions
|
@ -20,6 +20,10 @@ pub enum StardustViewMsg {
|
||||||
OverlayPriorityChanged(u32),
|
OverlayPriorityChanged(u32),
|
||||||
DisableControllerChanged(bool),
|
DisableControllerChanged(bool),
|
||||||
RepoChanged(String),
|
RepoChanged(String),
|
||||||
|
FlatlandEnabledChanged(bool),
|
||||||
|
FlatlandRepoChanged(String),
|
||||||
|
|
||||||
|
AddClient,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Debug)]
|
#[derive(Debug)]
|
||||||
|
@ -166,6 +170,56 @@ impl SimpleComponent for StardustView {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
gtk::Label {
|
||||||
|
add_css_class: "title-3",
|
||||||
|
set_label: "Clients",
|
||||||
|
set_hexpand: true,
|
||||||
|
set_xalign: 0.0,
|
||||||
|
},
|
||||||
|
gtk::ListBox {
|
||||||
|
add_css_class: "boxed-list",
|
||||||
|
set_selection_mode: gtk::SelectionMode::None,
|
||||||
|
// builtin clients
|
||||||
|
adw::ExpanderRow {
|
||||||
|
set_title: "Flatland",
|
||||||
|
set_subtitle_lines: 0,
|
||||||
|
set_subtitle: "A panel item UI so you can interact with your apps using virtual touchscreens",
|
||||||
|
add_suffix: flatland_switch = >k::Switch {
|
||||||
|
set_halign: gtk::Align::Center,
|
||||||
|
set_valign: gtk::Align::Center,
|
||||||
|
set_hexpand: false,
|
||||||
|
set_vexpand: false,
|
||||||
|
connect_activate[sender] => move |sw| {
|
||||||
|
sender.input(Self::Input::FlatlandEnabledChanged(sw.is_active()));
|
||||||
|
},
|
||||||
|
},
|
||||||
|
#[chain(flags(gtk::glib::BindingFlags::BIDIRECTIONAL).build())]
|
||||||
|
bind_property: ("enable-expansion", &flatland_switch, "active"),
|
||||||
|
add_row: flatland_repo_entryrow = &adw::EntryRow {
|
||||||
|
set_title: "Repository#git ref",
|
||||||
|
// TODO: settings
|
||||||
|
// set_text: model.settings.clients.builtin.flatland.repo,
|
||||||
|
set_text: "https://github.com/StardustXR/flatland#main",
|
||||||
|
connect_changed[sender] => move |row| {
|
||||||
|
sender.input(Self::Input::FlatlandRepoChanged(row.text().into()));
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
adw::ActionRow {
|
||||||
|
set_tooltip_text: Some("Add new client..."),
|
||||||
|
set_activatable: true,
|
||||||
|
set_child: Some(>k::Image::builder()
|
||||||
|
.icon_name("list-add-symbolic")
|
||||||
|
.margin_start(12)
|
||||||
|
.margin_end(12)
|
||||||
|
.margin_top(12)
|
||||||
|
.margin_bottom(12)
|
||||||
|
.build()),
|
||||||
|
connect_activated[sender] => move |_| {
|
||||||
|
sender.input(Self::Input::AddClient)
|
||||||
|
}
|
||||||
|
},
|
||||||
|
},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -205,6 +259,15 @@ impl SimpleComponent for StardustView {
|
||||||
Self::Input::RepoChanged(val) => {
|
Self::Input::RepoChanged(val) => {
|
||||||
println!("RepoChanged: {}", val);
|
println!("RepoChanged: {}", val);
|
||||||
}
|
}
|
||||||
|
Self::Input::FlatlandRepoChanged(val) => {
|
||||||
|
println!("FlatlandRepoChanged: {}", val);
|
||||||
|
}
|
||||||
|
Self::Input::FlatlandEnabledChanged(val) => {
|
||||||
|
println!("FlatlandEnabledChanged: {}", val);
|
||||||
|
}
|
||||||
|
Self::Input::AddClient => {
|
||||||
|
println!("AddClient");
|
||||||
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue