diff options
author | Martin Kretzschmar <mkretzschmar@src.gnome.org> | 2004-05-17 18:12:38 (GMT) |
---|---|---|
committer | Martin Kretzschmar <mkretzschmar@src.gnome.org> | 2004-05-17 18:12:38 (GMT) |
commit | bace4ea18c03bfcaadab55300bc15290f87540c7 (patch) | |
tree | 48c9c670e4dde608d50fe68e00e783f18af8697b /pdf/splash/SplashState.h | |
parent | ad63666daeeda50acc7630132d61fe044634fddd (diff) |
Initial revision
Diffstat (limited to 'pdf/splash/SplashState.h')
-rw-r--r-- | pdf/splash/SplashState.h | 88 |
1 files changed, 88 insertions, 0 deletions
diff --git a/pdf/splash/SplashState.h b/pdf/splash/SplashState.h new file mode 100644 index 0000000..8fcb54b --- /dev/null +++ b/pdf/splash/SplashState.h @@ -0,0 +1,88 @@ +//======================================================================== +// +// SplashState.h +// +//======================================================================== + +#ifndef SPLASHSTATE_H +#define SPLASHSTATE_H + +#include <aconf.h> + +#ifdef USE_GCC_PRAGMAS +#pragma interface +#endif + +#include "SplashTypes.h" + +class SplashPattern; +class SplashScreen; +class SplashClip; + +//------------------------------------------------------------------------ +// line cap values +//------------------------------------------------------------------------ + +#define splashLineCapButt 0 +#define splashLineCapRound 1 +#define splashLineCapProjecting 2 + +//------------------------------------------------------------------------ +// line join values +//------------------------------------------------------------------------ + +#define splashLineJoinMiter 0 +#define splashLineJoinRound 1 +#define splashLineJoinBevel 2 + +//------------------------------------------------------------------------ +// SplashState +//------------------------------------------------------------------------ + +class SplashState { +public: + + // Create a new state object, initialized with default settings. + SplashState(int width, int height); + + // Copy a state object. + SplashState *copy() { return new SplashState(this); } + + ~SplashState(); + + // Set the stroke pattern. This does not copy <strokePatternA>. + void setStrokePattern(SplashPattern *strokePatternA); + + // Set the fill pattern. This does not copy <fillPatternA>. + void setFillPattern(SplashPattern *fillPatternA); + + // Set the screen. This does not copy <screenA>. + void setScreen(SplashScreen *screenA); + + // Set the line dash pattern. This copies the <lineDashA> array. + void setLineDash(SplashCoord *lineDashA, int lineDashLengthA, + SplashCoord lineDashPhaseA); + +private: + + SplashState(SplashState *state); + + SplashPattern *strokePattern; + SplashPattern *fillPattern; + SplashScreen *screen; + SplashCoord lineWidth; + int lineCap; + int lineJoin; + SplashCoord miterLimit; + SplashCoord flatness; + SplashCoord *lineDash; + int lineDashLength; + SplashCoord lineDashPhase; + SplashClip *clip; + + SplashState *next; // used by Splash class + + friend class Splash; +}; + +#endif |