From 91074fce875e68978f34c1103982d2d5887a0894 Mon Sep 17 00:00:00 2001 From: Szymon Kłos Date: Wed, 4 Mar 2020 16:03:01 +0100 Subject: Move SalInstanceNotebook to header file MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Change-Id: Id14b6fca6f12f49691a621f636300f9da320834c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/93975 Tested-by: Jenkins CollaboraOffice Reviewed-by: Szymon Kłos --- vcl/inc/salvtables.hxx | 41 ++++++++++ vcl/source/app/salvtables.cxx | 177 +++++++++++++++++++----------------------- 2 files changed, 123 insertions(+), 95 deletions(-) diff --git a/vcl/inc/salvtables.hxx b/vcl/inc/salvtables.hxx index 4117330701ef..a786788065ae 100644 --- a/vcl/inc/salvtables.hxx +++ b/vcl/inc/salvtables.hxx @@ -11,6 +11,8 @@ #include #include #include +#include +#include class SalInstanceBuilder : public weld::Builder { @@ -862,4 +864,43 @@ public: virtual ~SalInstanceButton() override; }; +class SalInstanceNotebook : public SalInstanceContainer, public virtual weld::Notebook +{ +private: + VclPtr m_xNotebook; + mutable std::vector> m_aPages; + std::vector> m_aAddedPages; + std::vector> m_aAddedGrids; + + DECL_LINK(DeactivatePageHdl, TabControl*, bool); + DECL_LINK(ActivatePageHdl, TabControl*, void); + +public: + SalInstanceNotebook(TabControl* pNotebook, SalInstanceBuilder* pBuilder, bool bTakeOwnership); + + virtual int get_current_page() const override; + + virtual OString get_page_ident(int nPage) const override; + + virtual OString get_current_page_ident() const override; + + virtual weld::Container* get_page(const OString& rIdent) const override; + + virtual void set_current_page(int nPage) override; + + virtual void set_current_page(const OString& rIdent) override; + + virtual void remove_page(const OString& rIdent) override; + + virtual void append_page(const OString& rIdent, const OUString& rLabel) override; + + virtual int get_n_pages() const override; + + virtual OUString get_tab_label_text(const OString& rIdent) const override; + + virtual void set_tab_label_text(const OString& rIdent, const OUString& rText) override; + + virtual ~SalInstanceNotebook() override; +}; + #endif \ No newline at end of file diff --git a/vcl/source/app/salvtables.cxx b/vcl/source/app/salvtables.cxx index c6a2ea519714..4ae946df7ba5 100644 --- a/vcl/source/app/salvtables.cxx +++ b/vcl/source/app/salvtables.cxx @@ -2164,114 +2164,101 @@ IMPL_LINK_NOARG(SalInstanceScrolledWindow, HscrollHdl, ScrollBar*, void) m_aOrigHScrollHdl.Call(&m_xScrolledWindow->getHorzScrollBar()); } -class SalInstanceNotebook : public SalInstanceContainer, public virtual weld::Notebook +SalInstanceNotebook::SalInstanceNotebook(TabControl* pNotebook, SalInstanceBuilder* pBuilder, bool bTakeOwnership) + : SalInstanceContainer(pNotebook, pBuilder, bTakeOwnership) + , m_xNotebook(pNotebook) { -private: - VclPtr m_xNotebook; - mutable std::vector> m_aPages; - std::vector> m_aAddedPages; - std::vector> m_aAddedGrids; - - DECL_LINK(DeactivatePageHdl, TabControl*, bool); - DECL_LINK(ActivatePageHdl, TabControl*, void); - -public: - SalInstanceNotebook(TabControl* pNotebook, SalInstanceBuilder* pBuilder, bool bTakeOwnership) - : SalInstanceContainer(pNotebook, pBuilder, bTakeOwnership) - , m_xNotebook(pNotebook) - { - m_xNotebook->SetActivatePageHdl(LINK(this, SalInstanceNotebook, ActivatePageHdl)); - m_xNotebook->SetDeactivatePageHdl(LINK(this, SalInstanceNotebook, DeactivatePageHdl)); - } + m_xNotebook->SetActivatePageHdl(LINK(this, SalInstanceNotebook, ActivatePageHdl)); + m_xNotebook->SetDeactivatePageHdl(LINK(this, SalInstanceNotebook, DeactivatePageHdl)); +} - virtual int get_current_page() const override - { - return m_xNotebook->GetPagePos(m_xNotebook->GetCurPageId()); - } +int SalInstanceNotebook::get_current_page() const +{ + return m_xNotebook->GetPagePos(m_xNotebook->GetCurPageId()); +} - virtual OString get_page_ident(int nPage) const override - { - return m_xNotebook->GetPageName(m_xNotebook->GetPageId(nPage)); - } +OString SalInstanceNotebook::get_page_ident(int nPage) const +{ + return m_xNotebook->GetPageName(m_xNotebook->GetPageId(nPage)); +} - virtual OString get_current_page_ident() const override - { - return m_xNotebook->GetPageName(m_xNotebook->GetCurPageId()); - } +OString SalInstanceNotebook::get_current_page_ident() const +{ + return m_xNotebook->GetPageName(m_xNotebook->GetCurPageId()); +} - virtual weld::Container* get_page(const OString& rIdent) const override - { - sal_uInt16 nPageId = m_xNotebook->GetPageId(rIdent); - sal_uInt16 nPageIndex = m_xNotebook->GetPagePos(nPageId); - if (nPageIndex == TAB_PAGE_NOTFOUND) - return nullptr; - TabPage* pPage = m_xNotebook->GetTabPage(nPageId); - vcl::Window* pChild = pPage->GetChild(0); - if (m_aPages.size() < nPageIndex + 1U) - m_aPages.resize(nPageIndex + 1U); - if (!m_aPages[nPageIndex]) - m_aPages[nPageIndex].reset(new SalInstanceContainer(pChild, m_pBuilder, false)); - return m_aPages[nPageIndex].get(); - } +weld::Container* SalInstanceNotebook::get_page(const OString& rIdent) const +{ + sal_uInt16 nPageId = m_xNotebook->GetPageId(rIdent); + sal_uInt16 nPageIndex = m_xNotebook->GetPagePos(nPageId); + if (nPageIndex == TAB_PAGE_NOTFOUND) + return nullptr; + TabPage* pPage = m_xNotebook->GetTabPage(nPageId); + vcl::Window* pChild = pPage->GetChild(0); + if (m_aPages.size() < nPageIndex + 1U) + m_aPages.resize(nPageIndex + 1U); + if (!m_aPages[nPageIndex]) + m_aPages[nPageIndex].reset(new SalInstanceContainer(pChild, m_pBuilder, false)); + return m_aPages[nPageIndex].get(); +} - virtual void set_current_page(int nPage) override - { - m_xNotebook->SetCurPageId(m_xNotebook->GetPageId(nPage)); - } +void SalInstanceNotebook::set_current_page(int nPage) +{ + m_xNotebook->SetCurPageId(m_xNotebook->GetPageId(nPage)); +} - virtual void set_current_page(const OString& rIdent) override - { - m_xNotebook->SetCurPageId(m_xNotebook->GetPageId(rIdent)); - } +void SalInstanceNotebook::set_current_page(const OString& rIdent) +{ + m_xNotebook->SetCurPageId(m_xNotebook->GetPageId(rIdent)); +} - virtual void remove_page(const OString& rIdent) override - { - m_xNotebook->RemovePage(m_xNotebook->GetPageId(rIdent)); - } +void SalInstanceNotebook::remove_page(const OString& rIdent) +{ + m_xNotebook->RemovePage(m_xNotebook->GetPageId(rIdent)); +} - virtual void append_page(const OString& rIdent, const OUString& rLabel) override - { - sal_uInt16 nPageCount = m_xNotebook->GetPageCount(); - sal_uInt16 nLastPageId = nPageCount ? m_xNotebook->GetPageId(nPageCount - 1) : 0; - sal_uInt16 nNewPageId = nLastPageId + 1; - m_xNotebook->InsertPage(nNewPageId, rLabel); - VclPtrInstance xPage(m_xNotebook); - VclPtrInstance xGrid(xPage); - xPage->Show(); - xGrid->set_hexpand(true); - xGrid->set_vexpand(true); - xGrid->Show(); - m_xNotebook->SetTabPage(nNewPageId, xPage); - m_xNotebook->SetPageName(nNewPageId, rIdent); - m_aAddedPages.push_back(xPage); - m_aAddedGrids.push_back(xGrid); - } +void SalInstanceNotebook::append_page(const OString& rIdent, const OUString& rLabel) +{ + sal_uInt16 nPageCount = m_xNotebook->GetPageCount(); + sal_uInt16 nLastPageId = nPageCount ? m_xNotebook->GetPageId(nPageCount - 1) : 0; + sal_uInt16 nNewPageId = nLastPageId + 1; + m_xNotebook->InsertPage(nNewPageId, rLabel); + VclPtrInstance xPage(m_xNotebook); + VclPtrInstance xGrid(xPage); + xPage->Show(); + xGrid->set_hexpand(true); + xGrid->set_vexpand(true); + xGrid->Show(); + m_xNotebook->SetTabPage(nNewPageId, xPage); + m_xNotebook->SetPageName(nNewPageId, rIdent); + m_aAddedPages.push_back(xPage); + m_aAddedGrids.push_back(xGrid); +} - virtual int get_n_pages() const override - { - return m_xNotebook->GetPageCount(); - } +int SalInstanceNotebook::get_n_pages() const +{ + return m_xNotebook->GetPageCount(); +} - virtual OUString get_tab_label_text(const OString& rIdent) const override - { - return m_xNotebook->GetPageText(m_xNotebook->GetPageId(rIdent)); - } +OUString SalInstanceNotebook::get_tab_label_text(const OString& rIdent) const +{ + return m_xNotebook->GetPageText(m_xNotebook->GetPageId(rIdent)); +} - virtual void set_tab_label_text(const OString& rIdent, const OUString& rText) override - { - return m_xNotebook->SetPageText(m_xNotebook->GetPageId(rIdent), rText); - } +void SalInstanceNotebook::set_tab_label_text(const OString& rIdent, const OUString& rText) +{ + return m_xNotebook->SetPageText(m_xNotebook->GetPageId(rIdent), rText); +} - virtual ~SalInstanceNotebook() override - { - for (auto &rGrid : m_aAddedGrids) - rGrid.disposeAndClear(); - for (auto &rPage : m_aAddedPages) - rPage.disposeAndClear(); - m_xNotebook->SetActivatePageHdl(Link()); - m_xNotebook->SetDeactivatePageHdl(Link()); - } -}; +SalInstanceNotebook::~SalInstanceNotebook() +{ + for (auto &rGrid : m_aAddedGrids) + rGrid.disposeAndClear(); + for (auto &rPage : m_aAddedPages) + rPage.disposeAndClear(); + m_xNotebook->SetActivatePageHdl(Link()); + m_xNotebook->SetDeactivatePageHdl(Link()); +} IMPL_LINK_NOARG(SalInstanceNotebook, DeactivatePageHdl, TabControl*, bool) { -- cgit