[Libreoffice-commits] core.git: desktop/source include/vcl vcl/inc vcl/source vcl/unx
Caolán McNamara (via logerrit)
logerrit at kemper.freedesktop.org
Mon Jul 6 18:30:44 UTC 2020
desktop/source/lib/init.cxx | 34 +++++++++++++++++++++++++++++-----
include/vcl/weld.hxx | 22 ++++++++++++++++------
vcl/inc/jsdialog/jsdialogbuilder.hxx | 2 +-
vcl/inc/salvtables.hxx | 2 +-
vcl/source/app/salvtables.cxx | 4 ++--
vcl/unx/gtk3/gtk3gtkinst.cxx | 6 ++++--
6 files changed, 53 insertions(+), 17 deletions(-)
New commits:
commit c1325c99f449909282ec7b592be10b62bbce2889
Author: Caolán McNamara <caolanm at redhat.com>
AuthorDate: Mon Jul 6 14:46:11 2020 +0100
Commit: Caolán McNamara <caolanm at redhat.com>
CommitDate: Mon Jul 6 20:29:55 2020 +0200
limit exposure of methods exposed for LibreOfficeKit purposes to just that
Change-Id: I4685651a6ecf48b7cbf3048b28788b351c655c3c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/98212
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm at redhat.com>
diff --git a/desktop/source/lib/init.cxx b/desktop/source/lib/init.cxx
index bdfcc69b5764..900e50f75c40 100644
--- a/desktop/source/lib/init.cxx
+++ b/desktop/source/lib/init.cxx
@@ -187,6 +187,30 @@ static void SetLastExceptionMsg(const OUString& s = OUString())
gImpl->maLastExceptionMsg = s;
}
+class LOKTrigger
+{
+public:
+ static void trigger_changed(weld::Entry& rEdit)
+ {
+ rEdit.signal_changed();
+ }
+
+ static void trigger_changed(weld::ComboBox& rComboBox)
+ {
+ rComboBox.signal_changed();
+ }
+
+ static void trigger_clicked(weld::Toolbar& rToolbar, const OString& rIdent)
+ {
+ rToolbar.signal_clicked(rIdent);
+ }
+
+ static void trigger_click(weld::DrawingArea& rDrawingArea, const Point& rPos)
+ {
+ rDrawingArea.click(rPos);
+ }
+};
+
namespace {
struct ExtensionMap
@@ -3669,13 +3693,13 @@ static void doc_sendDialogEvent(LibreOfficeKitDocument* /*pThis*/, unsigned long
OString posString = OUStringToOString(entryPos, RTL_TEXTENCODING_ASCII_US);
int pos = std::atoi(posString.getStr());
pCombobox->set_active(pos);
- pCombobox->signal_changed();
+ LOKTrigger::trigger_changed(*pCombobox);
}
}
else if (sAction == "change")
{
pCombobox->set_entry_text(aMap["data"]);
- pCombobox->signal_changed();
+ LOKTrigger::trigger_changed(*pCombobox);
}
else
bContinueWithLOKWindow = true;
@@ -3701,7 +3725,7 @@ static void doc_sendDialogEvent(LibreOfficeKitDocument* /*pThis*/, unsigned long
{
if (sAction == "click")
{
- pArea->click(Point(10, 10));
+ LOKTrigger::trigger_click(*pArea, Point(10, 10));
}
else
bContinueWithLOKWindow = true;
@@ -3731,7 +3755,7 @@ static void doc_sendDialogEvent(LibreOfficeKitDocument* /*pThis*/, unsigned long
{
if (sAction == "click")
{
- pToolbar->signal_clicked(OUStringToOString(aMap["data"], RTL_TEXTENCODING_ASCII_US));
+ LOKTrigger::trigger_clicked(*pToolbar, OUStringToOString(aMap["data"], RTL_TEXTENCODING_ASCII_US));
}
else
bContinueWithLOKWindow = true;
@@ -3745,7 +3769,7 @@ static void doc_sendDialogEvent(LibreOfficeKitDocument* /*pThis*/, unsigned long
if (sAction == "change")
{
pEdit->set_text(aMap["data"]);
- pEdit->signal_changed();
+ LOKTrigger::trigger_changed(*pEdit);
}
else
bContinueWithLOKWindow = true;
diff --git a/include/vcl/weld.hxx b/include/vcl/weld.hxx
index d73b24936734..c4577d63c49d 100644
--- a/include/vcl/weld.hxx
+++ b/include/vcl/weld.hxx
@@ -80,6 +80,8 @@ namespace tools
class JsonWriter;
}
+class LOKTrigger;
+
namespace weld
{
class Container;
@@ -616,6 +618,10 @@ protected:
Link<ComboBox&, bool> m_aEntryActivateHdl;
Link<OUString&, bool> m_aEntryInsertTextHdl;
+ friend class ::LOKTrigger;
+
+ void signal_changed() { m_aChangeHdl.Call(*this); }
+
virtual void signal_popup_toggled() { m_aPopupToggledHdl.Call(*this); }
Link<render_args, void> m_aRenderHdl;
@@ -629,8 +635,6 @@ protected:
Size signal_custom_get_size(vcl::RenderContext& rDevice) { return m_aGetSizeHdl.Call(rDevice); }
public:
- void signal_changed() { m_aChangeHdl.Call(*this); }
-
virtual void insert(int pos, const OUString& rStr, const OUString* pId,
const OUString* pIconName, VirtualDevice* pImageSurface)
= 0;
@@ -1470,12 +1474,13 @@ protected:
Link<Entry&, void> m_aCursorPositionHdl;
Link<Entry&, bool> m_aActivateHdl;
+ friend class ::LOKTrigger;
+
+ void signal_changed() { m_aChangeHdl.Call(*this); }
void signal_cursor_position() { m_aCursorPositionHdl.Call(*this); }
void signal_insert_text(OUString& rString);
public:
- void signal_changed() { m_aChangeHdl.Call(*this); }
-
virtual void set_text(const OUString& rText) = 0;
virtual OUString get_text() const = 0;
virtual void set_width_chars(int nChars) = 0;
@@ -2110,7 +2115,10 @@ public:
virtual a11yrelationset get_accessible_relation_set() = 0;
virtual Point get_accessible_location() = 0;
- virtual void click(Point pos) = 0;
+private:
+ friend class ::LOKTrigger;
+
+ virtual void click(const Point& rPos) = 0;
};
class VCL_DLLPUBLIC Menu
@@ -2177,6 +2185,9 @@ protected:
Link<const OString&, void> m_aClickHdl;
Link<const OString&, void> m_aToggleMenuHdl;
+ friend class ::LOKTrigger;
+
+ virtual void signal_clicked(const OString& rIdent) { m_aClickHdl.Call(rIdent); }
void signal_toggle_menu(const OString& rIdent) { m_aToggleMenuHdl.Call(rIdent); }
public:
@@ -2225,7 +2236,6 @@ public:
void connect_clicked(const Link<const OString&, void>& rLink) { m_aClickHdl = rLink; }
void connect_menu_toggled(const Link<const OString&, void>& rLink) { m_aToggleMenuHdl = rLink; }
- virtual void signal_clicked(const OString& rIdent) { m_aClickHdl.Call(rIdent); }
};
class VCL_DLLPUBLIC SizeGroup
diff --git a/vcl/inc/jsdialog/jsdialogbuilder.hxx b/vcl/inc/jsdialog/jsdialogbuilder.hxx
index 3842d950d029..f36b7ae3fa54 100644
--- a/vcl/inc/jsdialog/jsdialogbuilder.hxx
+++ b/vcl/inc/jsdialog/jsdialogbuilder.hxx
@@ -235,7 +235,7 @@ public:
JSToolbar(VclPtr<vcl::Window> aOwnedToplevel, ::ToolBox* pToolbox, SalInstanceBuilder* pBuilder,
bool bTakeOwnership);
- void signal_clicked(const OString& rIdent) override;
+ virtual void signal_clicked(const OString& rIdent) override;
};
/* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */
diff --git a/vcl/inc/salvtables.hxx b/vcl/inc/salvtables.hxx
index 3ee8f111bdff..377653c291ec 100644
--- a/vcl/inc/salvtables.hxx
+++ b/vcl/inc/salvtables.hxx
@@ -1168,7 +1168,7 @@ public:
virtual OutputDevice& get_ref_device() override;
- virtual void click(Point pos) override;
+ virtual void click(const Point& rPos) override;
};
class SalInstanceToolbar : public SalInstanceWidget, public virtual weld::Toolbar
diff --git a/vcl/source/app/salvtables.cxx b/vcl/source/app/salvtables.cxx
index d7d7d315f731..f3778f91340c 100644
--- a/vcl/source/app/salvtables.cxx
+++ b/vcl/source/app/salvtables.cxx
@@ -5747,9 +5747,9 @@ SalInstanceDrawingArea::~SalInstanceDrawingArea()
OutputDevice& SalInstanceDrawingArea::get_ref_device() { return *m_xDrawingArea; }
-void SalInstanceDrawingArea::click(Point pos)
+void SalInstanceDrawingArea::click(const Point& rPos)
{
- MouseEvent aEvent(pos);
+ MouseEvent aEvent(rPos);
m_xDrawingArea->MouseButtonDown(aEvent);
m_xDrawingArea->MouseButtonUp(aEvent);
}
diff --git a/vcl/unx/gtk3/gtk3gtkinst.cxx b/vcl/unx/gtk3/gtk3gtkinst.cxx
index bf81847a3a80..7ff4005af8b3 100644
--- a/vcl/unx/gtk3/gtk3gtkinst.cxx
+++ b/vcl/unx/gtk3/gtk3gtkinst.cxx
@@ -12898,9 +12898,11 @@ public:
return *m_xDevice;
}
- void click(Point /*pos*/) override
+ virtual void click(const Point& rPos) override
{
- //TODO
+ MouseEvent aEvent(rPos);
+ m_aMousePressHdl.Call(aEvent);
+ m_aMouseReleaseHdl.Call(aEvent);
}
};
More information about the Libreoffice-commits
mailing list