summaryrefslogtreecommitdiff
path: root/vcl
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2019-02-26 14:51:34 +0000
committerCaolán McNamara <caolanm@redhat.com>2019-02-27 22:19:31 +0100
commit4c3e0b2400c6b101a89f21e2268d5b696770fb9c (patch)
tree8c81a01051da8d5894bb73a4b0e5f4b487dcd411 /vcl
parent627b46de426a9a44ee3297136b98c503b915ca37 (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.cxx30
-rw-r--r--vcl/unx/gtk3/gtk3gtkinst.cxx32
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()));