summaryrefslogtreecommitdiff
path: root/include/vcl
diff options
context:
space:
mode:
authorMarkus Mohrhard <markus.mohrhard@googlemail.com>2016-01-07 01:28:44 +0100
committerMarkus Mohrhard <markus.mohrhard@googlemail.com>2016-06-18 17:01:20 +0200
commit40f9be70ef94a0aee64c2c849603b416c1bc17d9 (patch)
treea40212ad9daecce69f27d58d0fcf28c7a031abc2 /include/vcl
parentdde9b4d86f75159f0d591f22aa10a7d4571aa441 (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.h6
-rw-r--r--include/vcl/uitest/uiobject.hxx73
-rw-r--r--include/vcl/uitest/uitest.hxx17
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: */