Commit a406830a authored by Bilal Elmoussaoui's avatar Bilal Elmoussaoui

Merge branch 'wip/exalm/ui-cleanups' into 'master'

Some UI cleanups See merge request GNOME/gnome-tour!9
parents 8cad6e3a aca427aa
......@@ -80,6 +80,7 @@ impl Application {
fn setup_signals(&self, app: Rc<Self>) {
self.app.connect_startup(clone!(@weak app => move |_| {
libhandy::init();
app.setup_css();
app.setup_gactions(app.clone());
}));
......
......@@ -48,17 +48,17 @@ impl WelcomePageWidget {
actions_container.set_halign(gtk::Align::Center);
actions_container.set_margin_top(36);
let start_tour_btn = gtk::Button::new();
start_tour_btn.add(&gtk::Label::new(Some(&gettext("Take the Tour"))));
let start_tour_btn = gtk::Button::with_label(&gettext("_Take the Tour"));
start_tour_btn.get_style_context().add_class("suggested-action");
start_tour_btn.set_property_height_request(40);
start_tour_btn.set_property_width_request(180);
start_tour_btn.set_use_underline(true);
start_tour_btn.set_action_name(Some("app.start-tour"));
let skip_tour_btn = gtk::Button::new();
skip_tour_btn.add(&gtk::Label::new(Some(&gettext("No Thanks"))));
let skip_tour_btn = gtk::Button::with_label(&gettext("_No Thanks"));
skip_tour_btn.set_property_height_request(40);
skip_tour_btn.set_property_width_request(180);
skip_tour_btn.set_use_underline(true);
skip_tour_btn.set_action_name(Some("app.skip-tour"));
actions_container.add(&skip_tour_btn);
......
......@@ -14,6 +14,7 @@ pub struct PaginatorWidget {
pages: RefCell<Vec<Box<dyn Pageable>>>,
current_page: RefCell<u32>,
next_btn: gtk::Button,
close_btn: gtk::Button,
}
impl PaginatorWidget {
......@@ -24,7 +25,8 @@ impl PaginatorWidget {
widget,
carousel: libhandy::Carousel::new(),
headerbar: libhandy::HeaderBar::new(),
next_btn: gtk::Button::new(),
next_btn: gtk::Button::with_label(&gettext("_Next")),
close_btn: gtk::Button::with_label(&gettext("_Close")),
pages: RefCell::new(Vec::new()),
current_page: RefCell::new(0),
});
......@@ -60,35 +62,45 @@ impl PaginatorWidget {
self.carousel.set_property_expand(true);
self.carousel.set_animation_duration(300);
self.carousel.connect_page_changed(clone!(@weak p => move |carousel, page_nr| {
self.carousel.connect_property_position_notify(clone!(@weak p => move |carousel| {
let n_pages = carousel.get_n_pages() as f64;
let position = carousel.get_position();
let opacity = (position - n_pages + 2_f64).max(0_f64);
p.close_btn.set_opacity(opacity);
p.close_btn.set_visible(opacity > 0_f64);
let page_nr = position.round() as u32;
let pages = &p.pages.borrow();
let page = pages.get(page_nr as usize).unwrap();
p.headerbar.set_title(Some(&page.get_title()));
if page_nr == carousel.get_n_pages() - 1 {
p.next_btn.set_label(&gettext("Close"));
} else {
p.next_btn.set_label(&gettext("Next"));
}
p.headerbar.set_title(Some(&page.get_title()));
p.current_page.replace(page_nr);
}));
let previous_btn = gtk::Button::new();
previous_btn.add(&gtk::Label::new(Some("Previous")));
previous_btn.set_halign(gtk::Align::Start);
let previous_btn = gtk::Button::with_label(&gettext("_Previous"));
previous_btn.set_use_underline(true);
previous_btn.set_action_name(Some("app.previous-page"));
previous_btn.set_hexpand(true);
previous_btn.set_property_width_request(60);
self.next_btn.add(&gtk::Label::new(Some(&gettext("Next"))));
let btn_size_group = gtk::SizeGroup::new(gtk::SizeGroupMode::Horizontal);
btn_size_group.add_widget(&previous_btn);
btn_size_group.add_widget(&self.next_btn);
btn_size_group.add_widget(&self.close_btn);
self.next_btn.get_style_context().add_class("suggested-action");
self.next_btn.set_use_underline(true);
self.next_btn.set_action_name(Some("app.next-page"));
self.next_btn.set_halign(gtk::Align::End);
self.next_btn.set_hexpand(true);
self.next_btn.set_property_width_request(60);
self.close_btn.get_style_context().add_class("suggested-action");
self.close_btn.set_use_underline(true);
self.close_btn.set_action_name(Some("app.next-page"));
let next_overlay = gtk::Overlay::new();
next_overlay.add(&self.next_btn);
next_overlay.add_overlay(&self.close_btn);
self.headerbar.pack_start(&previous_btn);
self.headerbar.pack_end(&self.next_btn);
self.headerbar.pack_end(&next_overlay);
self.headerbar.set_show_close_button(false);
self.widget.add(&self.headerbar);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment