xref: /haiku/headers/private/print/Template.h (revision 268f99dd7dc4bd7474a8bd2742d3f1ec1de6752a)
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