odf.h revision f1c7ff87593bb41404ea2beea58cf6c8d77702c9
/*
* Authors:
* Bob Jamison
* Abhishek Sharma
*
* Copyright (C) 2006 Bob Jamison
*
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
#ifndef EXTENSION_INTERNAL_ODG_OUT_H
#define EXTENSION_INTERNAL_ODG_OUT_H
#include <io/stringstream.h>
#include "extension/implementation/implementation.h"
#include <string>
#include <map>
#include "sp-item.h"
{
{
{
{
{
init();
}
{
}
{
return *this;
}
{
}
void init()
{
name = "none";
stroke = "none";
strokeColor = "none";
strokeWidth = "none";
strokeOpacity = "none";
fill = "none";
fillColor = "none";
fillOpacity = "none";
}
{}
//used for eliminating duplicates in the styleTable
{
if (
)
return false;
return true;
}
};
{
{}
{}
{
}
unsigned long rgb;
double opacity;
};
{
{
init();
}
{
}
{
return *this;
}
{
r = other.r;
}
void init()
{
name = "none";
style = "none";
cx = 0.0;
cy = 0.0;
fx = 0.0;
fy = 0.0;
r = 0.0;
x1 = 0.0;
y1 = 0.0;
x2 = 0.0;
y2 = 0.0;
}
{}
//used for eliminating duplicates in the styleTable
{
if (
r != other.r ||
)
return false;
return false;
{
return false;
return false;
}
return true;
}
double cx;
double cy;
double fx;
double fy;
double r;
double x1;
double y1;
double x2;
double y2;
};
/**
* OpenDocument <drawing> input and output
*
* This is an an entry in the extensions mechanism to begin to enable
* the inputting and outputting of OpenDocument Format (ODF) files from
* within Inkscape. Although the initial implementations will be very lossy
* do to the differences in the models of SVG and ODF, they will hopefully
* improve greatly with time.
*
*/
{
static void init (void);
void reset();
/* Style table
Uses a two-stage lookup to avoid style duplication.
Use like:
StyleInfo si = styleTable[styleLookupTable[id]];
but check for errors, of course
*/
//element id -> style entry name
//style entry name -> style info
//element id -> gradient entry name
//gradient entry name -> gradient info
//for renaming image file names
bool processStyle(Writer &outs, SPItem *item, const Glib::ustring &id, const Glib::ustring &gradientNameFill, const Glib::ustring &gradientNameStroke);
const Glib::ustring &id, Geom::Affine &tf, Glib::ustring& gradientName, Glib::ustring& output, bool checkFillGradient = 1);
};
} //namespace Internal
} //namespace Extension
} //namespace Inkscape
#endif /* EXTENSION_INTERNAL_ODG_OUT_H */