use gtk::prelude::*; use gtk::{EventControllerKey, TreeView}; #[derive(Clone)] pub struct GuiUpperNotebook { pub notebook_upper: gtk::Notebook, pub scrolled_window_included_directories: gtk::ScrolledWindow, pub scrolled_window_excluded_directories: gtk::ScrolledWindow, pub tree_view_included_directories: gtk::TreeView, pub tree_view_excluded_directories: gtk::TreeView, pub evk_tree_view_included_directories: gtk::EventControllerKey, pub evk_tree_view_excluded_directories: gtk::EventControllerKey, pub entry_excluded_items: gtk::Entry, pub entry_allowed_extensions: gtk::Entry, pub check_button_recursive: gtk::CheckButton, pub buttons_manual_add_directory: gtk::Button, pub buttons_add_included_directory: gtk::Button, pub buttons_remove_included_directory: gtk::Button, pub buttons_manual_add_excluded_directory: gtk::Button, pub buttons_add_excluded_directory: gtk::Button, pub buttons_remove_excluded_directory: gtk::Button, } impl GuiUpperNotebook { pub fn create_from_builder(builder: >k::Builder) -> Self { let notebook_upper: gtk::Notebook = builder.object("notebook_upper").unwrap(); let scrolled_window_included_directories: gtk::ScrolledWindow = builder.object("scrolled_window_included_directories").unwrap(); let scrolled_window_excluded_directories: gtk::ScrolledWindow = builder.object("scrolled_window_excluded_directories").unwrap(); let tree_view_included_directories: gtk::TreeView = TreeView::new(); let tree_view_excluded_directories: gtk::TreeView = TreeView::new(); let evk_tree_view_included_directories: gtk::EventControllerKey = EventControllerKey::new(&tree_view_included_directories); let evk_tree_view_excluded_directories: gtk::EventControllerKey = EventControllerKey::new(&tree_view_excluded_directories); let entry_allowed_extensions: gtk::Entry = builder.object("entry_allowed_extensions").unwrap(); let entry_excluded_items: gtk::Entry = builder.object("entry_excluded_items").unwrap(); let check_button_recursive: gtk::CheckButton = builder.object("check_button_recursive").unwrap(); check_button_recursive.set_tooltip_text(Some("If selected, search also for files which are not placed directly under chosen folders")); let buttons_manual_add_directory: gtk::Button = builder.object("buttons_manual_add_directory").unwrap(); let buttons_add_included_directory: gtk::Button = builder.object("buttons_add_included_directory").unwrap(); let buttons_remove_included_directory: gtk::Button = builder.object("buttons_remove_included_directory").unwrap(); let buttons_manual_add_excluded_directory: gtk::Button = builder.object("buttons_manual_add_excluded_directory").unwrap(); let buttons_add_excluded_directory: gtk::Button = builder.object("buttons_add_excluded_directory").unwrap(); let buttons_remove_excluded_directory: gtk::Button = builder.object("buttons_remove_excluded_directory").unwrap(); buttons_manual_add_directory.set_tooltip_text(Some("Allows to add directory name by hand")); buttons_add_included_directory.set_tooltip_text(Some("Add new directory to search")); buttons_remove_included_directory.set_tooltip_text(Some("Delete directory from search")); buttons_manual_add_excluded_directory.set_tooltip_text(Some("Allows to add directory name by hand")); buttons_add_excluded_directory.set_tooltip_text(Some("Add directory to be excluded in search")); buttons_remove_excluded_directory.set_tooltip_text(Some("Delete directory from excluded list")); Self { notebook_upper, scrolled_window_included_directories, scrolled_window_excluded_directories, tree_view_included_directories, tree_view_excluded_directories, evk_tree_view_included_directories, evk_tree_view_excluded_directories, entry_excluded_items, entry_allowed_extensions, check_button_recursive, buttons_manual_add_directory, buttons_add_included_directory, buttons_remove_included_directory, buttons_manual_add_excluded_directory, buttons_add_excluded_directory, buttons_remove_excluded_directory, } } }