diff options
author | Szymon Kłos <szymon.klos@collabora.com> | 2021-02-02 16:12:55 +0100 |
---|---|---|
committer | Szymon Kłos <szymon.klos@collabora.com> | 2021-03-04 11:03:53 +0100 |
commit | 168b3ccdbd085af43cd52a2f3ea0213aebed9ae5 (patch) | |
tree | 9e3e0f07de5556fe2cff827c253213514c89a3e4 /vcl | |
parent | 1299ca78262c0c2eac1ceeb518af6f7bd0f9b8dd (diff) |
tdf#139429 Convert Style previews widget to IconView
- this adds labels to easily identify the styles
- easier to work with many styles
- nice native widget in gtk3
- double click opens the style settings
- added Command callback fro iconview
Change-Id: I08743515cbd2a4e4bd592d1509e48bbe2a43b129
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/110408
Tested-by: Jenkins
Reviewed-by: Szymon Kłos <szymon.klos@collabora.com>
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/111660
Reviewed-by: Jan Holesovsky <kendy@collabora.com>
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Diffstat (limited to 'vcl')
-rw-r--r-- | vcl/source/app/salvtables.cxx | 6 | ||||
-rw-r--r-- | vcl/unx/gtk3/gtk3gtkinst.cxx | 13 |
2 files changed, 19 insertions, 0 deletions
diff --git a/vcl/source/app/salvtables.cxx b/vcl/source/app/salvtables.cxx index 4450ca3d1ee2..32deb0c9a310 100644 --- a/vcl/source/app/salvtables.cxx +++ b/vcl/source/app/salvtables.cxx @@ -4745,6 +4745,7 @@ SalInstanceIconView::SalInstanceIconView(::IconView* pIconView, SalInstanceBuild m_xIconView->SetSelectHdl(LINK(this, SalInstanceIconView, SelectHdl)); m_xIconView->SetDeselectHdl(LINK(this, SalInstanceIconView, DeSelectHdl)); m_xIconView->SetDoubleClickHdl(LINK(this, SalInstanceIconView, DoubleClickHdl)); + m_xIconView->SetPopupMenuHdl(LINK(this, SalInstanceIconView, CommandHdl)); } void SalInstanceIconView::freeze() @@ -5001,6 +5002,11 @@ IMPL_LINK_NOARG(SalInstanceIconView, DoubleClickHdl, SvTreeListBox*, bool) return !signal_item_activated(); } +IMPL_LINK(SalInstanceIconView, CommandHdl, const CommandEvent&, rEvent, bool) +{ + return m_aCommandHdl.Call(rEvent); +} + double SalInstanceSpinButton::toField(int nValue) const { return static_cast<double>(nValue) / Power10(get_digits()); diff --git a/vcl/unx/gtk3/gtk3gtkinst.cxx b/vcl/unx/gtk3/gtk3gtkinst.cxx index 25c54899d9eb..84163b05ac64 100644 --- a/vcl/unx/gtk3/gtk3gtkinst.cxx +++ b/vcl/unx/gtk3/gtk3gtkinst.cxx @@ -10539,10 +10539,21 @@ private: gint m_nIdCol; gulong m_nSelectionChangedSignalId; gulong m_nItemActivatedSignalId; + gulong m_nPopupMenu; ImplSVEvent* m_pSelectionChangeEvent; DECL_LINK(async_signal_selection_changed, void*, void); + bool signal_command(const CommandEvent& rCEvt) + { + return m_aCommandHdl.Call(rCEvt); + } + + virtual bool signal_popup_menu(const CommandEvent& rCEvt) override + { + return signal_command(rCEvt); + } + void launch_signal_selection_changed() { //tdf#117991 selection change is sent before the focus change, and focus change @@ -10647,6 +10658,7 @@ public: , m_nSelectionChangedSignalId(g_signal_connect(pIconView, "selection-changed", G_CALLBACK(signalSelectionChanged), this)) , m_nItemActivatedSignalId(g_signal_connect(pIconView, "item-activated", G_CALLBACK(signalItemActivated), this)) + , m_nPopupMenu(g_signal_connect(pIconView, "popup-menu", G_CALLBACK(signalPopupMenu), this)) , m_pSelectionChangeEvent(nullptr) { m_nIdCol = m_nTextCol + 1; @@ -10913,6 +10925,7 @@ public: g_signal_handler_disconnect(m_pIconView, m_nItemActivatedSignalId); g_signal_handler_disconnect(m_pIconView, m_nSelectionChangedSignalId); + g_signal_handler_disconnect(m_pIconView, m_nPopupMenu); } }; |