include/vcl/weld.hxx | 2 +- vcl/inc/salvtables.hxx | 2 ++ vcl/source/app/salvtables.cxx | 11 +++++++++++ vcl/unx/gtk3/gtkinst.cxx | 12 ++++++++++++ 4 files changed, 26 insertions(+), 1 deletion(-)
New commits: commit c8642c0ebe4ca16bc06b1b08f9419e4a1a94ba96 Author: Caolán McNamara <caol...@redhat.com> AuthorDate: Fri Jun 3 11:10:45 2022 +0100 Commit: Caolán McNamara <caol...@redhat.com> CommitDate: Fri Jun 3 14:53:34 2022 +0200 allow to dynamically show/hide notebook tabs Change-Id: I19681d9bfcd91e205e684674d1ec8f0058c1eb91 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/135350 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caol...@redhat.com> diff --git a/include/vcl/weld.hxx b/include/vcl/weld.hxx index 528405643716..054b817975bd 100644 --- a/include/vcl/weld.hxx +++ b/include/vcl/weld.hxx @@ -477,11 +477,11 @@ public: } virtual void set_tab_label_text(const OString& rIdent, const OUString& rLabel) = 0; virtual OUString get_tab_label_text(const OString& rIdent) const = 0; + virtual void set_show_tabs(bool bShow) = 0; virtual int get_n_pages() const = 0; virtual weld::Container* get_page(const OString& rIdent) const = 0; void connect_leave_page(const Link<const OString&, bool>& rLink) { m_aLeavePageHdl = rLink; } - void connect_enter_page(const Link<const OString&, void>& rLink) { m_aEnterPageHdl = rLink; } }; diff --git a/vcl/inc/salvtables.hxx b/vcl/inc/salvtables.hxx index 9628744fb087..e7c637e93b96 100644 --- a/vcl/inc/salvtables.hxx +++ b/vcl/inc/salvtables.hxx @@ -1078,6 +1078,8 @@ public: virtual void set_tab_label_text(const OString& rIdent, const OUString& rText) override; + virtual void set_show_tabs(bool bShow) override; + virtual ~SalInstanceNotebook() override; }; diff --git a/vcl/source/app/salvtables.cxx b/vcl/source/app/salvtables.cxx index ba759d0fa3d5..df7d70636ea8 100644 --- a/vcl/source/app/salvtables.cxx +++ b/vcl/source/app/salvtables.cxx @@ -2569,6 +2569,11 @@ void SalInstanceNotebook::set_tab_label_text(const OString& rIdent, const OUStri return m_xNotebook->SetPageText(m_xNotebook->GetPageId(rIdent), rText); } +void SalInstanceNotebook::set_show_tabs(bool bShow) +{ + m_xNotebook->set_property("show-tabs", OUString::boolean(bShow)); +} + SalInstanceNotebook::~SalInstanceNotebook() { for (auto& rItem : m_aAddedPages) @@ -2692,6 +2697,12 @@ public: return m_xNotebook->GetPageText(rIdent); } + virtual void set_show_tabs(bool /*bShow*/) override + { + // if someone needs this they will have to to implement it in VerticalTabControl + assert(false && "not implemented"); + } + virtual ~SalInstanceVerticalNotebook() override { m_xNotebook->SetActivatePageHdl(Link<VerticalTabControl*, void>()); diff --git a/vcl/unx/gtk3/gtkinst.cxx b/vcl/unx/gtk3/gtkinst.cxx index 6536a0b3ffea..efc6c290d02c 100644 --- a/vcl/unx/gtk3/gtkinst.cxx +++ b/vcl/unx/gtk3/gtkinst.cxx @@ -9101,6 +9101,18 @@ public: } } + virtual void set_show_tabs(bool bShow) override + { + if (m_bOverFlowBoxActive) + { + unsplit_notebooks(); + reset_split_data(); + } + + gtk_notebook_set_show_tabs(m_pNotebook, bShow); + gtk_notebook_set_show_tabs(m_pOverFlowNotebook, bShow); + } + virtual void disable_notify_events() override { g_signal_handler_block(m_pNotebook, m_nSwitchPageSignalId);