summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJesper Staun Hansen <jesper@staunhansen.dk>2018-04-30 19:33:27 +0000
committerJesper Staun Hansen <jesper@staunhansen.dk>2018-04-30 19:33:27 +0000
commitdd25c9a8a7b604793577227edf9f5a057eb94d0d (patch)
tree3f9ce12d0118f2ac9cf6e46a6b51205a56e4f157 /src
parentMerge branch 'master' of gitlab.com:inkscape/inkscape (diff)
downloadinkscape-dd25c9a8a7b604793577227edf9f5a057eb94d0d.tar.gz
inkscape-dd25c9a8a7b604793577227edf9f5a057eb94d0d.zip
Add --export-xaml as option
Diffstat (limited to 'src')
-rw-r--r--src/main.cpp30
1 files changed, 30 insertions, 0 deletions
diff --git a/src/main.cpp b/src/main.cpp
index db165f6aa..28d29e729 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -156,6 +156,7 @@ enum {
SP_ARG_EXPORT_LATEX,
SP_ARG_EXPORT_EMF,
SP_ARG_EXPORT_WMF,
+ SP_ARG_EXPORT_XAML,
SP_ARG_EXPORT_TEXT_TO_PATH,
SP_ARG_EXPORT_IGNORE_FILTERS,
SP_ARG_EXTENSIONDIR,
@@ -187,6 +188,7 @@ static int do_export_svg(SPDocument* doc);
static int do_export_ps_pdf(SPDocument* doc, gchar const* uri, char const *mime);
static int do_export_emf(SPDocument* doc, gchar const* uri, char const *mime);
static int do_export_wmf(SPDocument* doc, gchar const* uri, char const *mime);
+static int do_export_xaml(SPDocument* doc, gchar const* uri, char const *mime);
static int do_export_win_metafile_common(SPDocument* doc, gchar const* uri, char const *mime);
static void do_query_dimension (SPDocument *doc, bool extent, Geom::Dim2 const axis, const gchar *id);
static void do_query_all (SPDocument *doc);
@@ -217,6 +219,7 @@ static gchar *sp_export_pdf = NULL;
static gchar *sp_export_pdf_version = NULL;
static gchar *sp_export_emf = NULL;
static gchar *sp_export_wmf = NULL;
+static gchar *sp_export_xaml = NULL;
static gboolean sp_export_text_to_path = FALSE;
static gboolean sp_export_ignore_filters = FALSE;
static gboolean sp_export_font = FALSE;
@@ -271,6 +274,7 @@ static void resetCommandlineGlobals() {
sp_export_pdf_version = NULL;
sp_export_emf = NULL;
sp_export_wmf = NULL;
+ sp_export_xaml = NULL;
sp_export_text_to_path = FALSE;
sp_export_ignore_filters = FALSE;
sp_export_font = FALSE;
@@ -452,6 +456,11 @@ struct poptOption options[] = {
N_("Export document to a Windows Metafile (WMF) File"),
N_("FILENAME")},
+ {"export-xaml", 0,
+ POPT_ARG_STRING, &sp_export_xaml, SP_ARG_EXPORT_XAML,
+ N_("Export document to a eXtensible Application Markup Language (XAML) File"),
+ N_("FILENAME")},
+
{"export-text-to-path", 'T',
POPT_ARG_NONE, &sp_export_text_to_path, SP_ARG_EXPORT_TEXT_TO_PATH,
N_("Convert text object to paths on export (PS, EPS, PDF, SVG)"),
@@ -705,6 +714,7 @@ main(int argc, char **argv)
|| !strncmp(argv[i], "--export-emf", 12)
|| !strcmp(argv[i], "-m")
|| !strncmp(argv[i], "--export-wmf", 12)
+ || !strncmp(argv[i], "--export-xaml", 13)
|| !strcmp(argv[i], "-W")
|| !strncmp(argv[i], "--query-width", 13)
|| !strcmp(argv[i], "-H")
@@ -1072,6 +1082,9 @@ static int sp_process_file_list(std::vector<gchar*> fl)
if (sp_export_wmf) {
retVal |= do_export_wmf(doc, sp_export_wmf, "image/x-wmf");
}
+ if (sp_export_xaml) {
+ retVal |= do_export_xaml(doc, sp_export_xaml, "text/xml+xaml");
+ }
if (sp_query_all) {
do_query_all (doc);
} else if (sp_query_width || sp_query_height) {
@@ -1824,6 +1837,23 @@ static int do_export_wmf(SPDocument* doc, gchar const* uri, char const* mime)
return do_export_win_metafile_common(doc, uri, mime);
}
+/**
+ * Export a document to XAML
+ *
+ * \param doc Document to export.
+ * \param uri URI to export to.
+ * \param mime MIME type to export as (should be "text/xml+xaml)
+ */
+
+static int do_export_xaml(SPDocument* doc, gchar const* uri, char const* mime)
+{
+ if(!uri || uri[0] == '\0') {
+ g_warning("No filename provided for xaml export.");
+ return 0;
+ }
+ return do_export_win_metafile_common(doc, uri, mime);
+}
+
#ifdef WIN32
bool replaceArgs( int& argc, char**& argv )
{