summaryrefslogtreecommitdiff
path: root/vcl
diff options
context:
space:
mode:
authorSzymon Kłos <szymon.klos@collabora.com>2021-02-02 16:12:55 +0100
committerSzymon Kłos <szymon.klos@collabora.com>2021-03-04 11:03:53 +0100
commit168b3ccdbd085af43cd52a2f3ea0213aebed9ae5 (patch)
tree9e3e0f07de5556fe2cff827c253213514c89a3e4 /vcl
parent1299ca78262c0c2eac1ceeb518af6f7bd0f9b8dd (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.cxx6
-rw-r--r--vcl/unx/gtk3/gtk3gtkinst.cxx13
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);
}
};