uitest: add support for TabControl
Change-Id: I4cdffe62cdabaf110eaaeb0d31a45c44833d354a
diff --git a/include/vcl/tabctrl.hxx b/include/vcl/tabctrl.hxx
index 2d60b40..7597662 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 0baddeb..011a2d4 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 70869bc..903d3bb 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 27c7af5..4d33f9c 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: */