12440d2c1SMichael Pfeiffer /* 22440d2c1SMichael Pfeiffer 3*2ca13760SColdfirex Copyright (c) 2001, 2002 Haiku. 42440d2c1SMichael Pfeiffer 52440d2c1SMichael Pfeiffer Author: 62440d2c1SMichael Pfeiffer <YOUR NAME> 72440d2c1SMichael Pfeiffer 82440d2c1SMichael Pfeiffer Permission is hereby granted, free of charge, to any person obtaining a copy of 92440d2c1SMichael Pfeiffer this software and associated documentation files (the "Software"), to deal in 102440d2c1SMichael Pfeiffer the Software without restriction, including without limitation the rights to 112440d2c1SMichael Pfeiffer use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies 122440d2c1SMichael Pfeiffer of the Software, and to permit persons to whom the Software is furnished to do 132440d2c1SMichael Pfeiffer so, subject to the following conditions: 142440d2c1SMichael Pfeiffer 152440d2c1SMichael Pfeiffer The above copyright notice and this permission notice shall be included in all 162440d2c1SMichael Pfeiffer copies or substantial portions of the Software. 172440d2c1SMichael Pfeiffer 182440d2c1SMichael Pfeiffer THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 192440d2c1SMichael Pfeiffer IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 202440d2c1SMichael Pfeiffer FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 212440d2c1SMichael Pfeiffer AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 222440d2c1SMichael Pfeiffer LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 232440d2c1SMichael Pfeiffer OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 242440d2c1SMichael Pfeiffer THE SOFTWARE. 252440d2c1SMichael Pfeiffer 262440d2c1SMichael Pfeiffer */ 272440d2c1SMichael Pfeiffer 282440d2c1SMichael Pfeiffer #ifndef _TEMPLATE_H 292440d2c1SMichael Pfeiffer #define _TEMPLATE_H 302440d2c1SMichael Pfeiffer 312440d2c1SMichael Pfeiffer #include "PictureIterator.h" 322440d2c1SMichael Pfeiffer 332440d2c1SMichael Pfeiffer class Template : public PictureIterator 342440d2c1SMichael Pfeiffer { 352440d2c1SMichael Pfeiffer public: 362440d2c1SMichael Pfeiffer 372440d2c1SMichael Pfeiffer // BPicture playback handlers 382440d2c1SMichael Pfeiffer virtual void Op(int number); 392440d2c1SMichael Pfeiffer virtual void MovePenBy(BPoint delta); 402440d2c1SMichael Pfeiffer virtual void StrokeLine(BPoint start, BPoint end); 412440d2c1SMichael Pfeiffer virtual void StrokeRect(BRect rect); 422440d2c1SMichael Pfeiffer virtual void FillRect(BRect rect); 432440d2c1SMichael Pfeiffer virtual void StrokeRoundRect(BRect rect, BPoint radii); 442440d2c1SMichael Pfeiffer virtual void FillRoundRect(BRect rect, BPoint radii); 452440d2c1SMichael Pfeiffer virtual void StrokeBezier(BPoint *control); 462440d2c1SMichael Pfeiffer virtual void FillBezier(BPoint *control); 472440d2c1SMichael Pfeiffer virtual void StrokeArc(BPoint center, BPoint radii, float startTheta, float arcTheta); 482440d2c1SMichael Pfeiffer virtual void FillArc(BPoint center, BPoint radii, float startTheta, float arcTheta); 492440d2c1SMichael Pfeiffer virtual void StrokeEllipse(BPoint center, BPoint radii); 502440d2c1SMichael Pfeiffer virtual void FillEllipse(BPoint center, BPoint radii); 512440d2c1SMichael Pfeiffer virtual void StrokePolygon(int32 numPoints, BPoint *points, bool isClosed); 522440d2c1SMichael Pfeiffer virtual void FillPolygon(int32 numPoints, BPoint *points, bool isClosed); 532440d2c1SMichael Pfeiffer virtual void StrokeShape(BShape *shape); 542440d2c1SMichael Pfeiffer virtual void FillShape(BShape *shape); 552440d2c1SMichael Pfeiffer virtual void DrawString(char *string, float escapement_nospace, float escapement_space); 562440d2c1SMichael Pfeiffer virtual void DrawPixels(BRect src, BRect dest, int32 width, int32 height, int32 bytesPerRow, int32 pixelFormat, int32 flags, void *data); 572440d2c1SMichael Pfeiffer virtual void SetClippingRects(BRect *rects, uint32 numRects); 582440d2c1SMichael Pfeiffer virtual void ClipToPicture(BPicture *picture, BPoint point, bool clip_to_inverse_picture); 592440d2c1SMichael Pfeiffer virtual void PushState(); 602440d2c1SMichael Pfeiffer virtual void PopState(); 612440d2c1SMichael Pfeiffer virtual void EnterStateChange(); 622440d2c1SMichael Pfeiffer virtual void ExitStateChange(); 632440d2c1SMichael Pfeiffer virtual void EnterFontState(); 642440d2c1SMichael Pfeiffer virtual void ExitFontState(); 652440d2c1SMichael Pfeiffer virtual void SetOrigin(BPoint pt); 662440d2c1SMichael Pfeiffer virtual void SetPenLocation(BPoint pt); 672440d2c1SMichael Pfeiffer virtual void SetDrawingMode(drawing_mode mode); 682440d2c1SMichael Pfeiffer virtual void SetLineMode(cap_mode capMode, join_mode joinMode, float miterLimit); 692440d2c1SMichael Pfeiffer virtual void SetPenSize(float size); 702440d2c1SMichael Pfeiffer virtual void SetForeColor(rgb_color color); 712440d2c1SMichael Pfeiffer virtual void SetBackColor(rgb_color color); 722440d2c1SMichael Pfeiffer virtual void SetStipplePattern(pattern p); 732440d2c1SMichael Pfeiffer virtual void SetScale(float scale); 742440d2c1SMichael Pfeiffer virtual void SetFontFamily(char *family); 752440d2c1SMichael Pfeiffer virtual void SetFontStyle(char *style); 762440d2c1SMichael Pfeiffer virtual void SetFontSpacing(int32 spacing); 772440d2c1SMichael Pfeiffer virtual void SetFontSize(float size); 782440d2c1SMichael Pfeiffer virtual void SetFontRotate(float rotation); 792440d2c1SMichael Pfeiffer virtual void SetFontEncoding(int32 encoding); 802440d2c1SMichael Pfeiffer virtual void SetFontFlags(int32 flags); 812440d2c1SMichael Pfeiffer virtual void SetFontShear(float shear); 822440d2c1SMichael Pfeiffer virtual void SetFontFace(int32 flags); 832440d2c1SMichael Pfeiffer }; 842440d2c1SMichael Pfeiffer 85fcccd8b7SMichael Pfeiffer #endif // _TEMPLATE_H 86