diff options
author | Markus Mohrhard <markus.mohrhard@googlemail.com> | 2016-01-07 01:28:44 +0100 |
---|---|---|
committer | Markus Mohrhard <markus.mohrhard@googlemail.com> | 2016-06-18 17:01:20 +0200 |
commit | 40f9be70ef94a0aee64c2c849603b416c1bc17d9 (patch) | |
tree | a40212ad9daecce69f27d58d0fcf28c7a031abc2 /include/vcl | |
parent | dde9b4d86f75159f0d591f22aa10a7d4571aa441 (diff) |
uitest: move the uitest files to vcl
This allows us to use them in vcl as well without introducing dependency
problems.
Change-Id: Ib97af2d559902f1a6b47f9255bb0426411670647
Diffstat (limited to 'include/vcl')
-rw-r--r-- | include/vcl/dllapi.h | 6 | ||||
-rw-r--r-- | include/vcl/uitest/uiobject.hxx | 73 | ||||
-rw-r--r-- | include/vcl/uitest/uitest.hxx | 17 |
3 files changed, 96 insertions, 0 deletions
diff --git a/include/vcl/dllapi.h b/include/vcl/dllapi.h index bc9a522db620..0187fa04d115 100644 --- a/include/vcl/dllapi.h +++ b/include/vcl/dllapi.h @@ -29,6 +29,12 @@ #define VCL_DLLPUBLIC SAL_DLLPUBLIC_IMPORT #endif +#if defined DLLIMPLEMENTATION_UITEST +#define UITEST_DLLPUBLIC SAL_DLLPUBLIC_EXPORT +#else +#define UITEST_DLLPUBLIC SAL_DLLPUBLIC_IMPORT +#endif + #if defined UNX && ! defined MACOS #define VCL_PLUGIN_PUBLIC VCL_DLLPUBLIC #else diff --git a/include/vcl/uitest/uiobject.hxx b/include/vcl/uitest/uiobject.hxx new file mode 100644 index 000000000000..a7c8b813a108 --- /dev/null +++ b/include/vcl/uitest/uiobject.hxx @@ -0,0 +1,73 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + +#include <rtl/ustring.hxx> +#include <map> +#include <memory> + +#include <vcl/window.hxx> +#include <vcl/dllapi.h> + +enum class UIObjectType +{ + WINDOW, + DIALOG, + UNKNOWN +}; + +typedef std::map<const OUString, OUString> StringMap; + +/** + * This class wraps a UI object like vcl::Window and provides + * an interface for the UI testing. + * + * This class should only have virtual methods. + */ +class UITEST_DLLPUBLIC UIObject +{ +public: + + virtual ~UIObject(); + + /** + * returns the state of the wrapped UI object + */ + virtual StringMap get_state(); + + /** + * executes an action on the wrapped UI object, + * possibly with some additional parameters + */ + virtual void execute(const OUString& rAction, + const StringMap& rParameters); + + virtual UIObjectType getType() const; + + virtual std::unique_ptr<UIObject> get_child(const OUString& rID); +}; + +class WindowUIObject : public UIObject +{ + VclPtr<vcl::Window> mxWindow; + +public: + + WindowUIObject(VclPtr<vcl::Window> xWindow); + + virtual StringMap get_state() override; + + virtual void execute(const OUString& rAction, + const StringMap& rParameters) override; + + virtual UIObjectType getType() const override; + + virtual std::unique_ptr<UIObject> get_child(const OUString& rID); +}; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/include/vcl/uitest/uitest.hxx b/include/vcl/uitest/uitest.hxx new file mode 100644 index 000000000000..3262aa953d63 --- /dev/null +++ b/include/vcl/uitest/uitest.hxx @@ -0,0 +1,17 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + +#include <vcl/dllapi.h> + +class UITEST_DLLPUBLIC UITest +{ +public: +}; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |