vcl/inc/salvtables.hxx | 17 ++++++++++ vcl/source/app/salvtables.cxx | 69 +++++++++++++++++------------------------- 2 files changed, 46 insertions(+), 40 deletions(-)
New commits: commit f946edbe6e9c35e3b19dbfad327ff87afd1f4789 Author: Szymon Kłos <szymon.k...@collabora.com> AuthorDate: Wed Jun 16 20:01:32 2021 +0200 Commit: Szymon Kłos <szymon.k...@collabora.com> CommitDate: Thu Jun 17 14:32:19 2021 +0200 Move SalInstancePopover decl to header file Change-Id: I58d021d3e4a3f5d4b8b805380526c1d32b782674 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/117345 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoff...@gmail.com> Reviewed-by: Szymon Kłos <szymon.k...@collabora.com> diff --git a/vcl/inc/salvtables.hxx b/vcl/inc/salvtables.hxx index a1927efd633d..feebebe60507 100644 --- a/vcl/inc/salvtables.hxx +++ b/vcl/inc/salvtables.hxx @@ -1861,4 +1861,21 @@ public: virtual ~SalInstanceMenuButton() override; }; +class SalInstancePopover : public SalInstanceContainer, public virtual weld::Popover +{ +private: + VclPtr<DockingWindow> m_xPopover; + + DECL_LINK(PopupModeEndHdl, FloatingWindow*, void); + +public: + SalInstancePopover(DockingWindow* pPopover, SalInstanceBuilder* pBuilder, bool bTakeOwnership); + + ~SalInstancePopover(); + + virtual void popup_at_rect(weld::Widget* pParent, const tools::Rectangle& rRect) override; + + virtual void popdown() override; +}; + /* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */ diff --git a/vcl/source/app/salvtables.cxx b/vcl/source/app/salvtables.cxx index ec19d667fb4d..e722a0b6ca87 100644 --- a/vcl/source/app/salvtables.cxx +++ b/vcl/source/app/salvtables.cxx @@ -6563,52 +6563,41 @@ IMPL_LINK(SalInstanceEntryTreeView, AutocompleteHdl, Edit&, rEdit, void) } } -namespace -{ -class SalInstancePopover : public SalInstanceContainer, public virtual weld::Popover +SalInstancePopover::SalInstancePopover(DockingWindow* pPopover, SalInstanceBuilder* pBuilder, + bool bTakeOwnership) + : SalInstanceContainer(pPopover, pBuilder, bTakeOwnership) + , m_xPopover(pPopover) { -private: - VclPtr<DockingWindow> m_xPopover; - - DECL_LINK(PopupModeEndHdl, FloatingWindow*, void); - -public: - SalInstancePopover(DockingWindow* pPopover, SalInstanceBuilder* pBuilder, bool bTakeOwnership) - : SalInstanceContainer(pPopover, pBuilder, bTakeOwnership) - , m_xPopover(pPopover) - { - } +} - ~SalInstancePopover() { signal_closed(); } +SalInstancePopover::~SalInstancePopover() { signal_closed(); } - virtual void popup_at_rect(weld::Widget* pParent, const tools::Rectangle& rRect) override - { - SalInstanceWidget* pVclWidget = dynamic_cast<SalInstanceWidget*>(pParent); - assert(pVclWidget); - vcl::Window* pWidget = pVclWidget->getWidget(); +void SalInstancePopover::popup_at_rect(weld::Widget* pParent, const tools::Rectangle& rRect) +{ + SalInstanceWidget* pVclWidget = dynamic_cast<SalInstanceWidget*>(pParent); + assert(pVclWidget); + vcl::Window* pWidget = pVclWidget->getWidget(); - tools::Rectangle aRect; - Point aPt = pWidget->OutputToScreenPixel(rRect.TopLeft()); - aRect.SetLeft(aPt.X()); - aRect.SetTop(aPt.Y()); - aPt = pWidget->OutputToScreenPixel(rRect.BottomRight()); - aRect.SetRight(aPt.X()); - aRect.SetBottom(aPt.Y()); + tools::Rectangle aRect; + Point aPt = pWidget->OutputToScreenPixel(rRect.TopLeft()); + aRect.SetLeft(aPt.X()); + aRect.SetTop(aPt.Y()); + aPt = pWidget->OutputToScreenPixel(rRect.BottomRight()); + aRect.SetRight(aPt.X()); + aRect.SetBottom(aPt.Y()); - FloatWinPopupFlags nFlags = FloatWinPopupFlags::Down | FloatWinPopupFlags::GrabFocus; - m_xPopover->EnableDocking(); - DockingManager* pDockingManager = vcl::Window::GetDockingManager(); - pDockingManager->SetPopupModeEndHdl(m_xPopover, - LINK(this, SalInstancePopover, PopupModeEndHdl)); - pDockingManager->StartPopupMode(m_xPopover, aRect, nFlags); - } + FloatWinPopupFlags nFlags = FloatWinPopupFlags::Down | FloatWinPopupFlags::GrabFocus; + m_xPopover->EnableDocking(); + DockingManager* pDockingManager = vcl::Window::GetDockingManager(); + pDockingManager->SetPopupModeEndHdl(m_xPopover, + LINK(this, SalInstancePopover, PopupModeEndHdl)); + pDockingManager->StartPopupMode(m_xPopover, aRect, nFlags); +} - virtual void popdown() override - { - vcl::Window::GetDockingManager()->EndPopupMode(m_xPopover); - m_xPopover->EnableDocking(false); - } -}; +void SalInstancePopover::popdown() +{ + vcl::Window::GetDockingManager()->EndPopupMode(m_xPopover); + m_xPopover->EnableDocking(false); } IMPL_LINK_NOARG(SalInstancePopover, PopupModeEndHdl, FloatingWindow*, void) { signal_closed(); } _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits