Index: ui/views/view.h |
diff --git a/ui/views/view.h b/ui/views/view.h |
index 120cb40149f2f08a3205f0c2a51b678f71f01e2c..5f6f8335fbe17b4be30e16146b0ae03a5ba8689c 100644 |
--- a/ui/views/view.h |
+++ b/ui/views/view.h |
@@ -37,6 +37,7 @@ |
#include "ui/gfx/geometry/vector2d.h" |
#include "ui/gfx/native_widget_types.h" |
#include "ui/gfx/path.h" |
+#include "ui/views/paint_info.h" |
#include "ui/views/view_targeter.h" |
#include "ui/views/views_export.h" |
@@ -543,7 +544,7 @@ class VIEWS_EXPORT View : public ui::LayerDelegate, |
// for View coordinates and language direction as required, allows the View |
// to paint itself via the various OnPaint*() event handlers and then paints |
// the hierarchy beneath it. |
- void Paint(const ui::PaintContext& parent_context); |
+ void Paint(const PaintInfo& parent_paint_info); |
// The background object may be null. |
void SetBackground(std::unique_ptr<Background> b); |
@@ -1152,7 +1153,7 @@ class VIEWS_EXPORT View : public ui::LayerDelegate, |
// Responsible for calling Paint() on child Views. Override to control the |
// order child Views are painted. |
- virtual void PaintChildren(const ui::PaintContext& context); |
+ virtual void PaintChildren(const PaintInfo& info); |
// Override to provide rendering in any part of the View's bounds. Typically |
// this is the "contents" of the view. If you override this method you will |
@@ -1167,6 +1168,13 @@ class VIEWS_EXPORT View : public ui::LayerDelegate, |
// Override to paint a border not specified by SetBorder(). |
virtual void OnPaintBorder(gfx::Canvas* canvas); |
+ // Returns the type of scaling to be done for this View. Override this to |
+ // change the default scaling type from |kScaleToFit|. You would want to |
+ // override this for a view and return |kScaleToScaleFactor| in cases where |
+ // scaling should cause no distortion. Such as in the case of an image or |
+ // an icon. |
+ virtual PaintInfo::ScaleType GetPaintScaleType() const; |
+ |
// Accelerated painting ------------------------------------------------------ |
// Returns the offset from this view to the nearest ancestor with a layer. If |
@@ -1291,6 +1299,10 @@ class VIEWS_EXPORT View : public ui::LayerDelegate, |
friend class ViewLayerTest; |
friend class Widget; |
+ FRIEND_TEST_ALL_PREFIXES(ViewTest, PaintWithMovedViewUsesCache); |
+ FRIEND_TEST_ALL_PREFIXES(ViewTest, PaintWithMovedViewUsesCacheInRTL); |
+ FRIEND_TEST_ALL_PREFIXES(ViewTest, PaintWithUnknownInvalidation); |
+ |
// Painting ----------------------------------------------------------------- |
enum SchedulePaintType { |
@@ -1314,17 +1326,19 @@ class VIEWS_EXPORT View : public ui::LayerDelegate, |
// during painting. |
bool ShouldPaint() const; |
- // Returns the offset that should be used when constructing the paint context |
+ // Returns the bounds that should be used when constructing the |PaintInfo| |
// for this view. |
- gfx::Vector2d GetPaintContextOffset() const; |
+ gfx::Rect GetPaintRecordingBounds() const; |
// Adjusts the transform of |recorder| in advance of painting. |
- void SetupTransformRecorderForPainting(ui::TransformRecorder* recorder) const; |
+ void SetupTransformRecorderForPainting( |
+ const gfx::Vector2d& offset_from_parent, |
+ ui::TransformRecorder* recorder) const; |
// Recursively calls the painting method |func| on all non-layered children, |
// in Z order. |
- void RecursivePaintHelper(void (View::*func)(const ui::PaintContext&), |
- const ui::PaintContext& context); |
+ void RecursivePaintHelper(void (View::*func)(const PaintInfo&), |
+ const PaintInfo& info); |
// Invokes Paint() and, if necessary, PaintDebugRects(). Should be called |
// only on the root of a widget/layer. PaintDebugRects() is invoked as a |
@@ -1335,7 +1349,7 @@ class VIEWS_EXPORT View : public ui::LayerDelegate, |
// Draws a semitransparent rect to indicate the bounds of this view. |
// Recursively does the same for all children. Invoked only with |
// --draw-view-bounds-rects. |
- void PaintDebugRects(const ui::PaintContext& parent_context); |
+ void PaintDebugRects(const PaintInfo& paint_info); |
// Tree operations ----------------------------------------------------------- |