Home | History | Annotate | Download | only in test
      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
    221