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-02-11 18:50:48 +0100 |
commit | fd9b52502de6044a2249ff81407ac579a35ad3a1 (patch) | |
tree | 131722a0c23bb9eaa55e22eb5cab841429a6012e /vcl | |
parent | b11db88d0174fbad25f7ee04726ae27ceb1488c3 (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>
Diffstat (limited to 'vcl')
-rw-r--r-- | vcl/inc/salvtables.hxx | 1 | ||||
-rw-r--r-- | vcl/source/app/salvtables.cxx | 6 | ||||
-rw-r--r-- | vcl/unx/gtk3/gtk3gtkinst.cxx | 13 |
3 files changed, 20 insertions, 0 deletions
diff --git a/vcl/inc/salvtables.hxx b/vcl/inc/salvtables.hxx index 981293d475d7..a3941ff51e67 100644 --- a/vcl/inc/salvtables.hxx +++ b/vcl/inc/salvtables.hxx @@ -1719,6 +1719,7 @@ private: DECL_LINK(SelectHdl, SvTreeListBox*, void); DECL_LINK(DeSelectHdl, SvTreeListBox*, void); DECL_LINK(DoubleClickHdl, SvTreeListBox*, bool); + DECL_LINK(CommandHdl, const CommandEvent&, bool); public: SalInstanceIconView(::IconView* pIconView, SalInstanceBuilder* pBuilder, bool bTakeOwnership); diff --git a/vcl/source/app/salvtables.cxx b/vcl/source/app/salvtables.cxx index ba13d7d1a180..a098a5acf67c 100644 --- a/vcl/source/app/salvtables.cxx +++ b/vcl/source/app/salvtables.cxx @@ -5104,6 +5104,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() @@ -5366,6 +5367,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 529eb7881ac2..d24edef22ae9 100644 --- a/vcl/unx/gtk3/gtk3gtkinst.cxx +++ b/vcl/unx/gtk3/gtk3gtkinst.cxx @@ -12465,10 +12465,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 @@ -12573,6 +12584,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; @@ -12843,6 +12855,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); } }; |