2021-01-11 08:12:08 +13:00
|
|
|
use gtk::prelude::*;
|
2021-12-12 04:16:14 +13:00
|
|
|
use gtk::{Bin, Builder, EventControllerKey, Window};
|
2021-01-11 08:12:08 +13:00
|
|
|
|
2021-12-20 02:45:10 +13:00
|
|
|
use crate::fl;
|
|
|
|
use crate::help_functions::get_custom_label_from_button_with_image;
|
|
|
|
|
2021-01-11 08:12:08 +13:00
|
|
|
#[derive(Clone)]
|
2021-03-28 01:14:02 +13:00
|
|
|
pub struct GuiProgressDialog {
|
2021-12-04 08:27:59 +13:00
|
|
|
pub window_progress: gtk::Dialog,
|
2021-01-11 08:12:08 +13:00
|
|
|
|
|
|
|
pub progress_bar_current_stage: gtk::ProgressBar,
|
|
|
|
pub progress_bar_all_stages: gtk::ProgressBar,
|
|
|
|
|
|
|
|
pub label_stage: gtk::Label,
|
2021-12-12 04:16:14 +13:00
|
|
|
pub label_progress_current_stage: gtk::Label,
|
|
|
|
pub label_progress_all_stages: gtk::Label,
|
2021-01-11 08:12:08 +13:00
|
|
|
|
|
|
|
pub grid_progress_stages: gtk::Grid,
|
|
|
|
|
|
|
|
pub button_stop_in_dialog: gtk::Button,
|
2021-12-01 23:09:47 +13:00
|
|
|
pub evk_button_stop_in_dialog: gtk::EventControllerKey,
|
2021-12-18 07:44:29 +13:00
|
|
|
// pub gc_button_stop_in_dialog: gtk4::GestureClick,
|
2021-01-11 08:12:08 +13:00
|
|
|
}
|
|
|
|
|
2021-03-28 01:14:02 +13:00
|
|
|
impl GuiProgressDialog {
|
2021-11-28 04:44:30 +13:00
|
|
|
pub fn create_from_builder(window_main: &Window) -> Self {
|
2021-07-08 07:13:36 +12:00
|
|
|
let glade_src = include_str!("../ui/progress.glade").to_string();
|
|
|
|
let builder = Builder::from_string(glade_src.as_str());
|
|
|
|
|
2021-12-04 08:27:59 +13:00
|
|
|
let window_progress: gtk::Dialog = builder.object("window_progress").unwrap();
|
2021-12-20 09:42:14 +13:00
|
|
|
window_progress.set_title(&fl!("window_progress_title"));
|
2021-11-28 04:44:30 +13:00
|
|
|
window_progress.set_transient_for(Some(window_main));
|
2021-12-18 07:29:37 +13:00
|
|
|
window_progress.set_modal(true);
|
2021-01-11 08:12:08 +13:00
|
|
|
|
2021-06-26 04:07:13 +12:00
|
|
|
let progress_bar_current_stage: gtk::ProgressBar = builder.object("progress_bar_current_stage").unwrap();
|
|
|
|
let progress_bar_all_stages: gtk::ProgressBar = builder.object("progress_bar_all_stages").unwrap();
|
2021-01-11 08:12:08 +13:00
|
|
|
|
2021-06-26 04:07:13 +12:00
|
|
|
let label_stage: gtk::Label = builder.object("label_stage").unwrap();
|
2021-12-12 04:16:14 +13:00
|
|
|
let label_progress_current_stage: gtk::Label = builder.object("label_progress_current_stage").unwrap();
|
|
|
|
let label_progress_all_stages: gtk::Label = builder.object("label_progress_all_stages").unwrap();
|
2021-01-11 08:12:08 +13:00
|
|
|
|
2021-06-26 04:07:13 +12:00
|
|
|
let grid_progress_stages: gtk::Grid = builder.object("grid_progress_stages").unwrap();
|
2021-01-11 08:12:08 +13:00
|
|
|
|
2021-06-26 04:07:13 +12:00
|
|
|
let button_stop_in_dialog: gtk::Button = builder.object("button_stop_in_dialog").unwrap();
|
2021-12-01 23:09:47 +13:00
|
|
|
let evk_button_stop_in_dialog = EventControllerKey::new(&button_stop_in_dialog);
|
2021-12-18 07:44:29 +13:00
|
|
|
// let evk_button_stop_in_dialog = EventControllerKey::new();
|
|
|
|
// button_stop_in_dialog.add_controller(&evk_button_stop_in_dialog);
|
|
|
|
// let gc_button_stop_in_dialog = gtk4::GestureClick::new();
|
|
|
|
// button_stop_in_dialog.add_controller(&gc_button_stop_in_dialog);
|
2021-01-11 08:12:08 +13:00
|
|
|
|
|
|
|
Self {
|
2021-01-26 06:23:42 +13:00
|
|
|
window_progress,
|
2021-01-11 08:12:08 +13:00
|
|
|
progress_bar_current_stage,
|
|
|
|
progress_bar_all_stages,
|
|
|
|
label_stage,
|
2021-12-12 04:16:14 +13:00
|
|
|
label_progress_current_stage,
|
|
|
|
label_progress_all_stages,
|
2021-01-11 08:12:08 +13:00
|
|
|
grid_progress_stages,
|
|
|
|
button_stop_in_dialog,
|
2021-12-01 23:09:47 +13:00
|
|
|
evk_button_stop_in_dialog,
|
2021-01-11 08:12:08 +13:00
|
|
|
}
|
|
|
|
}
|
2021-12-12 04:16:14 +13:00
|
|
|
pub fn update_language(&self) {
|
2021-12-20 09:42:14 +13:00
|
|
|
self.window_progress.set_title(&fl!("window_progress_title"));
|
|
|
|
|
2021-12-19 04:48:30 +13:00
|
|
|
get_custom_label_from_button_with_image(&self.button_stop_in_dialog.clone().upcast::<Bin>()).set_text(&fl!("progress_stop_button"));
|
2021-12-12 04:16:14 +13:00
|
|
|
|
|
|
|
self.label_progress_current_stage.set_label(&fl!("progress_current_stage"));
|
|
|
|
self.label_progress_all_stages.set_label(&fl!("progress_all_stages"));
|
|
|
|
}
|
2021-01-11 08:12:08 +13:00
|
|
|
}
|