diff options
author | Caolán McNamara <caolanm@redhat.com> | 2019-02-10 14:59:03 +0000 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2019-02-11 16:34:44 +0100 |
commit | 4bb482cc2e65a10fd4f38cddfab405169cf192e4 (patch) | |
tree | cb4859d2ece07f9163f7b79f39fdb3f613c9eee0 /vcl/source | |
parent | cac7541e1b2a1bbd0fca08853fd8323bb0078247 (diff) |
weld SvBaseLinksDlg
Change-Id: I40afcb99ae0e8fd27387077aea688906f037d6f4
Reviewed-on: https://gerrit.libreoffice.org/67676
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
Diffstat (limited to 'vcl/source')
-rw-r--r-- | vcl/source/app/salvtables.cxx | 73 | ||||
-rw-r--r-- | vcl/source/treelist/svtabbx.cxx | 2 |
2 files changed, 67 insertions, 8 deletions
diff --git a/vcl/source/app/salvtables.cxx b/vcl/source/app/salvtables.cxx index 4f54a0e18e86..230875e737f9 100644 --- a/vcl/source/app/salvtables.cxx +++ b/vcl/source/app/salvtables.cxx @@ -40,6 +40,7 @@ #include <vcl/lstbox.hxx> #include <vcl/dialog.hxx> #include <vcl/fixed.hxx> +#include <vcl/fixedhyper.hxx> #include <vcl/fmtfield.hxx> #include <vcl/headbar.hxx> #include <vcl/layout.hxx> @@ -358,6 +359,11 @@ public: return Size(m_xWidget->GetTextWidth(rText), m_xWidget->GetTextHeight()); } + virtual vcl::Font get_font() override + { + return m_xWidget->GetPointFont(*m_xWidget); + } + virtual OString get_buildable_name() const override { return m_xWidget->get_id().toUtf8(); @@ -1491,6 +1497,51 @@ IMPL_LINK_NOARG(SalInstanceMenuButton, ActivateHdl, ::MenuButton*, void) signal_toggled(); } +class SalInstanceLinkButton : public SalInstanceContainer, public virtual weld::LinkButton +{ +private: + VclPtr<FixedHyperlink> m_xButton; + + DECL_LINK(ClickHdl, FixedHyperlink&, void); +public: + SalInstanceLinkButton(FixedHyperlink* pButton, bool bTakeOwnership) + : SalInstanceContainer(pButton, bTakeOwnership) + , m_xButton(pButton) + { + m_xButton->SetClickHdl(LINK(this, SalInstanceLinkButton, ClickHdl)); + } + + virtual void set_label(const OUString& rText) override + { + m_xButton->SetText(rText); + } + + virtual OUString get_label() const override + { + return m_xButton->GetText(); + } + + virtual void set_uri(const OUString& rUri) override + { + m_xButton->SetURL(rUri); + } + + virtual OUString get_uri() const override + { + return m_xButton->GetURL(); + } + + virtual ~SalInstanceLinkButton() override + { + m_xButton->SetClickHdl(Link<FixedHyperlink&,void>()); + } +}; + +IMPL_LINK_NOARG(SalInstanceLinkButton, ClickHdl, FixedHyperlink&, void) +{ + signal_clicked(); +} + class SalInstanceRadioButton : public SalInstanceButton, public virtual weld::RadioButton { private: @@ -1868,14 +1919,9 @@ public: } } - virtual vcl::Font get_font() override - { - return m_xEntry->GetFont(); - } - virtual void set_font(const vcl::Font& rFont) override { - m_xEntry->SetFont(rFont); + m_xEntry->SetPointFont(*m_xEntry, rFont); m_xEntry->Invalidate(); } @@ -1990,6 +2036,15 @@ public: m_xTreeView->Resize(); } + virtual int get_column_width(int nColumn) const override + { + // GetTab(0) gives the position of the bitmap which is automatically inserted by the TabListBox. + // So the first text column's width is Tab(2)-Tab(1). + auto nWidthPixel = m_xTreeView->GetLogicTab(nColumn + 2) - m_xTreeView->GetLogicTab(nColumn + 1); + nWidthPixel -= SV_TAB_BORDER; + return nWidthPixel; + } + virtual OUString get_column_title(int nColumn) const override { SvHeaderTabListBox* pHeaderBox = dynamic_cast<SvHeaderTabListBox*>(m_xTreeView.get()); @@ -3688,6 +3743,12 @@ public: return pButton ? std::make_unique<SalInstanceMenuButton>(pButton, bTakeOwnership) : nullptr; } + virtual std::unique_ptr<weld::LinkButton> weld_link_button(const OString &id, bool bTakeOwnership) override + { + FixedHyperlink* pButton = m_xBuilder->get<FixedHyperlink>(id); + return pButton ? std::make_unique<SalInstanceLinkButton>(pButton, bTakeOwnership) : nullptr; + } + virtual std::unique_ptr<weld::ToggleButton> weld_toggle_button(const OString &id, bool bTakeOwnership) override { PushButton* pToggleButton = m_xBuilder->get<PushButton>(id); diff --git a/vcl/source/treelist/svtabbx.cxx b/vcl/source/treelist/svtabbx.cxx index 5b026ffbf195..e89ac8ad723a 100644 --- a/vcl/source/treelist/svtabbx.cxx +++ b/vcl/source/treelist/svtabbx.cxx @@ -98,8 +98,6 @@ SvTabListBox::SvTabListBox( vcl::Window* pParent, WinBits nBits ) SetHighlightRange(); // select full width } -VCL_BUILDER_FACTORY_CONSTRUCTOR(SvTabListBox, WB_TABSTOP) - SvTabListBox::~SvTabListBox() { disposeOnce(); |