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 #ifndef UI_VIEWS_VIEW_H_ | 5 #ifndef UI_VIEWS_VIEW_H_ |
6 #define UI_VIEWS_VIEW_H_ | 6 #define UI_VIEWS_VIEW_H_ |
7 #pragma once | 7 #pragma once |
8 | 8 |
9 #include <algorithm> | 9 #include <algorithm> |
10 #include <map> | 10 #include <map> |
11 #include <set> | 11 #include <set> |
12 #include <string> | 12 #include <string> |
13 #include <vector> | 13 #include <vector> |
14 | 14 |
15 #include "base/compiler_specific.h" | 15 #include "base/compiler_specific.h" |
16 #include "base/i18n/rtl.h" | 16 #include "base/i18n/rtl.h" |
17 #include "base/logging.h" | 17 #include "base/logging.h" |
18 #include "base/memory/scoped_ptr.h" | 18 #include "base/memory/scoped_ptr.h" |
19 #include "build/build_config.h" | 19 #include "build/build_config.h" |
20 #include "ui/base/accelerators/accelerator.h" | 20 #include "ui/base/accelerators/accelerator.h" |
21 #include "ui/base/dragdrop/os_exchange_data.h" | 21 #include "ui/base/dragdrop/os_exchange_data.h" |
22 #include "ui/compositor/layer_delegate.h" | 22 #include "ui/compositor/layer_delegate.h" |
| 23 #include "ui/compositor/layer_owner.h" |
23 #include "ui/gfx/native_widget_types.h" | 24 #include "ui/gfx/native_widget_types.h" |
24 #include "ui/gfx/rect.h" | 25 #include "ui/gfx/rect.h" |
25 #include "ui/views/background.h" | 26 #include "ui/views/background.h" |
26 #include "ui/views/border.h" | 27 #include "ui/views/border.h" |
27 #include "ui/views/events/event.h" | 28 #include "ui/views/events/event.h" |
28 | 29 |
29 #if defined(OS_WIN) | 30 #if defined(OS_WIN) |
30 #include "base/win/scoped_comptr.h" | 31 #include "base/win/scoped_comptr.h" |
31 #endif | 32 #endif |
32 | 33 |
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
89 // LayoutManager interface can be used to lay out children if required. | 90 // LayoutManager interface can be used to lay out children if required. |
90 // | 91 // |
91 // It is up to the subclass to implement Painting and storage of subclass - | 92 // It is up to the subclass to implement Painting and storage of subclass - |
92 // specific properties and functionality. | 93 // specific properties and functionality. |
93 // | 94 // |
94 // Unless otherwise documented, views is not thread safe and should only be | 95 // Unless otherwise documented, views is not thread safe and should only be |
95 // accessed from the main thread. | 96 // accessed from the main thread. |
96 // | 97 // |
97 ///////////////////////////////////////////////////////////////////////////// | 98 ///////////////////////////////////////////////////////////////////////////// |
98 class VIEWS_EXPORT View : public ui::LayerDelegate, | 99 class VIEWS_EXPORT View : public ui::LayerDelegate, |
| 100 public ui::LayerOwner, |
99 public ui::AcceleratorTarget { | 101 public ui::AcceleratorTarget { |
100 public: | 102 public: |
101 typedef std::vector<View*> Views; | 103 typedef std::vector<View*> Views; |
102 | 104 |
103 // Creation and lifetime ----------------------------------------------------- | 105 // Creation and lifetime ----------------------------------------------------- |
104 | 106 |
105 View(); | 107 View(); |
106 virtual ~View(); | 108 virtual ~View(); |
107 | 109 |
108 // By default a View is owned by its parent unless specified otherwise here. | 110 // By default a View is owned by its parent unless specified otherwise here. |
(...skipping 162 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
271 void SetTransform(const ui::Transform& transform); | 273 void SetTransform(const ui::Transform& transform); |
272 | 274 |
273 // Sets whether this view paints to a layer. A view paints to a layer if | 275 // Sets whether this view paints to a layer. A view paints to a layer if |
274 // either of the following are true: | 276 // either of the following are true: |
275 // . the view has a non-identity transform. | 277 // . the view has a non-identity transform. |
276 // . SetPaintToLayer(true) has been invoked. | 278 // . SetPaintToLayer(true) has been invoked. |
277 // View creates the Layer only when it exists in a Widget with a non-NULL | 279 // View creates the Layer only when it exists in a Widget with a non-NULL |
278 // Compositor. | 280 // Compositor. |
279 void SetPaintToLayer(bool paint_to_layer); | 281 void SetPaintToLayer(bool paint_to_layer); |
280 | 282 |
281 const ui::Layer* layer() const { return layer_.get(); } | 283 // Recreates a layer for the view and returns the old layer. After this call, |
282 ui::Layer* layer() { return layer_.get(); } | 284 // the View no longer has a pointer to the old layer (so it won't be able to |
| 285 // update the old layer or destroy it). The caller must free the returned |
| 286 // layer. |
| 287 ui::Layer* RecreateLayer() WARN_UNUSED_RESULT; |
283 | 288 |
284 // RTL positioning ----------------------------------------------------------- | 289 // RTL positioning ----------------------------------------------------------- |
285 | 290 |
286 // Methods for accessing the bounds and position of the view, relative to its | 291 // Methods for accessing the bounds and position of the view, relative to its |
287 // parent. The position returned is mirrored if the parent view is using a RTL | 292 // parent. The position returned is mirrored if the parent view is using a RTL |
288 // layout. | 293 // layout. |
289 // | 294 // |
290 // NOTE: in the vast majority of the cases, the mirroring implementation is | 295 // NOTE: in the vast majority of the cases, the mirroring implementation is |
291 // transparent to the View subclasses and therefore you should use the | 296 // transparent to the View subclasses and therefore you should use the |
292 // bounds() accessor instead. | 297 // bounds() accessor instead. |
(...skipping 1112 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1405 // RTL painting -------------------------------------------------------------- | 1410 // RTL painting -------------------------------------------------------------- |
1406 | 1411 |
1407 // Indicates whether or not the gfx::Canvas object passed to View::Paint() | 1412 // Indicates whether or not the gfx::Canvas object passed to View::Paint() |
1408 // is going to be flipped horizontally (using the appropriate transform) on | 1413 // is going to be flipped horizontally (using the appropriate transform) on |
1409 // right-to-left locales for this View. | 1414 // right-to-left locales for this View. |
1410 bool flip_canvas_on_paint_for_rtl_ui_; | 1415 bool flip_canvas_on_paint_for_rtl_ui_; |
1411 | 1416 |
1412 // Accelerated painting ------------------------------------------------------ | 1417 // Accelerated painting ------------------------------------------------------ |
1413 | 1418 |
1414 bool paint_to_layer_; | 1419 bool paint_to_layer_; |
1415 scoped_ptr<ui::Layer> layer_; | |
1416 | 1420 |
1417 // Accelerators -------------------------------------------------------------- | 1421 // Accelerators -------------------------------------------------------------- |
1418 | 1422 |
1419 // true if when we were added to hierarchy we were without focus manager | 1423 // true if when we were added to hierarchy we were without focus manager |
1420 // attempt addition when ancestor chain changed. | 1424 // attempt addition when ancestor chain changed. |
1421 bool accelerator_registration_delayed_; | 1425 bool accelerator_registration_delayed_; |
1422 | 1426 |
1423 // Focus manager accelerators registered on. | 1427 // Focus manager accelerators registered on. |
1424 FocusManager* accelerator_focus_manager_; | 1428 FocusManager* accelerator_focus_manager_; |
1425 | 1429 |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1460 base::win::ScopedComPtr<NativeViewAccessibilityWin> | 1464 base::win::ScopedComPtr<NativeViewAccessibilityWin> |
1461 native_view_accessibility_win_; | 1465 native_view_accessibility_win_; |
1462 #endif | 1466 #endif |
1463 | 1467 |
1464 DISALLOW_COPY_AND_ASSIGN(View); | 1468 DISALLOW_COPY_AND_ASSIGN(View); |
1465 }; | 1469 }; |
1466 | 1470 |
1467 } // namespace views | 1471 } // namespace views |
1468 | 1472 |
1469 #endif // UI_VIEWS_VIEW_H_ | 1473 #endif // UI_VIEWS_VIEW_H_ |
OLD | NEW |