summaryrefslogtreecommitdiff
path: root/vcl/source
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2019-02-10 14:59:03 +0000
committerCaolán McNamara <caolanm@redhat.com>2019-02-11 16:34:44 +0100
commit4bb482cc2e65a10fd4f38cddfab405169cf192e4 (patch)
treecb4859d2ece07f9163f7b79f39fdb3f613c9eee0 /vcl/source
parentcac7541e1b2a1bbd0fca08853fd8323bb0078247 (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.cxx73
-rw-r--r--vcl/source/treelist/svtabbx.cxx2
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();