summaryrefslogtreecommitdiffstats
path: root/scribus/annotation.cpp
diff options
context:
space:
mode:
authorcraig <craig@11d20701-8431-0410-a711-e3c959e3b870>2012-01-01 11:40:09 +0000
committercraig <craig@11d20701-8431-0410-a711-e3c959e3b870>2012-01-01 11:40:09 +0000
commit7ed83b6c6666eb8b6b104c211ae7e52907350372 (patch)
tree4430b556abac0ad660a0aacf1887d77f85d8be02 /scribus/annotation.cpp
downloadscribus-7ed83b6c6666eb8b6b104c211ae7e52907350372.tar.gz
scribus-7ed83b6c6666eb8b6b104c211ae7e52907350372.tar.xz
scribus-7ed83b6c6666eb8b6b104c211ae7e52907350372.zip
Branch 1.3.5 tree to 1.4.x tree, goodbye 1.3.x
git-svn-id: svn://scribus.net/branches/Version14x/Scribus@17163 11d20701-8431-0410-a711-e3c959e3b870
Diffstat (limited to 'scribus/annotation.cpp')
-rw-r--r--scribus/annotation.cpp110
1 files changed, 110 insertions, 0 deletions
diff --git a/scribus/annotation.cpp b/scribus/annotation.cpp
new file mode 100644
index 0000000..8c85c33
--- /dev/null
+++ b/scribus/annotation.cpp
@@ -0,0 +1,110 @@
+/*
+For general Scribus (>=1.3.2) copyright and licensing information please refer
+to the COPYING file provided with the program. Following this notice may exist
+a copyright and/or license notice that predates the release of Scribus 1.3.2
+for which a new license (GPL+exception) is in place.
+*/
+
+#include "annotation.h"
+#include "util.h"
+#include "util_text.h"
+#include "util_math.h"
+
+void Annotation::saxx(SaxHandler& handler, const Xml_string& elemtag) const
+{
+ Xml_attr att;
+ att.insert("ANTYPE", QString::number(Type()));
+ att.insert("ANACTION", Action());
+ att.insert("ANEACT", E_act());
+ att.insert("ANXACT", X_act());
+ att.insert("ANDACT", D_act());
+ att.insert("ANFOACT", Fo_act());
+ att.insert("ANBLACT", Bl_act());
+ att.insert("ANKACT", K_act());
+ att.insert("ANFACT", F_act());
+ att.insert("ANVACT", V_act());
+ att.insert("ANCACT", C_act());
+ if (ActionType() == 8)
+ att.insert("ANEXTERN", Extern());
+ else
+ att.insert("ANEXTERN", Path2Relative(Extern()));
+ att.insert("ANZIEL", QString::number(Ziel()));
+ att.insert("ANACTYP", QString::number(ActionType()));
+ att.insert("ANTOOLTIP", ToolTip());
+ att.insert("ANBWID", QString::number(Bwid()));
+ att.insert("ANBSTY", QString::number(Bsty()));
+ att.insert("ANFEED", QString::number(Feed()));
+ att.insert("ANFLAG", QString::number(Flag()));
+ att.insert("ANFONT", QString::number(Font()));
+ att.insert("ANFORMAT", QString::number(Format()));
+ att.insert("ANROLL", RollOver());
+ att.insert("ANDOWN", Down());
+ att.insert("ANVIS", QString::number(Vis()));
+ att.insert("ANMC", QString::number(MaxChar()));
+ att.insert("ANCHK", IsChk() ? "yes" : "no");
+ att.insert("ANAA", AAact() ? "yes" : "no");
+ att.insert("ANCHKS", QString::number(ChkStil()));
+ att.insert("ANBCOL", borderColor());
+ att.insert("ANHTML", HTML() ? "yes" : "no");
+ att.insert("ANICON", UseIcons() ? "yes" : "no");
+ att.insert("ANPLACE", QString::number(IPlace()));
+ att.insert("ANSCALE", QString::number(ScaleW()));
+
+ handler.beginEnd(elemtag, att);
+}
+
+const Xml_string Annotation::saxxDefaultElem("pdfannotation");
+
+
+class ParseAnnotation_body : public Action_body
+{
+public:
+ void begin(const Xml_string& tagname, Xml_attr attr)
+ {
+ Annotation* ann = this->dig->top<Annotation>();
+ ann->setType(parseInt(attr["ANTYPE"]));
+ ann->setAction(attr["ANACTION"]);
+ ann->setE_act(attr["ANEACT"]);
+ ann->setX_act(attr["ANXACT"]);
+ ann->setD_act(attr["ANDACT"]);
+ ann->setFo_act(attr["ANFOACT"]);
+ ann->setBl_act(attr["ANBLACT"]);
+ ann->setK_act(attr["ANKACT"]);
+ ann->setF_act(attr["ANFACT"]);
+ ann->setV_act(attr["ANVACT"]);
+ ann->setC_act(attr["ANCACT"]);
+ ann->setExtern(attr["ANEXTERN"]);
+ ann->setZiel(parseInt(attr["ANZIEL"]));
+ ann->setActionType(parseInt(attr["ANACTYP"]));
+ ann->setToolTip(attr["ANTOOLTIP"]);
+ ann->setBwid(parseInt(attr["ANBWID"]));
+ ann->setBsty(parseInt(attr["ANBSTY"]));
+ ann->setFeed(parseInt(attr["ANFEED"]));
+ ann->setFlag(parseInt(attr["ANFLAG"]));
+ ann->setFont(parseInt(attr["ANFONT"]));
+ ann->setFormat(parseInt(attr["ANFORMAT"]));
+ ann->setRollOver(attr["ANROLL"]);
+ ann->setDown(attr["ANDOWN"]);
+ ann->setVis(parseInt(attr["ANVIS"]));
+ ann->setMaxChar(parseInt(attr["ANMC"]));
+ ann->setIsChk(parseBool(attr["ANCHK"]));
+ ann->setAAact(parseBool(attr["ANAA"]));
+ ann->setChkStil(parseInt(attr["ANCHKS"]));
+ ann->setBorderColor(attr["ANBCOL"]);
+ ann->setHTML(parseBool(attr["ANHTML"]));
+ ann->setUseIcons(parseBool(attr["ANICON"]));
+ ann->setIPlace(parseInt(attr["ANPLACE"]));
+ ann->setScaleW(parseInt(attr["ANSCALE"]));
+ }
+};
+
+class ParseAnnotation : public MakeAction<ParseAnnotation_body>
+{};
+
+
+void Annotation::desaxeRules(const Xml_string& prefixPattern, desaxe::Digester& ruleset, Xml_string elemtag)
+{
+ Xml_string annPrefix(Digester::concat(prefixPattern, elemtag));
+ ruleset.addRule(annPrefix, Factory<Annotation>());
+ ruleset.addRule(annPrefix, ParseAnnotation());
+}