diff options
author | Caolán McNamara <caolanm@redhat.com> | 2019-02-26 14:51:34 +0000 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2019-02-27 22:19:31 +0100 |
commit | 4c3e0b2400c6b101a89f21e2268d5b696770fb9c (patch) | |
tree | 8c81a01051da8d5894bb73a4b0e5f4b487dcd411 /vcl | |
parent | 627b46de426a9a44ee3297136b98c503b915ca37 (diff) |
weld UpdateDialog
Change-Id: Ieca75774925a8766162481713f6e8a6ba0e9feb0
Reviewed-on: https://gerrit.libreoffice.org/68396
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
Diffstat (limited to 'vcl')
-rw-r--r-- | vcl/source/app/salvtables.cxx | 30 | ||||
-rw-r--r-- | vcl/unx/gtk3/gtk3gtkinst.cxx | 32 |
2 files changed, 62 insertions, 0 deletions
diff --git a/vcl/source/app/salvtables.cxx b/vcl/source/app/salvtables.cxx index ce61bf6c69e5..325d320704fe 100644 --- a/vcl/source/app/salvtables.cxx +++ b/vcl/source/app/salvtables.cxx @@ -53,6 +53,7 @@ #include <vcl/svtabbx.hxx> #include <vcl/tabctrl.hxx> #include <vcl/tabpage.hxx> +#include <vcl/throbber.hxx> #include <vcl/treelistentry.hxx> #include <vcl/toolkit/unowrap.hxx> #include <vcl/weld.hxx> @@ -1867,6 +1868,29 @@ IMPL_LINK_NOARG(SalInstanceScale, SlideHdl, Slider*, void) signal_value_changed(); } +class SalInstanceSpinner : public SalInstanceWidget, public virtual weld::Spinner +{ +private: + VclPtr<Throbber> m_xThrobber; + +public: + SalInstanceSpinner(Throbber* pThrobber, SalInstanceBuilder* pBuilder, bool bTakeOwnership) + : SalInstanceWidget(pThrobber, pBuilder, bTakeOwnership) + , m_xThrobber(pThrobber) + { + } + + virtual void start() override + { + m_xThrobber->start(); + } + + virtual void stop() override + { + m_xThrobber->stop(); + } +}; + class SalInstanceProgressBar : public SalInstanceWidget, public virtual weld::ProgressBar { private: @@ -4209,6 +4233,12 @@ public: return pProgress ? std::make_unique<SalInstanceProgressBar>(pProgress, this, bTakeOwnership) : nullptr; } + virtual std::unique_ptr<weld::Spinner> weld_spinner(const OString &id, bool bTakeOwnership) override + { + Throbber* pThrobber = m_xBuilder->get<Throbber>(id); + return pThrobber ? std::make_unique<SalInstanceSpinner>(pThrobber, this, bTakeOwnership) : nullptr; + } + virtual std::unique_ptr<weld::Image> weld_image(const OString &id, bool bTakeOwnership) override { FixedImage* pImage = m_xBuilder->get<FixedImage>(id); diff --git a/vcl/unx/gtk3/gtk3gtkinst.cxx b/vcl/unx/gtk3/gtk3gtkinst.cxx index d33c59ba316e..8d9ac7f0e434 100644 --- a/vcl/unx/gtk3/gtk3gtkinst.cxx +++ b/vcl/unx/gtk3/gtk3gtkinst.cxx @@ -4818,6 +4818,29 @@ public: } }; +class GtkInstanceSpinner : public GtkInstanceWidget, public virtual weld::Spinner +{ +private: + GtkSpinner* m_pSpinner; + +public: + GtkInstanceSpinner(GtkSpinner* pSpinner, GtkInstanceBuilder* pBuilder, bool bTakeOwnership) + : GtkInstanceWidget(GTK_WIDGET(pSpinner), pBuilder, bTakeOwnership) + , m_pSpinner(pSpinner) + { + } + + virtual void start() override + { + gtk_spinner_start(m_pSpinner); + } + + virtual void stop() override + { + gtk_spinner_stop(m_pSpinner); + } +}; + class GtkInstanceImage : public GtkInstanceWidget, public virtual weld::Image { private: @@ -8613,6 +8636,15 @@ public: return std::make_unique<GtkInstanceProgressBar>(pProgressBar, this, bTakeOwnership); } + virtual std::unique_ptr<weld::Spinner> weld_spinner(const OString &id, bool bTakeOwnership) override + { + GtkSpinner* pSpinner = GTK_SPINNER(gtk_builder_get_object(m_pBuilder, id.getStr())); + if (!pSpinner) + return nullptr; + auto_add_parentless_widgets_to_container(GTK_WIDGET(pSpinner)); + return std::make_unique<GtkInstanceSpinner>(pSpinner, this, bTakeOwnership); + } + virtual std::unique_ptr<weld::Image> weld_image(const OString &id, bool bTakeOwnership) override { GtkImage* pImage = GTK_IMAGE(gtk_builder_get_object(m_pBuilder, id.getStr())); |