diff options
| author | Jabier Arraiza Cenoz <jabier.arraiza@marker.es> | 2013-02-12 19:50:08 +0000 |
|---|---|---|
| committer | Jabiertxo Arraiza Zenotz <jtx@jtx.marker.es> | 2013-02-12 19:50:08 +0000 |
| commit | 43a8037ff382f0d7ac5c8ff367db0286676558f1 (patch) | |
| tree | f23ffee6f812b562cec7ef52d7d000ee1614dd6d /src | |
| parent | Fix po files (diff) | |
| parent | Update from trunk (diff) | |
| download | inkscape-43a8037ff382f0d7ac5c8ff367db0286676558f1.tar.gz inkscape-43a8037ff382f0d7ac5c8ff367db0286676558f1.zip | |
Start proyect, Merge from Trunk
(bzr r11950.1.27)
Diffstat (limited to 'src')
40 files changed, 206 insertions, 1013 deletions
diff --git a/src/desktop-style.cpp b/src/desktop-style.cpp index 410e71730..2ea3c876b 100644 --- a/src/desktop-style.cpp +++ b/src/desktop-style.cpp @@ -39,6 +39,7 @@ #include "sp-tref.h" #include "sp-tspan.h" #include "xml/repr.h" +#include "xml/sp-css-attr.h" #include "libnrtype/font-style-to-pos.h" #include "sp-path.h" #include "event-context.h" diff --git a/src/dom/CMakeLists.txt b/src/dom/CMakeLists.txt index 15b4ba74d..5d761e649 100644 --- a/src/dom/CMakeLists.txt +++ b/src/dom/CMakeLists.txt @@ -19,10 +19,8 @@ set(dom_SRC xpathparser.cpp xpathtoken.cpp - io/base64stream.cpp io/bufferstream.cpp io/domstream.cpp - io/gzipstream.cpp io/stringstream.cpp io/uristream.cpp @@ -61,10 +59,8 @@ set(dom_SRC xpathparser.h xpathtoken.h - io/base64stream.h io/bufferstream.h io/domstream.h - io/gzipstream.h io/stringstream.h io/uristream.h diff --git a/src/dom/Makefile_insert b/src/dom/Makefile_insert index 17bab94ac..91c91eeac 100644 --- a/src/dom/Makefile_insert +++ b/src/dom/Makefile_insert @@ -50,16 +50,10 @@ dom_libdom_a_SOURCES = \ dom/xpathparser.h \ dom/xpathtoken.h \ dom/xpathtoken.cpp \ - dom/io/base64stream.cpp \ - dom/io/base64stream.h \ dom/io/bufferstream.cpp \ dom/io/bufferstream.h \ dom/io/domstream.cpp \ dom/io/domstream.h \ - dom/io/gzipstream.cpp \ - dom/io/gzipstream.h \ - dom/io/gzipstream.cpp \ - dom/io/gzipstream.h \ dom/io/stringstream.cpp \ dom/io/stringstream.h \ dom/io/uristream.cpp \ diff --git a/src/dom/io/base64stream.cpp b/src/dom/io/base64stream.cpp deleted file mode 100644 index 433675e18..000000000 --- a/src/dom/io/base64stream.cpp +++ /dev/null @@ -1,341 +0,0 @@ -/* - * Phoebe DOM Implementation. - * - * Base64-enabled input and output streams - * - * This class allows easy encoding and decoding - * of Base64 data with a stream interface, hiding - * the implementation from the user. - * - * http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/idl-definitions.html - * - * Authors: - * Bob Jamison - * - * Copyright (C) 2006 Bob Jamison - * - * This library is free software; you can redistribute it and/or - * 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 - */ - - - -#include "base64stream.h" - - -namespace org -{ -namespace w3c -{ -namespace dom -{ -namespace io -{ - - -//######################################################################### -//# B A S E 6 4 I N P U T S T R E A M -//######################################################################### - -static int base64decode[] = -{ -/*00*/ -1, -1, -1, -1, -1, -1, -1, -1, -/*08*/ -1, -1, -1, -1, -1, -1, -1, -1, -/*10*/ -1, -1, -1, -1, -1, -1, -1, -1, -/*18*/ -1, -1, -1, -1, -1, -1, -1, -1, -/*20*/ -1, -1, -1, -1, -1, -1, -1, -1, -/*28*/ -1, -1, -1, 62, -1, -1, -1, 63, -/*30*/ 52, 53, 54, 55, 56, 57, 58, 59, -/*38*/ 60, 61, -1, -1, -1, -1, -1, -1, -/*40*/ -1, 0, 1, 2, 3, 4, 5, 6, -/*48*/ 7, 8, 9, 10, 11, 12, 13, 14, -/*50*/ 15, 16, 17, 18, 19, 20, 21, 22, -/*58*/ 23, 24, 25, -1, -1, -1, -1, -1, -/*60*/ -1, 26, 27, 28, 29, 30, 31, 32, -/*68*/ 33, 34, 35, 36, 37, 38, 39, 40, -/*70*/ 41, 42, 43, 44, 45, 46, 47, 48, -/*78*/ 49, 50, 51, -1, -1, -1, -1, -1 -}; - - -/** - * - */ -Base64InputStream::Base64InputStream(InputStream &sourceStream) - : BasicInputStream(sourceStream) -{ - outCount = 0; - padCount = 0; - closed = false; - done = false; -} - -/** - * - */ -Base64InputStream::~Base64InputStream() -{ - close(); -} - -/** - * Returns the number of bytes that can be read (or skipped over) from - * this input stream without blocking by the next caller of a method for - * this input stream. - */ -int Base64InputStream::available() -{ - if (closed ) - return 0; - int len = source.available() * 2 / 3; - return len; -} - - -/** - * Closes this input stream and releases any system resources - * associated with the stream. - */ -void Base64InputStream::close() -{ - if (closed) - return; - source.close(); - closed = true; -} - -/** - * Reads the next byte of data from the input stream. -1 if EOF - */ -int Base64InputStream::get() -{ - if (closed) - return -1; - - if (outCount - padCount > 0) - { - return outBytes[3-(outCount--)]; - } - - if (done) - return -1; - - int inBytes[4]; - int inCount = 0; - while (inCount < 4) - { - int ch = source.get(); - if (ch < 0) - { - while (inCount < 4) //pad if needed - { - inBytes[inCount++] = 0; - padCount++; - } - done = true; - break; - } - if (isspace(ch)) //ascii whitespace - { - //nothing - } - else if (ch == '=') //padding - { - inBytes[inCount++] = 0; - padCount++; - } - else - { - int byteVal = base64decode[ch & 0x7f]; - //printf("char:%c %d\n", ch, byteVal); - if (byteVal < 0) - { - //Bad lookup value - } - inBytes[inCount++] = byteVal; - } - } - - outBytes[0] = ((inBytes[0]<<2) & 0xfc) | ((inBytes[1]>>4) & 0x03); - outBytes[1] = ((inBytes[1]<<4) & 0xf0) | ((inBytes[2]>>2) & 0x0f); - outBytes[2] = ((inBytes[2]<<6) & 0xc0) | ((inBytes[3] ) & 0x3f); - - outCount = 3; - - //try again - if (outCount - padCount > 0) - { - return outBytes[3-(outCount--)]; - } - - return -1; - -} - - -//######################################################################### -//# B A S E 6 4 O U T P U T S T R E A M -//######################################################################### - -static char const *base64encode = - "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; - -/** - * - */ -Base64OutputStream::Base64OutputStream(OutputStream &destinationStream) - : BasicOutputStream(destinationStream) -{ - column = 0; - columnWidth = 72; - outBuf = 0L; - bitCount = 0; -} - -/** - * - */ -Base64OutputStream::~Base64OutputStream() -{ - close(); -} - -/** - * Closes this output stream and releases any system resources - * associated with this stream. - */ -void Base64OutputStream::close() -{ - if (closed) - return; - - //get any last bytes (1 or 2) out of the buffer - if (bitCount == 16) - { - outBuf <<= 2; //pad to make 18 bits - - int indx = (int)((outBuf & 0x0003f000L) >> 12); - int obyte = (int)base64encode[indx & 63]; - putCh(obyte); - - indx = (int)((outBuf & 0x00000fc0L) >> 6); - obyte = (int)base64encode[indx & 63]; - putCh(obyte); - - indx = (int)((outBuf & 0x0000003fL) ); - obyte = (int)base64encode[indx & 63]; - putCh(obyte); - - putCh('='); - } - else if (bitCount == 8) - { - outBuf <<= 4; //pad to make 12 bits - - int indx = (int)((outBuf & 0x00000fc0L) >> 6); - int obyte = (int)base64encode[indx & 63]; - putCh(obyte); - - indx = (int)((outBuf & 0x0000003fL) ); - obyte = (int)base64encode[indx & 63]; - putCh(obyte); - - putCh('='); - putCh('='); - } - - if (columnWidth > 0) //if <=0, no newlines - destination.put('\n'); - - destination.close(); - closed = true; -} - -/** - * Flushes this output stream and forces any buffered output - * bytes to be written out. - */ -void Base64OutputStream::flush() -{ - if (closed) - return; - //dont flush here. do it on close() - destination.flush(); -} - -/** - * Private. Put a char to the output stream, checking for line length - */ -void Base64OutputStream::putCh(int ch) -{ - destination.put(ch); - column++; - if (columnWidth > 0 && column >= columnWidth) - { - destination.put('\n'); - column = 0; - } -} - - -/** - * Writes the specified byte to this output stream. - */ -int Base64OutputStream::put(XMLCh ch) -{ - if (closed) - { - //probably throw an exception here - return -1; - } - - outBuf <<= 8; - outBuf |= (ch & 0xff); - bitCount += 8; - if (bitCount >= 24) - { - int indx = (int)((outBuf & 0x00fc0000L) >> 18); - int obyte = (int)base64encode[indx & 63]; - putCh(obyte); - - indx = (int)((outBuf & 0x0003f000L) >> 12); - obyte = (int)base64encode[indx & 63]; - putCh(obyte); - - indx = (int)((outBuf & 0x00000fc0L) >> 6); - obyte = (int)base64encode[indx & 63]; - putCh(obyte); - - indx = (int)((outBuf & 0x0000003fL) ); - obyte = (int)base64encode[indx & 63]; - putCh(obyte); - - bitCount = 0; - outBuf = 0L; - } - - return 1; -} - - - -} //namespace io -} //namespace dom -} //namespace w3c -} //namespace org - - -//######################################################################### -//# E N D O F F I L E -//######################################################################### diff --git a/src/dom/io/base64stream.h b/src/dom/io/base64stream.h deleted file mode 100644 index 93bb5c7e5..000000000 --- a/src/dom/io/base64stream.h +++ /dev/null @@ -1,148 +0,0 @@ -#ifndef SEEN_DOM_IO_BASE64STREAM_H -#define SEEN_DOM_IO_BASE64STREAM_H - -/** - * @file - * Phoebe DOM Implementation. - * - * Base64-enabled input and output streams - * - * This class allows easy encoding and decoding - * of Base64 data with a stream interface, hiding - * the implementation from the user. - * - * http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/idl-definitions.html - */ -/* - * Authors: - * Bob Jamison - * - * Copyright (C) 2006 Bob Jamison - * - * This library is free software; you can redistribute it and/or - * 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 - */ - - - -#include "domstream.h" - - -namespace org -{ -namespace w3c -{ -namespace dom -{ -namespace io -{ - - - -//######################################################################### -//# B A S E 6 4 I N P U T S T R E A M -//######################################################################### - -/** - * This class is for decoding a Base-64 encoded InputStream source - * - */ -class Base64InputStream : public BasicInputStream -{ - -public: - - Base64InputStream(InputStream &sourceStream); - - virtual ~Base64InputStream(); - - virtual int available(); - - virtual void close(); - - virtual int get(); - -private: - - int outBytes[3]; - - int outCount; - - int padCount; - - bool done; - -}; // class Base64InputStream - - - - -//######################################################################### -//# B A S E 6 4 O U T P U T S T R E A M -//######################################################################### - -/** - * This class is for Base-64 encoding data going to the - * destination OutputStream - * - */ -class Base64OutputStream : public BasicOutputStream -{ - -public: - - Base64OutputStream(OutputStream &destinationStream); - - virtual ~Base64OutputStream(); - - virtual void close(); - - virtual void flush(); - - virtual int put(XMLCh ch); - - /** - * Sets the maximum line length for base64 output. If - * set to <=0, then there will be no line breaks; - */ - virtual void setColumnWidth(int val) - { columnWidth = val; } - -private: - - void putCh(int ch); - - int column; - - int columnWidth; - - unsigned long outBuf; - - int bitCount; - -}; // class Base64OutputStream - - - - - - - -} //namespace io -} //namespace dom -} //namespace w3c -} //namespace org - - -#endif // SEEN_DOM_IO_BASE64STREAM_H diff --git a/src/dom/io/gzipstream.cpp b/src/dom/io/gzipstream.cpp deleted file mode 100644 index 2a2f8a5b5..000000000 --- a/src/dom/io/gzipstream.cpp +++ /dev/null @@ -1,245 +0,0 @@ -/* - * Zlib-enabled input and output streams - * - * This is a thin wrapper of libz calls, in order - * to provide a simple interface to our developers - * for gzip input and output. - * - * Authors: - * Bob Jamison - * - * Copyright (C) 2006-2007 Bob Jamison - * - * This library is free software; you can redistribute it and/or - * 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 - */ - - - -#include "gzipstream.h" - -#include "dom/util/ziptool.h" - - -namespace org -{ -namespace w3c -{ -namespace dom -{ -namespace io -{ - - -//######################################################################### -//# G Z I P I N P U T S T R E A M -//######################################################################### - -/** - * - */ -GzipInputStream::GzipInputStream(InputStream &sourceStream) - : BasicInputStream(sourceStream) -{ - loaded = false; - bufPos = 0; -} - -/** - * - */ -GzipInputStream::~GzipInputStream() -{ - close(); -} - -/** - * Returns the number of bytes that can be read (or skipped over) from - * this input stream without blocking by the next caller of a method for - * this input stream. - */ -int GzipInputStream::available() -{ - if (closed) - return 0; - if (!loaded) - if (!load()) - return 0; - return (int) buffer.size(); -} - - -/** - * Closes this input stream and releases any system resources - * associated with the stream. - */ -void GzipInputStream::close() -{ - if (closed) - return; - - closed = true; -} - -/** - * Reads the next byte of data from the input stream. -1 if EOF - */ -int GzipInputStream::get() -{ - if (closed) - return -1; - - if (!loaded) - if (!load()) - return -1; - - if (bufPos >= buffer.size()) - return -1; - int ch = (int) buffer[bufPos++]; - - return ch; -} - -/** - * Processes input. Fills read buffer. - */ -bool GzipInputStream::load() -{ - if (closed) - return false; - - if (loaded) - return true; - - std::vector<unsigned char> compBuf; - while (true) - { - int ch = source.get(); - if (ch < 0) - break; - compBuf.push_back(ch); - } - GzipFile gz; - if (!gz.readBuffer(compBuf)) - { - return -1; - } - buffer = gz.getData(); - bufPos = 0; - loaded = true; - return true; -} - - - - - - -//######################################################################### -//# G Z I P O U T P U T S T R E A M -//######################################################################### - -/** - * - */ -GzipOutputStream::GzipOutputStream(OutputStream &destinationStream) - : BasicOutputStream(destinationStream) -{ - - closed = false; -} - -/** - * - */ -GzipOutputStream::~GzipOutputStream() -{ - close(); -} - -/** - * Closes this output stream and releases any system resources - * associated with this stream. - */ -void GzipOutputStream::close() -{ - if (closed) - return; - - flush(); - - closed = true; -} - -/** - * Flushes this output stream and forces any buffered output - * bytes to be written out. - */ -void GzipOutputStream::flush() -{ - if (closed || buffer.empty()) - return; - - std::vector<unsigned char> compBuf; - GzipFile gz; - - gz.writeBuffer(buffer); - - std::vector<unsigned char>::iterator iter; - for (iter=compBuf.begin() ; iter!=compBuf.end() ; ++iter) - { - int ch = (int) *iter; - destination.put(ch); - } - - buffer.clear(); - - //printf("done\n"); - -} - - - -/** - * Writes the specified byte to this output stream. - */ -int GzipOutputStream::put(XMLCh ch) -{ - if (closed) - { - //probably throw an exception here - return -1; - } - - //Add char to buffer - buffer.push_back(ch); - return 1; -} - - - -} // namespace io -} // namespace dom -} // namespace w3c -} // namespace org - - - - -//######################################################################### -//# E N D O F F I L E -//######################################################################### - - - diff --git a/src/dom/io/gzipstream.h b/src/dom/io/gzipstream.h deleted file mode 100644 index 6e82c3531..000000000 --- a/src/dom/io/gzipstream.h +++ /dev/null @@ -1,126 +0,0 @@ -#ifndef SEEN_GZIPSTREAM_H -#define SEEN_GZIPSTREAM_H -/** - * Zlib-enabled input and output streams - * - * This provides a simple mechanism for reading and - * writing Gzip files. We use our own 'ZipTool' class - * to accomplish this, avoiding a zlib dependency. - */ -/* - * Authors: - * Bob Jamison - * - * Copyright (C) 2006-2007 Bob Jamison - * - * This library is free software; you can redistribute it and/or - * 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 - */ - - - - -#include "domstream.h" - -namespace org -{ -namespace w3c -{ -namespace dom -{ -namespace io -{ - -//######################################################################### -//# G Z I P I N P U T S T R E A M -//######################################################################### - -/** - * This class is for deflating a gzip-compressed InputStream source - * - */ -class GzipInputStream : public BasicInputStream -{ - -public: - - GzipInputStream(InputStream &sourceStream); - - virtual ~GzipInputStream(); - - virtual int available(); - - virtual void close(); - - virtual int get(); - -private: - - bool load(); - - bool loaded; - - std::vector<unsigned char> buffer; - unsigned int bufPos; - - -}; // class GzipInputStream - - - - -//######################################################################### -//# G Z I P O U T P U T S T R E A M -//######################################################################### - -/** - * This class is for gzip-compressing data going to the - * destination OutputStream - * - */ -class GzipOutputStream : public BasicOutputStream -{ - -public: - - GzipOutputStream(OutputStream &destinationStream); - - virtual ~GzipOutputStream(); - - virtual void close(); - - virtual void flush(); - - virtual int put(XMLCh ch); - -private: - - std::vector<unsigned char> buffer; - - -}; // class GzipOutputStream - - - - - - - -} // namespace io -} // namespace dom -} // namespace w3c -} // namespace org - - -#endif // SEEN_GZIPSTREAM_H diff --git a/src/dom/xpathparser.cpp b/src/dom/xpathparser.cpp index 393c12cda..b19975966 100644 --- a/src/dom/xpathparser.cpp +++ b/src/dom/xpathparser.cpp @@ -131,7 +131,7 @@ void XPathParser::lexicalTokenDump() printf("####### LEXICAL TOKENS #######\n"); for (unsigned int i=0 ; i<lexicalTokens.size() ; i++) { - printf("%d : ", i); + printf("%u : ", i); lexicalTokens[i].print(); } printf("##### END LEXICAL TOKENS #####\n\n"); diff --git a/src/dom/xpathtoken.cpp b/src/dom/xpathtoken.cpp index 79948e55e..216c7a069 100644 --- a/src/dom/xpathtoken.cpp +++ b/src/dom/xpathtoken.cpp @@ -937,19 +937,21 @@ Token Token::create(int type, long ival, /** * */ -TokenExecutor::TokenExecutor() +TokenExecutor::TokenExecutor() : + tokenList (), + nodeList () { - reset(); } /** * */ -TokenExecutor::TokenExecutor(const TokenExecutor &other) +TokenExecutor::TokenExecutor(const TokenExecutor &other) : + tokenList (other.tokenList), + nodeList () { - reset(); - assign(other); + // assign(other); } @@ -970,14 +972,6 @@ void TokenExecutor::assign(const TokenExecutor &other) } -/** - * - */ -void TokenExecutor::reset() -{ -} - - /** diff --git a/src/dom/xpathtoken.h b/src/dom/xpathtoken.h index 5bb87917b..cfd54298e 100644 --- a/src/dom/xpathtoken.h +++ b/src/dom/xpathtoken.h @@ -457,7 +457,7 @@ public: */ StackItem pop() { - if (stackItems.size() < 1) + if (stackItems.empty()) { //TODO: error here StackItem item; @@ -619,10 +619,6 @@ public: */ virtual void assign(const TokenExecutor &other); - /** - * Reset the stack to its original settings - */ - virtual void reset(); /** * Execute a list upon a given node. For each Axis encountered, diff --git a/src/extension/dependency.cpp b/src/extension/dependency.cpp index f53dc93b4..7c358d871 100644 --- a/src/extension/dependency.cpp +++ b/src/extension/dependency.cpp @@ -13,6 +13,8 @@ #endif #include <glibmm/i18n.h> +#include <glibmm/fileutils.h> +#include <glibmm/miscutils.h> #include "config.h" #include "path-prefix.h" #include "dependency.h" diff --git a/src/extension/extension.h b/src/extension/extension.h index e0b643b6d..78999631a 100644 --- a/src/extension/extension.h +++ b/src/extension/extension.h @@ -19,6 +19,7 @@ #include <vector> #include <glibmm/ustring.h> #include "xml/repr.h" +#include <sigc++/signal.h> namespace Gtk { class Table; diff --git a/src/extension/internal/filter/bumps.h b/src/extension/internal/filter/bumps.h index 8db6c67d2..f0c4c16aa 100644 --- a/src/extension/internal/filter/bumps.h +++ b/src/extension/internal/filter/bumps.h @@ -167,9 +167,6 @@ Bump::get_filter_text (Inkscape::Extension::Extension * ext) std::ostringstream lightOptions; std::ostringstream lightEnd; - std::ostringstream lightRed; - std::ostringstream lightGreen; - std::ostringstream lightBlue; std::ostringstream floodRed; std::ostringstream floodGreen; std::ostringstream floodBlue; diff --git a/src/extension/internal/filter/filter-file.cpp b/src/extension/internal/filter/filter-file.cpp index d129f590c..d569c6438 100644 --- a/src/extension/internal/filter/filter-file.cpp +++ b/src/extension/internal/filter/filter-file.cpp @@ -20,6 +20,7 @@ /* System includes */ #include <glibmm/i18n.h> +#include <glibmm/fileutils.h> namespace Inkscape { namespace Extension { diff --git a/src/extension/internal/image-resolution.cpp b/src/extension/internal/image-resolution.cpp index a17a2bb30..3b3b85d06 100644 --- a/src/extension/internal/image-resolution.cpp +++ b/src/extension/internal/image-resolution.cpp @@ -286,13 +286,10 @@ void ImageResolution::readjfif(char const *fn) { struct jpeg_decompress_struct cinfo; jmp_buf jbuf; struct jpeg_error_mgr jerr; - bool constr = false; if (setjmp(jbuf)) { fclose(ifd); - if (constr) { - jpeg_destroy_decompress(&cinfo); - } + jpeg_destroy_decompress(&cinfo); return; } @@ -305,8 +302,6 @@ void ImageResolution::readjfif(char const *fn) { jerr.reset_error_mgr = &irjfif_reset; cinfo.client_data = (void*)&jbuf; - constr = true; - jpeg_stdio_src(&cinfo, ifd); jpeg_read_header(&cinfo, TRUE); @@ -321,7 +316,6 @@ void ImageResolution::readjfif(char const *fn) { ok_ = true; } } - constr = false; jpeg_destroy_decompress(&cinfo); fclose(ifd); } diff --git a/src/extension/internal/javafx-out.cpp b/src/extension/internal/javafx-out.cpp index 67c0fae66..035a6f0aa 100644 --- a/src/extension/internal/javafx-out.cpp +++ b/src/extension/internal/javafx-out.cpp @@ -20,6 +20,8 @@ #ifdef HAVE_CONFIG_H # include <config.h> #endif + +#include <glibmm/miscutils.h> #include "javafx-out.h" #include <inkscape.h> #include <inkscape-version.h> diff --git a/src/extension/internal/pdfinput/svg-builder.cpp b/src/extension/internal/pdfinput/svg-builder.cpp index f0de3b709..75849f6cc 100644 --- a/src/extension/internal/pdfinput/svg-builder.cpp +++ b/src/extension/internal/pdfinput/svg-builder.cpp @@ -629,7 +629,6 @@ gchar *SvgBuilder::_createPattern(GfxPattern *pattern, GfxState *state, bool is_ if ( pattern->getType() == 2 ) { // Shading pattern GfxShadingPattern *shading_pattern = static_cast<GfxShadingPattern *>(pattern); double *ptm; - double ittm[6]; // invert ttm double m[6] = {1, 0, 0, 1, 0, 0}; double det; @@ -638,6 +637,7 @@ gchar *SvgBuilder::_createPattern(GfxPattern *pattern, GfxState *state, bool is_ ptm = shading_pattern->getMatrix(); det = ttm[0] * ttm[3] - ttm[1] * ttm[2]; if (det) { + double ittm[6]; // invert ttm ittm[0] = ttm[3] / det; ittm[1] = -ttm[1] / det; ittm[2] = -ttm[2] / det; @@ -1208,7 +1208,7 @@ void SvgBuilder::updateTextMatrix(GfxState *state) { */ void SvgBuilder::_flushText() { // Ignore empty strings - if ( _glyphs.size() < 1 ) { + if ( _glyphs.empty()) { _glyphs.clear(); return; } diff --git a/src/extension/timer.cpp b/src/extension/timer.cpp index 3941ddcfc..e4e8632d2 100644 --- a/src/extension/timer.cpp +++ b/src/extension/timer.cpp @@ -10,7 +10,7 @@ * Released under GNU GPL, read the file 'COPYING' for more information */ - +#include <glibmm/main.h> #include "extension.h" #include "timer.h" diff --git a/src/file.cpp b/src/file.cpp index 14f70fc8c..468d02eba 100644 --- a/src/file.cpp +++ b/src/file.cpp @@ -62,6 +62,7 @@ #include "ui/view/view-widget.h" #include "uri.h" #include "xml/rebase-hrefs.h" +#include "xml/sp-css-attr.h" #include "verbs.h" #include "event-log.h" #include "ui/dialog/font-substitution.h" diff --git a/src/gradient-drag.cpp b/src/gradient-drag.cpp index 904c3b349..65b26937b 100644 --- a/src/gradient-drag.cpp +++ b/src/gradient-drag.cpp @@ -34,6 +34,7 @@ #include "display/sp-ctrlcurve.h" #include "display/sp-canvas-util.h" #include "xml/repr.h" +#include "xml/sp-css-attr.h" #include "svg/css-ostringstream.h" #include "svg/svg.h" #include "preferences.h" diff --git a/src/ink-comboboxentry-action.cpp b/src/ink-comboboxentry-action.cpp index 5adc3e73a..fd146926f 100644 --- a/src/ink-comboboxentry-action.cpp +++ b/src/ink-comboboxentry-action.cpp @@ -497,8 +497,8 @@ gboolean ink_comboboxentry_action_set_active_text( Ink_ComboBoxEntry_Action* ink // Show or hide warning -- this might be better moved to text-toolbox.cpp bool clear = true; - if( ink_comboboxentry_action->active == -1 && - ink_comboboxentry_action->warning != NULL ) { + + if( ink_comboboxentry_action->warning != NULL ) { Glib::ustring missing = check_comma_separated_text( ink_comboboxentry_action ); if( !missing.empty() ) { diff --git a/src/io/base64stream.cpp b/src/io/base64stream.cpp index 0a28a8cc3..667487c35 100644 --- a/src/io/base64stream.cpp +++ b/src/io/base64stream.cpp @@ -5,18 +5,35 @@ * of Base64 data with a stream interface, hiding * the implementation from the user. * + * http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/idl-definitions.html + * * Authors: - * Bob Jamison <rjamison@titan.com> + + * Bob Jamison + * + * Copyright (C) 2006 Bob Jamison * - * Copyright (C) 2004 Inkscape.org + + * This library is free software; you can redistribute it and/or + * 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. * - * Released under GNU GPL, read the file 'COPYING' for more information + * 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 */ #include "base64stream.h" + namespace Inkscape { namespace IO diff --git a/src/io/gzipstream.cpp b/src/io/gzipstream.cpp index cbe29a41e..f9e30de91 100644 --- a/src/io/gzipstream.cpp +++ b/src/io/gzipstream.cpp @@ -8,13 +8,27 @@ * Authors: * Bob Jamison <rjamison@titan.com> * - * Copyright (C) 2004 Inkscape.org + * Copyright (C) 2004 * - * Released under GNU GPL, read the file 'COPYING' for more information + + * This library is free software; you can redistribute it and/or + * 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 */ #include "gzipstream.h" #include <cstdio> +#include <cstdlib> #include <cstring> #include <string> diff --git a/src/io/gzipstream.h b/src/io/gzipstream.h index 4debbfca9..89c5f64f3 100644 --- a/src/io/gzipstream.h +++ b/src/io/gzipstream.h @@ -17,7 +17,7 @@ * Released under GNU GPL, read the file 'COPYING' for more information */ - +#include <vector> #include "inkscapestream.h" #include <zlib.h> diff --git a/src/io/inkscapestream.cpp b/src/io/inkscapestream.cpp index da7870add..65f24cf59 100644 --- a/src/io/inkscapestream.cpp +++ b/src/io/inkscapestream.cpp @@ -11,7 +11,7 @@ * Released under GNU GPL, read the file 'COPYING' for more information */ - +#include <cstdlib> #include "inkscapestream.h" namespace Inkscape diff --git a/src/io/inkscapestream.h b/src/io/inkscapestream.h index a766e16e0..37c41552f 100644 --- a/src/io/inkscapestream.h +++ b/src/io/inkscapestream.h @@ -9,9 +9,8 @@ * Released under GNU GPL, read the file 'COPYING' for more information */ - #include <cstdio> -#include <glibmm.h> +#include <glibmm/ustring.h> namespace Inkscape { diff --git a/src/io/sys.cpp b/src/io/sys.cpp index 26c1993a7..60e850c96 100644 --- a/src/io/sys.cpp +++ b/src/io/sys.cpp @@ -15,6 +15,7 @@ # include "config.h" #endif +#include <fstream> #include <glib.h> #include <glib/gstdio.h> #include <glibmm/fileutils.h> diff --git a/src/libnrtype/font-lister.cpp b/src/libnrtype/font-lister.cpp index 647bbc056..04859185c 100644 --- a/src/libnrtype/font-lister.cpp +++ b/src/libnrtype/font-lister.cpp @@ -18,6 +18,7 @@ #include "sp-root.h" #include "document.h" #include "xml/repr.h" +#include "preferences.h" namespace Inkscape { @@ -106,7 +107,6 @@ namespace Inkscape default_styles = g_list_append( default_styles, g_strdup("Italic") ); default_styles = g_list_append( default_styles, g_strdup("Bold") ); default_styles = g_list_append( default_styles, g_strdup("Bold Italic") ); - default_styles = g_list_append( default_styles, g_strdup("Loopy") ); } /* Get "font-family"s used in document. */ @@ -222,6 +222,77 @@ namespace Inkscape } } +// Helper functions +void font_lister_cell_data_func(GtkCellLayout */*cell_layout*/, + GtkCellRenderer *cell, + GtkTreeModel *model, + GtkTreeIter *iter, + gpointer /*data*/) +{ + gchar *family; + gboolean onSystem = false; + gtk_tree_model_get(model, iter, 0, &family, 2, &onSystem, -1); + Glib::ustring family_escaped = g_markup_escape_text(family, -1); + //g_free(family); + Glib::ustring markup; + + if( !onSystem ) { + markup = "<span foreground='darkblue'>"; + + /* See if font-family on system */ + std::vector<Glib::ustring> tokens = Glib::Regex::split_simple("\\s*,\\s*", family_escaped ); + for( size_t i=0; i < tokens.size(); ++i ) { + + Glib::ustring token = tokens[i]; + + GtkTreeIter iter; + gboolean valid; + gchar *family = 0; + gboolean onSystem = true; + gboolean found = false; + for( valid = gtk_tree_model_get_iter_first( GTK_TREE_MODEL(model), &iter ); + valid; + valid = gtk_tree_model_iter_next( GTK_TREE_MODEL(model), &iter ) ) { + + gtk_tree_model_get(model, &iter, 0, &family, 2, &onSystem, -1); + if( onSystem && token.compare( family ) == 0 ) { + found = true; + break; + } + } + if( found ) { + markup += g_markup_escape_text(token.c_str(), -1); + markup += ", "; + } else { + markup += "<span strikethrough=\"true\" strikethrough_color=\"red\">"; + markup += g_markup_escape_text(token.c_str(), -1); + markup += "</span>"; + markup += ", "; + } + } + // Remove extra comma and space from end. + if( markup.size() >= 2 ) { + markup.resize( markup.size()-2 ); + } + markup += "</span>"; + // std::cout << markup << std::endl; + } else { + markup = family_escaped; + } + Inkscape::Preferences *prefs = Inkscape::Preferences::get(); + int show_sample = prefs->getInt("/tools/text/show_sample_in_list", 1); + if (show_sample) { + Glib::ustring sample = prefs->getString("/tools/text/font_sample"); + Glib::ustring sample_escaped = g_markup_escape_text(sample.data(), -1); + markup += " <span foreground='gray' font_family='"; + markup += family_escaped; + markup += "'>"; + markup += sample_escaped; + markup += "</span>"; + } + + g_object_set (G_OBJECT (cell), "markup", markup.c_str(), NULL); +} diff --git a/src/libnrtype/font-lister.h b/src/libnrtype/font-lister.h index d4c48dd52..751350407 100644 --- a/src/libnrtype/font-lister.h +++ b/src/libnrtype/font-lister.h @@ -120,6 +120,21 @@ namespace Inkscape }; } +// Helper functions +// Separator function (if true, a separator will be drawn) +static gboolean font_lister_separator_func(GtkTreeModel *model, GtkTreeIter *iter, gpointer /*data*/) +{ + gchar* text = 0; + gtk_tree_model_get(model, iter, 0, &text, -1 ); // Column 0: FontList.font + return (text && strcmp(text,"#") == 0); +} + +void font_lister_cell_data_func(GtkCellLayout */*cell_layout*/, + GtkCellRenderer *cell, + GtkTreeModel *model, + GtkTreeIter *iter, + gpointer /*data*/); + #endif /* diff --git a/src/preferences.cpp b/src/preferences.cpp index 3f12c4f64..1d7009a99 100644 --- a/src/preferences.cpp +++ b/src/preferences.cpp @@ -13,6 +13,7 @@ #include <cstring> #include <sstream> #include <glibmm/fileutils.h> +#include <glibmm/convert.h> #include <glibmm/i18n.h> #include <glib.h> #include <glib/gstdio.h> diff --git a/src/sp-filter.cpp b/src/sp-filter.cpp index e3a44d8bb..bce86c465 100644 --- a/src/sp-filter.cpp +++ b/src/sp-filter.cpp @@ -22,6 +22,7 @@ using std::map; using std::pair; +#include <glibmm/stringutils.h> #include "attributes.h" #include "document.h" #include "sp-filter.h" diff --git a/src/sp-font-face.h b/src/sp-font-face.h index 691c1f883..57702b683 100644 --- a/src/sp-font-face.h +++ b/src/sp-font-face.h @@ -6,6 +6,8 @@ #ifndef __SP_FONTFACE_H__ #define __SP_FONTFACE_H__ +#include <vector> + /* * SVG <font-face> element implementation * diff --git a/src/text-editing.cpp b/src/text-editing.cpp index 44b323989..47b4d35ac 100644 --- a/src/text-editing.cpp +++ b/src/text-editing.cpp @@ -29,6 +29,7 @@ #include "document.h" #include "xml/repr.h" #include "xml/attribute-record.h" +#include "xml/sp-css-attr.h" #include "sp-textpath.h" #include "sp-flowtext.h" diff --git a/src/ui/dialog/inkscape-preferences.cpp b/src/ui/dialog/inkscape-preferences.cpp index d963e0c7f..57f815730 100644 --- a/src/ui/dialog/inkscape-preferences.cpp +++ b/src/ui/dialog/inkscape-preferences.cpp @@ -601,6 +601,24 @@ void InkscapePreferences::initPageUI() _page_ui.add_line(false, "", _show_filters_info_box, "", _("Show icons and descriptions for the filter primitives available at the filter effects dialog")); + { + Glib::ustring dockbarstyleLabels[] = {_("Icons only"), _("Text only"), _("Icons and text")}; + int dockbarstyleValues[] = {0, 1, 2}; + + /* dockbar style */ + _dockbar_style.init( "/options/dock/dockbarstyle", dockbarstyleLabels, dockbarstyleValues, G_N_ELEMENTS(dockbarstyleLabels), 0); + _page_ui.add_line(false, _("Dockbar style (requires restart):"), _dockbar_style, "", + _("Selects whether the vertical bars on the dockbar will show text labels, icons, or both"), false); + + Glib::ustring switcherstyleLabels[] = {_("Text only"), _("Icons only"), _("Icons and text")}; /* see bug #1098437 */ + int switcherstyleValues[] = {0, 1, 2}; + + /* switcher style */ + _switcher_style.init( "/options/dock/switcherstyle", switcherstyleLabels, switcherstyleValues, G_N_ELEMENTS(switcherstyleLabels), 0); + _page_ui.add_line(false, _("Switcher style (requires restart):"), _switcher_style, "", + _("Selects whether the dockbar switcher will show text labels, icons, or both"), false); + } + // Windows _win_save_geom.init ( _("Save and restore window geometry for each document"), "/options/savewindowgeometry/value", 1, true, 0); _win_save_geom_prefs.init ( _("Remember and use last window's geometry"), "/options/savewindowgeometry/value", 2, false, &_win_save_geom); diff --git a/src/ui/dialog/inkscape-preferences.h b/src/ui/dialog/inkscape-preferences.h index 690016556..b21ab0128 100644 --- a/src/ui/dialog/inkscape-preferences.h +++ b/src/ui/dialog/inkscape-preferences.h @@ -274,6 +274,8 @@ protected: UI::Widget::PrefRadioButton _filter_quality_worse; UI::Widget::PrefRadioButton _filter_quality_worst; UI::Widget::PrefCheckButton _show_filters_info_box; + UI::Widget::PrefCombo _dockbar_style; + UI::Widget::PrefCombo _switcher_style; UI::Widget::PrefSpinButton _rendering_cache_size; UI::Widget::PrefSpinButton _filter_multi_threaded; diff --git a/src/ui/widget/style-swatch.cpp b/src/ui/widget/style-swatch.cpp index 60d5f6ecc..44bceb826 100644 --- a/src/ui/widget/style-swatch.cpp +++ b/src/ui/widget/style-swatch.cpp @@ -28,6 +28,7 @@ #include "sp-radial-gradient-fns.h" #include "sp-pattern.h" #include "xml/repr.h" +#include "xml/sp-css-attr.h" #include "widgets/widget-sizes.h" #include "helper/units.h" #include "helper/action.h" diff --git a/src/widgets/font-selector.cpp b/src/widgets/font-selector.cpp index b0b4b5504..013ad9e94 100644 --- a/src/widgets/font-selector.cpp +++ b/src/widgets/font-selector.cpp @@ -162,8 +162,21 @@ static void sp_font_selector_init(SPFontSelector *fsel) GtkCellRenderer *cell = gtk_cell_renderer_text_new (); gtk_tree_view_column_pack_start (column, cell, FALSE); gtk_tree_view_column_set_attributes (column, cell, "text", 0, NULL); + gtk_tree_view_column_set_cell_data_func (column, cell, + GtkTreeCellDataFunc (font_lister_cell_data_func), + NULL, NULL ); gtk_tree_view_append_column (GTK_TREE_VIEW(fsel->family_treeview), column); gtk_tree_view_set_headers_visible (GTK_TREE_VIEW(fsel->family_treeview), FALSE); + gtk_tree_view_set_row_separator_func( GTK_TREE_VIEW(fsel->family_treeview), + GtkTreeViewRowSeparatorFunc ((gpointer)font_lister_separator_func), + NULL, NULL ); + + /* Muck with style, see text-toolbar.cpp */ + gtk_widget_set_name( GTK_WIDGET(fsel->family_treeview), "font_selector_family" ); + gtk_rc_parse_string ( + "widget \"*font_selector_family\" style \"fontfamily-separator-style\""); + + Glib::RefPtr<Gtk::ListStore> store = fontlister->get_font_list(); gtk_tree_view_set_model (GTK_TREE_VIEW(fsel->family_treeview), GTK_TREE_MODEL (Glib::unwrap (store))); gtk_container_add(GTK_CONTAINER(sw), fsel->family_treeview); diff --git a/src/widgets/text-toolbar.cpp b/src/widgets/text-toolbar.cpp index 5ba2065b9..a01f950a6 100644 --- a/src/widgets/text-toolbar.cpp +++ b/src/widgets/text-toolbar.cpp @@ -133,97 +133,6 @@ static void sp_print_fontstyle( SPStyle *query ) { } #endif -// Format family drop-down menu. -static void cell_data_func(GtkCellLayout * /*cell_layout*/, - GtkCellRenderer *cell, - GtkTreeModel *model, - GtkTreeIter *iter, - gpointer /*data*/) -{ - gchar *family; - gboolean onSystem = false; - gtk_tree_model_get(model, iter, 0, &family, 2, &onSystem, -1); - Glib::ustring family_escaped = g_markup_escape_text(family, -1); - g_free(family); - Glib::ustring markup; - - if( !onSystem ) { - markup = "<span foreground='darkblue'>"; - - /* See if font-family on system */ - std::vector<Glib::ustring> tokens = Glib::Regex::split_simple("\\s*,\\s*", family_escaped ); - for( size_t i=0; i < tokens.size(); ++i ) { - - Glib::ustring token = tokens[i]; - - GtkTreeIter iter; - gboolean valid; - gchar *family = 0; - gboolean onSystem = true; - gboolean found = false; - for( valid = gtk_tree_model_get_iter_first( GTK_TREE_MODEL(model), &iter ); - valid; - valid = gtk_tree_model_iter_next( GTK_TREE_MODEL(model), &iter ) ) { - - gtk_tree_model_get(model, &iter, 0, &family, 2, &onSystem, -1); - if( onSystem && token.compare( family ) == 0 ) { - found = true; - break; - } - } - if( found ) { - markup += g_markup_escape_text(token.c_str(), -1); - markup += ", "; - } else { - markup += "<span strikethrough=\"true\" strikethrough_color=\"red\">"; - markup += g_markup_escape_text(token.c_str(), -1); - markup += "</span>"; - markup += ", "; - } - } - // Remove extra comma and space from end. - if( markup.size() >= 2 ) { - markup.resize( markup.size()-2 ); - } - markup += "</span>"; - // std::cout << markup << std::endl; - } else { - markup = family_escaped; - } - - Inkscape::Preferences *prefs = Inkscape::Preferences::get(); - int show_sample = prefs->getInt("/tools/text/show_sample_in_list", 1); - if (show_sample) { - - Glib::ustring sample = prefs->getString("/tools/text/font_sample"); - Glib::ustring sample_escaped = g_markup_escape_text(sample.data(), -1); - - markup += " <span foreground='gray' font_family='"; - markup += family_escaped; - markup += "'>"; - markup += sample_escaped; - markup += "</span>"; - } - - g_object_set (G_OBJECT (cell), "markup", markup.c_str(), NULL); - - // This doesn't work for two reasons... it set both selected and not selected backgrounds - // to white.. which means that white foreground text is invisible. It also only effects - // the text region, leaving the padding untouched. - // g_object_set (G_OBJECT (cell), "cell-background", "white", "cell-background-set", true, NULL); - -} - -// Separator function (if true, a separator will be drawn) -static gboolean separator_func(GtkTreeModel *model, - GtkTreeIter *iter, - gpointer /*data*/) -{ - gchar* text = 0; - gtk_tree_model_get(model, iter, 0, &text, -1 ); // Column 0 - return (text && strcmp(text,"#") == 0); -} - /* * Fill the font style combobox with the available font styles for the selected font family * Set the selected style to that in font @@ -1613,8 +1522,8 @@ void sp_text_toolbox_prep(SPDesktop *desktop, GtkActionGroup* mainActions, GObje GTK_TREE_MODEL(model), -1, // Entry width 50, // Extra list width - (gpointer)cell_data_func, // Cell layout - (gpointer)separator_func, + (gpointer)font_lister_cell_data_func, // Cell layout + (gpointer)font_lister_separator_func, GTK_WIDGET(desktop->canvas)); // Focus widget ink_comboboxentry_action_popup_enable( act ); // Enable entry completion gchar *const warning = _("Font not found on system"); diff --git a/src/xml/repr-css.cpp b/src/xml/repr-css.cpp index 4c339ad5a..24e2db9e1 100644 --- a/src/xml/repr-css.cpp +++ b/src/xml/repr-css.cpp @@ -27,6 +27,7 @@ #include "xml/repr.h" #include "xml/simple-document.h" #include "xml/simple-node.h" +#include "xml/sp-css-attr.h" #include "style.h" #include "libcroco/cr-sel-eng.h" diff --git a/src/xml/repr.h b/src/xml/repr.h index debd0f489..52f07d11f 100644 --- a/src/xml/repr.h +++ b/src/xml/repr.h @@ -14,16 +14,11 @@ #ifndef SEEN_SP_REPR_H #define SEEN_SP_REPR_H -#include <stdio.h> #include <glib.h> -#include "gc-anchored.h" +#include <glibmm/quark.h> #include "xml/node.h" #include "xml/document.h" -#include "xml/sp-css-attr.h" -#include "io/inkscapestream.h" - -#include <2geom/forward.h> #define SP_SODIPODI_NS_URI "http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" #define SP_BROKEN_SODIPODI_NS_URI "http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd" @@ -35,6 +30,18 @@ #define SP_OLD_CC_NS_URI "http://web.resource.org/cc/" #define SP_DC_NS_URI "http://purl.org/dc/elements/1.1/" +class SPCSSAttr; + +namespace Inkscape { +namespace IO { +class Writer; +} // namespace IO +} // namespace Inkscape + +namespace Geom { +class Point; +} + /* SPXMLNs */ char const *sp_xml_ns_uri_prefix(gchar const *uri, gchar const *suggested); char const *sp_xml_ns_prefix_uri(gchar const *prefix); |
