summaryrefslogtreecommitdiff
path: root/test/cdtest/drivers.c
diff options
context:
space:
mode:
Diffstat (limited to 'test/cdtest/drivers.c')
-rw-r--r--test/cdtest/drivers.c26
1 files changed, 26 insertions, 0 deletions
diff --git a/test/cdtest/drivers.c b/test/cdtest/drivers.c
index 62e92aa..dd23331 100644
--- a/test/cdtest/drivers.c
+++ b/test/cdtest/drivers.c
@@ -33,6 +33,7 @@ extern tCTC ctgc;
#define DGN
#define PDF
#define CDDBG
+#define SVG
static int LoadCanvas(char* ctx_name, cdContext* ctx, char *filename)
{
@@ -197,6 +198,27 @@ static int fEPS(void)
}
#endif
+/*-------------------------------------------------------------------------*/
+/* Copia o conteudo do canvas para um arquivo SVG. */
+/*-------------------------------------------------------------------------*/
+#ifdef SVG
+#include <cdsvg.h>
+
+static int fSVG(void)
+{
+ char filename[1024]="*.svg";
+ char data[1024];
+
+ if (IupGetFile(filename)>=0)
+ {
+ sprintf(data, "%s -s%d", filename, (int)(ctgc.res * 25.4));
+ return SaveCanvas("CD_SVG", CD_SVG, data);
+ }
+
+ return IUP_DEFAULT;
+}
+#endif
+
#ifdef PDF
#include <cdpdf.h>
@@ -428,6 +450,10 @@ void DriversInit(void)
IupSetFunction("cmdPS", (Icallback) fPS);
IupSetFunction("cmdEPS", (Icallback) fEPS);
#endif
+#ifdef SVG
+ IupSetAttribute(IupGetHandle("itSVG"), IUP_ACTIVE, IUP_YES);
+ IupSetFunction("cmdSVG", (Icallback) fSVG);
+#endif
#ifdef PDF
IupSetAttribute(IupGetHandle("itPDF"), IUP_ACTIVE, IUP_YES);
IupSetFunction("cmdPDF", (Icallback) fPDF);