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 #ifndef UI_AURA_TEST_TEST_WINDOW_DELEGATE_H_
6 #define UI_AURA_TEST_TEST_WINDOW_DELEGATE_H_
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"
19 // WindowDelegate implementation with all methods stubbed out.
20 class TestWindowDelegate
: public WindowDelegate
{
23 virtual ~TestWindowDelegate();
25 // Returns a TestWindowDelegate that delete itself when
26 // the associated window is destroyed.
27 static TestWindowDelegate
* CreateSelfDestroyingDelegate();
29 void set_window_component(int window_component
) {
30 window_component_
= window_component
;
33 void set_minimum_size(const gfx::Size
& minimum_size
) {
34 minimum_size_
= minimum_size
;
37 void set_maximum_size(const gfx::Size
& maximum_size
) {
38 maximum_size_
= maximum_size
;
41 // Sets the return value for CanFocus(). Default is true.
42 void set_can_focus(bool can_focus
) { can_focus_
= can_focus
; }
44 // Overridden from WindowDelegate:
45 virtual gfx::Size
GetMinimumSize() const OVERRIDE
;
46 virtual gfx::Size
GetMaximumSize() const OVERRIDE
;
47 virtual void OnBoundsChanged(const gfx::Rect
& old_bounds
,
48 const gfx::Rect
& new_bounds
) OVERRIDE
;
49 virtual gfx::NativeCursor
GetCursor(const gfx::Point
& point
) OVERRIDE
;
50 virtual int GetNonClientComponent(const gfx::Point
& point
) const OVERRIDE
;
51 virtual bool ShouldDescendIntoChildForEventHandling(
53 const gfx::Point
& location
) OVERRIDE
;
54 virtual bool CanFocus() OVERRIDE
;
55 virtual void OnCaptureLost() OVERRIDE
;
56 virtual void OnPaint(gfx::Canvas
* canvas
) OVERRIDE
;
57 virtual void OnDeviceScaleFactorChanged(float device_scale_factor
) OVERRIDE
;
58 virtual void OnWindowDestroying(Window
* window
) OVERRIDE
;
59 virtual void OnWindowDestroyed(Window
* window
) OVERRIDE
;
60 virtual void OnWindowTargetVisibilityChanged(bool visible
) OVERRIDE
;
61 virtual bool HasHitTestMask() const OVERRIDE
;
62 virtual void GetHitTestMask(gfx::Path
* mask
) const OVERRIDE
;
65 int window_component_
;
66 bool delete_on_destroyed_
;
67 gfx::Size minimum_size_
;
68 gfx::Size maximum_size_
;
71 DISALLOW_COPY_AND_ASSIGN(TestWindowDelegate
);
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
{
78 explicit ColorTestWindowDelegate(SkColor color
);
79 virtual ~ColorTestWindowDelegate();
81 ui::KeyboardCode
last_key_code() const { return last_key_code_
; }
83 // Overridden from TestWindowDelegate:
84 virtual void OnKeyEvent(ui::KeyEvent
* event
) OVERRIDE
;
85 virtual void OnWindowDestroyed(Window
* window
) OVERRIDE
;
86 virtual void OnPaint(gfx::Canvas
* canvas
) OVERRIDE
;
90 ui::KeyboardCode last_key_code_
;
92 DISALLOW_COPY_AND_ASSIGN(ColorTestWindowDelegate
);
95 // A simple WindowDelegate that has a hit-test mask.
96 class MaskedWindowDelegate
: public TestWindowDelegate
{
98 explicit MaskedWindowDelegate(const gfx::Rect mask_rect
);
100 // Overridden from TestWindowDelegate:
101 virtual bool HasHitTestMask() const OVERRIDE
;
102 virtual void GetHitTestMask(gfx::Path
* mask
) const OVERRIDE
;
105 gfx::Rect mask_rect_
;
107 DISALLOW_COPY_AND_ASSIGN(MaskedWindowDelegate
);
110 // Keeps track of mouse/key events.
111 class EventCountDelegate
: public TestWindowDelegate
{
113 EventCountDelegate();
115 // Overridden from TestWindowDelegate:
116 virtual void OnKeyEvent(ui::KeyEvent
* event
) OVERRIDE
;
117 virtual void OnMouseEvent(ui::MouseEvent
* event
) OVERRIDE
;
118 virtual void OnGestureEvent(ui::GestureEvent
* event
) OVERRIDE
;
120 // Returns the counts of mouse motion events in the
121 // form of "<enter> <move> <leave>".
122 std::string
GetMouseMotionCountsAndReset();
124 // Returns the counts of mouse button events in the
125 // form of "<press> <release>".
126 std::string
GetMouseButtonCountsAndReset();
128 // Returns the counts of key events in the form of
129 // "<press> <release>".
130 std::string
GetKeyCountsAndReset();
132 // Returns number of gesture events.
133 int GetGestureCountAndReset();
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_
;
145 DISALLOW_COPY_AND_ASSIGN(EventCountDelegate
);
151 #endif // UI_AURA_TEST_TEST_WINDOW_DELEGATE_H_