Scribus Developer Documentation - API
logo-pen

Scribus Developer Documentation - API

annotation.cpp

Go to the documentation of this file.
00001 
00002 
00003 
00004 #include "annotation.h"
00005 #include "util.h"
00006 #include "util_math.h"
00007 
00008 void Annotation::saxx(SaxHandler& handler, const Xml_string& elemtag) const
00009 {
00010     Xml_attr att;
00011     att.insert("ANTYPE", QString::number(Type()));
00012     att.insert("ANACTION", Action());
00013     att.insert("ANEACT", E_act());
00014     att.insert("ANXACT", X_act());
00015     att.insert("ANDACT", D_act());
00016     att.insert("ANFOACT", Fo_act());
00017     att.insert("ANBLACT", Bl_act());
00018     att.insert("ANKACT", K_act());
00019     att.insert("ANFACT", F_act());
00020     att.insert("ANVACT", V_act());
00021     att.insert("ANCACT", C_act());
00022     if (ActionType() == 8)
00023         att.insert("ANEXTERN", Extern());
00024     else
00025         att.insert("ANEXTERN", Path2Relative(Extern()));
00026     att.insert("ANZIEL", QString::number(Ziel()));
00027     att.insert("ANACTYP", QString::number(ActionType()));
00028     att.insert("ANTOOLTIP", ToolTip());
00029     att.insert("ANBWID", QString::number(Bwid()));
00030     att.insert("ANBSTY", QString::number(Bsty()));
00031     att.insert("ANFEED", QString::number(Feed()));
00032     att.insert("ANFLAG", QString::number(Flag()));
00033     att.insert("ANFONT", QString::number(Font()));
00034     att.insert("ANFORMAT", QString::number(Format()));
00035     att.insert("ANROLL", RollOver());
00036     att.insert("ANDOWN", Down());
00037     att.insert("ANVIS", QString::number(Vis()));
00038     att.insert("ANMC", QString::number(MaxChar()));
00039     att.insert("ANCHK", IsChk() ? "yes" : "no");
00040     att.insert("ANAA", AAact() ? "yes" : "no");
00041     att.insert("ANCHKS", QString::number(ChkStil()));
00042     att.insert("ANBCOL", borderColor());
00043     att.insert("ANHTML", HTML() ? "yes" : "no");
00044     att.insert("ANICON", UseIcons() ? "yes" : "no");
00045     att.insert("ANPLACE", QString::number(IPlace()));
00046     att.insert("ANSCALE", QString::number(ScaleW()));
00047     
00048     handler.beginEnd(elemtag, att);
00049 }
00050 
00051 const Xml_string Annotation::saxxDefaultElem("pdfannotation");
00052 
00053 
00054 class ParseAnnotation_body : public Action_body
00055 {
00056 public:
00057     void begin(const Xml_string& tagname, Xml_attr attr)
00058     {
00059         Annotation* ann = this->dig->top<Annotation>();
00060         ann->setType(parseInt(attr["ANTYPE"]));
00061         ann->setAction(attr["ANACTION"]);
00062         ann->setE_act(attr["ANEACT"]);
00063         ann->setX_act(attr["ANXACT"]);
00064         ann->setD_act(attr["ANDACT"]);
00065         ann->setFo_act(attr["ANFOACT"]);
00066         ann->setBl_act(attr["ANBLACT"]);
00067         ann->setK_act(attr["ANKACT"]);
00068         ann->setF_act(attr["ANFACT"]);
00069         ann->setV_act(attr["ANVACT"]);
00070         ann->setC_act(attr["ANCACT"]);
00071         ann->setExtern(attr["ANEXTERN"]);
00072         ann->setZiel(parseInt(attr["ANZIEL"]));
00073         ann->setActionType(parseInt(attr["ANACTYP"]));
00074         ann->setToolTip(attr["ANTOOLTIP"]);
00075         ann->setBwid(parseInt(attr["ANBWID"]));
00076         ann->setBsty(parseInt(attr["ANBSTY"]));
00077         ann->setFeed(parseInt(attr["ANFEED"]));
00078         ann->setFlag(parseInt(attr["ANFLAG"]));
00079         ann->setFont(parseInt(attr["ANFONT"]));
00080         ann->setFormat(parseInt(attr["ANFORMAT"]));
00081         ann->setRollOver(attr["ANROLL"]);
00082         ann->setDown(attr["ANDOWN"]);
00083         ann->setVis(parseInt(attr["ANVIS"]));
00084         ann->setMaxChar(parseInt(attr["ANMC"]));
00085         ann->setIsChk(parseBool(attr["ANCHK"]));
00086         ann->setAAact(parseBool(attr["ANAA"]));
00087         ann->setChkStil(parseInt(attr["ANCHKS"]));
00088         ann->setBorderColor(attr["ANBCOL"]);
00089         ann->setHTML(parseBool(attr["ANHTML"]));
00090         ann->setUseIcons(parseBool(attr["ANICON"]));
00091         ann->setIPlace(parseInt(attr["ANPLACE"]));
00092         ann->setScaleW(parseInt(attr["ANSCALE"]));
00093     }
00094 };
00095 
00096 class ParseAnnotation : public MakeAction<ParseAnnotation_body>
00097 {};
00098 
00099 
00100 void Annotation::desaxeRules(const Xml_string& prefixPattern, desaxe::Digester& ruleset, Xml_string elemtag)
00101 {
00102     Xml_string annPrefix(Digester::concat(prefixPattern, elemtag));
00103     ruleset.addRule(annPrefix, Factory<Annotation>());
00104     ruleset.addRule(annPrefix, ParseAnnotation());
00105 }
Created with personalized Doxygen. This is documentation for GPL software Scribus - Open Source Desktop Publishing.