create grid layout
This commit is contained in:
parent
1cbef56a5a
commit
5548191eda
@ -44,19 +44,60 @@ pub fn content(
|
|||||||
let null_checkbutton = gtk::CheckButton::builder()
|
let null_checkbutton = gtk::CheckButton::builder()
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
|
let layout_grid = gtk::Grid::builder()
|
||||||
|
.vexpand(true)
|
||||||
|
.hexpand(true)
|
||||||
|
.build();
|
||||||
|
|
||||||
|
let previews_size_group = gtk::SizeGroup::new(gtk::SizeGroupMode::Both);
|
||||||
|
|
||||||
|
let mut last_widget: (Option<gtk::Box>, i32) = (None, 0);
|
||||||
|
|
||||||
for layout in desktop_layouts {
|
for layout in desktop_layouts {
|
||||||
let layout_name = layout.name.clone();
|
let layout_name = layout.name.clone();
|
||||||
let layout_id = layout.id;
|
let layout_id = layout.id;
|
||||||
|
|
||||||
let layout_box = gtk::Box::builder()
|
let layout_box = gtk::Box::builder()
|
||||||
.orientation(gtk::Orientation::Horizontal)
|
.orientation(gtk::Orientation::Vertical)
|
||||||
.build();
|
.build();
|
||||||
let layout_preview = gtk::Image::builder()
|
let layout_preview = gtk::Image::builder()
|
||||||
.resource(format!("/com/github/pikaos-linux/pikagnomelayouts/previews/{}.svg", &layout_name))
|
.resource(format!("/com/github/pikaos-linux/pikagnomelayouts/previews/{}.svg", &layout_name))
|
||||||
|
.vexpand(true)
|
||||||
|
.hexpand(true)
|
||||||
|
.margin_start(5)
|
||||||
|
.margin_end(5)
|
||||||
|
.margin_top(5)
|
||||||
.build();
|
.build();
|
||||||
content_box.append(&layout_preview);
|
|
||||||
|
let layout_checkbutton = gtk::CheckButton::builder()
|
||||||
|
.group(&null_checkbutton)
|
||||||
|
.halign(gtk::Align::Center)
|
||||||
|
.valign(gtk::Align::Start)
|
||||||
|
.label(t!(format!("{}_label", &layout_name)))
|
||||||
|
.tooltip_text(t!(format!("{}_tooltip_text", &layout_name)))
|
||||||
|
.build();
|
||||||
|
|
||||||
|
previews_size_group.add_widget(&layout_preview);
|
||||||
|
|
||||||
|
layout_box.append(&layout_preview);
|
||||||
|
layout_box.append(&layout_checkbutton);
|
||||||
|
|
||||||
|
if last_widget.0.is_none() {
|
||||||
|
layout_grid.attach(&layout_box, 0, 0, 1, 1);
|
||||||
|
} else if last_widget.1 == 3 {
|
||||||
|
layout_grid.attach_next_to(&layout_box, Some(&last_widget.0.unwrap()), gtk::PositionType::Bottom, 1, 1)
|
||||||
|
} else if last_widget.1 > 3 {
|
||||||
|
layout_grid.attach_next_to(&layout_box, Some(&last_widget.0.unwrap()), gtk::PositionType::Left, 1, 1)
|
||||||
|
} else {
|
||||||
|
layout_grid.attach_next_to(&layout_box, Some(&last_widget.0.unwrap()), gtk::PositionType::Right, 1, 1)
|
||||||
|
}
|
||||||
|
|
||||||
|
last_widget.0 = Some(layout_box);
|
||||||
|
last_widget.1 += 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
content_box.append(&layout_grid);
|
||||||
|
|
||||||
content_stack.add_named(
|
content_stack.add_named(
|
||||||
&content_box,
|
&content_box,
|
||||||
Some("content_page"),
|
Some("content_page"),
|
||||||
|
Loading…
x
Reference in New Issue
Block a user