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.
5 #include "ui/aura/test/test_window_delegate.h"
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"
16 #include "ui/base/cursor/cursor.h"
22 ////////////////////////////////////////////////////////////////////////////////
25 TestWindowDelegate::TestWindowDelegate()
26 : window_component_(HTCLIENT
),
27 delete_on_destroyed_(false),
31 TestWindowDelegate::~TestWindowDelegate() {
35 TestWindowDelegate
* TestWindowDelegate::CreateSelfDestroyingDelegate() {
36 TestWindowDelegate
* delegate
= new TestWindowDelegate
;
37 delegate
->delete_on_destroyed_
= true;
41 gfx::Size
TestWindowDelegate::GetMinimumSize() const {
45 gfx::Size
TestWindowDelegate::GetMaximumSize() const {
49 void TestWindowDelegate::OnBoundsChanged(const gfx::Rect
& old_bounds
,
50 const gfx::Rect
& new_bounds
) {
53 gfx::NativeCursor
TestWindowDelegate::GetCursor(const gfx::Point
& point
) {
54 return gfx::kNullCursor
;
57 int TestWindowDelegate::GetNonClientComponent(const gfx::Point
& point
) const {
58 return window_component_
;
61 bool TestWindowDelegate::ShouldDescendIntoChildForEventHandling(
63 const gfx::Point
& location
) {
67 bool TestWindowDelegate::CanFocus() {
71 void TestWindowDelegate::OnCaptureLost() {
74 void TestWindowDelegate::OnPaint(gfx::Canvas
* canvas
) {
77 void TestWindowDelegate::OnDeviceScaleFactorChanged(
78 float device_scale_factor
) {
81 void TestWindowDelegate::OnWindowDestroying(Window
* window
) {
84 void TestWindowDelegate::OnWindowDestroyed(Window
* window
) {
85 if (delete_on_destroyed_
)
89 void TestWindowDelegate::OnWindowTargetVisibilityChanged(bool visible
) {
92 bool TestWindowDelegate::HasHitTestMask() const {
96 void TestWindowDelegate::GetHitTestMask(gfx::Path
* mask
) const {
99 ////////////////////////////////////////////////////////////////////////////////
100 // ColorTestWindowDelegate
102 ColorTestWindowDelegate::ColorTestWindowDelegate(SkColor color
)
104 last_key_code_(ui::VKEY_UNKNOWN
) {
107 ColorTestWindowDelegate::~ColorTestWindowDelegate() {
110 void ColorTestWindowDelegate::OnKeyEvent(ui::KeyEvent
* event
) {
111 last_key_code_
= event
->key_code();
115 void ColorTestWindowDelegate::OnWindowDestroyed(Window
* window
) {
119 void ColorTestWindowDelegate::OnPaint(gfx::Canvas
* canvas
) {
120 canvas
->DrawColor(color_
, SkXfermode::kSrc_Mode
);
123 ////////////////////////////////////////////////////////////////////////////////
124 // MaskedWindowDelegate
126 MaskedWindowDelegate::MaskedWindowDelegate(const gfx::Rect mask_rect
)
127 : mask_rect_(mask_rect
) {
130 bool MaskedWindowDelegate::HasHitTestMask() const {
134 void MaskedWindowDelegate::GetHitTestMask(gfx::Path
* mask
) const {
135 mask
->addRect(RectToSkRect(mask_rect_
));
138 ////////////////////////////////////////////////////////////////////////////////
139 // 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),
148 key_release_count_(0),
152 void EventCountDelegate::OnKeyEvent(ui::KeyEvent
* event
) {
153 switch (event
->type()) {
154 case ui::ET_KEY_PRESSED
:
157 case ui::ET_KEY_RELEASED
:
158 key_release_count_
++;
164 void EventCountDelegate::OnMouseEvent(ui::MouseEvent
* event
) {
165 switch (event
->type()) {
166 case ui::ET_MOUSE_MOVED
:
169 case ui::ET_MOUSE_ENTERED
:
170 mouse_enter_count_
++;
172 case ui::ET_MOUSE_EXITED
:
173 mouse_leave_count_
++;
175 case ui::ET_MOUSE_PRESSED
:
176 mouse_press_count_
++;
178 case ui::ET_MOUSE_RELEASED
:
179 mouse_release_count_
++;
186 void EventCountDelegate::OnGestureEvent(ui::GestureEvent
* event
) {
190 std::string
EventCountDelegate::GetMouseMotionCountsAndReset() {
191 std::string result
= base::StringPrintf("%d %d %d",
195 mouse_enter_count_
= 0;
196 mouse_move_count_
= 0;
197 mouse_leave_count_
= 0;
201 std::string
EventCountDelegate::GetMouseButtonCountsAndReset() {
202 std::string result
= base::StringPrintf("%d %d",
204 mouse_release_count_
);
205 mouse_press_count_
= 0;
206 mouse_release_count_
= 0;
211 std::string
EventCountDelegate::GetKeyCountsAndReset() {
212 std::string result
= base::StringPrintf("%d %d",
215 key_press_count_
= 0;
216 key_release_count_
= 0;
220 int EventCountDelegate::GetGestureCountAndReset() {
221 int gesture_count
= gesture_count_
;
223 return gesture_count
;