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