Scribus Developer Documentation - API
logo-pen

Scribus Developer Documentation - API

saxfilter.cpp

Go to the documentation of this file.
00001 
00002 #include "saxfilter.h"
00003 
00004 
00005 void SaxFilter::beginDoc()
00006 {
00007     m_delegate->beginDoc();
00008 }
00009 
00010 void SaxFilter::endDoc()
00011 {
00012     m_delegate->endDoc();
00013 }
00014 
00015 void SaxFilter::begin(const Xml_string& tag, Xml_attr attr)
00016 {
00017     m_delegate->begin(tag, attr);
00018 }
00019 
00020 void SaxFilter::end(const Xml_string& tag)
00021 {
00022     m_delegate->end(tag);
00023 }
00024 
00025 void SaxFilter::chars(const Xml_string& text)
00026 {
00027     m_delegate->chars(text);
00028 }
00029 
00030 
00031 KeepOpen::KeepOpen(SaxHandler* delegate) : SaxFilter(delegate), m_level(0) {}
00032 
00033 void KeepOpen::begin(const Xml_string& tag, Xml_attr attr)
00034 {
00035     ++m_level;
00036     if (m_level == 1)
00037         m_tag = tag;
00038     SaxFilter::begin(tag, attr);
00039 }
00040 
00041 void KeepOpen::end(const Xml_string& tag)
00042 {
00043     --m_level;
00044     if (m_level > 0)
00045         SaxFilter::end(tag);
00046 }
00047 
00048 Xml_string KeepOpen::openTag()
00049 {
00050     return m_tag;
00051 }
00052 
00053 RenameElem::RenameElem(SaxHandler* delegate, const Xml_string& oldname, const Xml_string& newname)
00054 : SaxFilter(delegate), m_level(0), m_old(oldname), m_new(newname) {}
00055 
00056 RenameElem::RenameElem(SaxHandler* delegate, const Xml_string& newname)
00057 : SaxFilter(delegate), m_level(0), m_old(""), m_new(newname) {}
00058 
00059 void RenameElem::begin(const Xml_string& tag, Xml_attr attr)
00060 {
00061     ++m_level;
00062     if (m_level == 1 || m_old == tag)
00063         SaxFilter::begin(m_new, attr);
00064     else
00065         SaxFilter::begin(tag, attr);
00066 }
00067 
00068 void RenameElem::end(const Xml_string& tag)
00069 {
00070     if (m_level == 1 || m_old == tag)
00071         SaxFilter::end(m_new);
00072     else
00073         SaxFilter::end(tag);
00074     --m_level;
00075 }
00076 
00077 
00078 AddAttributes::AddAttributes(SaxHandler* delegate, Xml_attr add) 
00079 : SaxFilter(delegate), m_oneshot(false), m_attributes(add) {}
00080 
00081 
00082 void AddAttributes::begin(const Xml_string& tag, Xml_attr attr)
00083 {
00084     if ( !m_oneshot )
00085     {
00086         m_oneshot = true;
00087         Xml_attr::iterator it;
00088         for (it = attr.begin(); it != attr.end(); ++it)
00089             m_attributes[Xml_key(it)] = Xml_data(it);
00090         SaxFilter::begin(tag, m_attributes);
00091     }
00092     else
00093         SaxFilter::begin(tag, attr);
00094 }
00095 
Created with personalized Doxygen. This is documentation for GPL software Scribus - Open Source Desktop Publishing.