Update To 11.40.268.0
[platform/framework/web/crosswalk.git] / src / ui / aura / test / test_window_delegate.h
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #ifndef UI_AURA_TEST_TEST_WINDOW_DELEGATE_H_
6 #define UI_AURA_TEST_TEST_WINDOW_DELEGATE_H_
7
8 #include <string>
9
10 #include "base/compiler_specific.h"
11 #include "third_party/skia/include/core/SkColor.h"
12 #include "ui/aura/window_delegate.h"
13 #include "ui/events/keycodes/keyboard_codes.h"
14 #include "ui/gfx/rect.h"
15
16 namespace aura {
17 namespace test {
18
19 // WindowDelegate implementation with all methods stubbed out.
20 class TestWindowDelegate : public WindowDelegate {
21  public:
22   TestWindowDelegate();
23   ~TestWindowDelegate() override;
24
25   // Returns a TestWindowDelegate that delete itself when
26   // the associated window is destroyed.
27   static TestWindowDelegate* CreateSelfDestroyingDelegate();
28
29   void set_window_component(int window_component) {
30     window_component_ = window_component;
31   }
32
33   void set_minimum_size(const gfx::Size& minimum_size) {
34     minimum_size_ = minimum_size;
35   }
36
37   void set_maximum_size(const gfx::Size& maximum_size) {
38     maximum_size_ = maximum_size;
39   }
40
41   // Sets the return value for CanFocus(). Default is true.
42   void set_can_focus(bool can_focus) { can_focus_ = can_focus; }
43
44   // Overridden from WindowDelegate:
45   gfx::Size GetMinimumSize() const override;
46   gfx::Size GetMaximumSize() const override;
47   void OnBoundsChanged(const gfx::Rect& old_bounds,
48                        const gfx::Rect& new_bounds) override;
49   gfx::NativeCursor GetCursor(const gfx::Point& point) override;
50   int GetNonClientComponent(const gfx::Point& point) const override;
51   bool ShouldDescendIntoChildForEventHandling(
52       Window* child,
53       const gfx::Point& location) override;
54   bool CanFocus() override;
55   void OnCaptureLost() override;
56   void OnPaint(gfx::Canvas* canvas) override;
57   void OnDeviceScaleFactorChanged(float device_scale_factor) override;
58   void OnWindowDestroying(Window* window) override;
59   void OnWindowDestroyed(Window* window) override;
60   void OnWindowTargetVisibilityChanged(bool visible) override;
61   bool HasHitTestMask() const override;
62   void GetHitTestMask(gfx::Path* mask) const override;
63
64  private:
65   int window_component_;
66   bool delete_on_destroyed_;
67   gfx::Size minimum_size_;
68   gfx::Size maximum_size_;
69   bool can_focus_;
70
71   DISALLOW_COPY_AND_ASSIGN(TestWindowDelegate);
72 };
73
74 // A simple WindowDelegate implementation for these tests. It owns itself
75 // (deletes itself when the Window it is attached to is destroyed).
76 class ColorTestWindowDelegate : public TestWindowDelegate {
77  public:
78   explicit ColorTestWindowDelegate(SkColor color);
79   ~ColorTestWindowDelegate() override;
80
81   ui::KeyboardCode last_key_code() const { return last_key_code_; }
82
83   // Overridden from TestWindowDelegate:
84   void OnKeyEvent(ui::KeyEvent* event) override;
85   void OnWindowDestroyed(Window* window) override;
86   void OnPaint(gfx::Canvas* canvas) override;
87
88  private:
89   SkColor color_;
90   ui::KeyboardCode last_key_code_;
91
92   DISALLOW_COPY_AND_ASSIGN(ColorTestWindowDelegate);
93 };
94
95 // A simple WindowDelegate that has a hit-test mask.
96 class MaskedWindowDelegate : public TestWindowDelegate {
97  public:
98   explicit MaskedWindowDelegate(const gfx::Rect mask_rect);
99
100   // Overridden from TestWindowDelegate:
101   bool HasHitTestMask() const override;
102   void GetHitTestMask(gfx::Path* mask) const override;
103
104  private:
105   gfx::Rect mask_rect_;
106
107   DISALLOW_COPY_AND_ASSIGN(MaskedWindowDelegate);
108 };
109
110 // Keeps track of mouse/key events.
111 class EventCountDelegate : public TestWindowDelegate {
112  public:
113   EventCountDelegate();
114
115   // Overridden from TestWindowDelegate:
116   void OnKeyEvent(ui::KeyEvent* event) override;
117   void OnMouseEvent(ui::MouseEvent* event) override;
118   void OnGestureEvent(ui::GestureEvent* event) override;
119
120   // Returns the counts of mouse motion events in the
121   // form of "<enter> <move> <leave>".
122   std::string GetMouseMotionCountsAndReset();
123
124   // Returns the counts of mouse button events in the
125   // form of "<press> <release>".
126   std::string GetMouseButtonCountsAndReset();
127
128   // Returns the counts of key events in the form of
129   // "<press> <release>".
130   std::string GetKeyCountsAndReset();
131
132   // Returns number of gesture events.
133   int GetGestureCountAndReset();
134
135  private:
136   int mouse_enter_count_;
137   int mouse_move_count_;
138   int mouse_leave_count_;
139   int mouse_press_count_;
140   int mouse_release_count_;
141   int key_press_count_;
142   int key_release_count_;
143   int gesture_count_;
144
145   DISALLOW_COPY_AND_ASSIGN(EventCountDelegate);
146 };
147
148 }  // namespace test
149 }  // namespace aura
150
151 #endif  // UI_AURA_TEST_TEST_WINDOW_DELEGATE_H_