summaryrefslogtreecommitdiff
path: root/vcl
diff options
context:
space:
mode:
authorSzymon Kłos <szymon.klos@collabora.com>2021-06-10 15:32:49 +0200
committerSzymon Kłos <szymon.klos@collabora.com>2021-07-27 14:20:00 +0200
commit71123e5749879ecf5cb7458df10be60c16255279 (patch)
treec822972feaef6f5357bd098ee50f80b720b2f3f8 /vcl
parentaf0786c3d7e22e961a92e0ccb2fc2c6f504e576e (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.hxx45
-rw-r--r--vcl/source/app/salvtables.cxx179
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)