mirror of
https://github.com/YGGverse/Yoda.git
synced 2026-04-01 09:05:27 +00:00
give name to gobject variables
This commit is contained in:
parent
702269f1f1
commit
a1617b2b1b
35 changed files with 213 additions and 209 deletions
|
|
@ -9,7 +9,7 @@ const DEFAULT_TAB_ICON: &str = "view-pin-symbolic";
|
|||
|
||||
/// Wrapper for [TabView](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/main/class.TabView.html) GObject
|
||||
pub struct Widget {
|
||||
pub gobject: TabView,
|
||||
pub tab_view: TabView,
|
||||
}
|
||||
|
||||
impl Widget {
|
||||
|
|
@ -18,17 +18,17 @@ impl Widget {
|
|||
/// Create new `Self`
|
||||
pub fn new(menu_model: &impl IsA<MenuModel>) -> Self {
|
||||
// Init gobject
|
||||
let gobject = TabView::builder().menu_model(menu_model).build();
|
||||
let tab_view = TabView::builder().menu_model(menu_model).build();
|
||||
|
||||
// Change default icon (if available in the system icon set)
|
||||
// * visible for pinned tabs only
|
||||
// * @TODO not default GTK behavior, make this feature optional
|
||||
if let Ok(default_icon) = Icon::for_string(DEFAULT_TAB_ICON) {
|
||||
gobject.set_default_icon(&default_icon);
|
||||
tab_view.set_default_icon(&default_icon);
|
||||
}
|
||||
|
||||
// Done
|
||||
Self { gobject }
|
||||
Self { tab_view }
|
||||
}
|
||||
|
||||
// Actions
|
||||
|
|
@ -39,8 +39,8 @@ impl Widget {
|
|||
/// * use native [TabView](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/main/class.TabView.html) API with `GObject` reference getter
|
||||
pub fn close(&self, position: Option<i32>) {
|
||||
if let Some(page) = self.page(position) {
|
||||
self.gobject.set_page_pinned(&page, false);
|
||||
self.gobject.close_page(&page);
|
||||
self.tab_view.set_page_pinned(&page, false);
|
||||
self.tab_view.close_page(&page);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -49,16 +49,16 @@ impl Widget {
|
|||
/// * deactivate [SimpleAction](https://docs.gtk.org/gio/class.SimpleAction.html) outside if selected page should not be closed
|
||||
/// * use native [TabView](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/main/class.TabView.html) API with `GObject` reference getter
|
||||
pub fn close_all(&self) {
|
||||
while let Some(page) = self.gobject.selected_page() {
|
||||
self.gobject.set_page_pinned(&page, false);
|
||||
self.gobject.close_page(&page);
|
||||
while let Some(page) = self.tab_view.selected_page() {
|
||||
self.tab_view.set_page_pinned(&page, false);
|
||||
self.tab_view.close_page(&page);
|
||||
}
|
||||
}
|
||||
|
||||
/// Toggle pin for page at given `position`, `None` to pin selected page (if available)
|
||||
pub fn pin(&self, position: Option<i32>) {
|
||||
if let Some(page) = self.page(position) {
|
||||
self.gobject.set_page_pinned(&page, !page.is_pinned()); // toggle
|
||||
self.tab_view.set_page_pinned(&page, !page.is_pinned()); // toggle
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -68,8 +68,8 @@ impl Widget {
|
|||
/// * return `None` if requested or selected page not found
|
||||
pub fn page(&self, position: Option<i32>) -> Option<TabPage> {
|
||||
match position {
|
||||
Some(value) => Some(self.gobject.nth_page(value)),
|
||||
None => self.gobject.selected_page(),
|
||||
Some(value) => Some(self.tab_view.nth_page(value)),
|
||||
None => self.tab_view.selected_page(),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue