Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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 VIEWS_VIEW_H_ | 5 #ifndef VIEWS_VIEW_H_ |
| 6 #define VIEWS_VIEW_H_ | 6 #define VIEWS_VIEW_H_ |
| 7 #pragma once | 7 #pragma once |
| 8 | 8 |
| 9 #include <algorithm> | 9 #include <algorithm> |
| 10 #include <map> | 10 #include <map> |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 42 } | 42 } |
| 43 | 43 |
| 44 #if defined(OS_WIN) | 44 #if defined(OS_WIN) |
| 45 class NativeViewAccessibilityWin; | 45 class NativeViewAccessibilityWin; |
| 46 #endif | 46 #endif |
| 47 | 47 |
| 48 namespace views { | 48 namespace views { |
| 49 | 49 |
| 50 class Background; | 50 class Background; |
| 51 class Border; | 51 class Border; |
| 52 class CallbackLock; | |
| 52 class ContextMenuController; | 53 class ContextMenuController; |
| 53 class DragController; | 54 class DragController; |
| 54 class FocusManager; | 55 class FocusManager; |
| 55 class FocusTraversable; | 56 class FocusTraversable; |
| 56 class InputMethod; | 57 class InputMethod; |
| 57 class LayerPropertySetter; | 58 class LayerPropertySetter; |
| 58 class LayoutManager; | 59 class LayoutManager; |
| 59 class ScrollView; | 60 class ScrollView; |
| 60 class TextInputClient; | 61 class TextInputClient; |
| 61 class Widget; | 62 class Widget; |
| (...skipping 177 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 239 virtual bool IsVisibleInRootView() const; | 240 virtual bool IsVisibleInRootView() const; |
| 240 | 241 |
| 241 // Set whether this view is enabled. A disabled view does not receive keyboard | 242 // Set whether this view is enabled. A disabled view does not receive keyboard |
| 242 // or mouse inputs. If flag differs from the current value, SchedulePaint is | 243 // or mouse inputs. If flag differs from the current value, SchedulePaint is |
| 243 // invoked. | 244 // invoked. |
| 244 void SetEnabled(bool enabled); | 245 void SetEnabled(bool enabled); |
| 245 | 246 |
| 246 // Returns whether the view is enabled. | 247 // Returns whether the view is enabled. |
| 247 virtual bool IsEnabled() const; | 248 virtual bool IsEnabled() const; |
| 248 | 249 |
| 250 //TODO(vollick) return a ref-counted lock that releases painting when destroye d. | |
|
Jói
2011/06/30 19:50:50
+80
| |
| 251 //These methods are dangerous. | |
| 252 void SetPaintingEnabled(bool enabled); | |
| 253 bool IsPaintingEnabled() const; | |
| 254 | |
| 249 // Transformations ----------------------------------------------------------- | 255 // Transformations ----------------------------------------------------------- |
| 250 | 256 |
| 251 // Methods for setting transformations for a view (e.g. rotation, scaling). | 257 // Methods for setting transformations for a view (e.g. rotation, scaling). |
| 252 | 258 |
| 253 const ui::Transform& GetTransform() const; | 259 const ui::Transform& GetTransform() const; |
| 254 | 260 |
| 255 // Clipping parameters. Clipping happens from the right and/or bottom. The | 261 // Clipping parameters. Clipping happens from the right and/or bottom. The |
| 256 // clipping amount is in parent's coordinate system, as in, if the view is | 262 // clipping amount is in parent's coordinate system, as in, if the view is |
| 257 // rotated, then the clipping will be applied after the rotation (and other | 263 // rotated, then the clipping will be applied after the rotation (and other |
| 258 // transformations, if any). | 264 // transformations, if any). |
| (...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 411 static void ConvertPointToView(const View* src, | 417 static void ConvertPointToView(const View* src, |
| 412 const View* dst, | 418 const View* dst, |
| 413 gfx::Point* point); | 419 gfx::Point* point); |
| 414 | 420 |
| 415 // Convert a point from the coordinate system of a View to that of the | 421 // Convert a point from the coordinate system of a View to that of the |
| 416 // Widget. This is useful for example when sizing HWND children of the | 422 // Widget. This is useful for example when sizing HWND children of the |
| 417 // Widget that don't know about the View hierarchy and need to be placed | 423 // Widget that don't know about the View hierarchy and need to be placed |
| 418 // relative to the Widget that is their parent. | 424 // relative to the Widget that is their parent. |
| 419 static void ConvertPointToWidget(const View* src, gfx::Point* point); | 425 static void ConvertPointToWidget(const View* src, gfx::Point* point); |
| 420 | 426 |
| 427 // TODO(vollick) get from Sadrul's fix | |
| 428 static void ConvertRectToWidget(const View* src, gfx::Rect* rect); | |
| 429 | |
| 421 // Convert a point from a view Widget to a View dest | 430 // Convert a point from a view Widget to a View dest |
| 422 static void ConvertPointFromWidget(const View* dest, gfx::Point* p); | 431 static void ConvertPointFromWidget(const View* dest, gfx::Point* p); |
| 423 | 432 |
| 424 // Convert a point from the coordinate system of a View to that of the | 433 // Convert a point from the coordinate system of a View to that of the |
| 425 // screen. This is useful for example when placing popup windows. | 434 // screen. This is useful for example when placing popup windows. |
| 426 static void ConvertPointToScreen(const View* src, gfx::Point* point); | 435 static void ConvertPointToScreen(const View* src, gfx::Point* point); |
| 427 | 436 |
| 428 // Applies transformation on the rectangle, which is in the view's coordinate | 437 // Applies transformation on the rectangle, which is in the view's coordinate |
| 429 // system, to convert it into the parent's coordinate system. | 438 // system, to convert it into the parent's coordinate system. |
| 430 gfx::Rect ConvertRectToParent(const gfx::Rect& rect) const; | 439 gfx::Rect ConvertRectToParent(const gfx::Rect& rect) const; |
| 431 | 440 |
| 432 // Painting ------------------------------------------------------------------ | 441 // Painting ------------------------------------------------------------------ |
| 433 | 442 |
| 434 // Mark all or part of the View's bounds as dirty (needing repaint). | 443 // Mark all or part of the View's bounds as dirty (needing repaint). |
| 435 // |r| is in the View's coordinates. | 444 // |r| is in the View's coordinates. |
| 436 // Rectangle |r| should be in the view's coordinate system. The | 445 // Rectangle |r| should be in the view's coordinate system. The |
| 437 // transformations are applied to it to convert it into the parent coordinate | 446 // transformations are applied to it to convert it into the parent coordinate |
| 438 // system before propagating SchedulePaint up the view hierarchy. | 447 // system before propagating SchedulePaint up the view hierarchy. |
| 439 // TODO(beng): Make protected. | 448 // TODO(beng): Make protected. |
| 440 virtual void SchedulePaint(); | 449 virtual void SchedulePaint(); |
| 441 virtual void SchedulePaintInRect(const gfx::Rect& r); | 450 virtual void SchedulePaintInRect(const gfx::Rect& r); |
| 442 | 451 |
| 452 virtual void ScheduleComposite(); | |
| 453 virtual void ScheduleCompositeInRect(const gfx::Rect& r); | |
| 454 | |
| 443 // Called by the framework to paint a View. Performs translation and clipping | 455 // Called by the framework to paint a View. Performs translation and clipping |
| 444 // for View coordinates and language direction as required, allows the View | 456 // for View coordinates and language direction as required, allows the View |
| 445 // to paint itself via the various OnPaint*() event handlers and then paints | 457 // to paint itself via the various OnPaint*() event handlers and then paints |
| 446 // the hierarchy beneath it. | 458 // the hierarchy beneath it. |
| 447 virtual void Paint(gfx::Canvas* canvas); | 459 virtual void Paint(gfx::Canvas* canvas); |
| 448 | 460 |
| 449 // The background object is owned by this object and may be NULL. | 461 // The background object is owned by this object and may be NULL. |
| 450 void set_background(Background* b) { background_.reset(b); } | 462 void set_background(Background* b) { background_.reset(b); } |
| 451 const Background* background() const { return background_.get(); } | 463 const Background* background() const { return background_.get(); } |
| 452 Background* background() { return background_.get(); } | 464 Background* background() { return background_.get(); } |
| (...skipping 716 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1169 static void ConvertPointToView(const View* src, | 1181 static void ConvertPointToView(const View* src, |
| 1170 const View* dst, | 1182 const View* dst, |
| 1171 gfx::Point* point, | 1183 gfx::Point* point, |
| 1172 bool try_other_direction); | 1184 bool try_other_direction); |
| 1173 | 1185 |
| 1174 // Convert a point in the view's coordinate to an ancestor view's coordinate | 1186 // Convert a point in the view's coordinate to an ancestor view's coordinate |
| 1175 // system using necessary transformations. Returns whether the point was | 1187 // system using necessary transformations. Returns whether the point was |
| 1176 // successfully converted to the ancestor's coordinate system. | 1188 // successfully converted to the ancestor's coordinate system. |
| 1177 bool ConvertPointForAncestor(const View* ancestor, gfx::Point* point) const; | 1189 bool ConvertPointForAncestor(const View* ancestor, gfx::Point* point) const; |
| 1178 | 1190 |
| 1191 // TODO(vollick) use Sadrul's fix; | |
| 1192 bool ConvertRectForAncestor(const View* ancestor, gfx::Rect* rect) const; | |
| 1193 | |
| 1179 // Convert a point in the ancestor's coordinate system to the view's | 1194 // Convert a point in the ancestor's coordinate system to the view's |
| 1180 // coordinate system using necessary transformations. Returns whether the | 1195 // coordinate system using necessary transformations. Returns whether the |
| 1181 // point was successfully from the ancestor's coordinate system to the view's | 1196 // point was successfully from the ancestor's coordinate system to the view's |
| 1182 // coordinate system. | 1197 // coordinate system. |
| 1183 bool ConvertPointFromAncestor(const View* ancestor, gfx::Point* point) const; | 1198 bool ConvertPointFromAncestor(const View* ancestor, gfx::Point* point) const; |
| 1184 | 1199 |
| 1185 // Accelerated painting ------------------------------------------------------ | 1200 // Accelerated painting ------------------------------------------------------ |
| 1186 | 1201 |
| 1187 // Returns true if this view should paint to layer. | 1202 // Returns true if this view should paint to layer. |
| 1188 bool ShouldPaintToLayer() const; | 1203 bool ShouldPaintToLayer() const; |
| (...skipping 209 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1398 // Next view to be focused when the Shift-Tab key combination is pressed. | 1413 // Next view to be focused when the Shift-Tab key combination is pressed. |
| 1399 View* previous_focusable_view_; | 1414 View* previous_focusable_view_; |
| 1400 | 1415 |
| 1401 // Whether this view can be focused. | 1416 // Whether this view can be focused. |
| 1402 bool focusable_; | 1417 bool focusable_; |
| 1403 | 1418 |
| 1404 // Whether this view is focusable if the user requires full keyboard access, | 1419 // Whether this view is focusable if the user requires full keyboard access, |
| 1405 // even though it may not be normally focusable. | 1420 // even though it may not be normally focusable. |
| 1406 bool accessibility_focusable_; | 1421 bool accessibility_focusable_; |
| 1407 | 1422 |
| 1423 // Whether this view can be painted | |
| 1424 bool painting_enabled_; | |
| 1425 | |
| 1408 // Context menus ------------------------------------------------------------- | 1426 // Context menus ------------------------------------------------------------- |
| 1409 | 1427 |
| 1410 // The menu controller. | 1428 // The menu controller. |
| 1411 ContextMenuController* context_menu_controller_; | 1429 ContextMenuController* context_menu_controller_; |
| 1412 | 1430 |
| 1413 // Drag and drop ------------------------------------------------------------- | 1431 // Drag and drop ------------------------------------------------------------- |
| 1414 | 1432 |
| 1415 DragController* drag_controller_; | 1433 DragController* drag_controller_; |
| 1416 | 1434 |
| 1417 // Accessibility ------------------------------------------------------------- | 1435 // Accessibility ------------------------------------------------------------- |
| 1418 | 1436 |
| 1419 // The Windows-specific accessibility implementation for this view. | 1437 // The Windows-specific accessibility implementation for this view. |
| 1420 #if defined(OS_WIN) | 1438 #if defined(OS_WIN) |
| 1421 scoped_refptr<NativeViewAccessibilityWin> native_view_accessibility_win_; | 1439 scoped_refptr<NativeViewAccessibilityWin> native_view_accessibility_win_; |
| 1422 #endif | 1440 #endif |
| 1423 | 1441 |
| 1424 DISALLOW_COPY_AND_ASSIGN(View); | 1442 DISALLOW_COPY_AND_ASSIGN(View); |
| 1425 }; | 1443 }; |
| 1426 | 1444 |
| 1427 } // namespace views | 1445 } // namespace views |
| 1428 | 1446 |
| 1429 #endif // VIEWS_VIEW_H_ | 1447 #endif // VIEWS_VIEW_H_ |
| OLD | NEW |