Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(162)

Side by Side Diff: ui/views/view.h

Issue 1868363002: Replace scoped_ptr with std::unique_ptr in //ui (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@scopedptrcc
Patch Set: scopedptrui: rebase-make_scoped_ptr Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « ui/views/touchui/touch_selection_menu_runner_views.h ('k') | ui/views/view.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 #ifndef UI_VIEWS_VIEW_H_ 5 #ifndef UI_VIEWS_VIEW_H_
6 #define UI_VIEWS_VIEW_H_ 6 #define UI_VIEWS_VIEW_H_
7 7
8 #include <stddef.h> 8 #include <stddef.h>
9 9
10 #include <algorithm> 10 #include <algorithm>
11 #include <map> 11 #include <map>
12 #include <memory>
12 #include <set> 13 #include <set>
13 #include <string> 14 #include <string>
14 #include <vector> 15 #include <vector>
15 16
16 #include "base/compiler_specific.h" 17 #include "base/compiler_specific.h"
17 #include "base/i18n/rtl.h" 18 #include "base/i18n/rtl.h"
18 #include "base/logging.h" 19 #include "base/logging.h"
19 #include "base/macros.h" 20 #include "base/macros.h"
20 #include "base/memory/scoped_ptr.h"
21 #include "build/build_config.h" 21 #include "build/build_config.h"
22 #include "ui/accessibility/ax_enums.h" 22 #include "ui/accessibility/ax_enums.h"
23 #include "ui/base/accelerators/accelerator.h" 23 #include "ui/base/accelerators/accelerator.h"
24 #include "ui/base/dragdrop/drag_drop_types.h" 24 #include "ui/base/dragdrop/drag_drop_types.h"
25 #include "ui/base/dragdrop/drop_target_event.h" 25 #include "ui/base/dragdrop/drop_target_event.h"
26 #include "ui/base/dragdrop/os_exchange_data.h" 26 #include "ui/base/dragdrop/os_exchange_data.h"
27 #include "ui/base/ui_base_types.h" 27 #include "ui/base/ui_base_types.h"
28 #include "ui/compositor/layer_delegate.h" 28 #include "ui/compositor/layer_delegate.h"
29 #include "ui/compositor/layer_owner.h" 29 #include "ui/compositor/layer_owner.h"
30 #include "ui/compositor/paint_cache.h" 30 #include "ui/compositor/paint_cache.h"
(...skipping 276 matching lines...) Expand 10 before | Expand all | Expand 10 after
307 307
308 // Sets whether this view paints to a layer. A view paints to a layer if 308 // Sets whether this view paints to a layer. A view paints to a layer if
309 // either of the following are true: 309 // either of the following are true:
310 // . the view has a non-identity transform. 310 // . the view has a non-identity transform.
311 // . SetPaintToLayer(true) has been invoked. 311 // . SetPaintToLayer(true) has been invoked.
312 // View creates the Layer only when it exists in a Widget with a non-NULL 312 // View creates the Layer only when it exists in a Widget with a non-NULL
313 // Compositor. 313 // Compositor.
314 void SetPaintToLayer(bool paint_to_layer); 314 void SetPaintToLayer(bool paint_to_layer);
315 315
316 // Overridden from ui::LayerOwner: 316 // Overridden from ui::LayerOwner:
317 scoped_ptr<ui::Layer> RecreateLayer() override; 317 std::unique_ptr<ui::Layer> RecreateLayer() override;
318 318
319 // RTL positioning ----------------------------------------------------------- 319 // RTL positioning -----------------------------------------------------------
320 320
321 // Methods for accessing the bounds and position of the view, relative to its 321 // Methods for accessing the bounds and position of the view, relative to its
322 // parent. The position returned is mirrored if the parent view is using a RTL 322 // parent. The position returned is mirrored if the parent view is using a RTL
323 // layout. 323 // layout.
324 // 324 //
325 // NOTE: in the vast majority of the cases, the mirroring implementation is 325 // NOTE: in the vast majority of the cases, the mirroring implementation is
326 // transparent to the View subclasses and therefore you should use the 326 // transparent to the View subclasses and therefore you should use the
327 // bounds() accessor instead. 327 // bounds() accessor instead.
(...skipping 169 matching lines...) Expand 10 before | Expand all | Expand 10 after
497 // to paint itself via the various OnPaint*() event handlers and then paints 497 // to paint itself via the various OnPaint*() event handlers and then paints
498 // the hierarchy beneath it. 498 // the hierarchy beneath it.
499 void Paint(const ui::PaintContext& parent_context); 499 void Paint(const ui::PaintContext& parent_context);
500 500
501 // The background object is owned by this object and may be NULL. 501 // The background object is owned by this object and may be NULL.
502 void set_background(Background* b); 502 void set_background(Background* b);
503 const Background* background() const { return background_.get(); } 503 const Background* background() const { return background_.get(); }
504 Background* background() { return background_.get(); } 504 Background* background() { return background_.get(); }
505 505
506 // The border object is owned by this object and may be NULL. 506 // The border object is owned by this object and may be NULL.
507 virtual void SetBorder(scoped_ptr<Border> b); 507 virtual void SetBorder(std::unique_ptr<Border> b);
508 const Border* border() const { return border_.get(); } 508 const Border* border() const { return border_.get(); }
509 Border* border() { return border_.get(); } 509 Border* border() { return border_.get(); }
510 510
511 // Get the theme provider from the parent widget. 511 // Get the theme provider from the parent widget.
512 const ui::ThemeProvider* GetThemeProvider() const; 512 const ui::ThemeProvider* GetThemeProvider() const;
513 513
514 // Returns the NativeTheme to use for this View. This calls through to 514 // Returns the NativeTheme to use for this View. This calls through to
515 // GetNativeTheme() on the Widget this View is in, or provides a default 515 // GetNativeTheme() on the Widget this View is in, or provides a default
516 // theme if there's no widget. Warning: the default theme might not be 516 // theme if there's no widget. Warning: the default theme might not be
517 // correct; you should probably override OnNativeThemeChanged(). 517 // correct; you should probably override OnNativeThemeChanged().
(...skipping 175 matching lines...) Expand 10 before | Expand all | Expand 10 after
693 // Convenience method to retrieve the InputMethod associated with the 693 // Convenience method to retrieve the InputMethod associated with the
694 // Widget that contains this view. 694 // Widget that contains this view.
695 ui::InputMethod* GetInputMethod() { 695 ui::InputMethod* GetInputMethod() {
696 return const_cast<ui::InputMethod*>( 696 return const_cast<ui::InputMethod*>(
697 const_cast<const View*>(this)->GetInputMethod()); 697 const_cast<const View*>(this)->GetInputMethod());
698 } 698 }
699 const ui::InputMethod* GetInputMethod() const; 699 const ui::InputMethod* GetInputMethod() const;
700 700
701 // Sets a new ViewTargeter for the view, and returns the previous 701 // Sets a new ViewTargeter for the view, and returns the previous
702 // ViewTargeter. 702 // ViewTargeter.
703 scoped_ptr<ViewTargeter> SetEventTargeter(scoped_ptr<ViewTargeter> targeter); 703 std::unique_ptr<ViewTargeter> SetEventTargeter(
704 std::unique_ptr<ViewTargeter> targeter);
704 705
705 // Returns the ViewTargeter installed on |this| if one exists, 706 // Returns the ViewTargeter installed on |this| if one exists,
706 // otherwise returns the ViewTargeter installed on our root view. 707 // otherwise returns the ViewTargeter installed on our root view.
707 // The return value is guaranteed to be non-null. 708 // The return value is guaranteed to be non-null.
708 ViewTargeter* GetEffectiveViewTargeter() const; 709 ViewTargeter* GetEffectiveViewTargeter() const;
709 710
710 ViewTargeter* targeter() const { return targeter_.get(); } 711 ViewTargeter* targeter() const { return targeter_.get(); }
711 712
712 // Overridden from ui::EventTarget: 713 // Overridden from ui::EventTarget:
713 bool CanAcceptEvent(const ui::Event& event) override; 714 bool CanAcceptEvent(const ui::Event& event) override;
714 ui::EventTarget* GetParentTarget() override; 715 ui::EventTarget* GetParentTarget() override;
715 scoped_ptr<ui::EventTargetIterator> GetChildIterator() const override; 716 std::unique_ptr<ui::EventTargetIterator> GetChildIterator() const override;
716 ui::EventTargeter* GetEventTargeter() override; 717 ui::EventTargeter* GetEventTargeter() override;
717 void ConvertEventToTarget(ui::EventTarget* target, 718 void ConvertEventToTarget(ui::EventTarget* target,
718 ui::LocatedEvent* event) override; 719 ui::LocatedEvent* event) override;
719 720
720 // Overridden from ui::EventHandler: 721 // Overridden from ui::EventHandler:
721 void OnKeyEvent(ui::KeyEvent* event) override; 722 void OnKeyEvent(ui::KeyEvent* event) override;
722 void OnMouseEvent(ui::MouseEvent* event) override; 723 void OnMouseEvent(ui::MouseEvent* event) override;
723 void OnScrollEvent(ui::ScrollEvent* event) override; 724 void OnScrollEvent(ui::ScrollEvent* event) override;
724 void OnTouchEvent(ui::TouchEvent* event) final; 725 void OnTouchEvent(ui::TouchEvent* event) final;
725 void OnGestureEvent(ui::GestureEvent* event) override; 726 void OnGestureEvent(ui::GestureEvent* event) override;
(...skipping 749 matching lines...) Expand 10 before | Expand all | Expand 10 after
1475 // still into this view, this view receives a mouse-enter event if this flag 1476 // still into this view, this view receives a mouse-enter event if this flag
1476 // is turned off, but doesn't if this flag is turned on. 1477 // is turned off, but doesn't if this flag is turned on.
1477 // This flag is initialized to false. 1478 // This flag is initialized to false.
1478 bool notify_enter_exit_on_child_; 1479 bool notify_enter_exit_on_child_;
1479 1480
1480 // Whether or not RegisterViewForVisibleBoundsNotification on the RootView 1481 // Whether or not RegisterViewForVisibleBoundsNotification on the RootView
1481 // has been invoked. 1482 // has been invoked.
1482 bool registered_for_visible_bounds_notification_; 1483 bool registered_for_visible_bounds_notification_;
1483 1484
1484 // List of descendants wanting notification when their visible bounds change. 1485 // List of descendants wanting notification when their visible bounds change.
1485 scoped_ptr<Views> descendants_to_notify_; 1486 std::unique_ptr<Views> descendants_to_notify_;
1486 1487
1487 // Transformations ----------------------------------------------------------- 1488 // Transformations -----------------------------------------------------------
1488 1489
1489 // Painting will be clipped to this path. TODO(estade): this doesn't work for 1490 // Painting will be clipped to this path. TODO(estade): this doesn't work for
1490 // layers. 1491 // layers.
1491 gfx::Path clip_path_; 1492 gfx::Path clip_path_;
1492 1493
1493 // Layout -------------------------------------------------------------------- 1494 // Layout --------------------------------------------------------------------
1494 1495
1495 // Whether the view needs to be laid out. 1496 // Whether the view needs to be laid out.
1496 bool needs_layout_; 1497 bool needs_layout_;
1497 1498
1498 // The View's LayoutManager defines the sizing heuristics applied to child 1499 // The View's LayoutManager defines the sizing heuristics applied to child
1499 // Views. The default is absolute positioning according to bounds_. 1500 // Views. The default is absolute positioning according to bounds_.
1500 scoped_ptr<LayoutManager> layout_manager_; 1501 std::unique_ptr<LayoutManager> layout_manager_;
1501 1502
1502 // Whether this View's layer should be snapped to the pixel boundary. 1503 // Whether this View's layer should be snapped to the pixel boundary.
1503 bool snap_layer_to_pixel_boundary_; 1504 bool snap_layer_to_pixel_boundary_;
1504 1505
1505 // Painting ------------------------------------------------------------------ 1506 // Painting ------------------------------------------------------------------
1506 1507
1507 // Background 1508 // Background
1508 scoped_ptr<Background> background_; 1509 std::unique_ptr<Background> background_;
1509 1510
1510 // Border. 1511 // Border.
1511 scoped_ptr<Border> border_; 1512 std::unique_ptr<Border> border_;
1512 1513
1513 // Cached output of painting to be reused in future frames until invalidated. 1514 // Cached output of painting to be reused in future frames until invalidated.
1514 ui::PaintCache paint_cache_; 1515 ui::PaintCache paint_cache_;
1515 1516
1516 // RTL painting -------------------------------------------------------------- 1517 // RTL painting --------------------------------------------------------------
1517 1518
1518 // Indicates whether or not the gfx::Canvas object passed to View::Paint() 1519 // Indicates whether or not the gfx::Canvas object passed to View::Paint()
1519 // is going to be flipped horizontally (using the appropriate transform) on 1520 // is going to be flipped horizontally (using the appropriate transform) on
1520 // right-to-left locales for this View. 1521 // right-to-left locales for this View.
1521 bool flip_canvas_on_paint_for_rtl_ui_; 1522 bool flip_canvas_on_paint_for_rtl_ui_;
1522 1523
1523 // Accelerated painting ------------------------------------------------------ 1524 // Accelerated painting ------------------------------------------------------
1524 1525
1525 bool paint_to_layer_; 1526 bool paint_to_layer_;
1526 1527
1527 // Accelerators -------------------------------------------------------------- 1528 // Accelerators --------------------------------------------------------------
1528 1529
1529 // Focus manager accelerators registered on. 1530 // Focus manager accelerators registered on.
1530 FocusManager* accelerator_focus_manager_; 1531 FocusManager* accelerator_focus_manager_;
1531 1532
1532 // The list of accelerators. List elements in the range 1533 // The list of accelerators. List elements in the range
1533 // [0, registered_accelerator_count_) are already registered to FocusManager, 1534 // [0, registered_accelerator_count_) are already registered to FocusManager,
1534 // and the rest are not yet. 1535 // and the rest are not yet.
1535 scoped_ptr<std::vector<ui::Accelerator> > accelerators_; 1536 std::unique_ptr<std::vector<ui::Accelerator>> accelerators_;
1536 size_t registered_accelerator_count_; 1537 size_t registered_accelerator_count_;
1537 1538
1538 // Focus --------------------------------------------------------------------- 1539 // Focus ---------------------------------------------------------------------
1539 1540
1540 // Next view to be focused when the Tab key is pressed. 1541 // Next view to be focused when the Tab key is pressed.
1541 View* next_focusable_view_; 1542 View* next_focusable_view_;
1542 1543
1543 // Next view to be focused when the Shift-Tab key combination is pressed. 1544 // Next view to be focused when the Shift-Tab key combination is pressed.
1544 View* previous_focusable_view_; 1545 View* previous_focusable_view_;
1545 1546
1546 // Whether this view can be focused. 1547 // Whether this view can be focused.
1547 bool focusable_; 1548 bool focusable_;
1548 1549
1549 // Whether this view is focusable if the user requires full keyboard access, 1550 // Whether this view is focusable if the user requires full keyboard access,
1550 // even though it may not be normally focusable. 1551 // even though it may not be normally focusable.
1551 bool accessibility_focusable_; 1552 bool accessibility_focusable_;
1552 1553
1553 // Context menus ------------------------------------------------------------- 1554 // Context menus -------------------------------------------------------------
1554 1555
1555 // The menu controller. 1556 // The menu controller.
1556 ContextMenuController* context_menu_controller_; 1557 ContextMenuController* context_menu_controller_;
1557 1558
1558 // Drag and drop ------------------------------------------------------------- 1559 // Drag and drop -------------------------------------------------------------
1559 1560
1560 DragController* drag_controller_; 1561 DragController* drag_controller_;
1561 1562
1562 // Input -------------------------------------------------------------------- 1563 // Input --------------------------------------------------------------------
1563 1564
1564 scoped_ptr<ViewTargeter> targeter_; 1565 std::unique_ptr<ViewTargeter> targeter_;
1565 1566
1566 // Accessibility ------------------------------------------------------------- 1567 // Accessibility -------------------------------------------------------------
1567 1568
1568 // Belongs to this view, but it's reference-counted on some platforms 1569 // Belongs to this view, but it's reference-counted on some platforms
1569 // so we can't use a scoped_ptr. It's dereferenced in the destructor. 1570 // so we can't use a scoped_ptr. It's dereferenced in the destructor.
1570 NativeViewAccessibility* native_view_accessibility_; 1571 NativeViewAccessibility* native_view_accessibility_;
1571 1572
1572 DISALLOW_COPY_AND_ASSIGN(View); 1573 DISALLOW_COPY_AND_ASSIGN(View);
1573 }; 1574 };
1574 1575
1575 } // namespace views 1576 } // namespace views
1576 1577
1577 #endif // UI_VIEWS_VIEW_H_ 1578 #endif // UI_VIEWS_VIEW_H_
OLDNEW
« no previous file with comments | « ui/views/touchui/touch_selection_menu_runner_views.h ('k') | ui/views/view.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698