summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJabier Arraiza Cenoz <jabier.arraiza@marker.es>2013-02-12 19:50:08 +0000
committerJabiertxo Arraiza Zenotz <jtx@jtx.marker.es>2013-02-12 19:50:08 +0000
commit43a8037ff382f0d7ac5c8ff367db0286676558f1 (patch)
treef23ffee6f812b562cec7ef52d7d000ee1614dd6d /src
parentFix po files (diff)
parentUpdate from trunk (diff)
downloadinkscape-43a8037ff382f0d7ac5c8ff367db0286676558f1.tar.gz
inkscape-43a8037ff382f0d7ac5c8ff367db0286676558f1.zip
Start proyect, Merge from Trunk
(bzr r11950.1.27)
Diffstat (limited to 'src')
-rw-r--r--src/desktop-style.cpp1
-rw-r--r--src/dom/CMakeLists.txt4
-rw-r--r--src/dom/Makefile_insert6
-rw-r--r--src/dom/io/base64stream.cpp341
-rw-r--r--src/dom/io/base64stream.h148
-rw-r--r--src/dom/io/gzipstream.cpp245
-rw-r--r--src/dom/io/gzipstream.h126
-rw-r--r--src/dom/xpathparser.cpp2
-rw-r--r--src/dom/xpathtoken.cpp20
-rw-r--r--src/dom/xpathtoken.h6
-rw-r--r--src/extension/dependency.cpp2
-rw-r--r--src/extension/extension.h1
-rw-r--r--src/extension/internal/filter/bumps.h3
-rw-r--r--src/extension/internal/filter/filter-file.cpp1
-rw-r--r--src/extension/internal/image-resolution.cpp8
-rw-r--r--src/extension/internal/javafx-out.cpp2
-rw-r--r--src/extension/internal/pdfinput/svg-builder.cpp4
-rw-r--r--src/extension/timer.cpp2
-rw-r--r--src/file.cpp1
-rw-r--r--src/gradient-drag.cpp1
-rw-r--r--src/ink-comboboxentry-action.cpp4
-rw-r--r--src/io/base64stream.cpp23
-rw-r--r--src/io/gzipstream.cpp18
-rw-r--r--src/io/gzipstream.h2
-rw-r--r--src/io/inkscapestream.cpp2
-rw-r--r--src/io/inkscapestream.h3
-rw-r--r--src/io/sys.cpp1
-rw-r--r--src/libnrtype/font-lister.cpp73
-rw-r--r--src/libnrtype/font-lister.h15
-rw-r--r--src/preferences.cpp1
-rw-r--r--src/sp-filter.cpp1
-rw-r--r--src/sp-font-face.h2
-rw-r--r--src/text-editing.cpp1
-rw-r--r--src/ui/dialog/inkscape-preferences.cpp18
-rw-r--r--src/ui/dialog/inkscape-preferences.h2
-rw-r--r--src/ui/widget/style-swatch.cpp1
-rw-r--r--src/widgets/font-selector.cpp13
-rw-r--r--src/widgets/text-toolbar.cpp95
-rw-r--r--src/xml/repr-css.cpp1
-rw-r--r--src/xml/repr.h19
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);