diff options
Diffstat (limited to 'gfx/canvas.h')
-rw-r--r-- | gfx/canvas.h | 124 |
1 files changed, 11 insertions, 113 deletions
diff --git a/gfx/canvas.h b/gfx/canvas.h index 53661db..589d77d 100644 --- a/gfx/canvas.h +++ b/gfx/canvas.h @@ -5,129 +5,27 @@ #ifndef GFX_CANVAS_H_ #define GFX_CANVAS_H_ -#include "base/basictypes.h" -#include "gfx/canvas_2.h" -#include "skia/ext/platform_canvas.h" - -#if defined(OS_POSIX) && !defined(OS_MACOSX) -typedef struct _GdkPixbuf GdkPixbuf; -#endif +#include "gfx/canvas_skia.h" namespace gfx { -// Canvas is a SkCanvas subclass that provides a number of methods for common -// operations used throughout an application built using base/gfx and app/gfx. -// -// All methods that take integer arguments (as is used throughout views) -// end with Int. If you need to use methods provided by the superclass -// you'll need to do a conversion. In particular you'll need to use -// macro SkIntToScalar(xxx), or if converting from a scalar to an integer -// SkScalarRound. -// -// A handful of methods in this class are overloaded providing an additional -// argument of type SkXfermode::Mode. SkXfermode::Mode specifies how the -// source and destination colors are combined. Unless otherwise specified, -// the variant that does not take a SkXfermode::Mode uses a transfer mode -// of kSrcOver_Mode. -class Canvas : public skia::PlatformCanvas, - public Canvas2 { +// Temporary compatibility shim, remove once Canvas2->Canvas. +class Canvas : public CanvasSkia { public: - // Creates an empty Canvas. Callers must use initialize before using the - // canvas. - Canvas(); - - Canvas(int width, int height, bool is_opaque); - - virtual ~Canvas(); - - // Compute the size required to draw some text with the provided font. - // Attempts to fit the text with the provided width and height. Increases - // height and then width as needed to make the text fit. This method - // supports multiple lines. - static void SizeStringInt(const std::wstring& text, const gfx::Font& font, - int* width, int* height, int flags); - - // Returns the default text alignment to be used when drawing text on a - // gfx::Canvas based on the directionality of the system locale language. This - // function is used by gfx::Canvas::DrawStringInt when the text alignment is - // not specified. - // - // This function returns either gfx::Canvas::TEXT_ALIGN_LEFT or - // gfx::Canvas::TEXT_ALIGN_RIGHT. - static int DefaultCanvasTextAlignment(); - -#if defined(OS_POSIX) && !defined(OS_MACOSX) - // Draw the pixbuf in its natural size at (x, y). - void DrawGdkPixbuf(GdkPixbuf* pixbuf, int x, int y); -#endif - -#ifdef OS_WIN // Only implemented on Windows for now. - // Draws text with a 1-pixel halo around it of the given color. It allows - // ClearType to be drawn to an otherwise transparenct bitmap for drag images. - // Drag images have only 1-bit of transparency, so we don't do any fancy - // blurring. - void DrawStringWithHalo(const std::wstring& text, - const gfx::Font& font, - const SkColor& text_color, - const SkColor& halo_color, - int x, int y, int w, int h, int flags); -#endif + Canvas(int width, int height, bool is_opaque) + : CanvasSkia(width, height, is_opaque) { + } + Canvas() : CanvasSkia() {} // Overridden from Canvas2: - virtual bool GetClipRect(gfx::Rect* clip_rect); - virtual bool ClipRectInt(int x, int y, int w, int h); - virtual bool IntersectsClipRectInt(int x, int y, int w, int h); - virtual void TranslateInt(int x, int y); - virtual void ScaleInt(int x, int y); - virtual void FillRectInt(int x, int y, int w, int h, - const SkPaint& paint); - virtual void FillRectInt(const SkColor& color, int x, int y, int w, - int h); - virtual void DrawRectInt(const SkColor& color, int x, int y, int w, - int h); - virtual void DrawRectInt(const SkColor& color, int x, int y, int w, int h, - SkXfermode::Mode mode); - virtual void DrawLineInt(const SkColor& color, int x1, int y1, int x2, - int y2); - virtual void DrawBitmapInt(const SkBitmap& bitmap, int x, int y); - virtual void DrawBitmapInt(const SkBitmap& bitmap, int x, int y, - const SkPaint& paint); - virtual void DrawBitmapInt(const SkBitmap& bitmap, int src_x, int src_y, - int src_w, int src_h, int dest_x, int dest_y, - int dest_w, int dest_h, bool filter); - virtual void DrawBitmapInt(const SkBitmap& bitmap, int src_x, int src_y, - int src_w, int src_h, int dest_x, int dest_y, - int dest_w, int dest_h, bool filter, - const SkPaint& paint); - virtual void DrawStringInt(const std::wstring& text, const gfx::Font& font, - const SkColor& color, int x, int y, int w, - int h); - virtual void DrawStringInt(const std::wstring& text, const gfx::Font& font, - const SkColor& color, - const gfx::Rect& display_rect); - virtual void DrawStringInt(const std::wstring& text, const gfx::Font& font, - const SkColor& color, int x, int y, int w, int h, - int flags); - virtual void DrawFocusRect(int x, int y, int width, int height); - virtual void TileImageInt(const SkBitmap& bitmap, int x, int y, int w, int h); - virtual void TileImageInt(const SkBitmap& bitmap, int src_x, int src_y, - int dest_x, int dest_y, int w, int h); - virtual SkBitmap ExtractBitmap() const; - virtual Canvas* AsCanvas(); + Canvas* AsCanvas() { + return this; + } private: -#if defined(OS_WIN) - // Draws text with the specified color, font and location. The text is - // aligned to the left, vertically centered, clipped to the region. If the - // text is too big, it is truncated and '...' is added to the end. - void DrawStringInt(const std::wstring& text, HFONT font, - const SkColor& color, int x, int y, int w, int h, - int flags); -#endif - DISALLOW_COPY_AND_ASSIGN(Canvas); }; -} // namespace gfx; +} #endif // GFX_CANVAS_H_ |