diff options
author | Szymon Kłos <szymon.klos@collabora.com> | 2021-06-10 15:32:49 +0200 |
---|---|---|
committer | Szymon Kłos <szymon.klos@collabora.com> | 2021-07-27 14:20:00 +0200 |
commit | 71123e5749879ecf5cb7458df10be60c16255279 (patch) | |
tree | c822972feaef6f5357bd098ee50f80b720b2f3f8 /vcl | |
parent | af0786c3d7e22e961a92e0ccb2fc2c6f504e576e (diff) |
Move SalInstanceMenuButton decl to header
Change-Id: I5f5f0ceb58925874c6878760a99179a4936198fa
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/116991
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Szymon Kłos <szymon.klos@collabora.com>
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/119543
Tested-by: Jenkins
Diffstat (limited to 'vcl')
-rw-r--r-- | vcl/inc/salvtables.hxx | 45 | ||||
-rw-r--r-- | vcl/source/app/salvtables.cxx | 179 |
2 files changed, 128 insertions, 96 deletions
diff --git a/vcl/inc/salvtables.hxx b/vcl/inc/salvtables.hxx index 8c5e64d3deda..74d8179ea356 100644 --- a/vcl/inc/salvtables.hxx +++ b/vcl/inc/salvtables.hxx @@ -1839,4 +1839,49 @@ public: virtual std::unique_ptr<weld::Label> weld_label_widget() const override; }; +class SalInstanceMenuButton : public SalInstanceButton, public virtual weld::MenuButton +{ +private: + VclPtr<::MenuButton> m_xMenuButton; + sal_uInt16 m_nLastId; + + DECL_LINK(MenuSelectHdl, ::MenuButton*, void); + DECL_LINK(ActivateHdl, ::MenuButton*, void); + +public: + SalInstanceMenuButton(::MenuButton* pButton, SalInstanceBuilder* pBuilder, bool bTakeOwnership); + + virtual void set_active(bool active) override; + + virtual bool get_active() const override; + + virtual void set_inconsistent(bool /*inconsistent*/) override; + + virtual bool get_inconsistent() const override; + + virtual void insert_item(int pos, const OUString& rId, const OUString& rStr, + const OUString* pIconName, VirtualDevice* pImageSurface, + TriState eCheckRadioFalse) override; + + virtual void insert_separator(int pos, const OUString& rId) override; + + virtual void set_item_sensitive(const OString& rIdent, bool bSensitive) override; + + virtual void remove_item(const OString& rId) override; + + virtual void clear() override; + + virtual void set_item_active(const OString& rIdent, bool bActive) override; + + virtual void set_item_label(const OString& rIdent, const OUString& rText) override; + + virtual OUString get_item_label(const OString& rIdent) const override; + + virtual void set_item_visible(const OString& rIdent, bool bShow) override; + + virtual void set_popover(weld::Widget* pPopover) override; + + virtual ~SalInstanceMenuButton() 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 7d876e8d33d2..2dd874c97843 100644 --- a/vcl/source/app/salvtables.cxx +++ b/vcl/source/app/salvtables.cxx @@ -2655,120 +2655,107 @@ weld::Button* SalInstanceAssistant::weld_widget_for_response(int nResponse) return nullptr; } -namespace -{ -class SalInstanceMenuButton : public SalInstanceButton, public virtual weld::MenuButton +SalInstanceMenuButton::SalInstanceMenuButton(::MenuButton* pButton, SalInstanceBuilder* pBuilder, + bool bTakeOwnership) + : SalInstanceButton(pButton, pBuilder, bTakeOwnership) + , m_xMenuButton(pButton) + , m_nLastId(0) { -private: - VclPtr<::MenuButton> m_xMenuButton; - sal_uInt16 m_nLastId; - - DECL_LINK(MenuSelectHdl, ::MenuButton*, void); - DECL_LINK(ActivateHdl, ::MenuButton*, void); - -public: - SalInstanceMenuButton(::MenuButton* pButton, SalInstanceBuilder* pBuilder, bool bTakeOwnership) - : SalInstanceButton(pButton, pBuilder, bTakeOwnership) - , m_xMenuButton(pButton) - , m_nLastId(0) + m_xMenuButton->SetActivateHdl(LINK(this, SalInstanceMenuButton, ActivateHdl)); + m_xMenuButton->SetSelectHdl(LINK(this, SalInstanceMenuButton, MenuSelectHdl)); + if (PopupMenu* pMenu = m_xMenuButton->GetPopupMenu()) { - m_xMenuButton->SetActivateHdl(LINK(this, SalInstanceMenuButton, ActivateHdl)); - m_xMenuButton->SetSelectHdl(LINK(this, SalInstanceMenuButton, MenuSelectHdl)); - if (PopupMenu* pMenu = m_xMenuButton->GetPopupMenu()) - { - pMenu->SetMenuFlags(MenuFlags::NoAutoMnemonics); - const auto nCount = pMenu->GetItemCount(); - m_nLastId = nCount ? pMenu->GetItemId(nCount - 1) : 0; - } + pMenu->SetMenuFlags(MenuFlags::NoAutoMnemonics); + const auto nCount = pMenu->GetItemCount(); + m_nLastId = nCount ? pMenu->GetItemId(nCount - 1) : 0; } +} - virtual void set_active(bool active) override - { - if (active == get_active()) - return; - if (active) - m_xMenuButton->ExecuteMenu(); - else - m_xMenuButton->CancelMenu(); - } +void SalInstanceMenuButton::set_active(bool active) +{ + if (active == get_active()) + return; + if (active) + m_xMenuButton->ExecuteMenu(); + else + m_xMenuButton->CancelMenu(); +} - virtual bool get_active() const override { return m_xMenuButton->InPopupMode(); } +bool SalInstanceMenuButton::get_active() const { return m_xMenuButton->InPopupMode(); } - virtual void set_inconsistent(bool /*inconsistent*/) override - { - //not available - } +void SalInstanceMenuButton::set_inconsistent(bool /*inconsistent*/) +{ + //not available +} - virtual bool get_inconsistent() const override { return false; } +bool SalInstanceMenuButton::get_inconsistent() const { return false; } - virtual void insert_item(int pos, const OUString& rId, const OUString& rStr, - const OUString* pIconName, VirtualDevice* pImageSurface, - TriState eCheckRadioFalse) override - { - m_nLastId = insert_to_menu(m_nLastId, m_xMenuButton->GetPopupMenu(), pos, rId, rStr, - pIconName, pImageSurface, nullptr, eCheckRadioFalse); - } +void SalInstanceMenuButton::insert_item(int pos, const OUString& rId, const OUString& rStr, + const OUString* pIconName, VirtualDevice* pImageSurface, + TriState eCheckRadioFalse) +{ + m_nLastId = insert_to_menu(m_nLastId, m_xMenuButton->GetPopupMenu(), pos, rId, rStr, pIconName, + pImageSurface, nullptr, eCheckRadioFalse); +} - virtual void insert_separator(int pos, const OUString& rId) override - { - auto nInsertPos = pos == -1 ? MENU_APPEND : pos; - m_xMenuButton->GetPopupMenu()->InsertSeparator(rId.toUtf8(), nInsertPos); - } +void SalInstanceMenuButton::insert_separator(int pos, const OUString& rId) +{ + auto nInsertPos = pos == -1 ? MENU_APPEND : pos; + m_xMenuButton->GetPopupMenu()->InsertSeparator(rId.toUtf8(), nInsertPos); +} - virtual void set_item_sensitive(const OString& rIdent, bool bSensitive) override - { - PopupMenu* pMenu = m_xMenuButton->GetPopupMenu(); - pMenu->EnableItem(rIdent, bSensitive); - } +void SalInstanceMenuButton::set_item_sensitive(const OString& rIdent, bool bSensitive) +{ + PopupMenu* pMenu = m_xMenuButton->GetPopupMenu(); + pMenu->EnableItem(rIdent, bSensitive); +} - virtual void remove_item(const OString& rId) override - { - PopupMenu* pMenu = m_xMenuButton->GetPopupMenu(); - pMenu->RemoveItem(pMenu->GetItemPos(pMenu->GetItemId(rId))); - } +void SalInstanceMenuButton::remove_item(const OString& rId) +{ + PopupMenu* pMenu = m_xMenuButton->GetPopupMenu(); + pMenu->RemoveItem(pMenu->GetItemPos(pMenu->GetItemId(rId))); +} - virtual void clear() override - { - PopupMenu* pMenu = m_xMenuButton->GetPopupMenu(); - pMenu->Clear(); - } +void SalInstanceMenuButton::clear() +{ + PopupMenu* pMenu = m_xMenuButton->GetPopupMenu(); + pMenu->Clear(); +} - virtual void set_item_active(const OString& rIdent, bool bActive) override - { - PopupMenu* pMenu = m_xMenuButton->GetPopupMenu(); - pMenu->CheckItem(rIdent, bActive); - } +void SalInstanceMenuButton::set_item_active(const OString& rIdent, bool bActive) +{ + PopupMenu* pMenu = m_xMenuButton->GetPopupMenu(); + pMenu->CheckItem(rIdent, bActive); +} - virtual void set_item_label(const OString& rIdent, const OUString& rText) override - { - PopupMenu* pMenu = m_xMenuButton->GetPopupMenu(); - pMenu->SetItemText(pMenu->GetItemId(rIdent), rText); - } +void SalInstanceMenuButton::set_item_label(const OString& rIdent, const OUString& rText) +{ + PopupMenu* pMenu = m_xMenuButton->GetPopupMenu(); + pMenu->SetItemText(pMenu->GetItemId(rIdent), rText); +} - virtual OUString get_item_label(const OString& rIdent) const override - { - PopupMenu* pMenu = m_xMenuButton->GetPopupMenu(); - return pMenu->GetItemText(pMenu->GetItemId(rIdent)); - } +OUString SalInstanceMenuButton::get_item_label(const OString& rIdent) const +{ + PopupMenu* pMenu = m_xMenuButton->GetPopupMenu(); + return pMenu->GetItemText(pMenu->GetItemId(rIdent)); +} - virtual void set_item_visible(const OString& rIdent, bool bShow) override - { - PopupMenu* pMenu = m_xMenuButton->GetPopupMenu(); - pMenu->ShowItem(pMenu->GetItemId(rIdent), bShow); - } +void SalInstanceMenuButton::set_item_visible(const OString& rIdent, bool bShow) +{ + PopupMenu* pMenu = m_xMenuButton->GetPopupMenu(); + pMenu->ShowItem(pMenu->GetItemId(rIdent), bShow); +} - virtual void set_popover(weld::Widget* pPopover) override - { - SalInstanceWidget* pPopoverWidget = dynamic_cast<SalInstanceWidget*>(pPopover); - m_xMenuButton->SetPopover(pPopoverWidget ? pPopoverWidget->getWidget() : nullptr); - } +void SalInstanceMenuButton::set_popover(weld::Widget* pPopover) +{ + SalInstanceWidget* pPopoverWidget = dynamic_cast<SalInstanceWidget*>(pPopover); + m_xMenuButton->SetPopover(pPopoverWidget ? pPopoverWidget->getWidget() : nullptr); +} - virtual ~SalInstanceMenuButton() override - { - m_xMenuButton->SetSelectHdl(Link<::MenuButton*, void>()); - m_xMenuButton->SetActivateHdl(Link<::MenuButton*, void>()); - } -}; +SalInstanceMenuButton::~SalInstanceMenuButton() +{ + m_xMenuButton->SetSelectHdl(Link<::MenuButton*, void>()); + m_xMenuButton->SetActivateHdl(Link<::MenuButton*, void>()); } IMPL_LINK_NOARG(SalInstanceMenuButton, MenuSelectHdl, ::MenuButton*, void) |