| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include <map> | 5 #include <map> |
| 6 | 6 |
| 7 #include "base/memory/scoped_ptr.h" | 7 #include "base/memory/scoped_ptr.h" |
| 8 #include "base/rand_util.h" | 8 #include "base/rand_util.h" |
| 9 #include "base/strings/string_util.h" | 9 #include "base/strings/string_util.h" |
| 10 #include "base/strings/stringprintf.h" | 10 #include "base/strings/stringprintf.h" |
| (...skipping 201 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 212 void DoBlur() { | 212 void DoBlur() { |
| 213 views::View::Blur(); | 213 views::View::Blur(); |
| 214 } | 214 } |
| 215 | 215 |
| 216 bool focusable() const { return View::focusable(); } | 216 bool focusable() const { return View::focusable(); } |
| 217 | 217 |
| 218 void set_can_process_events_within_subtree(bool can_process) { | 218 void set_can_process_events_within_subtree(bool can_process) { |
| 219 can_process_events_within_subtree_ = can_process; | 219 can_process_events_within_subtree_ = can_process; |
| 220 } | 220 } |
| 221 | 221 |
| 222 virtual bool CanProcessEventsWithinSubtree() const OVERRIDE { | 222 virtual bool CanProcessEventsWithinSubtree() const override { |
| 223 return can_process_events_within_subtree_; | 223 return can_process_events_within_subtree_; |
| 224 } | 224 } |
| 225 | 225 |
| 226 virtual void OnBoundsChanged(const gfx::Rect& previous_bounds) OVERRIDE; | 226 virtual void OnBoundsChanged(const gfx::Rect& previous_bounds) override; |
| 227 virtual bool OnMousePressed(const ui::MouseEvent& event) OVERRIDE; | 227 virtual bool OnMousePressed(const ui::MouseEvent& event) override; |
| 228 virtual bool OnMouseDragged(const ui::MouseEvent& event) OVERRIDE; | 228 virtual bool OnMouseDragged(const ui::MouseEvent& event) override; |
| 229 virtual void OnMouseReleased(const ui::MouseEvent& event) OVERRIDE; | 229 virtual void OnMouseReleased(const ui::MouseEvent& event) override; |
| 230 virtual void OnMouseEntered(const ui::MouseEvent& event) OVERRIDE; | 230 virtual void OnMouseEntered(const ui::MouseEvent& event) override; |
| 231 virtual void OnMouseExited(const ui::MouseEvent& event) OVERRIDE; | 231 virtual void OnMouseExited(const ui::MouseEvent& event) override; |
| 232 | 232 |
| 233 virtual void Paint(gfx::Canvas* canvas, const CullSet& cull_set) OVERRIDE; | 233 virtual void Paint(gfx::Canvas* canvas, const CullSet& cull_set) override; |
| 234 virtual void SchedulePaintInRect(const gfx::Rect& rect) OVERRIDE; | 234 virtual void SchedulePaintInRect(const gfx::Rect& rect) override; |
| 235 virtual bool AcceleratorPressed(const ui::Accelerator& accelerator) OVERRIDE; | 235 virtual bool AcceleratorPressed(const ui::Accelerator& accelerator) override; |
| 236 | 236 |
| 237 virtual void OnNativeThemeChanged(const ui::NativeTheme* native_theme) | 237 virtual void OnNativeThemeChanged(const ui::NativeTheme* native_theme) |
| 238 OVERRIDE; | 238 override; |
| 239 | 239 |
| 240 // OnBoundsChanged. | 240 // OnBoundsChanged. |
| 241 bool did_change_bounds_; | 241 bool did_change_bounds_; |
| 242 gfx::Rect new_bounds_; | 242 gfx::Rect new_bounds_; |
| 243 | 243 |
| 244 // MouseEvent. | 244 // MouseEvent. |
| 245 int last_mouse_event_type_; | 245 int last_mouse_event_type_; |
| 246 gfx::Point location_; | 246 gfx::Point location_; |
| 247 bool received_mouse_enter_; | 247 bool received_mouse_enter_; |
| 248 bool received_mouse_exit_; | 248 bool received_mouse_exit_; |
| (...skipping 1239 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1488 //////////////////////////////////////////////////////////////////////////////// | 1488 //////////////////////////////////////////////////////////////////////////////// |
| 1489 class ToplevelWidgetObserverView : public View { | 1489 class ToplevelWidgetObserverView : public View { |
| 1490 public: | 1490 public: |
| 1491 ToplevelWidgetObserverView() : toplevel_(NULL) { | 1491 ToplevelWidgetObserverView() : toplevel_(NULL) { |
| 1492 } | 1492 } |
| 1493 virtual ~ToplevelWidgetObserverView() { | 1493 virtual ~ToplevelWidgetObserverView() { |
| 1494 } | 1494 } |
| 1495 | 1495 |
| 1496 // View overrides: | 1496 // View overrides: |
| 1497 virtual void ViewHierarchyChanged( | 1497 virtual void ViewHierarchyChanged( |
| 1498 const ViewHierarchyChangedDetails& details) OVERRIDE { | 1498 const ViewHierarchyChangedDetails& details) override { |
| 1499 if (details.is_add) { | 1499 if (details.is_add) { |
| 1500 toplevel_ = GetWidget() ? GetWidget()->GetTopLevelWidget() : NULL; | 1500 toplevel_ = GetWidget() ? GetWidget()->GetTopLevelWidget() : NULL; |
| 1501 } else { | 1501 } else { |
| 1502 toplevel_ = NULL; | 1502 toplevel_ = NULL; |
| 1503 } | 1503 } |
| 1504 } | 1504 } |
| 1505 virtual void NativeViewHierarchyChanged() OVERRIDE { | 1505 virtual void NativeViewHierarchyChanged() override { |
| 1506 toplevel_ = GetWidget() ? GetWidget()->GetTopLevelWidget() : NULL; | 1506 toplevel_ = GetWidget() ? GetWidget()->GetTopLevelWidget() : NULL; |
| 1507 } | 1507 } |
| 1508 | 1508 |
| 1509 Widget* toplevel() { return toplevel_; } | 1509 Widget* toplevel() { return toplevel_; } |
| 1510 | 1510 |
| 1511 private: | 1511 private: |
| 1512 Widget* toplevel_; | 1512 Widget* toplevel_; |
| 1513 | 1513 |
| 1514 DISALLOW_COPY_AND_ASSIGN(ToplevelWidgetObserverView); | 1514 DISALLOW_COPY_AND_ASSIGN(ToplevelWidgetObserverView); |
| 1515 }; | 1515 }; |
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1562 TransformPaintView() {} | 1562 TransformPaintView() {} |
| 1563 virtual ~TransformPaintView() {} | 1563 virtual ~TransformPaintView() {} |
| 1564 | 1564 |
| 1565 void ClearScheduledPaintRect() { | 1565 void ClearScheduledPaintRect() { |
| 1566 scheduled_paint_rect_ = gfx::Rect(); | 1566 scheduled_paint_rect_ = gfx::Rect(); |
| 1567 } | 1567 } |
| 1568 | 1568 |
| 1569 gfx::Rect scheduled_paint_rect() const { return scheduled_paint_rect_; } | 1569 gfx::Rect scheduled_paint_rect() const { return scheduled_paint_rect_; } |
| 1570 | 1570 |
| 1571 // Overridden from View: | 1571 // Overridden from View: |
| 1572 virtual void SchedulePaintInRect(const gfx::Rect& rect) OVERRIDE { | 1572 virtual void SchedulePaintInRect(const gfx::Rect& rect) override { |
| 1573 gfx::Rect xrect = ConvertRectToParent(rect); | 1573 gfx::Rect xrect = ConvertRectToParent(rect); |
| 1574 scheduled_paint_rect_.Union(xrect); | 1574 scheduled_paint_rect_.Union(xrect); |
| 1575 } | 1575 } |
| 1576 | 1576 |
| 1577 private: | 1577 private: |
| 1578 gfx::Rect scheduled_paint_rect_; | 1578 gfx::Rect scheduled_paint_rect_; |
| 1579 | 1579 |
| 1580 DISALLOW_COPY_AND_ASSIGN(TransformPaintView); | 1580 DISALLOW_COPY_AND_ASSIGN(TransformPaintView); |
| 1581 }; | 1581 }; |
| 1582 | 1582 |
| (...skipping 218 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1801 VisibleBoundsView() : received_notification_(false) {} | 1801 VisibleBoundsView() : received_notification_(false) {} |
| 1802 virtual ~VisibleBoundsView() {} | 1802 virtual ~VisibleBoundsView() {} |
| 1803 | 1803 |
| 1804 bool received_notification() const { return received_notification_; } | 1804 bool received_notification() const { return received_notification_; } |
| 1805 void set_received_notification(bool received) { | 1805 void set_received_notification(bool received) { |
| 1806 received_notification_ = received; | 1806 received_notification_ = received; |
| 1807 } | 1807 } |
| 1808 | 1808 |
| 1809 private: | 1809 private: |
| 1810 // Overridden from View: | 1810 // Overridden from View: |
| 1811 virtual bool GetNeedsNotificationWhenVisibleBoundsChange() const OVERRIDE { | 1811 virtual bool GetNeedsNotificationWhenVisibleBoundsChange() const override { |
| 1812 return true; | 1812 return true; |
| 1813 } | 1813 } |
| 1814 virtual void OnVisibleBoundsChanged() OVERRIDE { | 1814 virtual void OnVisibleBoundsChanged() override { |
| 1815 received_notification_ = true; | 1815 received_notification_ = true; |
| 1816 } | 1816 } |
| 1817 | 1817 |
| 1818 bool received_notification_; | 1818 bool received_notification_; |
| 1819 | 1819 |
| 1820 DISALLOW_COPY_AND_ASSIGN(VisibleBoundsView); | 1820 DISALLOW_COPY_AND_ASSIGN(VisibleBoundsView); |
| 1821 }; | 1821 }; |
| 1822 | 1822 |
| 1823 TEST_F(ViewTest, OnVisibleBoundsChanged) { | 1823 TEST_F(ViewTest, OnVisibleBoundsChanged) { |
| 1824 gfx::Rect viewport_bounds(0, 0, 100, 100); | 1824 gfx::Rect viewport_bounds(0, 0, 100, 100); |
| (...skipping 401 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2226 return add_details_; | 2226 return add_details_; |
| 2227 } | 2227 } |
| 2228 | 2228 |
| 2229 const ViewHierarchyChangedDetails& remove_details() const { | 2229 const ViewHierarchyChangedDetails& remove_details() const { |
| 2230 return remove_details_; | 2230 return remove_details_; |
| 2231 } | 2231 } |
| 2232 | 2232 |
| 2233 private: | 2233 private: |
| 2234 // View: | 2234 // View: |
| 2235 virtual void ViewHierarchyChanged( | 2235 virtual void ViewHierarchyChanged( |
| 2236 const ViewHierarchyChangedDetails& details) OVERRIDE; | 2236 const ViewHierarchyChangedDetails& details) override; |
| 2237 | 2237 |
| 2238 bool has_add_details_; | 2238 bool has_add_details_; |
| 2239 bool has_remove_details_; | 2239 bool has_remove_details_; |
| 2240 ViewHierarchyChangedDetails add_details_; | 2240 ViewHierarchyChangedDetails add_details_; |
| 2241 ViewHierarchyChangedDetails remove_details_; | 2241 ViewHierarchyChangedDetails remove_details_; |
| 2242 | 2242 |
| 2243 DISALLOW_COPY_AND_ASSIGN(ObserverView); | 2243 DISALLOW_COPY_AND_ASSIGN(ObserverView); |
| 2244 }; | 2244 }; |
| 2245 | 2245 |
| 2246 ObserverView::ObserverView() | 2246 ObserverView::ObserverView() |
| (...skipping 398 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2645 // FocusManager | 2645 // FocusManager |
| 2646 //////////////////////////////////////////////////////////////////////////////// | 2646 //////////////////////////////////////////////////////////////////////////////// |
| 2647 | 2647 |
| 2648 // A widget that always claims to be active, regardless of its real activation | 2648 // A widget that always claims to be active, regardless of its real activation |
| 2649 // status. | 2649 // status. |
| 2650 class ActiveWidget : public Widget { | 2650 class ActiveWidget : public Widget { |
| 2651 public: | 2651 public: |
| 2652 ActiveWidget() {} | 2652 ActiveWidget() {} |
| 2653 virtual ~ActiveWidget() {} | 2653 virtual ~ActiveWidget() {} |
| 2654 | 2654 |
| 2655 virtual bool IsActive() const OVERRIDE { | 2655 virtual bool IsActive() const override { |
| 2656 return true; | 2656 return true; |
| 2657 } | 2657 } |
| 2658 | 2658 |
| 2659 private: | 2659 private: |
| 2660 DISALLOW_COPY_AND_ASSIGN(ActiveWidget); | 2660 DISALLOW_COPY_AND_ASSIGN(ActiveWidget); |
| 2661 }; | 2661 }; |
| 2662 | 2662 |
| 2663 TEST_F(ViewTest, AdvanceFocusIfNecessaryForUnfocusableView) { | 2663 TEST_F(ViewTest, AdvanceFocusIfNecessaryForUnfocusableView) { |
| 2664 // Create a widget with two views and give the first one focus. | 2664 // Create a widget with two views and give the first one focus. |
| 2665 ActiveWidget widget; | 2665 ActiveWidget widget; |
| (...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2711 namespace { | 2711 namespace { |
| 2712 | 2712 |
| 2713 // Test implementation of LayerAnimator. | 2713 // Test implementation of LayerAnimator. |
| 2714 class TestLayerAnimator : public ui::LayerAnimator { | 2714 class TestLayerAnimator : public ui::LayerAnimator { |
| 2715 public: | 2715 public: |
| 2716 TestLayerAnimator(); | 2716 TestLayerAnimator(); |
| 2717 | 2717 |
| 2718 const gfx::Rect& last_bounds() const { return last_bounds_; } | 2718 const gfx::Rect& last_bounds() const { return last_bounds_; } |
| 2719 | 2719 |
| 2720 // LayerAnimator. | 2720 // LayerAnimator. |
| 2721 virtual void SetBounds(const gfx::Rect& bounds) OVERRIDE; | 2721 virtual void SetBounds(const gfx::Rect& bounds) override; |
| 2722 | 2722 |
| 2723 protected: | 2723 protected: |
| 2724 virtual ~TestLayerAnimator() { } | 2724 virtual ~TestLayerAnimator() { } |
| 2725 | 2725 |
| 2726 private: | 2726 private: |
| 2727 gfx::Rect last_bounds_; | 2727 gfx::Rect last_bounds_; |
| 2728 | 2728 |
| 2729 DISALLOW_COPY_AND_ASSIGN(TestLayerAnimator); | 2729 DISALLOW_COPY_AND_ASSIGN(TestLayerAnimator); |
| 2730 }; | 2730 }; |
| 2731 | 2731 |
| (...skipping 12 matching lines...) Expand all Loading... |
| 2744 ViewLayerTest() : widget_(NULL) {} | 2744 ViewLayerTest() : widget_(NULL) {} |
| 2745 | 2745 |
| 2746 virtual ~ViewLayerTest() { | 2746 virtual ~ViewLayerTest() { |
| 2747 } | 2747 } |
| 2748 | 2748 |
| 2749 // Returns the Layer used by the RootView. | 2749 // Returns the Layer used by the RootView. |
| 2750 ui::Layer* GetRootLayer() { | 2750 ui::Layer* GetRootLayer() { |
| 2751 return widget()->GetLayer(); | 2751 return widget()->GetLayer(); |
| 2752 } | 2752 } |
| 2753 | 2753 |
| 2754 virtual void SetUp() OVERRIDE { | 2754 virtual void SetUp() override { |
| 2755 ViewTest::SetUp(); | 2755 ViewTest::SetUp(); |
| 2756 widget_ = new Widget; | 2756 widget_ = new Widget; |
| 2757 Widget::InitParams params = CreateParams(Widget::InitParams::TYPE_POPUP); | 2757 Widget::InitParams params = CreateParams(Widget::InitParams::TYPE_POPUP); |
| 2758 params.bounds = gfx::Rect(50, 50, 200, 200); | 2758 params.bounds = gfx::Rect(50, 50, 200, 200); |
| 2759 widget_->Init(params); | 2759 widget_->Init(params); |
| 2760 widget_->Show(); | 2760 widget_->Show(); |
| 2761 widget_->GetRootView()->SetBounds(0, 0, 200, 200); | 2761 widget_->GetRootView()->SetBounds(0, 0, 200, 200); |
| 2762 } | 2762 } |
| 2763 | 2763 |
| 2764 virtual void TearDown() OVERRIDE { | 2764 virtual void TearDown() override { |
| 2765 widget_->CloseNow(); | 2765 widget_->CloseNow(); |
| 2766 ViewsTestBase::TearDown(); | 2766 ViewsTestBase::TearDown(); |
| 2767 } | 2767 } |
| 2768 | 2768 |
| 2769 Widget* widget() { return widget_; } | 2769 Widget* widget() { return widget_; } |
| 2770 | 2770 |
| 2771 private: | 2771 private: |
| 2772 Widget* widget_; | 2772 Widget* widget_; |
| 2773 }; | 2773 }; |
| 2774 | 2774 |
| (...skipping 288 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3063 } | 3063 } |
| 3064 | 3064 |
| 3065 class PaintTrackingView : public View { | 3065 class PaintTrackingView : public View { |
| 3066 public: | 3066 public: |
| 3067 PaintTrackingView() : painted_(false) { | 3067 PaintTrackingView() : painted_(false) { |
| 3068 } | 3068 } |
| 3069 | 3069 |
| 3070 bool painted() const { return painted_; } | 3070 bool painted() const { return painted_; } |
| 3071 void set_painted(bool value) { painted_ = value; } | 3071 void set_painted(bool value) { painted_ = value; } |
| 3072 | 3072 |
| 3073 virtual void OnPaint(gfx::Canvas* canvas) OVERRIDE { | 3073 virtual void OnPaint(gfx::Canvas* canvas) override { |
| 3074 painted_ = true; | 3074 painted_ = true; |
| 3075 } | 3075 } |
| 3076 | 3076 |
| 3077 private: | 3077 private: |
| 3078 bool painted_; | 3078 bool painted_; |
| 3079 | 3079 |
| 3080 DISALLOW_COPY_AND_ASSIGN(PaintTrackingView); | 3080 DISALLOW_COPY_AND_ASSIGN(PaintTrackingView); |
| 3081 }; | 3081 }; |
| 3082 | 3082 |
| 3083 // Makes sure child views with layers aren't painted when paint starts at an | 3083 // Makes sure child views with layers aren't painted when paint starts at an |
| (...skipping 221 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3305 ASSERT_EQ(2u, v.layer()->children().size()); | 3305 ASSERT_EQ(2u, v.layer()->children().size()); |
| 3306 EXPECT_EQ(v.layer()->children()[0], &layer); | 3306 EXPECT_EQ(v.layer()->children()[0], &layer); |
| 3307 EXPECT_EQ(v.layer()->children()[1], child.layer()); | 3307 EXPECT_EQ(v.layer()->children()[1], child.layer()); |
| 3308 } | 3308 } |
| 3309 | 3309 |
| 3310 class BoundsTreeTestView : public View { | 3310 class BoundsTreeTestView : public View { |
| 3311 public: | 3311 public: |
| 3312 BoundsTreeTestView() {} | 3312 BoundsTreeTestView() {} |
| 3313 | 3313 |
| 3314 virtual void PaintChildren(gfx::Canvas* canvas, | 3314 virtual void PaintChildren(gfx::Canvas* canvas, |
| 3315 const CullSet& cull_set) OVERRIDE { | 3315 const CullSet& cull_set) override { |
| 3316 // Save out a copy of the cull_set before calling the base implementation. | 3316 // Save out a copy of the cull_set before calling the base implementation. |
| 3317 last_cull_set_.clear(); | 3317 last_cull_set_.clear(); |
| 3318 if (cull_set.cull_set_) { | 3318 if (cull_set.cull_set_) { |
| 3319 for (base::hash_set<intptr_t>::iterator it = cull_set.cull_set_->begin(); | 3319 for (base::hash_set<intptr_t>::iterator it = cull_set.cull_set_->begin(); |
| 3320 it != cull_set.cull_set_->end(); | 3320 it != cull_set.cull_set_->end(); |
| 3321 ++it) { | 3321 ++it) { |
| 3322 last_cull_set_.insert(reinterpret_cast<View*>(*it)); | 3322 last_cull_set_.insert(reinterpret_cast<View*>(*it)); |
| 3323 } | 3323 } |
| 3324 } | 3324 } |
| 3325 View::PaintChildren(canvas, cull_set); | 3325 View::PaintChildren(canvas, cull_set); |
| (...skipping 392 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3718 // notification. | 3718 // notification. |
| 3719 TestView* test_view_child_2 = new TestView(); | 3719 TestView* test_view_child_2 = new TestView(); |
| 3720 test_view->AddChildView(test_view_child_2); | 3720 test_view->AddChildView(test_view_child_2); |
| 3721 EXPECT_TRUE(test_view_child_2->native_theme_); | 3721 EXPECT_TRUE(test_view_child_2->native_theme_); |
| 3722 EXPECT_EQ(widget->GetNativeTheme(), test_view_child_2->native_theme_); | 3722 EXPECT_EQ(widget->GetNativeTheme(), test_view_child_2->native_theme_); |
| 3723 | 3723 |
| 3724 widget->CloseNow(); | 3724 widget->CloseNow(); |
| 3725 } | 3725 } |
| 3726 | 3726 |
| 3727 } // namespace views | 3727 } // namespace views |
| OLD | NEW |