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 397 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
408 // The default implementation simply returns the first View found for that | 408 // The default implementation simply returns the first View found for that |
409 // group. | 409 // group. |
410 virtual View* GetSelectedViewForGroup(int group); | 410 virtual View* GetSelectedViewForGroup(int group); |
411 | 411 |
412 // Coordinate conversion ----------------------------------------------------- | 412 // Coordinate conversion ----------------------------------------------------- |
413 | 413 |
414 // Note that the utility coordinate conversions functions always operate on | 414 // Note that the utility coordinate conversions functions always operate on |
415 // the mirrored position of the child Views if the parent View uses a | 415 // the mirrored position of the child Views if the parent View uses a |
416 // right-to-left UI layout. | 416 // right-to-left UI layout. |
417 | 417 |
418 // Convert a point from source coordinate system to dst coordinate system. | 418 // Convert a point from the coordinate system of one View to another. |
419 // | 419 // |
420 // |src| and |dst| needs to be in the same widget, but doesn't need to be in | 420 // |source| and |target| must be in the same widget, but doesn't need to be in |
421 // the same view hierarchy. | 421 // the same view hierarchy. |
422 // If |src| and |dst| are not in the same widget, the result is undefined. | 422 // |source| can be NULL in which case it means the screen coordinate system. |
423 // Source can be NULL in which case it means the screen coordinate system | 423 static void ConvertPointToView(const View* source, |
424 static void ConvertPointToView(const View* src, | 424 const View* target, |
425 const View* dst, | |
426 gfx::Point* point); | 425 gfx::Point* point); |
427 | 426 |
428 // Convert a point from the coordinate system of a View to that of the | 427 // Convert a point from a View's coordinate system to that of its Widget. |
429 // Widget. This is useful for example when sizing HWND children of the | |
430 // Widget that don't know about the View hierarchy and need to be placed | |
431 // relative to the Widget that is their parent. | |
432 static void ConvertPointToWidget(const View* src, gfx::Point* point); | 428 static void ConvertPointToWidget(const View* src, gfx::Point* point); |
433 | 429 |
434 // Convert a point from a view Widget to a View dest | 430 // Convert a point from the coordinate system of a View's Widget to that |
| 431 // View's coordinate system. |
435 static void ConvertPointFromWidget(const View* dest, gfx::Point* p); | 432 static void ConvertPointFromWidget(const View* dest, gfx::Point* p); |
436 | 433 |
437 // Convert a point from the coordinate system of a View to that of the | 434 // Convert a point from a View's coordinate system to that of the screen. |
438 // screen. This is useful for example when placing popup windows. | |
439 static void ConvertPointToScreen(const View* src, gfx::Point* point); | 435 static void ConvertPointToScreen(const View* src, gfx::Point* point); |
440 | 436 |
441 // 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 |
442 // system, to convert it into the parent's coordinate system. | 438 // system, to convert it into the parent's coordinate system. |
443 gfx::Rect ConvertRectToParent(const gfx::Rect& rect) const; | 439 gfx::Rect ConvertRectToParent(const gfx::Rect& rect) const; |
444 | 440 |
445 // Converts a rectangle from this views coordinate system to its widget | 441 // Converts a rectangle from this views coordinate system to its widget |
446 // cooridnate system. | 442 // coordinate system. |
447 gfx::Rect ConvertRectToWidget(const gfx::Rect& rect) const; | 443 gfx::Rect ConvertRectToWidget(const gfx::Rect& rect) const; |
448 | 444 |
449 // Painting ------------------------------------------------------------------ | 445 // Painting ------------------------------------------------------------------ |
450 | 446 |
451 // Mark all or part of the View's bounds as dirty (needing repaint). | 447 // Mark all or part of the View's bounds as dirty (needing repaint). |
452 // |r| is in the View's coordinates. | 448 // |r| is in the View's coordinates. |
453 // Rectangle |r| should be in the view's coordinate system. The | 449 // Rectangle |r| should be in the view's coordinate system. The |
454 // transformations are applied to it to convert it into the parent coordinate | 450 // transformations are applied to it to convert it into the parent coordinate |
455 // system before propagating SchedulePaint up the view hierarchy. | 451 // system before propagating SchedulePaint up the view hierarchy. |
456 // TODO(beng): Make protected. | 452 // TODO(beng): Make protected. |
(...skipping 738 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1195 // Transformations ----------------------------------------------------------- | 1191 // Transformations ----------------------------------------------------------- |
1196 | 1192 |
1197 // Returns in |transform| the transform to get from coordinates of |ancestor| | 1193 // Returns in |transform| the transform to get from coordinates of |ancestor| |
1198 // to this. Returns true if |ancestor| is found. If |ancestor| is not found, | 1194 // to this. Returns true if |ancestor| is found. If |ancestor| is not found, |
1199 // or NULL, |transform| is set to convert from root view coordinates to this. | 1195 // or NULL, |transform| is set to convert from root view coordinates to this. |
1200 bool GetTransformRelativeTo(const View* ancestor, | 1196 bool GetTransformRelativeTo(const View* ancestor, |
1201 ui::Transform* transform) const; | 1197 ui::Transform* transform) const; |
1202 | 1198 |
1203 // Coordinate conversion ----------------------------------------------------- | 1199 // Coordinate conversion ----------------------------------------------------- |
1204 | 1200 |
1205 // This is the actual implementation for ConvertPointToView() | |
1206 // Attempts a parent -> child conversion and then a | |
1207 // child -> parent conversion if try_other_direction is true | |
1208 // Applies necessary transformations during the conversion. | |
1209 static void ConvertPointToView(const View* src, | |
1210 const View* dst, | |
1211 gfx::Point* point, | |
1212 bool try_other_direction); | |
1213 | |
1214 // Convert a point in the view's coordinate to an ancestor view's coordinate | 1201 // Convert a point in the view's coordinate to an ancestor view's coordinate |
1215 // system using necessary transformations. Returns whether the point was | 1202 // system using necessary transformations. Returns whether the point was |
1216 // successfully converted to the ancestor's coordinate system. | 1203 // successfully converted to the ancestor's coordinate system. |
1217 bool ConvertPointForAncestor(const View* ancestor, gfx::Point* point) const; | 1204 bool ConvertPointForAncestor(const View* ancestor, gfx::Point* point) const; |
1218 | 1205 |
1219 // Convert a point in the ancestor's coordinate system to the view's | 1206 // Convert a point in the ancestor's coordinate system to the view's |
1220 // coordinate system using necessary transformations. Returns whether the | 1207 // coordinate system using necessary transformations. Returns whether the |
1221 // point was successfully from the ancestor's coordinate system to the view's | 1208 // point was successfully from the ancestor's coordinate system to the view's |
1222 // coordinate system. | 1209 // coordinate system. |
1223 bool ConvertPointFromAncestor(const View* ancestor, gfx::Point* point) const; | 1210 bool ConvertPointFromAncestor(const View* ancestor, gfx::Point* point) const; |
(...skipping 220 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1444 base::win::ScopedComPtr<NativeViewAccessibilityWin> | 1431 base::win::ScopedComPtr<NativeViewAccessibilityWin> |
1445 native_view_accessibility_win_; | 1432 native_view_accessibility_win_; |
1446 #endif | 1433 #endif |
1447 | 1434 |
1448 DISALLOW_COPY_AND_ASSIGN(View); | 1435 DISALLOW_COPY_AND_ASSIGN(View); |
1449 }; | 1436 }; |
1450 | 1437 |
1451 } // namespace views | 1438 } // namespace views |
1452 | 1439 |
1453 #endif // VIEWS_VIEW_H_ | 1440 #endif // VIEWS_VIEW_H_ |
OLD | NEW |