diff options
-rw-r--r-- | include/vcl/tabctrl.hxx | 2 | ||||
-rw-r--r-- | include/vcl/uitest/uiobject.hxx | 23 | ||||
-rw-r--r-- | vcl/source/control/tabctrl.cxx | 6 | ||||
-rw-r--r-- | vcl/source/uitest/uiobject.cxx | 48 |
4 files changed, 79 insertions, 0 deletions
diff --git a/include/vcl/tabctrl.hxx b/include/vcl/tabctrl.hxx index 2d60b40f2608..75976628c3ce 100644 --- a/include/vcl/tabctrl.hxx +++ b/include/vcl/tabctrl.hxx @@ -191,6 +191,8 @@ public: std::vector<sal_uInt16> GetPageIDs() const; + virtual FactoryFunction GetUITestFactory() const override; + virtual void queue_resize(StateChangedType eReason = StateChangedType::Layout) override; }; diff --git a/include/vcl/uitest/uiobject.hxx b/include/vcl/uitest/uiobject.hxx index 0baddeb178af..011a2d4fd7cd 100644 --- a/include/vcl/uitest/uiobject.hxx +++ b/include/vcl/uitest/uiobject.hxx @@ -19,6 +19,7 @@ #include <vcl/lstbox.hxx> #include <vcl/combobox.hxx> #include <vcl/spinfld.hxx> +#include <vcl/tabctrl.hxx> #include <vcl/dllapi.h> @@ -328,4 +329,26 @@ protected: virtual OUString get_name() const override; }; +class UITEST_DLLPUBLIC TabControlUIObject : public WindowUIObject +{ +private: + VclPtr<TabControl> mxTabControl; + +public: + + TabControlUIObject(VclPtr<TabControl> mxTabControl); + virtual ~TabControlUIObject(); + + virtual void execute(const OUString& rAction, + const StringMap& rParameters) override; + + virtual StringMap get_state() override; + + static std::unique_ptr<UIObject> create(vcl::Window* pWindow); + +protected: + + virtual OUString get_name() const override; +}; + /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/source/control/tabctrl.cxx b/vcl/source/control/tabctrl.cxx index 70869bce7c57..903d3bb818f5 100644 --- a/vcl/source/control/tabctrl.cxx +++ b/vcl/source/control/tabctrl.cxx @@ -31,6 +31,7 @@ #include <vcl/layout.hxx> #include <vcl/lstbox.hxx> #include <vcl/settings.hxx> +#include <vcl/uitest/uiobject.hxx> #include "controldata.hxx" #include "svdata.hxx" @@ -2193,4 +2194,9 @@ std::vector<sal_uInt16> TabControl::GetPageIDs() const return aIDs; } +FactoryFunction TabControl::GetUITestFactory() const +{ + return TabControlUIObject::create; +} + /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/source/uitest/uiobject.cxx b/vcl/source/uitest/uiobject.cxx index 27c7af59711a..4d33f9c08059 100644 --- a/vcl/source/uitest/uiobject.cxx +++ b/vcl/source/uitest/uiobject.cxx @@ -871,4 +871,52 @@ std::unique_ptr<UIObject> SpinFieldUIObject::create(vcl::Window* pWindow) return std::unique_ptr<UIObject>(new SpinFieldUIObject(pSpinField)); } +TabControlUIObject::TabControlUIObject(VclPtr<TabControl> xTabControl): + WindowUIObject(xTabControl), + mxTabControl(xTabControl) +{ +} + +TabControlUIObject::~TabControlUIObject() +{ +} + +void TabControlUIObject::execute(const OUString& rAction, + const StringMap& rParameters) +{ + if (rAction == "SELECT") + { + if (rParameters.find("POS") != rParameters.end()) + { + auto itr = rParameters.find("POS"); + sal_uInt32 nPos = itr->second.toUInt32(); + std::vector<sal_uInt16> aIds = mxTabControl->GetPageIDs(); + mxTabControl->SelectTabPage(aIds[nPos]); + } + } + else + WindowUIObject::execute(rAction, rParameters); +} + +StringMap TabControlUIObject::get_state() +{ + StringMap aMap = WindowUIObject::get_state(); + + return aMap; +} + +OUString TabControlUIObject::get_name() const +{ + return OUString("TabControlUIObject"); +} + +std::unique_ptr<UIObject> TabControlUIObject::create(vcl::Window* pWindow) +{ + TabControl* pTabControl = dynamic_cast<TabControl*>(pWindow); + assert(pTabControl); + return std::unique_ptr<UIObject>(new TabControlUIObject(pTabControl)); +} + + + /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |