diff options
author | Szymon Kłos <szymon.klos@collabora.com> | 2020-07-03 07:56:13 +0200 |
---|---|---|
committer | Szymon Kłos <szymon.klos@collabora.com> | 2020-07-03 09:50:17 +0200 |
commit | 3655ff091ebb6b2ecf0ef5dda3c290aa954df617 (patch) | |
tree | 0a9d265c43a354031f0ad019df2b0333f8c2d381 /vcl/source | |
parent | 4b8abb3db70ab5af3a9e92a327b46bbf38a481b3 (diff) |
Move SalInstanceToolbar decl to header file
Change-Id: Ice74bd7ce2e8d3dc92ab8d9aa7f2d1382ea71660
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/97787
Tested-by: Szymon Kłos <szymon.klos@collabora.com>
Reviewed-by: Szymon Kłos <szymon.klos@collabora.com>
Diffstat (limited to 'vcl/source')
-rw-r--r-- | vcl/source/app/salvtables.cxx | 407 |
1 files changed, 194 insertions, 213 deletions
diff --git a/vcl/source/app/salvtables.cxx b/vcl/source/app/salvtables.cxx index 656e82a43ea1..4ea4d1b568d9 100644 --- a/vcl/source/app/salvtables.cxx +++ b/vcl/source/app/salvtables.cxx @@ -764,276 +764,257 @@ IMPL_LINK_NOARG(SalInstanceMenu, SelectMenuHdl, ::Menu*, bool) return false; } -namespace -{ -class SalInstanceToolbar : public SalInstanceWidget, public virtual weld::Toolbar +SalInstanceToolbar::SalInstanceToolbar(ToolBox* pToolBox, SalInstanceBuilder* pBuilder, bool bTakeOwnership) + : SalInstanceWidget(pToolBox, pBuilder, bTakeOwnership) + , m_xToolBox(pToolBox) { -private: - VclPtr<ToolBox> m_xToolBox; - std::map<sal_uInt16, VclPtr<vcl::Window>> m_aFloats; - std::map<sal_uInt16, VclPtr<PopupMenu>> m_aMenus; + m_xToolBox->SetSelectHdl(LINK(this, SalInstanceToolbar, ClickHdl)); + m_xToolBox->SetDropdownClickHdl(LINK(this, SalInstanceToolbar, DropdownClick)); +} - OString m_sStartShowIdent; +void SalInstanceToolbar::set_item_sensitive(const OString& rIdent, bool bSensitive) +{ + m_xToolBox->EnableItem(m_xToolBox->GetItemId(OUString::fromUtf8(rIdent)), bSensitive); +} - DECL_LINK(ClickHdl, ToolBox*, void); - DECL_LINK(DropdownClick, ToolBox*, void); - DECL_LINK(MenuToggleListener, VclWindowEvent&, void); +bool SalInstanceToolbar::get_item_sensitive(const OString& rIdent) const +{ + return m_xToolBox->IsItemEnabled(m_xToolBox->GetItemId(OUString::fromUtf8(rIdent))); +} -public: - SalInstanceToolbar(ToolBox* pToolBox, SalInstanceBuilder* pBuilder, bool bTakeOwnership) - : SalInstanceWidget(pToolBox, pBuilder, bTakeOwnership) - , m_xToolBox(pToolBox) - { - m_xToolBox->SetSelectHdl(LINK(this, SalInstanceToolbar, ClickHdl)); - m_xToolBox->SetDropdownClickHdl(LINK(this, SalInstanceToolbar, DropdownClick)); - } +void SalInstanceToolbar::set_item_visible(const OString& rIdent, bool bVisible) +{ + m_xToolBox->ShowItem(m_xToolBox->GetItemId(OUString::fromUtf8(rIdent)), bVisible); +} - virtual void set_item_sensitive(const OString& rIdent, bool bSensitive) override - { - m_xToolBox->EnableItem(m_xToolBox->GetItemId(OUString::fromUtf8(rIdent)), bSensitive); - } +void SalInstanceToolbar::set_item_help_id(const OString& rIdent, const OString& rHelpId) +{ + m_xToolBox->SetHelpId(m_xToolBox->GetItemId(OUString::fromUtf8(rIdent)), rHelpId); +} - virtual bool get_item_sensitive(const OString& rIdent) const override - { - return m_xToolBox->IsItemEnabled(m_xToolBox->GetItemId(OUString::fromUtf8(rIdent))); - } +bool SalInstanceToolbar::get_item_visible(const OString& rIdent) const +{ + return m_xToolBox->IsItemVisible(m_xToolBox->GetItemId(OUString::fromUtf8(rIdent))); +} - virtual void set_item_visible(const OString& rIdent, bool bVisible) override - { - m_xToolBox->ShowItem(m_xToolBox->GetItemId(OUString::fromUtf8(rIdent)), bVisible); - } +void SalInstanceToolbar::set_item_active(const OString& rIdent, bool bActive) +{ + sal_uInt16 nItemId = m_xToolBox->GetItemId(OUString::fromUtf8(rIdent)); + m_xToolBox->CheckItem(nItemId, bActive); +} - virtual void set_item_help_id(const OString& rIdent, const OString& rHelpId) override - { - m_xToolBox->SetHelpId(m_xToolBox->GetItemId(OUString::fromUtf8(rIdent)), rHelpId); - } +bool SalInstanceToolbar::get_item_active(const OString& rIdent) const +{ + return m_xToolBox->IsItemChecked(m_xToolBox->GetItemId(OUString::fromUtf8(rIdent))); +} - virtual bool get_item_visible(const OString& rIdent) const override - { - return m_xToolBox->IsItemVisible(m_xToolBox->GetItemId(OUString::fromUtf8(rIdent))); - } +void SalInstanceToolbar::set_menu_item_active(const OString& rIdent, bool bActive) +{ + sal_uInt16 nItemId = m_xToolBox->GetItemId(OUString::fromUtf8(rIdent)); + assert(m_xToolBox->GetItemBits(nItemId) & ToolBoxItemBits::DROPDOWN); - virtual void set_item_active(const OString& rIdent, bool bActive) override + if (bActive) { - sal_uInt16 nItemId = m_xToolBox->GetItemId(OUString::fromUtf8(rIdent)); - m_xToolBox->CheckItem(nItemId, bActive); + m_sStartShowIdent = m_xToolBox->GetItemCommand(nItemId).toUtf8(); + signal_toggle_menu(m_sStartShowIdent); } - virtual bool get_item_active(const OString& rIdent) const override + auto pFloat = m_aFloats[nItemId]; + if (pFloat) { - return m_xToolBox->IsItemChecked(m_xToolBox->GetItemId(OUString::fromUtf8(rIdent))); + if (bActive) + vcl::Window::GetDockingManager()->StartPopupMode(m_xToolBox, pFloat, + FloatWinPopupFlags::GrabFocus); + else + vcl::Window::GetDockingManager()->EndPopupMode(pFloat); } - - void set_menu_item_active(const OString& rIdent, bool bActive) override + auto pPopup = m_aMenus[nItemId]; + if (pPopup) { - sal_uInt16 nItemId = m_xToolBox->GetItemId(OUString::fromUtf8(rIdent)); - assert(m_xToolBox->GetItemBits(nItemId) & ToolBoxItemBits::DROPDOWN); - if (bActive) { - m_sStartShowIdent = m_xToolBox->GetItemCommand(nItemId).toUtf8(); - signal_toggle_menu(m_sStartShowIdent); - } - - auto pFloat = m_aFloats[nItemId]; - if (pFloat) - { - if (bActive) - vcl::Window::GetDockingManager()->StartPopupMode(m_xToolBox, pFloat, - FloatWinPopupFlags::GrabFocus); - else - vcl::Window::GetDockingManager()->EndPopupMode(pFloat); + tools::Rectangle aRect = m_xToolBox->GetItemRect(nItemId); + pPopup->Execute(m_xToolBox, aRect, PopupMenuFlags::ExecuteDown); } - auto pPopup = m_aMenus[nItemId]; - if (pPopup) - { - if (bActive) - { - tools::Rectangle aRect = m_xToolBox->GetItemRect(nItemId); - pPopup->Execute(m_xToolBox, aRect, PopupMenuFlags::ExecuteDown); - } - else - pPopup->EndExecute(); - } - - m_sStartShowIdent.clear(); + else + pPopup->EndExecute(); } - bool get_menu_item_active(const OString& rIdent) const override - { - sal_uInt16 nItemId = m_xToolBox->GetItemId(OUString::fromUtf8(rIdent)); - assert(m_xToolBox->GetItemBits(nItemId) & ToolBoxItemBits::DROPDOWN); - - if (rIdent == m_sStartShowIdent) - return true; + m_sStartShowIdent.clear(); +} - auto aFloat = m_aFloats.find(nItemId); - if (aFloat != m_aFloats.end()) - { - return vcl::Window::GetDockingManager()->IsInPopupMode(aFloat->second); - } +bool SalInstanceToolbar::get_menu_item_active(const OString& rIdent) const +{ + sal_uInt16 nItemId = m_xToolBox->GetItemId(OUString::fromUtf8(rIdent)); + assert(m_xToolBox->GetItemBits(nItemId) & ToolBoxItemBits::DROPDOWN); - auto aPopup = m_aMenus.find(nItemId); - if (aPopup != m_aMenus.end()) - { - return PopupMenu::GetActivePopupMenu() == aPopup->second; - } + if (rIdent == m_sStartShowIdent) + return true; - return false; + auto aFloat = m_aFloats.find(nItemId); + if (aFloat != m_aFloats.end()) + { + return vcl::Window::GetDockingManager()->IsInPopupMode(aFloat->second); } - virtual void set_item_popover(const OString& rIdent, weld::Widget* pPopover) override + auto aPopup = m_aMenus.find(nItemId); + if (aPopup != m_aMenus.end()) { - SalInstanceWidget* pPopoverWidget = dynamic_cast<SalInstanceWidget*>(pPopover); - - vcl::Window* pFloat = pPopoverWidget ? pPopoverWidget->getWidget() : nullptr; - if (pFloat) - { - pFloat->AddEventListener(LINK(this, SalInstanceToolbar, MenuToggleListener)); - pFloat->EnableDocking(); - } - - sal_uInt16 nId = m_xToolBox->GetItemId(OUString::fromUtf8(rIdent)); - auto xOldFloat = m_aFloats[nId]; - if (xOldFloat) - { - xOldFloat->RemoveEventListener(LINK(this, SalInstanceToolbar, MenuToggleListener)); - } - m_aFloats[nId] = pFloat; - m_aMenus[nId] = nullptr; + return PopupMenu::GetActivePopupMenu() == aPopup->second; } - virtual void set_item_menu(const OString& rIdent, weld::Menu* pMenu) override - { - SalInstanceMenu* pInstanceMenu = dynamic_cast<SalInstanceMenu*>(pMenu); + return false; +} - PopupMenu* pPopup = pInstanceMenu ? pInstanceMenu->getMenu() : nullptr; +void SalInstanceToolbar::set_item_popover(const OString& rIdent, weld::Widget* pPopover) +{ + SalInstanceWidget* pPopoverWidget = dynamic_cast<SalInstanceWidget*>(pPopover); - sal_uInt16 nId = m_xToolBox->GetItemId(OUString::fromUtf8(rIdent)); - m_aMenus[nId] = pPopup; - m_aFloats[nId] = nullptr; + vcl::Window* pFloat = pPopoverWidget ? pPopoverWidget->getWidget() : nullptr; + if (pFloat) + { + pFloat->AddEventListener(LINK(this, SalInstanceToolbar, MenuToggleListener)); + pFloat->EnableDocking(); } - virtual void insert_separator(int pos, const OUString& /*rId*/) override + sal_uInt16 nId = m_xToolBox->GetItemId(OUString::fromUtf8(rIdent)); + auto xOldFloat = m_aFloats[nId]; + if (xOldFloat) { - auto nInsertPos = pos == -1 ? ToolBox::APPEND : pos; - m_xToolBox->InsertSeparator(nInsertPos, 5); + xOldFloat->RemoveEventListener(LINK(this, SalInstanceToolbar, MenuToggleListener)); } + m_aFloats[nId] = pFloat; + m_aMenus[nId] = nullptr; +} - virtual int get_n_items() const override { return m_xToolBox->GetItemCount(); } +void SalInstanceToolbar::set_item_menu(const OString& rIdent, weld::Menu* pMenu) +{ + SalInstanceMenu* pInstanceMenu = dynamic_cast<SalInstanceMenu*>(pMenu); - virtual OString get_item_ident(int nIndex) const override - { - return m_xToolBox->GetItemCommand(m_xToolBox->GetItemId(nIndex)).toUtf8(); - } + PopupMenu* pPopup = pInstanceMenu ? pInstanceMenu->getMenu() : nullptr; - virtual void set_item_ident(int nIndex, const OString& rIdent) override - { - return m_xToolBox->SetItemCommand(m_xToolBox->GetItemId(nIndex), - OUString::fromUtf8(rIdent)); - } + sal_uInt16 nId = m_xToolBox->GetItemId(OUString::fromUtf8(rIdent)); + m_aMenus[nId] = pPopup; + m_aFloats[nId] = nullptr; +} - virtual void set_item_label(int nIndex, const OUString& rLabel) override - { - m_xToolBox->SetItemText(m_xToolBox->GetItemId(nIndex), rLabel); - } +void SalInstanceToolbar::insert_separator(int pos, const OUString& /*rId*/) +{ + auto nInsertPos = pos == -1 ? ToolBox::APPEND : pos; + m_xToolBox->InsertSeparator(nInsertPos, 5); +} - virtual OUString get_item_label(const OString& rIdent) const override - { - return m_xToolBox->GetItemText(m_xToolBox->GetItemId(OUString::fromUtf8(rIdent))); - } +int SalInstanceToolbar::get_n_items() const { return m_xToolBox->GetItemCount(); } - virtual void set_item_label(const OString& rIdent, const OUString& rLabel) override - { - m_xToolBox->SetItemText(m_xToolBox->GetItemId(OUString::fromUtf8(rIdent)), rLabel); - } +OString SalInstanceToolbar::get_item_ident(int nIndex) const +{ + return m_xToolBox->GetItemCommand(m_xToolBox->GetItemId(nIndex)).toUtf8(); +} - virtual void set_item_icon_name(const OString& rIdent, const OUString& rIconName) override - { - m_xToolBox->SetItemImage(m_xToolBox->GetItemId(OUString::fromUtf8(rIdent)), - Image(StockImage::Yes, rIconName)); - } +void SalInstanceToolbar::set_item_ident(int nIndex, const OString& rIdent) +{ + return m_xToolBox->SetItemCommand(m_xToolBox->GetItemId(nIndex), + OUString::fromUtf8(rIdent)); +} - virtual void set_item_image(const OString& rIdent, - const css::uno::Reference<css::graphic::XGraphic>& rIcon) override - { - m_xToolBox->SetItemImage(m_xToolBox->GetItemId(OUString::fromUtf8(rIdent)), Image(rIcon)); - } +void SalInstanceToolbar::set_item_label(int nIndex, const OUString& rLabel) +{ + m_xToolBox->SetItemText(m_xToolBox->GetItemId(nIndex), rLabel); +} - virtual void set_item_image(const OString& rIdent, VirtualDevice* pDevice) override - { - if (pDevice) - m_xToolBox->SetItemImage(m_xToolBox->GetItemId(OUString::fromUtf8(rIdent)), - createImage(*pDevice)); - else - m_xToolBox->SetItemImage(m_xToolBox->GetItemId(OUString::fromUtf8(rIdent)), Image()); - } +OUString SalInstanceToolbar::get_item_label(const OString& rIdent) const +{ + return m_xToolBox->GetItemText(m_xToolBox->GetItemId(OUString::fromUtf8(rIdent))); +} - virtual void set_item_image(int nIndex, - const css::uno::Reference<css::graphic::XGraphic>& rIcon) override - { - m_xToolBox->SetItemImage(m_xToolBox->GetItemId(nIndex), Image(rIcon)); - } +void SalInstanceToolbar::set_item_label(const OString& rIdent, const OUString& rLabel) +{ + m_xToolBox->SetItemText(m_xToolBox->GetItemId(OUString::fromUtf8(rIdent)), rLabel); +} - virtual void set_item_tooltip_text(int nIndex, const OUString& rTip) override - { - m_xToolBox->SetQuickHelpText(m_xToolBox->GetItemId(nIndex), rTip); - } +void SalInstanceToolbar::set_item_icon_name(const OString& rIdent, const OUString& rIconName) +{ + m_xToolBox->SetItemImage(m_xToolBox->GetItemId(OUString::fromUtf8(rIdent)), + Image(StockImage::Yes, rIconName)); +} - virtual void set_item_tooltip_text(const OString& rIdent, const OUString& rTip) override - { - m_xToolBox->SetQuickHelpText(m_xToolBox->GetItemId(OUString::fromUtf8(rIdent)), rTip); - } +void SalInstanceToolbar::set_item_image(const OString& rIdent, + const css::uno::Reference<css::graphic::XGraphic>& rIcon) +{ + m_xToolBox->SetItemImage(m_xToolBox->GetItemId(OUString::fromUtf8(rIdent)), Image(rIcon)); +} - virtual OUString get_item_tooltip_text(const OString& rIdent) const override - { - return m_xToolBox->GetQuickHelpText(m_xToolBox->GetItemId(OUString::fromUtf8(rIdent))); - } +void SalInstanceToolbar::set_item_image(const OString& rIdent, VirtualDevice* pDevice) +{ + if (pDevice) + m_xToolBox->SetItemImage(m_xToolBox->GetItemId(OUString::fromUtf8(rIdent)), + createImage(*pDevice)); + else + m_xToolBox->SetItemImage(m_xToolBox->GetItemId(OUString::fromUtf8(rIdent)), Image()); +} - virtual vcl::ImageType get_icon_size() const override { return m_xToolBox->GetImageSize(); } +void SalInstanceToolbar::set_item_image(int nIndex, + const css::uno::Reference<css::graphic::XGraphic>& rIcon) +{ + m_xToolBox->SetItemImage(m_xToolBox->GetItemId(nIndex), Image(rIcon)); +} - virtual void set_icon_size(vcl::ImageType eType) override - { - ToolBoxButtonSize eButtonSize = ToolBoxButtonSize::DontCare; - switch (eType) - { - case vcl::ImageType::Size16: - eButtonSize = ToolBoxButtonSize::Small; - break; - case vcl::ImageType::Size26: - eButtonSize = ToolBoxButtonSize::Large; - break; - case vcl::ImageType::Size32: - eButtonSize = ToolBoxButtonSize::Size32; - break; - } - if (m_xToolBox->GetToolboxButtonSize() != eButtonSize) - { - m_xToolBox->SetToolboxButtonSize(eButtonSize); - m_xToolBox->queue_resize(); - } - } +void SalInstanceToolbar::set_item_tooltip_text(int nIndex, const OUString& rTip) +{ + m_xToolBox->SetQuickHelpText(m_xToolBox->GetItemId(nIndex), rTip); +} - virtual sal_uInt16 get_modifier_state() const override - { - return m_xToolBox->GetModifier(); - } +void SalInstanceToolbar::set_item_tooltip_text(const OString& rIdent, const OUString& rTip) +{ + m_xToolBox->SetQuickHelpText(m_xToolBox->GetItemId(OUString::fromUtf8(rIdent)), rTip); +} + +OUString SalInstanceToolbar::get_item_tooltip_text(const OString& rIdent) const +{ + return m_xToolBox->GetQuickHelpText(m_xToolBox->GetItemId(OUString::fromUtf8(rIdent))); +} + +vcl::ImageType SalInstanceToolbar::get_icon_size() const { return m_xToolBox->GetImageSize(); } - int get_drop_index(const Point& rPoint) const override +void SalInstanceToolbar::set_icon_size(vcl::ImageType eType) +{ + ToolBoxButtonSize eButtonSize = ToolBoxButtonSize::DontCare; + switch (eType) { - auto nRet = m_xToolBox->GetItemPos(rPoint); - if (nRet == ToolBox::ITEM_NOTFOUND) - return 0; - return nRet; + case vcl::ImageType::Size16: + eButtonSize = ToolBoxButtonSize::Small; + break; + case vcl::ImageType::Size26: + eButtonSize = ToolBoxButtonSize::Large; + break; + case vcl::ImageType::Size32: + eButtonSize = ToolBoxButtonSize::Size32; + break; } - - virtual ~SalInstanceToolbar() override + if (m_xToolBox->GetToolboxButtonSize() != eButtonSize) { - m_xToolBox->SetDropdownClickHdl(Link<ToolBox*, void>()); - m_xToolBox->SetSelectHdl(Link<ToolBox*, void>()); + m_xToolBox->SetToolboxButtonSize(eButtonSize); + m_xToolBox->queue_resize(); } -}; +} + +sal_uInt16 SalInstanceToolbar::get_modifier_state() const +{ + return m_xToolBox->GetModifier(); +} +int SalInstanceToolbar::get_drop_index(const Point& rPoint) const +{ + auto nRet = m_xToolBox->GetItemPos(rPoint); + if (nRet == ToolBox::ITEM_NOTFOUND) + return 0; + return nRet; +} + +SalInstanceToolbar::~SalInstanceToolbar() +{ + m_xToolBox->SetDropdownClickHdl(Link<ToolBox*, void>()); + m_xToolBox->SetSelectHdl(Link<ToolBox*, void>()); } IMPL_LINK_NOARG(SalInstanceToolbar, ClickHdl, ToolBox*, void) |