44
55#pragma once
66#include < chrono>
7+ #include < quite/core/bit_flags.hpp>
78#include < quite/keyboard.hpp>
89#include < quite/mouse.hpp>
910#include " quite/quite_test_export.hpp"
11+ #include " quite/test/remote_object.hpp"
12+
1013namespace quite ::test
1114{
12- class RemoteObject ;
13-
14- class MouseDragBuilder
15+ class QUITE_TEST_EXPORT MouseDragBuilder
1516{
1617 MouseDragBuilder move_to (RemoteObject object);
1718 MouseDragBuilder drop_at (RemoteObject object);
19+
20+ private:
21+ RemoteObject source_;
1822};
1923
20- class MouseBuilder
24+ class QUITE_TEST_EXPORT MouseBuilder
2125{
26+ public:
27+ MouseBuilder () = delete ;
28+ MouseBuilder (const MouseBuilder &other) = default ;
29+ MouseBuilder (MouseBuilder &&other) noexcept = default ;
30+ MouseBuilder &operator =(const MouseBuilder &other) = default ;
31+ MouseBuilder &operator =(MouseBuilder &&other) = default ;
32+ ~MouseBuilder () = default ;
33+
2234 MouseBuilder up (MouseButton button);
2335 MouseBuilder down (MouseButton button);
2436 MouseBuilder modifier (KeyboardModifier modifier);
@@ -28,7 +40,15 @@ class MouseBuilder
2840 MouseBuilder double_click (MouseButton button = MouseButton::left,
2941 std::chrono::milliseconds delay = std::chrono::milliseconds{0 });
3042 MouseBuilder wheel (int delta_x, int delta_y);
43+
44+ private:
45+ MouseBuilder (RemoteObject target);
46+ friend MouseBuilder mouse (RemoteObject target);
47+
48+ private:
49+ RemoteObject target_;
50+ BitFlags<KeyboardModifier> modifiers_;
3151};
3252
33- [[nodiscard]] QUITE_TEST_EXPORT MouseBuilder mouse (RemoteObject object );
53+ [[nodiscard]] QUITE_TEST_EXPORT MouseBuilder mouse (RemoteObject target );
3454} // namespace quite::test
0 commit comments