summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSzymon Kłos <szymon.klos@collabora.com>2020-03-04 16:03:01 +0100
committerSzymon Kłos <eszkadev@gmail.com>2020-05-14 14:38:06 +0200
commit91074fce875e68978f34c1103982d2d5887a0894 (patch)
tree9355bb12244b321e1849ce267b054f7c5bf01e10
parentec838f4b57044549058ed204f226198576d53564 (diff)
Move SalInstanceNotebook to header file
Change-Id: Id14b6fca6f12f49691a621f636300f9da320834c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/93975 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Szymon Kłos <szymon.klos@collabora.com>
-rw-r--r--vcl/inc/salvtables.hxx41
-rw-r--r--vcl/source/app/salvtables.cxx177
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 <vcl/spinfld.hxx>
#include <vcl/fixed.hxx>
#include <vcl/lstbox.hxx>
+#include <vcl/tabctrl.hxx>
+#include <vcl/layout.hxx>
class SalInstanceBuilder : public weld::Builder
{
@@ -862,4 +864,43 @@ public:
virtual ~SalInstanceButton() override;
};
+class SalInstanceNotebook : public SalInstanceContainer, public virtual weld::Notebook
+{
+private:
+ VclPtr<TabControl> m_xNotebook;
+ mutable std::vector<std::unique_ptr<SalInstanceContainer>> m_aPages;
+ std::vector<VclPtr<TabPage>> m_aAddedPages;
+ std::vector<VclPtr<VclGrid>> 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<TabControl> m_xNotebook;
- mutable std::vector<std::unique_ptr<SalInstanceContainer>> m_aPages;
- std::vector<VclPtr<TabPage>> m_aAddedPages;
- std::vector<VclPtr<VclGrid>> 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<TabPage> xPage(m_xNotebook);
- VclPtrInstance<VclGrid> 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<TabPage> xPage(m_xNotebook);
+ VclPtrInstance<VclGrid> 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<TabControl*,void>());
- m_xNotebook->SetDeactivatePageHdl(Link<TabControl*,bool>());
- }
-};
+SalInstanceNotebook::~SalInstanceNotebook()
+{
+ for (auto &rGrid : m_aAddedGrids)
+ rGrid.disposeAndClear();
+ for (auto &rPage : m_aAddedPages)
+ rPage.disposeAndClear();
+ m_xNotebook->SetActivatePageHdl(Link<TabControl*,void>());
+ m_xNotebook->SetDeactivatePageHdl(Link<TabControl*,bool>());
+}
IMPL_LINK_NOARG(SalInstanceNotebook, DeactivatePageHdl, TabControl*, bool)
{