summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorBob Jamison <ishmalius@gmail.com>2006-06-30 01:46:47 +0000
committerishmal <ishmal@users.sourceforge.net>2006-06-30 01:46:47 +0000
commit0b6e69ca99d195162ec513304b76e6edf62ee2b4 (patch)
treeae1137163ef3225225e0f8c352fa2510bcad35b4 /src
parentFix integer padding (diff)
downloadinkscape-0b6e69ca99d195162ec513304b76e6edf62ee2b4.tar.gz
inkscape-0b6e69ca99d195162ec513304b76e6edf62ee2b4.zip
New placeholder code for gradients
(bzr r1325)
Diffstat (limited to 'src')
-rw-r--r--src/extension/internal/odf.cpp64
1 files changed, 58 insertions, 6 deletions
diff --git a/src/extension/internal/odf.cpp b/src/extension/internal/odf.cpp
index 9a8d9ecfa..7610caef1 100644
--- a/src/extension/internal/odf.cpp
+++ b/src/extension/internal/odf.cpp
@@ -1470,14 +1470,13 @@ bool OdfOutput::writeStyle(Writer &outs)
}
//## Dump our gradient table
+ int gradientCount = 0;
outs.printf("\n");
outs.printf("<!-- ####### Gradients from Inkscape document ####### -->\n");
std::vector<GradientInfo>::iterator giter;
for (giter = gradientTable.begin() ; giter != gradientTable.end() ; giter++)
{
GradientInfo gi(*giter);
- outs.printf("<draw:gradient draw:name=\"%s\" ", gi.name.c_str());
- outs.printf("draw:style=\"%s\" ", gi.style.c_str());
if (gi.style == "linear")
{
/*
@@ -1491,7 +1490,28 @@ bool OdfOutput::writeStyle(Writer &outs)
draw:angle="150" draw:border="0%"/>
===================================================================
*/
- outs.printf("draw:display-name=\"linear borderless\" ");
+ outs.printf("<svg:linearGradient ");
+ outs.printf("id=\"%#s_g\" ", gi.name.c_str());
+ outs.printf("draw:name=\"%#s_g\"\n", gi.name.c_str());
+ outs.printf("draw:display-name=\"imported linear %d\"\n",
+ gradientCount);
+ outs.printf(" svg:x1=\"%05.3f\" svg:y1=\"%05.3f\"\n",
+ gi.x1, gi.y1);
+ outs.printf(" svg:x2=\"%05.3f\" svg:y2=\"%05.3f\">\n",
+ gi.x2, gi.y2);
+ outs.printf(" <svg:stop\n");
+ outs.printf(" svg:stop-color=\"#%06lx\"\n",
+ 0 /*gi.startColor*/);
+ outs.printf(" svg:stop-opacity=\"%f\"\n",
+ 0 /*gi.startOpacity*/);
+ outs.printf(" svg:offset=\"0\"/>\n");
+ outs.printf(" <svg:stop\n");
+ outs.printf(" svg:stop-color=\"#%06lx\"\n",
+ 0 /*gi.stopColor*/);
+ outs.printf(" svg:stop-opacity=\"%f\"\n",
+ 0 /*gi.stopOpacity*/);
+ outs.printf(" svg:offset=\"0\"/>\n");
+ outs.printf("</svg:linearGradient>\n");
}
else if (gi.style == "radial")
{
@@ -1507,14 +1527,46 @@ bool OdfOutput::writeStyle(Writer &outs)
draw:border="0%"/>
===================================================================
*/
- outs.printf("draw:display-name=\"radial borderless\" ");
- outs.printf("draw:cx=\".2f%%\" draw:cy=\".2f%%\" ", gi.cx, gi.cy);
+ outs.printf("<svg:radialGradient ");
+ outs.printf("id=\"%#s_g\" ", gi.name.c_str());
+ outs.printf("draw:name=\"%#s_g\"\n", gi.name.c_str());
+ outs.printf("draw:display-name=\"imported radial %d\"\n",
+ gradientCount);
+ outs.printf(" svg:cx=\"%05.3f\" svg:cy=\"%05.3f\"\n",
+ gi.cx, gi.cy);
+ outs.printf(" svg:fx=\"%05.3f\" svg:fy=\"%05.3f\"\n",
+ gi.fx, gi.fy);
+ outs.printf(" svg:r=\"%05.3f\">\n",
+ gi.r);
+ outs.printf(" <svg:stop\n");
+ outs.printf(" svg:stop-color=\"#%06lx\"\n",
+ 0 /*gi.startColor*/);
+ outs.printf(" svg:stop-opacity=\"%f\"\n",
+ 0 /*gi.startOpacity*/);
+ outs.printf(" svg:offset=\"0\"/>\n");
+ outs.printf(" <svg:stop\n");
+ outs.printf(" svg:stop-color=\"#%06lx\"\n",
+ 0 /*gi.stopColor*/);
+ outs.printf(" svg:stop-opacity=\"%f\"\n",
+ 0 /*gi.stopOpacity*/);
+ outs.printf(" svg:offset=\"0\"/>\n");
+ outs.printf("</svg:radialGradient>\n");
}
else
{
g_warning("unsupported gradient style '%s'", gi.style.c_str());
}
- outs.printf("/>\n");
+ outs.printf("<style:style style:name=\"%#s\" style:family=\"graphic\" ",
+ gi.name.c_str());
+ outs.printf("style:parent-style-name=\"standard\">\n");
+ outs.printf(" <style:graphic-properties draw:fill=\"gradient\" ");
+ outs.printf("draw:fill-gradient-name=\"%#s_g\"\n",
+ gi.name.c_str());
+ outs.printf(" draw:textarea-horizontal-align=\"center\" ");
+ outs.printf("draw:textarea-vertical-align=\"middle\"/>\n");
+ outs.printf("</style:style>\n\n");
+
+ gradientCount++;
}
outs.printf("\n");