use tab page private getter

This commit is contained in:
yggverse 2024-08-27 16:50:17 +03:00
parent f2e4981fdc
commit 47c68deb7a
2 changed files with 28 additions and 25 deletions

View File

@ -29,35 +29,13 @@ Tab::~Tab() = default;
Glib::ustring Tab::get_page_title( Glib::ustring Tab::get_page_title(
const int & PAGE_NUMBER const int & PAGE_NUMBER
) { ) {
auto pageWidget = get_nth_page( return get_tab_page(PAGE_NUMBER)->get_title();
PAGE_NUMBER
);
if (pageWidget == nullptr)
{
throw _("Tab page not found!");
}
auto tabPage = (tab::Page *) pageWidget;
return tabPage->get_title();
}; };
Glib::ustring Tab::get_page_subtitle( Glib::ustring Tab::get_page_subtitle(
const int & PAGE_NUMBER const int & PAGE_NUMBER
) { ) {
auto pageWidget = get_nth_page( return get_tab_page(PAGE_NUMBER)->get_subtitle();
PAGE_NUMBER
);
if (pageWidget == nullptr)
{
throw _("Tab page not found!");
}
auto tabPage = (tab::Page *) pageWidget;
return tabPage->get_subtitle();
}; };
// Actions // Actions
@ -167,4 +145,20 @@ void Tab::update(
); );
} }
} // @TODO } // @TODO
// Private helpers
tab::Page * Tab::get_tab_page(
const int & PAGE_NUMBER
) {
auto pageWidget = get_nth_page(
PAGE_NUMBER
);
if (pageWidget == nullptr)
{
throw _("Tab page not found!");
}
return (tab::Page *) pageWidget;
}

View File

@ -7,11 +7,20 @@
namespace app::browser::main namespace app::browser::main
{ {
namespace tab
{
class Page;
}
class Tab : public Gtk::Notebook class Tab : public Gtk::Notebook
{ {
const bool REORDERABLE = true; const bool REORDERABLE = true;
const bool SCROLLABLE = true; const bool SCROLLABLE = true;
tab::Page * get_tab_page(
const int & PAGE_NUMBER
);
public: public:
Tab(); Tab();