Add EULA PAGE

This commit is contained in:
Ward from fusion-voyager-3 2024-08-06 19:50:54 +03:00
parent de4e48df4e
commit 10bd5ca9e9

125
src/eula_page/mod.rs Normal file
View File

@ -0,0 +1,125 @@
use adw::gio;
use crate::installer_stack_page;
use crate::config;
use gtk::{prelude::*, glib as glib};
use glib::{clone, closure_local};
pub fn eula_page(
main_carousel: &adw::Carousel,
language_changed_action: &gio::SimpleAction
) {
let eula_page = installer_stack_page::InstallerStackPage::new();
eula_page.set_back_visible(true);
eula_page.set_next_visible(true);
eula_page.set_back_sensitive(true);
eula_page.set_next_sensitive(false);
let content_box = gtk::Box::builder()
.orientation(gtk::Orientation::Vertical)
.hexpand(true)
.vexpand(true)
.build();
let eula_buffer = gtk::TextBuffer::builder()
.build();
let eula_selection_text_view = gtk::TextView::builder()
.hexpand(true)
.vexpand(true)
.margin_top(15)
.margin_bottom(15)
.margin_start(15)
.margin_end(15)
.editable(false)
.buffer(&eula_buffer)
.build();
eula_selection_text_view.add_css_class("rounded-all-25-with-padding");
let eula_selection_text_scroll = gtk::ScrolledWindow::builder()
.vexpand(true)
.hexpand(true)
.child(&eula_selection_text_view)
.build();
let eula_accept_checkbutton = gtk::CheckButton::builder()
.margin_top(15)
.margin_bottom(15)
.margin_start(15)
.margin_end(15)
.build();
eula_accept_checkbutton.connect_toggled(
clone!(
#[weak]
eula_accept_checkbutton,
#[weak]
eula_page,
move |_|
{
if eula_accept_checkbutton.is_active() == true {
eula_page.set_next_sensitive(true);
} else {
eula_page.set_next_sensitive(false);
}
}
),
);
content_box.append(&eula_selection_text_scroll);
content_box.append(&eula_accept_checkbutton);
eula_page.set_child_widget(&content_box);
eula_page.connect_closure(
"back-button-pressed",
false,
closure_local!(
#[weak]
main_carousel,
move |language_page: installer_stack_page::InstallerStackPage|
{
main_carousel.scroll_to(&main_carousel.nth_page(1), true)
}
)
);
eula_page.connect_closure(
"next-button-pressed",
false,
closure_local!(
#[weak]
main_carousel,
move |language_page: installer_stack_page::InstallerStackPage|
{
main_carousel.scroll_to(&main_carousel.nth_page(3), true)
}
)
);
//
language_changed_action.connect_activate(
clone!(
#[weak]
eula_page,
#[weak]
eula_accept_checkbutton,
#[strong]
eula_buffer,
move |_, _| {
eula_page.set_page_title(t!("eula"));
eula_page.set_page_subtitle(t!("pikaos_eula_agreement"));
eula_page.set_page_icon("error-correct-symbolic");
eula_page.set_back_tooltip_label(t!("back"));
eula_page.set_next_tooltip_label(t!("next"));
//
eula_accept_checkbutton.set_label(Some(&t!("i_agree_eula")));
//
eula_buffer.set_text(&t!("eula_buffer"))
}
)
);
//
main_carousel.append(&eula_page);
}