Mako 8.2.0 API
MakoCore SDK API Documentation
Loading...
Searching...
No Matches
svggenerator.h
Go to the documentation of this file.
1/*
2 * Copyright (C) 2014-2025 Global Graphics Software Ltd. All rights reserved.
3 */
4
5#ifndef SVGGENERATOR_H
6#define SVGGENERATOR_H
7
8#include <jawsmako/jawsmako.h>
10
11namespace JawsMako
12{
13 using namespace EDL;
14
15 class ISVGGenerator;
17
29 class ISVGGenerator : public IRCObject
30 {
31 public:
32 virtual ~ISVGGenerator() {}
33
43 static JAWSMAKO_API ISVGGeneratorPtr create(const IJawsMakoPtr &jawsMako, const U8String &resourcePrefix = U8String(), const IProgressMonitorPtr &progressMonitor = IProgressMonitorPtr ());
44
51 virtual IRAInputStreamPtr generateSVG(const IDOMNodePtr &node) = 0;
52
59 virtual void generateSVG(const IDOMNodePtr &node, const IOutputStreamPtr &outputStream) = 0;
60
67 virtual IInputStreamPtr getResource(const U8String &name) = 0;
68
74 {
75 public:
77 IInputStreamPtr resource;
78
79 bool operator== (const CResourceEntry &other) const
80 {
81 return (other.name == name)
82 && (other.resource == resource);
83 }
84
85 bool operator!= (const CResourceEntry &other) const
86 {
87 return ! (*this == other);
88 }
89
90 };
92
97 virtual void getResources(CSVGResourceVect &resources) = 0;
98
99 /*
100 * Configuration.
101 */
102
106 typedef enum SVGVersion
107
108 {
112
119 virtual void setVersion (SVGVersion version) = 0;
120
127 virtual void setResolution(float resolution) = 0;
128
139 virtual void setEnableImageDownsampling(bool downsample) = 0;
140
149 virtual void setOptionalContent(const IOptionalContentPtr &optionalContent) = 0;
150
161
162 typedef U8String (*UrlCallbackForTarget)(void *priv, DOMid target);
163 typedef U8String (*UrlCallbackForPage)(void *priv, uint32 pageNumber);
164
179 virtual void setTargetResolutionCallback(void *priv, UrlCallbackForTarget callback) = 0;
180
195 virtual void setPageResolutionCallback(void *priv, UrlCallbackForPage callback) = 0;
196
209 virtual void setVisibleZeroWidthLines(bool visible) = 0;
210 };
211}
212
213#endif
Definition edlvector.h:30
Base class Interface for all Reference Counted objects.
Definition ircobject.h:35
Resource entry.
Definition svggenerator.h:74
U8String name
Definition svggenerator.h:76
bool operator==(const CResourceEntry &other) const
Definition svggenerator.h:79
bool operator!=(const CResourceEntry &other) const
Definition svggenerator.h:85
IInputStreamPtr resource
Definition svggenerator.h:77
An SVG generator for JawsMako, allowing simple generation of SVG fragments for individual DOM nodes o...
Definition svggenerator.h:30
U8String(* UrlCallbackForPage)(void *priv, uint32 pageNumber)
Definition svggenerator.h:163
virtual void setTargetResolutionCallback(void *priv, UrlCallbackForTarget callback)=0
Set a callback to provide the Url (absolute or relative) of the object where a target may be found.
virtual void setOptionalContentUsage(eOptionalContentEvent usage)=0
Set the usage of the optional content items that should be retained.
CEDLVector< CResourceEntry > CSVGResourceVect
Definition svggenerator.h:91
virtual IRAInputStreamPtr generateSVG(const IDOMNodePtr &node)=0
Generate SVG for the given DOM Node, returning the result in a stream.
virtual void setVisibleZeroWidthLines(bool visible)=0
Sets whether to generate visible zero-width lines.
static JAWSMAKO_API ISVGGeneratorPtr create(const IJawsMakoPtr &jawsMako, const U8String &resourcePrefix=U8String(), const IProgressMonitorPtr &progressMonitor=IProgressMonitorPtr())
Create a SVG generator instance.
virtual void generateSVG(const IDOMNodePtr &node, const IOutputStreamPtr &outputStream)=0
Alternate form of generateSVG() when an existing stream should be used.
virtual void setPageResolutionCallback(void *priv, UrlCallbackForPage callback)=0
Set a callback to provide the Url (absolute or relative) of the given page number.
virtual void setEnableImageDownsampling(bool downsample)=0
Enable or disable image downsampling.
virtual void setVersion(SVGVersion version)=0
Set the output version of the generated SVG.
virtual void getResources(CSVGResourceVect &resources)=0
Get all the resources in a vector.
U8String(* UrlCallbackForTarget)(void *priv, DOMid target)
Definition svggenerator.h:162
virtual IInputStreamPtr getResource(const U8String &name)=0
Get the stream for a named resource. An exception will be thrown if the resource cannot be found.
SVGVersion
The SVG available versions for which the output is generated.
Definition svggenerator.h:108
@ SVGVer_2_0
SVG 2.0, which is not yet widely supported.
Definition svggenerator.h:110
@ SVGVer_1_1
SVG 1.1, the default version.
Definition svggenerator.h:109
virtual void setOptionalContent(const IOptionalContentPtr &optionalContent)=0
Set the optional content for the document.
virtual ~ISVGGenerator()
Definition svggenerator.h:32
virtual void setResolution(float resolution)=0
Set the target resolution for display.
unsigned int uint32
Definition edltypes.h:34
EDL::uint64 DOMid
Type used to uniquely idenitify a DOM node.
Definition idomid.h:17
EDLSysString U8String
A UTF-8 String.
Definition types.h:144
JawsMako interactive features.
Definition apexcustompostprocess.h:17
EDL::IProgressMonitorPtr IProgressMonitorPtr
Definition types.h:85
eOptionalContentEvent
Optional content Event types.
Definition types.h:193
#define DECL_SMART_PTR(cls)
Definition smartptr.h:211
#define JAWSMAKO_API
Definition types.h:29