<pre style='margin:0'>
Eric A. Borisch (eborisch) pushed a commit to branch master
in repository macports-ports.

</pre>
<p><a href="https://github.com/macports/macports-ports/commit/8fbd7a1ba97eb218cc2f98c943321b33e6ab8495">https://github.com/macports/macports-ports/commit/8fbd7a1ba97eb218cc2f98c943321b33e6ab8495</a></p>
<pre style="white-space: pre; background: #F8F8F8">The following commit(s) were added to refs/heads/master by this push:
<span style='display:block; white-space:pre;color:#404040;'>     new 8fbd7a1b scribus-devel: Update to work with latest poppler
</span>8fbd7a1b is described below

<span style='display:block; white-space:pre;color:#808000;'>commit 8fbd7a1ba97eb218cc2f98c943321b33e6ab8495
</span>Author: Eric A. Borisch <eborisch@macports.org>
AuthorDate: Tue Jul 3 15:53:05 2018 -0500

<span style='display:block; white-space:pre;color:#404040;'>    scribus-devel: Update to work with latest poppler
</span>---
 print/scribus-devel/Portfile            |    4 +-
 print/scribus-devel/files/poppler.patch | 1028 +++++++++++++++++++++++++++++++
 2 files changed, 1031 insertions(+), 1 deletion(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/print/scribus-devel/Portfile b/print/scribus-devel/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index 1fab84d..894399a 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/print/scribus-devel/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/print/scribus-devel/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -5,7 +5,7 @@ PortGroup           cmake 1.0
</span> PortGroup           qt5 1.0
 name                scribus-devel
 version             1.5.4
<span style='display:block; white-space:pre;background:#ffe0e0;'>-revision            1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+revision            2
</span> categories          print
 license             LGPL-2+ BSD MIT
 platforms           darwin
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -84,6 +84,8 @@ variant converters description {Extra file I/O filters} {
</span> cmake.out_of_source yes
 build.env           HOME=${worksrcpath}
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+patchfiles          poppler.patch
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> # These can be uncommented to livecheck for the devel version
 livecheck.url       https://www.scribus.net/downloads/unstable-branch/
 livecheck.regex     /scribus-devel/(\[a-z0-9\]+(\\.\[a-z0-9\]+)+)/
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/print/scribus-devel/files/poppler.patch b/print/scribus-devel/files/poppler.patch
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..e1ebd1c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/print/scribus-devel/files/poppler.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,1028 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From 7d4ceeb5cac32287769e3c0238699e0b3e56c24d Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From: Jean Ghali <jghali@libertysurf.fr>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Wed, 2 May 2018 14:22:50 +0000
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH] #15289: FTBFS when using poppler 0.64.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+git-svn-id: svn://scribus.net/trunk/Scribus@22513 11d20701-8431-0410-a711-e3c959e3b870
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ scribus/plugins/import/pdf/slaoutput.cpp | 42 +++++++++++++++++---------------
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ scribus/plugins/import/pdf/slaoutput.h   | 26 +++++++++++++++-----
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 2 files changed, 42 insertions(+), 26 deletions(-)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/scribus/plugins/import/pdf/slaoutput.cpp b/scribus/plugins/import/pdf/slaoutput.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 257deb30c6..96847508ba 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- scribus/plugins/import/pdf/slaoutput.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ scribus/plugins/import/pdf/slaoutput.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -6,7 +6,7 @@ for which a new license (GPL+exception) is in place.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "slaoutput.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#include <poppler/cpp/poppler-version.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <poppler/GlobalParams.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <poppler/poppler-config.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <poppler/FileSpec.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -20,12 +20,6 @@ for which a new license (GPL+exception) is in place.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "util_math.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <tiffio.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#define POPPLER_VERSION_ENCODE(major, minor, micro) (     \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    ((major) * 10000)                             \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  + ((minor) *   100)                             \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  + ((micro) *     1))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#define POPPLER_ENCODED_VERSION POPPLER_VERSION_ENCODE(POPPLER_VERSION_MAJOR, POPPLER_VERSION_MINOR, POPPLER_VERSION_MICRO)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ LinkSubmitForm::LinkSubmitForm(Object *actionObj)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   Object obj1, obj2, obj3;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -44,7 +38,7 @@ LinkSubmitForm::LinkSubmitForm(Object *actionObj)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                           {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                   if (obj3.isName())
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                   {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                                          char *name = obj3.getName();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                                          POPPLER_CONST char *name = obj3.getName();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                           if (!strcmp(name, "URL"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                           {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                                   obj2 = obj1.dictLookup("F");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -508,8 +502,8 @@ bool SlaOutputDev::handleLinkAnnot(Annot* annota, double xCoor, double yCoor, do
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   QString fileName = "";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (act->getKind() == actionGoTo)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          LinkGoTo *gto = (LinkGoTo*)act;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          LinkDest *dst = gto->getDest();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          LinkGoTo *gto = (LinkGoTo*) act;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          POPPLER_CONST LinkDest *dst = gto->getDest();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           if (dst)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   if (dst->getKind() == destXYZ)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -528,7 +522,7 @@ bool SlaOutputDev::handleLinkAnnot(Annot* annota, double xCoor, double yCoor, do
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                  GooString *ndst = gto->getNamedDest();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  POPPLER_CONST GooString *ndst = gto->getNamedDest();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   if (ndst)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                           LinkDest *dstn = pdfDoc->findDest(ndst);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -555,7 +549,7 @@ bool SlaOutputDev::handleLinkAnnot(Annot* annota, double xCoor, double yCoor, do
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           LinkGoToR *gto = (LinkGoToR*)act;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           fileName = UnicodeParsedString(gto->getFileName());
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          LinkDest *dst = gto->getDest();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          POPPLER_CONST LinkDest *dst = gto->getDest();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           if (dst)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   if (dst->getKind() == destXYZ)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -568,7 +562,7 @@ bool SlaOutputDev::handleLinkAnnot(Annot* annota, double xCoor, double yCoor, do
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                  GooString *ndst = gto->getNamedDest();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  POPPLER_CONST GooString *ndst = gto->getNamedDest();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   if (ndst)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                           LinkDest *dstn = pdfDoc->findDest(ndst);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -709,7 +703,7 @@ bool SlaOutputDev::handleWidgetAnnot(Annot* annota, double xCoor, double yCoor,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   bool bgFound = false;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   if (achar)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                          AnnotColor *bgCol = achar->getBackColor();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          POPPLER_CONST AnnotColor *bgCol = achar->getBackColor();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                           if (bgCol)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                           {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                   bgFound = true;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -717,7 +711,7 @@ bool SlaOutputDev::handleWidgetAnnot(Annot* annota, double xCoor, double yCoor,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                           }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                           else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                   CurrColorFill = CommonStrings::None;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                          AnnotColor *fgCol = achar->getBorderColor();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          POPPLER_CONST AnnotColor *fgCol = achar->getBorderColor();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                           if (fgCol)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                           {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                   fgFound = true;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1054,7 +1048,7 @@ void SlaOutputDev::handleActions(PageItem* ite, AnnotWidget *ano)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   int xco = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   int yco = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   LinkGoTo *gto = (LinkGoTo*)Lact;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                  LinkDest *dst = gto->getDest();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  POPPLER_CONST LinkDest *dst = gto->getDest();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   if (dst)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                           if (dst->getKind() == destXYZ)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1075,7 +1069,7 @@ void SlaOutputDev::handleActions(PageItem* ite, AnnotWidget *ano)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                          GooString *ndst = gto->getNamedDest();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          POPPLER_CONST GooString *ndst = gto->getNamedDest();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                           if (ndst)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                           {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                   LinkDest *dstn = pdfDoc->findDest(ndst);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1107,7 +1101,7 @@ void SlaOutputDev::handleActions(PageItem* ite, AnnotWidget *ano)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   int yco = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   LinkGoToR *gto = (LinkGoToR*)Lact;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   QString fileName = UnicodeParsedString(gto->getFileName());
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                  LinkDest *dst = gto->getDest();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  POPPLER_CONST LinkDest *dst = gto->getDest();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   if (dst)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                           if (dst->getKind() == destXYZ)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1123,7 +1117,7 @@ void SlaOutputDev::handleActions(PageItem* ite, AnnotWidget *ano)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                          GooString *ndst = gto->getNamedDest();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                          POPPLER_CONST GooString *ndst = gto->getNamedDest();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                           if (ndst)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                           {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                   LinkDest *dstn = pdfDoc->findDest(ndst);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -3001,6 +2995,14 @@ void SlaOutputDev::drawImage(GfxState *state, Object *ref, Stream *str, int widt
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if ((mm.type() == QTransform::TxShear) || (mm.type() == QTransform::TxRotate))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           ite->setImageRotation(-tline.angle());
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          /*QTransform rotMat;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          rotMat.rotate(tline.angle());
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          QTransform imgMat = m_ctm * rotMat.inverted();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          double scaleX = sqrt(imgMat.m11() * imgMat.m11() + imgMat.m12() * imgMat.m12());
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          double scaleY = sqrt(imgMat.m21() * imgMat.m21() + imgMat.m22() * imgMat.m22());
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          imgMat.scale(1.0 / scaleX, 1.0 / scaleY);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          if (!imgMat.isIdentity())
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  img = img.transformed(imgMat);*/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -4031,7 +4033,7 @@ QString SlaOutputDev::getColor(GfxColorSpace *color_space, GfxColor *color, int
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   return fNam;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-QString SlaOutputDev::getAnnotationColor(AnnotColor *color)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++QString SlaOutputDev::getAnnotationColor(const AnnotColor *color)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   QString fNam;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   QString namPrefix = "FromPDF";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/scribus/plugins/import/pdf/slaoutput.h b/scribus/plugins/import/pdf/slaoutput.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 6698c030e0..7317cae210 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- scribus/plugins/import/pdf/slaoutput.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ scribus/plugins/import/pdf/slaoutput.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -26,6 +26,7 @@ for which a new license (GPL+exception) is in place.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "selection.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "vgradient.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <poppler/cpp/poppler-version.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <poppler/goo/gtypes.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <poppler/Object.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <poppler/OutputDev.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -49,6 +50,18 @@ for which a new license (GPL+exception) is in place.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <poppler/splash/SplashPath.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <poppler/splash/SplashGlyphBitmap.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define POPPLER_VERSION_ENCODE(major, minor, micro) (     \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    ((major) * 10000)                             \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  + ((minor) *   100)                             \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  + ((micro) *     1))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define POPPLER_ENCODED_VERSION POPPLER_VERSION_ENCODE(POPPLER_VERSION_MAJOR, POPPLER_VERSION_MINOR, POPPLER_VERSION_MICRO)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 64, 0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define POPPLER_CONST const
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define POPPLER_CONST
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ //------------------------------------------------------------------------
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // LinkSubmitData
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ //------------------------------------------------------------------------
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -61,9 +74,9 @@ class LinkSubmitForm: public LinkAction
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   // Destructor.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   virtual ~LinkSubmitForm();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   // Was the LinkImportData created successfully?
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  virtual GBool isOk() { return fileName != NULL; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  virtual GBool isOk() POPPLER_CONST { return fileName != NULL; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   // Accessors.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  virtual LinkActionKind getKind() { return actionUnknown; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  virtual LinkActionKind getKind() POPPLER_CONST { return actionUnknown; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   GooString *getFileName() { return fileName; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   int getFlags() { return m_flags; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ private:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -83,9 +96,9 @@ class LinkImportData: public LinkAction
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   // Destructor.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   virtual ~LinkImportData();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   // Was the LinkImportData created successfully?
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  virtual GBool isOk() { return fileName != NULL; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  virtual GBool isOk() POPPLER_CONST { return fileName != NULL; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   // Accessors.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  virtual LinkActionKind getKind() { return actionUnknown; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  virtual LinkActionKind getKind() POPPLER_CONST { return actionUnknown; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   GooString *getFileName() { return fileName; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ private:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   GooString *fileName;            // file name
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -98,7 +111,7 @@ class SplashOutFontFileID: public SplashFontFileID
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ public:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  SplashOutFontFileID(Ref *rA) { r = *rA; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  SplashOutFontFileID(const Ref *rA) { r = *rA; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   ~SplashOutFontFileID() {}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   GBool matches(SplashFontFileID *id)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -146,6 +159,7 @@ class SlaOutputDev : public OutputDev
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ public:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   SlaOutputDev(ScribusDoc* doc, QList<PageItem*> *Elements, QStringList *importedColors, int flags);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   virtual ~SlaOutputDev();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   LinkAction* SC_getAction(AnnotWidget *ano);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   LinkAction* SC_getAdditionalAction(const char *key, AnnotWidget *ano);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   static GBool annotations_callback(Annot *annota, void *user_data);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -261,7 +275,7 @@ class SlaOutputDev : public OutputDev
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ private:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   void getPenState(GfxState *state);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   QString getColor(GfxColorSpace *color_space, GfxColor *color, int *shade);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  QString getAnnotationColor(AnnotColor *color);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  QString getAnnotationColor(const AnnotColor *color);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   QString convertPath(GfxPath *path);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   int getBlendMode(GfxState *state);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   void applyMask(PageItem *ite);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From 76561c1a55cd07c268f8f2b2fea888532933700b Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From: Jean Ghali <jghali@libertysurf.fr>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Wed, 2 May 2018 15:12:35 +0000
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH] Amend r22498 so as to allow building with the old poppler
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ version (< 0.35.0) used by travis
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+git-svn-id: svn://scribus.net/trunk/Scribus@22514 11d20701-8431-0410-a711-e3c959e3b870
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ scribus/plugins/import/pdf/importpdf.cpp     |   2 +-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ scribus/plugins/import/pdf/importpdf.h       |  12 +-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ scribus/plugins/import/pdf/importpdfconfig.h |  24 +
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ scribus/plugins/import/pdf/slaoutput.cpp     |   2 +-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ scribus/plugins/import/pdf/slaoutput.h       | 671 +++++++++++++--------------
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 5 files changed, 362 insertions(+), 349 deletions(-)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ create mode 100644 scribus/plugins/import/pdf/importpdfconfig.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/scribus/plugins/import/pdf/importpdf.cpp b/scribus/plugins/import/pdf/importpdf.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index d4c5a9ba49..6dca080014 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- scribus/plugins/import/pdf/importpdf.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ scribus/plugins/import/pdf/importpdf.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1081,7 +1081,7 @@ QRectF PdfPlug::getCBox(int box, int pgNum)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   return cRect;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-QString PdfPlug::UnicodeParsedString(GooString *s1)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++QString PdfPlug::UnicodeParsedString(POPPLER_CONST GooString *s1)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if ( !s1 || s1->getLength() == 0 )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           return QString();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/scribus/plugins/import/pdf/importpdf.h b/scribus/plugins/import/pdf/importpdf.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 5249562692..fbf607bf03 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- scribus/plugins/import/pdf/importpdf.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ scribus/plugins/import/pdf/importpdf.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -7,11 +7,6 @@ for which a new license (GPL+exception) is in place.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #ifndef IMPORTPDF_H
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define IMPORTPDF_H
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#include "pluginapi.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#include "pageitem.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#include "sccolor.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#include "fpointarray.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <QList>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <QTransform>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <QMultiMap>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -26,6 +21,11 @@ for which a new license (GPL+exception) is in place.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <QPen>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <QImage>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include "fpointarray.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include "importpdfconfig.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include "pluginapi.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include "pageitem.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include "sccolor.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class QColor;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class QMatrix;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -81,7 +81,7 @@ class PdfPlug : public QObject
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ private:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   bool convert(const QString& fn);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   QRectF getCBox(int box, int pgNum);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  QString UnicodeParsedString(GooString *s1);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  QString UnicodeParsedString(POPPLER_CONST GooString *s1);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   QList<PageItem*> Elements;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   double baseX, baseY;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/scribus/plugins/import/pdf/importpdfconfig.h b/scribus/plugins/import/pdf/importpdfconfig.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+new file mode 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 0000000000..769594bcd0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ scribus/plugins/import/pdf/importpdfconfig.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -0,0 +1,24 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/*
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++For general Scribus (>=1.3.2) copyright and licensing information please refer
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++to the COPYING file provided with the program. Following this notice may exist
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++a copyright and/or license notice that predates the release of Scribus 1.3.2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++for which a new license (GPL+exception) is in place.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++*/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifndef IMPORTPDFCONFIG_H
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define IMPORTPDFCONFIG_H
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <poppler/cpp/poppler-version.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define POPPLER_VERSION_ENCODE(major, minor, micro) (     \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    ((major) * 10000)                             \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  + ((minor) *   100)                             \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  + ((micro) *     1))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define POPPLER_ENCODED_VERSION POPPLER_VERSION_ENCODE(POPPLER_VERSION_MAJOR, POPPLER_VERSION_MINOR, POPPLER_VERSION_MICRO)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 64, 0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define POPPLER_CONST const
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define POPPLER_CONST
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/scribus/plugins/import/pdf/slaoutput.cpp b/scribus/plugins/import/pdf/slaoutput.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 96847508ba..08ef72698a 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- scribus/plugins/import/pdf/slaoutput.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ scribus/plugins/import/pdf/slaoutput.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -4253,7 +4253,7 @@ void SlaOutputDev::pushGroup(QString maskName, GBool forSoftMask, GBool alpha, b
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   m_groupStack.push(gElements);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-QString SlaOutputDev::UnicodeParsedString(GooString *s1)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++QString SlaOutputDev::UnicodeParsedString(POPPLER_CONST GooString *s1)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if ( !s1 || s1->getLength() == 0 )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           return QString();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/scribus/plugins/import/pdf/slaoutput.h b/scribus/plugins/import/pdf/slaoutput.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 7317cae210..b8497d94de 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- scribus/plugins/import/pdf/slaoutput.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ scribus/plugins/import/pdf/slaoutput.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1,341 +1,330 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/*
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-For general Scribus (>=1.3.2) copyright and licensing information please refer
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-to the COPYING file provided with the program. Following this notice may exist
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-a copyright and/or license notice that predates the release of Scribus 1.3.2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-for which a new license (GPL+exception) is in place.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-*/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#ifndef SLAOUTPUT_H
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#define SLAOUTPUT_H
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#include <QString>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#include <QTextStream>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#include <QSizeF>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#include <QBuffer>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#include <QColor>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#include <QBrush>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#include <QPen>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#include <QImage>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#include <QList>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#include <QTransform>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#include <QStack>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#include <QDebug>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#include "fpointarray.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#include "pageitem.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#include "scribusdoc.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#include "scribusview.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#include "selection.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#include "vgradient.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#include <poppler/cpp/poppler-version.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#include <poppler/goo/gtypes.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#include <poppler/Object.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#include <poppler/OutputDev.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#include <poppler/Gfx.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#include <poppler/GfxState.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#include <poppler/Stream.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#include <poppler/GfxFont.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#include <poppler/Link.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#include <poppler/PDFDoc.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#include <poppler/Error.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#include <poppler/Form.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#include <poppler/Page.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#include <poppler/Catalog.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#include <poppler/CharCodeToUnicode.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#include <poppler/FontEncodingTables.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#include <poppler/splash/SplashFontFileID.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#include <poppler/splash/SplashFontFile.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#include <poppler/splash/SplashFontEngine.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#include <poppler/splash/SplashFont.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#include <poppler/splash/SplashMath.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#include <poppler/splash/SplashPath.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#include <poppler/splash/SplashGlyphBitmap.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#define POPPLER_VERSION_ENCODE(major, minor, micro) (     \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    ((major) * 10000)                             \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  + ((minor) *   100)                             \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  + ((micro) *     1))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#define POPPLER_ENCODED_VERSION POPPLER_VERSION_ENCODE(POPPLER_VERSION_MAJOR, POPPLER_VERSION_MINOR, POPPLER_VERSION_MICRO)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if POPPLER_ENCODED_VERSION >= POPPLER_VERSION_ENCODE(0, 64, 0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#define POPPLER_CONST const
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#define POPPLER_CONST
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-//------------------------------------------------------------------------
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-// LinkSubmitData
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-//------------------------------------------------------------------------
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-class LinkSubmitForm: public LinkAction
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-public:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  // Build a LinkImportData from an action dictionary.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  LinkSubmitForm(Object *actionObj);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  // Destructor.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  virtual ~LinkSubmitForm();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  // Was the LinkImportData created successfully?
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  virtual GBool isOk() POPPLER_CONST { return fileName != NULL; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  // Accessors.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  virtual LinkActionKind getKind() POPPLER_CONST { return actionUnknown; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  GooString *getFileName() { return fileName; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  int getFlags() { return m_flags; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-private:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  GooString *fileName;            // file name
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  int m_flags;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-};
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-//------------------------------------------------------------------------
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-// LinkImportData
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-//------------------------------------------------------------------------
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-class LinkImportData: public LinkAction
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-public:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  // Build a LinkImportData from an action dictionary.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  LinkImportData(Object *actionObj);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  // Destructor.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  virtual ~LinkImportData();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  // Was the LinkImportData created successfully?
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  virtual GBool isOk() POPPLER_CONST { return fileName != NULL; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  // Accessors.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  virtual LinkActionKind getKind() POPPLER_CONST { return actionUnknown; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  GooString *getFileName() { return fileName; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-private:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  GooString *fileName;            // file name
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-};
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-//------------------------------------------------------------------------
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-// SplashOutFontFileID
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-//------------------------------------------------------------------------
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-class SplashOutFontFileID: public SplashFontFileID
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-public:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  SplashOutFontFileID(const Ref *rA) { r = *rA; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  ~SplashOutFontFileID() {}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  GBool matches(SplashFontFileID *id)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          return ((SplashOutFontFileID *)id)->r.num == r.num && ((SplashOutFontFileID *)id)->r.gen == r.gen;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-private:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  Ref r;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-};
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-class AnoOutputDev : public OutputDev
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-public:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  AnoOutputDev(ScribusDoc* doc, QStringList *importedColors);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  virtual ~AnoOutputDev();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  GBool isOk() { return gTrue; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  virtual GBool upsideDown() { return gTrue; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  virtual GBool useDrawChar() { return gFalse; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  virtual GBool interpretType3Chars() { return gFalse; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  virtual GBool useTilingPatternFill() { return gFalse; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  virtual GBool useShadedFills(int type) { return gFalse; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  virtual GBool useFillColorStop() { return gFalse; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  virtual GBool useDrawForm() { return gFalse; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  virtual void stroke(GfxState *state);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  virtual void eoFill(GfxState *state);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  virtual void fill(GfxState *state);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  virtual void drawString(GfxState *state, GooString *s);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  QString CurrColorText;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  QString CurrColorFill;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  QString CurrColorStroke;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  double m_fontSize;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  GooString *m_fontName;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  GooString *m_itemText;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-private:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  QString getColor(GfxColorSpace *color_space, GfxColor *color, int *shade);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  ScribusDoc* m_doc;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  QStringList *m_importedColors;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-};
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-class SlaOutputDev : public OutputDev
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-public:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  SlaOutputDev(ScribusDoc* doc, QList<PageItem*> *Elements, QStringList *importedColors, int flags);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  virtual ~SlaOutputDev();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  LinkAction* SC_getAction(AnnotWidget *ano);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  LinkAction* SC_getAdditionalAction(const char *key, AnnotWidget *ano);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  static GBool annotations_callback(Annot *annota, void *user_data);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  bool handleTextAnnot(Annot* annota, double xCoor, double yCoor, double width, double height);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  bool handleLinkAnnot(Annot* annota, double xCoor, double yCoor, double width, double height);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  bool handleWidgetAnnot(Annot* annota, double xCoor, double yCoor, double width, double height);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  void applyTextStyle(PageItem* ite, QString fontName, QString textColor, double fontSize);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  void handleActions(PageItem* ite, AnnotWidget *ano);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  void startDoc(PDFDoc *doc, XRef *xrefA, Catalog *catA);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  GBool isOk() { return gTrue; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  virtual GBool upsideDown() { return gTrue; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  virtual GBool useDrawChar() { return gTrue; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  virtual GBool interpretType3Chars() { return gTrue; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  virtual GBool useTilingPatternFill() { return gTrue; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  virtual GBool useShadedFills(int type) { return type <= 7; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  virtual GBool useFillColorStop() { return gTrue; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  virtual GBool useDrawForm() { return gFalse; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-//        virtual GBool needClipToCropBox() { return gTrue; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  virtual void startPage(int pageNum, GfxState *, XRef *);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  virtual void endPage();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  // graphics state
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  virtual void saveState(GfxState *state);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  virtual void restoreState(GfxState *state);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  //----- path painting
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  virtual void stroke(GfxState *state);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  virtual void fill(GfxState *state);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  virtual void eoFill(GfxState *state);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  GBool tilingPatternFill(GfxState *state, Gfx *gfx, Catalog *cat, Object *str, double *pmat, int paintType, int tilingType, Dict *resDict, double *mat, double *bbox, int x0, int y0, int x1, int y1, double xStep, double yStep);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  virtual GBool functionShadedFill(GfxState * /*state*/, GfxFunctionShading * /*shading*/) { qDebug() << "Function Shaded Fill";  return gFalse; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  virtual GBool axialShadedFill(GfxState *state, GfxAxialShading *shading, double tMin, double tMax);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  virtual GBool axialShadedSupportExtend(GfxState *state, GfxAxialShading *shading) { return (shading->getExtend0() == shading->getExtend1()); }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  virtual GBool radialShadedFill(GfxState *state, GfxRadialShading *shading, double sMin, double sMax);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  virtual GBool radialShadedSupportExtend(GfxState *state, GfxRadialShading *shading) { return (shading->getExtend0() == shading->getExtend1()); }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  virtual GBool gouraudTriangleShadedFill(GfxState *state, GfxGouraudTriangleShading *shading);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  virtual GBool patchMeshShadedFill(GfxState *state, GfxPatchMeshShading *shading);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  //----- path clipping
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  virtual void clip(GfxState *state);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  virtual void eoClip(GfxState *state);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  virtual void clipToStrokePath(GfxState * /*state*/) { qDebug() << "Clip to StrokePath"; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  virtual GBool deviceHasTextClip(GfxState *state) { return gFalse; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  // If current colorspace is pattern,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  // does this device support text in pattern colorspace?
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  virtual GBool supportTextCSPattern(GfxState *state)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          return state->getFillColorSpace()->getMode() == csPattern;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  // If current colorspace is pattern,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  // need this device special handling for masks in pattern colorspace?
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  virtual GBool fillMaskCSPattern(GfxState * state)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          return state->getFillColorSpace()->getMode() == csPattern;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  virtual void endMaskClip(GfxState *state) { qDebug() << "End Mask Clip"; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  //----- grouping operators
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  virtual void beginMarkedContent(char *name, Dict *properties);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  virtual void beginMarkedContent(char *name, Object *dictRef);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  virtual void endMarkedContent(GfxState *state);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  virtual void markPoint(char *name);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  virtual void markPoint(char *name, Dict *properties);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  //----- image drawing
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  virtual void drawImageMask(GfxState *state, Object *ref, Stream *str, int width, int height, GBool invert, GBool interpolate, GBool inlineImg);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  virtual void drawImage(GfxState *state, Object *ref, Stream *str, int width, int height, GfxImageColorMap *colorMap, GBool interpolate, int *maskColors, GBool inlineImg);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  virtual void drawSoftMaskedImage(GfxState *state, Object *ref, Stream *str,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                             int width, int height,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                             GfxImageColorMap *colorMap,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                             GBool interpolate,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                             Stream *maskStr,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                             int maskWidth, int maskHeight,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                             GfxImageColorMap *maskColorMap,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                             GBool maskInterpolate);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  virtual void drawMaskedImage(GfxState *state, Object *ref, Stream *str,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                             int width, int height,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                             GfxImageColorMap *colorMap,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                             GBool interpolate,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                             Stream *maskStr,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                             int maskWidth, int maskHeight,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                             GBool maskInvert, GBool maskInterpolate); // { qDebug() << "Draw Masked Image"; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  //----- transparency groups and soft masks
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  virtual void beginTransparencyGroup(GfxState *state, double *bbox, GfxColorSpace * /*blendingColorSpace*/, GBool /*isolated*/, GBool /*knockout*/, GBool /*forSoftMask*/);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  virtual void paintTransparencyGroup(GfxState *state, double *bbox);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  virtual void endTransparencyGroup(GfxState *state);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  virtual void setSoftMask(GfxState * /*state*/, double * /*bbox*/, GBool /*alpha*/, Function * /*transferFunc*/, GfxColor * /*backdropColor*/);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  virtual void clearSoftMask(GfxState * /*state*/);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  virtual void updateFillColor(GfxState *state);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  virtual void updateStrokeColor(GfxState *state);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  virtual void updateFont(GfxState *state);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  //----- text drawing
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  virtual void beginTextObject(GfxState *state);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  virtual void endTextObject(GfxState *state);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  virtual void drawChar(GfxState *state, double /*x*/, double /*y*/, double /*dx*/, double /*dy*/, double /*originX*/, double /*originY*/, CharCode /*code*/, int /*nBytes*/, Unicode * /*u*/, int /*uLen*/);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  virtual GBool beginType3Char(GfxState * /*state*/, double /*x*/, double /*y*/, double /*dx*/, double /*dy*/, CharCode /*code*/, Unicode * /*u*/, int /*uLen*/);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  virtual void endType3Char(GfxState * /*state*/);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  virtual void type3D0(GfxState * /*state*/, double /*wx*/, double /*wy*/);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  virtual void type3D1(GfxState * /*state*/, double /*wx*/, double /*wy*/, double /*llx*/, double /*lly*/, double /*urx*/, double /*ury*/);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  //----- form XObjects
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  virtual void drawForm(Ref /*id*/) { qDebug() << "Draw Form"; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  //----- links
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  virtual void processLink(AnnotLink * /*link*/) { qDebug() << "Draw Link"; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  bool layersSetByOCG;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  double cropOffsetX;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  double cropOffsetY;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  int rotate;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-private:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  void getPenState(GfxState *state);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  QString getColor(GfxColorSpace *color_space, GfxColor *color, int *shade);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  QString getAnnotationColor(const AnnotColor *color);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  QString convertPath(GfxPath *path);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  int getBlendMode(GfxState *state);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  void applyMask(PageItem *ite);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  void pushGroup(QString maskName = "", GBool forSoftMask = gFalse, GBool alpha = gFalse, bool inverted = false);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  QString UnicodeParsedString(GooString *s1);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  bool checkClip();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  bool pathIsClosed;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  QString CurrColorFill;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  int CurrFillShade;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  QString CurrColorStroke;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  int CurrStrokeShade;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  Qt::PenCapStyle PLineEnd;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  Qt::PenJoinStyle PLineJoin;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  QVector<double> DashValues;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  double DashOffset;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  QString Coords;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  FPointArray m_currentClipPath;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  QStack<FPointArray> m_clipPaths;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  struct groupEntry
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          QList<PageItem*> Items;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          GBool forSoftMask;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          GBool isolated;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          GBool alpha;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          QString maskName;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          bool inverted;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  QStack<groupEntry> m_groupStack;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  QString m_currentMask;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  ScribusDoc* m_doc;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  Selection* tmpSel;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  QList<PageItem*> *m_Elements;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  QStringList *m_importedColors;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  QTransform m_ctm;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  struct F3Entry
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          bool colored;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  QStack<F3Entry> m_F3Stack;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  struct mContent
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          QString name;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          QString ocgName;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  QStack<mContent> m_mcStack;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  int inPattern;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  int layerNum;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  int currentLayer;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  bool firstLayer;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  int importerFlags;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  int updateGUICounter;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  XRef *xref;             // xref table for current document
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  PDFDoc *pdfDoc;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  Catalog *catalog;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  SplashFontEngine *m_fontEngine;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  SplashFont *m_font;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  FormPageWidgets *m_formWidgets;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  QHash<QString, QList<int> > m_radioMap;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  QHash<int, PageItem*> m_radioButtons;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  int m_actPage;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-};
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/*
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++For general Scribus (>=1.3.2) copyright and licensing information please refer
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++to the COPYING file provided with the program. Following this notice may exist
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++a copyright and/or license notice that predates the release of Scribus 1.3.2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++for which a new license (GPL+exception) is in place.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++*/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifndef SLAOUTPUT_H
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define SLAOUTPUT_H
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <QBuffer>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <QColor>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <QBrush>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <QDebug>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <QImage>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <QPen>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <QList>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <QSizeF>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <QStack>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <QString>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <QTextStream>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <QTransform>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include "fpointarray.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include "importpdfconfig.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include "pageitem.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include "scribusdoc.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include "scribusview.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include "selection.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include "vgradient.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <poppler/goo/gtypes.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <poppler/Object.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <poppler/OutputDev.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <poppler/Gfx.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <poppler/GfxState.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <poppler/Stream.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <poppler/GfxFont.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <poppler/Link.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <poppler/PDFDoc.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <poppler/Error.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <poppler/Form.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <poppler/Page.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <poppler/Catalog.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <poppler/CharCodeToUnicode.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <poppler/FontEncodingTables.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <poppler/splash/SplashFontFileID.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <poppler/splash/SplashFontFile.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <poppler/splash/SplashFontEngine.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <poppler/splash/SplashFont.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <poppler/splash/SplashMath.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <poppler/splash/SplashPath.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <poppler/splash/SplashGlyphBitmap.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++//------------------------------------------------------------------------
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++// LinkSubmitData
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++//------------------------------------------------------------------------
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++class LinkSubmitForm: public LinkAction
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++public:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  // Build a LinkImportData from an action dictionary.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  LinkSubmitForm(Object *actionObj);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  // Destructor.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  virtual ~LinkSubmitForm();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  // Was the LinkImportData created successfully?
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  virtual GBool isOk() POPPLER_CONST { return fileName != NULL; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  // Accessors.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  virtual LinkActionKind getKind() POPPLER_CONST { return actionUnknown; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  GooString *getFileName() { return fileName; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  int getFlags() { return m_flags; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++private:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  GooString *fileName;            // file name
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  int m_flags;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++};
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++//------------------------------------------------------------------------
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++// LinkImportData
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++//------------------------------------------------------------------------
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++class LinkImportData: public LinkAction
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++public:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  // Build a LinkImportData from an action dictionary.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  LinkImportData(Object *actionObj);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  // Destructor.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  virtual ~LinkImportData();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  // Was the LinkImportData created successfully?
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  virtual GBool isOk() POPPLER_CONST { return fileName != NULL; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  // Accessors.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  virtual LinkActionKind getKind() POPPLER_CONST { return actionUnknown; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  GooString *getFileName() { return fileName; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++private:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  GooString *fileName;            // file name
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++};
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++//------------------------------------------------------------------------
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++// SplashOutFontFileID
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++//------------------------------------------------------------------------
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++class SplashOutFontFileID: public SplashFontFileID
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++public:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  SplashOutFontFileID(const Ref *rA) { r = *rA; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  ~SplashOutFontFileID() {}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  GBool matches(SplashFontFileID *id)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          return ((SplashOutFontFileID *)id)->r.num == r.num && ((SplashOutFontFileID *)id)->r.gen == r.gen;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++private:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  Ref r;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++};
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++class AnoOutputDev : public OutputDev
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++public:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  AnoOutputDev(ScribusDoc* doc, QStringList *importedColors);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  virtual ~AnoOutputDev();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  GBool isOk() { return gTrue; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  virtual GBool upsideDown() { return gTrue; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  virtual GBool useDrawChar() { return gFalse; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  virtual GBool interpretType3Chars() { return gFalse; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  virtual GBool useTilingPatternFill() { return gFalse; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  virtual GBool useShadedFills(int type) { return gFalse; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  virtual GBool useFillColorStop() { return gFalse; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  virtual GBool useDrawForm() { return gFalse; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  virtual void stroke(GfxState *state);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  virtual void eoFill(GfxState *state);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  virtual void fill(GfxState *state);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  virtual void drawString(GfxState *state, GooString *s);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  QString CurrColorText;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  QString CurrColorFill;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  QString CurrColorStroke;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  double m_fontSize;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  GooString *m_fontName;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  GooString *m_itemText;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++private:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  QString getColor(GfxColorSpace *color_space, GfxColor *color, int *shade);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  ScribusDoc* m_doc;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  QStringList *m_importedColors;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++};
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++class SlaOutputDev : public OutputDev
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++{
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++public:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  SlaOutputDev(ScribusDoc* doc, QList<PageItem*> *Elements, QStringList *importedColors, int flags);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  virtual ~SlaOutputDev();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  LinkAction* SC_getAction(AnnotWidget *ano);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  LinkAction* SC_getAdditionalAction(const char *key, AnnotWidget *ano);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  static GBool annotations_callback(Annot *annota, void *user_data);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  bool handleTextAnnot(Annot* annota, double xCoor, double yCoor, double width, double height);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  bool handleLinkAnnot(Annot* annota, double xCoor, double yCoor, double width, double height);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  bool handleWidgetAnnot(Annot* annota, double xCoor, double yCoor, double width, double height);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  void applyTextStyle(PageItem* ite, QString fontName, QString textColor, double fontSize);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  void handleActions(PageItem* ite, AnnotWidget *ano);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  void startDoc(PDFDoc *doc, XRef *xrefA, Catalog *catA);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  GBool isOk() { return gTrue; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  virtual GBool upsideDown() { return gTrue; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  virtual GBool useDrawChar() { return gTrue; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  virtual GBool interpretType3Chars() { return gTrue; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  virtual GBool useTilingPatternFill() { return gTrue; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  virtual GBool useShadedFills(int type) { return type <= 7; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  virtual GBool useFillColorStop() { return gTrue; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  virtual GBool useDrawForm() { return gFalse; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++//        virtual GBool needClipToCropBox() { return gTrue; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  virtual void startPage(int pageNum, GfxState *, XRef *);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  virtual void endPage();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  // graphics state
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  virtual void saveState(GfxState *state);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  virtual void restoreState(GfxState *state);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  //----- path painting
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  virtual void stroke(GfxState *state);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  virtual void fill(GfxState *state);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  virtual void eoFill(GfxState *state);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  GBool tilingPatternFill(GfxState *state, Gfx *gfx, Catalog *cat, Object *str, double *pmat, int paintType, int tilingType, Dict *resDict, double *mat, double *bbox, int x0, int y0, int x1, int y1, double xStep, double yStep);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  virtual GBool functionShadedFill(GfxState * /*state*/, GfxFunctionShading * /*shading*/) { qDebug() << "Function Shaded Fill";  return gFalse; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  virtual GBool axialShadedFill(GfxState *state, GfxAxialShading *shading, double tMin, double tMax);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  virtual GBool axialShadedSupportExtend(GfxState *state, GfxAxialShading *shading) { return (shading->getExtend0() == shading->getExtend1()); }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  virtual GBool radialShadedFill(GfxState *state, GfxRadialShading *shading, double sMin, double sMax);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  virtual GBool radialShadedSupportExtend(GfxState *state, GfxRadialShading *shading) { return (shading->getExtend0() == shading->getExtend1()); }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  virtual GBool gouraudTriangleShadedFill(GfxState *state, GfxGouraudTriangleShading *shading);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  virtual GBool patchMeshShadedFill(GfxState *state, GfxPatchMeshShading *shading);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  //----- path clipping
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  virtual void clip(GfxState *state);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  virtual void eoClip(GfxState *state);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  virtual void clipToStrokePath(GfxState * /*state*/) { qDebug() << "Clip to StrokePath"; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  virtual GBool deviceHasTextClip(GfxState *state) { return gFalse; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  // If current colorspace is pattern,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  // does this device support text in pattern colorspace?
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  virtual GBool supportTextCSPattern(GfxState *state)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          return state->getFillColorSpace()->getMode() == csPattern;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  // If current colorspace is pattern,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  // need this device special handling for masks in pattern colorspace?
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  virtual GBool fillMaskCSPattern(GfxState * state)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          return state->getFillColorSpace()->getMode() == csPattern;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  virtual void endMaskClip(GfxState *state) { qDebug() << "End Mask Clip"; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  //----- grouping operators
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  virtual void beginMarkedContent(char *name, Dict *properties);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  virtual void beginMarkedContent(char *name, Object *dictRef);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  virtual void endMarkedContent(GfxState *state);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  virtual void markPoint(char *name);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  virtual void markPoint(char *name, Dict *properties);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  //----- image drawing
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  virtual void drawImageMask(GfxState *state, Object *ref, Stream *str, int width, int height, GBool invert, GBool interpolate, GBool inlineImg);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  virtual void drawImage(GfxState *state, Object *ref, Stream *str, int width, int height, GfxImageColorMap *colorMap, GBool interpolate, int *maskColors, GBool inlineImg);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  virtual void drawSoftMaskedImage(GfxState *state, Object *ref, Stream *str,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                             int width, int height,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                             GfxImageColorMap *colorMap,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                             GBool interpolate,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                             Stream *maskStr,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                             int maskWidth, int maskHeight,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                             GfxImageColorMap *maskColorMap,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                             GBool maskInterpolate);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  virtual void drawMaskedImage(GfxState *state, Object *ref, Stream *str,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                             int width, int height,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                             GfxImageColorMap *colorMap,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                             GBool interpolate,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                             Stream *maskStr,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                             int maskWidth, int maskHeight,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                             GBool maskInvert, GBool maskInterpolate); // { qDebug() << "Draw Masked Image"; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  //----- transparency groups and soft masks
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  virtual void beginTransparencyGroup(GfxState *state, double *bbox, GfxColorSpace * /*blendingColorSpace*/, GBool /*isolated*/, GBool /*knockout*/, GBool /*forSoftMask*/);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  virtual void paintTransparencyGroup(GfxState *state, double *bbox);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  virtual void endTransparencyGroup(GfxState *state);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  virtual void setSoftMask(GfxState * /*state*/, double * /*bbox*/, GBool /*alpha*/, Function * /*transferFunc*/, GfxColor * /*backdropColor*/);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  virtual void clearSoftMask(GfxState * /*state*/);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  virtual void updateFillColor(GfxState *state);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  virtual void updateStrokeColor(GfxState *state);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  virtual void updateFont(GfxState *state);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  //----- text drawing
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  virtual void beginTextObject(GfxState *state);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  virtual void endTextObject(GfxState *state);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  virtual void drawChar(GfxState *state, double /*x*/, double /*y*/, double /*dx*/, double /*dy*/, double /*originX*/, double /*originY*/, CharCode /*code*/, int /*nBytes*/, Unicode * /*u*/, int /*uLen*/);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  virtual GBool beginType3Char(GfxState * /*state*/, double /*x*/, double /*y*/, double /*dx*/, double /*dy*/, CharCode /*code*/, Unicode * /*u*/, int /*uLen*/);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  virtual void endType3Char(GfxState * /*state*/);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  virtual void type3D0(GfxState * /*state*/, double /*wx*/, double /*wy*/);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  virtual void type3D1(GfxState * /*state*/, double /*wx*/, double /*wy*/, double /*llx*/, double /*lly*/, double /*urx*/, double /*ury*/);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  //----- form XObjects
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  virtual void drawForm(Ref /*id*/) { qDebug() << "Draw Form"; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  //----- links
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  virtual void processLink(AnnotLink * /*link*/) { qDebug() << "Draw Link"; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  bool layersSetByOCG;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  double cropOffsetX;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  double cropOffsetY;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  int rotate;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++private:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  void getPenState(GfxState *state);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  QString getColor(GfxColorSpace *color_space, GfxColor *color, int *shade);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  QString getAnnotationColor(const AnnotColor *color);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  QString convertPath(GfxPath *path);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  int getBlendMode(GfxState *state);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  void applyMask(PageItem *ite);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  void pushGroup(QString maskName = "", GBool forSoftMask = gFalse, GBool alpha = gFalse, bool inverted = false);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  QString UnicodeParsedString(POPPLER_CONST GooString *s1);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  bool checkClip();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  bool pathIsClosed;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  QString CurrColorFill;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  int CurrFillShade;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  QString CurrColorStroke;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  int CurrStrokeShade;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  Qt::PenCapStyle PLineEnd;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  Qt::PenJoinStyle PLineJoin;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  QVector<double> DashValues;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  double DashOffset;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  QString Coords;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  FPointArray m_currentClipPath;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  QStack<FPointArray> m_clipPaths;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  struct groupEntry
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          QList<PageItem*> Items;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          GBool forSoftMask;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          GBool isolated;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          GBool alpha;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          QString maskName;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          bool inverted;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  QStack<groupEntry> m_groupStack;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  QString m_currentMask;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  ScribusDoc* m_doc;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  Selection* tmpSel;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  QList<PageItem*> *m_Elements;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  QStringList *m_importedColors;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  QTransform m_ctm;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  struct F3Entry
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          bool colored;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  QStack<F3Entry> m_F3Stack;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  struct mContent
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          QString name;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          QString ocgName;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  QStack<mContent> m_mcStack;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  int inPattern;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  int layerNum;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  int currentLayer;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  bool firstLayer;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  int importerFlags;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  int updateGUICounter;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  XRef *xref;             // xref table for current document
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  PDFDoc *pdfDoc;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  Catalog *catalog;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  SplashFontEngine *m_fontEngine;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  SplashFont *m_font;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  FormPageWidgets *m_formWidgets;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  QHash<QString, QList<int> > m_radioMap;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  QHash<int, PageItem*> m_radioButtons;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  int m_actPage;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++};
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span></pre><pre style='margin:0'>

</pre>