include/vcl/weld.hxx | 1 + vcl/source/app/salvtables.cxx | 15 +++++++++++++++ vcl/unx/gtk3/gtk3gtkinst.cxx | 28 ++++++++++++++++++++++++++++ 3 files changed, 44 insertions(+)
New commits: commit 8a84493d1fe92faefecbd3352f911632cbb0e324 Author: Caolán McNamara <caol...@redhat.com> AuthorDate: Tue Apr 7 20:52:50 2020 +0100 Commit: Caolán McNamara <caol...@redhat.com> CommitDate: Wed Apr 8 09:46:41 2020 +0200 add get_entry_font to match set_entry_font Change-Id: I5996c2cb9470de251d9bc8638c9ab7917e533f7b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/91853 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caol...@redhat.com> diff --git a/include/vcl/weld.hxx b/include/vcl/weld.hxx index 7dbe6643491e..18eeb67f38a1 100644 --- a/include/vcl/weld.hxx +++ b/include/vcl/weld.hxx @@ -679,6 +679,7 @@ public: // font size is in points, not pixels, e.g. see Window::[G]etPointFont virtual void set_entry_font(const vcl::Font& rFont) = 0; + virtual vcl::Font get_entry_font() = 0; virtual bool get_popup_shown() const = 0; diff --git a/vcl/source/app/salvtables.cxx b/vcl/source/app/salvtables.cxx index febffea547fc..13f596d5bc36 100644 --- a/vcl/source/app/salvtables.cxx +++ b/vcl/source/app/salvtables.cxx @@ -5948,6 +5948,8 @@ public: virtual void set_entry_font(const vcl::Font&) override { assert(false); } + virtual vcl::Font get_entry_font() override { assert(false); return vcl::Font(); } + virtual ~SalInstanceComboBoxWithoutEdit() override { m_xComboBox->SetSelectHdl(Link<ListBox&, void>()); @@ -6071,6 +6073,13 @@ public: pEdit->Invalidate(); } + virtual vcl::Font get_entry_font() override + { + Edit* pEdit = m_xComboBox->GetSubEdit(); + assert(pEdit); + return pEdit->GetPointFont(*pEdit); + } + virtual ~SalInstanceComboBoxWithEdit() override { m_xComboBox->SetTextFilter(nullptr); @@ -6149,6 +6158,12 @@ public: rEntry.Invalidate(); } + virtual vcl::Font get_entry_font() override + { + Edit& rEntry = m_pEntry->getEntry(); + return rEntry.GetPointFont(rEntry); + } + virtual void set_entry_placeholder_text(const OUString& rText) override { Edit& rEntry = m_pEntry->getEntry(); diff --git a/vcl/unx/gtk3/gtk3gtkinst.cxx b/vcl/unx/gtk3/gtk3gtkinst.cxx index 29d1ad3b0b9f..69904fe34b17 100644 --- a/vcl/unx/gtk3/gtk3gtkinst.cxx +++ b/vcl/unx/gtk3/gtk3gtkinst.cxx @@ -8444,6 +8444,7 @@ class GtkInstanceEntry : public GtkInstanceWidget, public virtual weld::Entry { private: GtkEntry* m_pEntry; + std::unique_ptr<vcl::Font> m_xFont; gulong m_nChangedSignalId; gulong m_nInsertTextSignalId; gulong m_nCursorPosSignalId; @@ -8621,11 +8622,19 @@ public: virtual void set_font(const vcl::Font& rFont) override { + m_xFont.reset(new vcl::Font(rFont)); PangoAttrList* pAttrList = create_attr_list(rFont); gtk_entry_set_attributes(m_pEntry, pAttrList); pango_attr_list_unref(pAttrList); } + virtual vcl::Font get_font() override + { + if (m_xFont) + return *m_xFont; + return GtkInstanceWidget::get_font(); + } + void fire_signal_changed() { signal_changed(); @@ -12577,6 +12586,7 @@ private: GtkCellRenderer* m_pTextRenderer; GtkMenu* m_pMenu; GtkWidget* m_pToggleButton; + std::unique_ptr<vcl::Font> m_xFont; std::unique_ptr<comphelper::string::NaturalStringSorter> m_xSorter; vcl::QuickSelectionEngine m_aQuickSelectionEngine; std::vector<int> m_aSeparatorRows; @@ -13405,6 +13415,7 @@ public: virtual void set_entry_font(const vcl::Font& rFont) override { + m_xFont.reset(new vcl::Font(rFont)); PangoAttrList* pAttrList = create_attr_list(rFont); GtkWidget* pChild = gtk_bin_get_child(GTK_BIN(m_pComboBox)); assert(pChild && GTK_IS_ENTRY(pChild)); @@ -13413,6 +13424,18 @@ public: pango_attr_list_unref(pAttrList); } + virtual vcl::Font get_entry_font() override + { + if (m_xFont) + return *m_xFont; + GtkWidget* pChild = gtk_bin_get_child(GTK_BIN(m_pComboBox)); + assert(pChild && GTK_IS_ENTRY(pChild)); + GtkEntry* pEntry = GTK_ENTRY(pChild); + PangoContext* pContext = gtk_widget_get_pango_context(GTK_WIDGET(pEntry)); + return pango_to_vcl(pango_context_get_font_description(pContext), + Application::GetSettings().GetUILanguageTag().getLocale()); + } + virtual void disable_notify_events() override { if (GtkEntry* pEntry = get_entry()) @@ -13716,6 +13739,11 @@ public: m_xEntry->set_font(rFont); } + virtual vcl::Font get_entry_font() override + { + return m_xEntry->get_font(); + } + virtual void grab_focus() override { m_xEntry->grab_focus(); } virtual void connect_focus_in(const Link<Widget&, void>& rLink) override _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits