- add sources.
[platform/framework/web/crosswalk.git] / src / ui / aura / test / test_window_delegate.cc
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 #include "ui/aura/test/test_window_delegate.h"
6
7 #include "base/strings/stringprintf.h"
8 #include "ui/aura/window.h"
9 #include "ui/base/hit_test.h"
10 #include "ui/events/event.h"
11 #include "ui/gfx/canvas.h"
12 #include "ui/gfx/path.h"
13 #include "ui/gfx/skia_util.h"
14
15 #if defined(USE_AURA)
16 #include "ui/base/cursor/cursor.h"
17 #endif
18
19 namespace aura {
20 namespace test {
21
22 ////////////////////////////////////////////////////////////////////////////////
23 // TestWindowDelegate
24
25 TestWindowDelegate::TestWindowDelegate()
26     : window_component_(HTCLIENT),
27       delete_on_destroyed_(false),
28       can_focus_(true) {
29 }
30
31 TestWindowDelegate::~TestWindowDelegate() {
32 }
33
34 // static
35 TestWindowDelegate* TestWindowDelegate::CreateSelfDestroyingDelegate() {
36   TestWindowDelegate* delegate = new TestWindowDelegate;
37   delegate->delete_on_destroyed_ = true;
38   return delegate;
39 }
40
41 gfx::Size TestWindowDelegate::GetMinimumSize() const {
42   return minimum_size_;
43 }
44
45 gfx::Size TestWindowDelegate::GetMaximumSize() const {
46   return maximum_size_;
47 }
48
49 void TestWindowDelegate::OnBoundsChanged(const gfx::Rect& old_bounds,
50                                          const gfx::Rect& new_bounds) {
51 }
52
53 gfx::NativeCursor TestWindowDelegate::GetCursor(const gfx::Point& point) {
54   return gfx::kNullCursor;
55 }
56
57 int TestWindowDelegate::GetNonClientComponent(const gfx::Point& point) const {
58   return window_component_;
59 }
60
61 bool TestWindowDelegate::ShouldDescendIntoChildForEventHandling(
62       Window* child,
63       const gfx::Point& location) {
64   return true;
65 }
66
67 bool TestWindowDelegate::CanFocus() {
68   return can_focus_;
69 }
70
71 void TestWindowDelegate::OnCaptureLost() {
72 }
73
74 void TestWindowDelegate::OnPaint(gfx::Canvas* canvas) {
75 }
76
77 void TestWindowDelegate::OnDeviceScaleFactorChanged(
78     float device_scale_factor) {
79 }
80
81 void TestWindowDelegate::OnWindowDestroying() {
82 }
83
84 void TestWindowDelegate::OnWindowDestroyed() {
85   if (delete_on_destroyed_)
86     delete this;
87 }
88
89 void TestWindowDelegate::OnWindowTargetVisibilityChanged(bool visible) {
90 }
91
92 bool TestWindowDelegate::HasHitTestMask() const {
93   return false;
94 }
95
96 void TestWindowDelegate::GetHitTestMask(gfx::Path* mask) const {
97 }
98
99 void TestWindowDelegate::DidRecreateLayer(ui::Layer *old_layer,
100                                           ui::Layer *new_layer) {
101 }
102
103 ////////////////////////////////////////////////////////////////////////////////
104 // ColorTestWindowDelegate
105
106 ColorTestWindowDelegate::ColorTestWindowDelegate(SkColor color)
107     : color_(color),
108       last_key_code_(ui::VKEY_UNKNOWN) {
109 }
110
111 ColorTestWindowDelegate::~ColorTestWindowDelegate() {
112 }
113
114 void ColorTestWindowDelegate::OnKeyEvent(ui::KeyEvent* event) {
115   last_key_code_ = event->key_code();
116   event->SetHandled();
117 }
118
119 void ColorTestWindowDelegate::OnWindowDestroyed() {
120   delete this;
121 }
122
123 void ColorTestWindowDelegate::OnPaint(gfx::Canvas* canvas) {
124   canvas->DrawColor(color_, SkXfermode::kSrc_Mode);
125 }
126
127 ////////////////////////////////////////////////////////////////////////////////
128 // MaskedWindowDelegate
129
130 MaskedWindowDelegate::MaskedWindowDelegate(const gfx::Rect mask_rect)
131     : mask_rect_(mask_rect) {
132 }
133
134 bool MaskedWindowDelegate::HasHitTestMask() const {
135   return true;
136 }
137
138 void MaskedWindowDelegate::GetHitTestMask(gfx::Path* mask) const {
139   mask->addRect(RectToSkRect(mask_rect_));
140 }
141
142 ////////////////////////////////////////////////////////////////////////////////
143 // EventCountDelegate
144
145 EventCountDelegate::EventCountDelegate()
146   : mouse_enter_count_(0),
147     mouse_move_count_(0),
148     mouse_leave_count_(0),
149     mouse_press_count_(0),
150     mouse_release_count_(0),
151     key_press_count_(0),
152     key_release_count_(0) {
153 }
154
155 void EventCountDelegate::OnKeyEvent(ui::KeyEvent* event) {
156   switch (event->type()) {
157     case ui::ET_KEY_PRESSED:
158       key_press_count_++;
159       break;
160     case ui::ET_KEY_RELEASED:
161       key_release_count_++;
162     default:
163       break;
164   }
165 }
166
167 void EventCountDelegate::OnMouseEvent(ui::MouseEvent* event) {
168   switch (event->type()) {
169     case ui::ET_MOUSE_MOVED:
170       mouse_move_count_++;
171       break;
172     case ui::ET_MOUSE_ENTERED:
173       mouse_enter_count_++;
174       break;
175     case ui::ET_MOUSE_EXITED:
176       mouse_leave_count_++;
177       break;
178     case ui::ET_MOUSE_PRESSED:
179       mouse_press_count_++;
180       break;
181     case ui::ET_MOUSE_RELEASED:
182       mouse_release_count_++;
183       break;
184     default:
185       break;
186   }
187 }
188
189 std::string EventCountDelegate::GetMouseMotionCountsAndReset() {
190   std::string result = base::StringPrintf("%d %d %d",
191                                           mouse_enter_count_,
192                                           mouse_move_count_,
193                                           mouse_leave_count_);
194   mouse_enter_count_ = 0;
195   mouse_move_count_ = 0;
196   mouse_leave_count_ = 0;
197   return result;
198 }
199
200 std::string EventCountDelegate::GetMouseButtonCountsAndReset() {
201   std::string result = base::StringPrintf("%d %d",
202                                           mouse_press_count_,
203                                           mouse_release_count_);
204   mouse_press_count_ = 0;
205   mouse_release_count_ = 0;
206   return result;
207 }
208
209
210 std::string EventCountDelegate::GetKeyCountsAndReset() {
211   std::string result = base::StringPrintf("%d %d",
212                                           key_press_count_,
213                                           key_release_count_);
214   key_press_count_ = 0;
215   key_release_count_ = 0;
216   return result;
217 }
218
219 }  // namespace test
220 }  // namespace aura