#ifndef SkRectShape_DEFINED #define SkRectShape_DEFINED #include "SkShape.h" #include "SkPaint.h" #include "SkSize.h" class SkPaintShape : public SkShape { public: SkPaintShape(); SkPaint& paint() { return fPaint; } const SkPaint& paint() const { return fPaint; } // overrides virtual void flatten(SkFlattenableWriteBuffer&); protected: SkPaintShape(SkFlattenableReadBuffer& buffer); private: SkPaint fPaint; typedef SkShape INHERITED; }; class SkRectShape : public SkPaintShape { public: SkRectShape(); void setRect(const SkRect&); void setOval(const SkRect&); void setCircle(SkScalar x, SkScalar y, SkScalar radius); void setRRect(const SkRect&, SkScalar rx, SkScalar ry); // overrides virtual Factory getFactory(); virtual void flatten(SkFlattenableWriteBuffer&); protected: SkRectShape(SkFlattenableReadBuffer&); // overrides virtual void onDraw(SkCanvas*); private: SkRect fBounds; SkSize fRadii; static SkFlattenable* CreateProc(SkFlattenableReadBuffer&); typedef SkPaintShape INHERITED; }; #endif