From 96d0cf0d7bccfea0b9d867cf00a17c7a2409aa87 Mon Sep 17 00:00:00 2001 From: Caolán McNamara Date: Sun, 10 Mar 2019 14:13:07 +0000 Subject: weld SfxDocumentPage MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Change-Id: I99f342ad1c0620147ce23b4670323056d7ccc508 Reviewed-on: https://gerrit.libreoffice.org/69008 Tested-by: Jenkins Reviewed-by: Caolán McNamara Tested-by: Caolán McNamara --- vcl/source/app/salvtables.cxx | 13 +++++++++---- vcl/unx/gtk3/gtk3gtkinst.cxx | 1 + 2 files changed, 10 insertions(+), 4 deletions(-) (limited to 'vcl') diff --git a/vcl/source/app/salvtables.cxx b/vcl/source/app/salvtables.cxx index e732939aed78..392ecb04ba81 100644 --- a/vcl/source/app/salvtables.cxx +++ b/vcl/source/app/salvtables.cxx @@ -3302,9 +3302,12 @@ public: class SalInstanceLabel : public SalInstanceWidget, public virtual weld::Label { private: - VclPtr m_xLabel; + // Control instead of FixedText so we can also use this for + // SelectableFixedText which is derived from Edit. We just typically need + // [G|S]etText which exists in their shared basesclass + VclPtr m_xLabel; public: - SalInstanceLabel(FixedText* pLabel, SalInstanceBuilder *pBuilder, bool bTakeOwnership) + SalInstanceLabel(Control* pLabel, SalInstanceBuilder *pBuilder, bool bTakeOwnership) : SalInstanceWidget(pLabel, pBuilder, bTakeOwnership) , m_xLabel(pLabel) { @@ -3322,8 +3325,10 @@ public: virtual void set_mnemonic_widget(Widget* pTarget) override { + FixedText* pLabel = dynamic_cast(m_xLabel.get()); + assert(pLabel && "can't use set_mnemonic_widget on SelectableFixedText"); SalInstanceWidget* pTargetWidget = dynamic_cast(pTarget); - m_xLabel->set_mnemonic_widget(pTargetWidget ? pTargetWidget->getWidget() : nullptr); + pLabel->set_mnemonic_widget(pTargetWidget ? pTargetWidget->getWidget() : nullptr); } }; @@ -4356,7 +4361,7 @@ public: virtual std::unique_ptr weld_label(const OString &id, bool bTakeOwnership) override { - FixedText* pLabel = m_xBuilder->get(id); + Control* pLabel = m_xBuilder->get(id); return pLabel ? std::make_unique(pLabel, this, bTakeOwnership) : nullptr; } diff --git a/vcl/unx/gtk3/gtk3gtkinst.cxx b/vcl/unx/gtk3/gtk3gtkinst.cxx index 104a3181ec02..f64cc790e115 100644 --- a/vcl/unx/gtk3/gtk3gtkinst.cxx +++ b/vcl/unx/gtk3/gtk3gtkinst.cxx @@ -6823,6 +6823,7 @@ public: virtual void set_mnemonic_widget(Widget* pTarget) override { + assert(!gtk_label_get_selectable(m_pLabel) && "don't use set_mnemonic_widget on selectable labels, for consistency with gen backend"); GtkInstanceWidget* pTargetWidget = dynamic_cast(pTarget); gtk_label_set_mnemonic_widget(m_pLabel, pTargetWidget ? pTargetWidget->getWidget() : nullptr); } -- cgit