summaryrefslogtreecommitdiff
path: root/src/xmlfixups.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/xmlfixups.h')
-rw-r--r--src/xmlfixups.h155
1 files changed, 0 insertions, 155 deletions
diff --git a/src/xmlfixups.h b/src/xmlfixups.h
deleted file mode 100644
index 99fe876..0000000
--- a/src/xmlfixups.h
+++ /dev/null
@@ -1,155 +0,0 @@
-/*
- * Copyright (c) 2004, Nate Nielsen
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * * Redistributions of source code must retain the above
- * copyright notice, this list of conditions and the
- * following disclaimer.
- * * Redistributions in binary form must reproduce the
- * above copyright notice, this list of conditions and
- * the following disclaimer in the documentation and/or
- * other materials provided with the distribution.
- * * The names of contributors to this software may not be
- * used to endorse or promote products derived from this
- * software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
- * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
- * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF
- * THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
- * DAMAGE.
- *
- *
- * CONTRIBUTORS
- * Nate Nielsen <nielsen@memberwebs.com>
- *
- */
-
-#ifndef __XMLFIXUPS_H__
-#define __XMLFIXUPS_H__
-
-#include "sablo.h"
-#include "domhelpers.h"
-
-/*
- * XmlFixups
- *
- * Because RTF is so 'different' (read: brain dead) we need to do all sorts
- * of antics to get it into a nice XML format. Some of the XML Composition
- * is done in XmlComposer, but whatever can't be done there as we're parsing
- * gets done here after the fact.
- *
- * These functions are called from XmlComposer::endDocument and massage the
- * resulting XML DOM into shape.
- */
-class XmlFixups
-{
-public:
- XmlFixups();
-
- /*
- * Breaks a paragraph up through a previous level. Calls itself
- * recursively to break paragraphs totally free up to containing
- * destination.
- *
- * For example:
- *
- * <dest>
- * This is <b> a <block fix="para"/>
- * test of </b> your concentration.
- * </dest>
- *
- * Becomes:
- *
- * <dest>
- * This is <b> a </b><block fix="para"/>
- * <b>test of </b> your concentration.
- * </dest>
- */
- bool breakElement(const DOM::Element& el, const string& contain);
-
- // Break all tags of a given type to a previous level (see above)
- void breakBreak(DOM::Document& doc, const string& contain, const string& tag);
-
- // Used to break tables cells and rows into blocks (but more complicated)
- void breakTags(DOM::Document& doc, const string& parentName, const string& tagName);
-
- // Fixes and combines list elements with the same id
- void breakLists(DOM::Document& document);
-
- // Used to find and create tables and perform initial break out
- void breakTables(DOM::Document& document);
-
-
- /*
- * Changes from a marker based paragraph system to a contained
- * paragraph system. Also applies paragraph attributes to the
- * appropriate paragraph.
- *
- * For example:
- *
- * <dest>
- * This <blockattr style="10"> is <b> a <block fix="para"/>
- * test of </b> your concentration.
- * </dest>
- *
- * Becomes:
- *
- * <para style="10"> This is <b> a </b></para>
- * <para><b>test of </b> your concentration.</para>
- */
- void breakBlocks(DOM::Document& document);
-
- // Wrap certain tags in a wrapper tag of given name
- void wrapTags(DOM::Document& document, const string& tagName, const string& wrapName);
-
- // Remove certain tags from document
- void removeTags(const DOM::Document& doc);
-
- // Combines certain adjacent duplicate tags
- void combineDuplicates(const DOM::Document& doc);
-
- // Consolidates a certain tag types at the beginning of the document
- void consolidateStartTags(DOM::Document& doc);
-
- // Consolidates a certain tag types at the end of the document
- void consolidateEndTags(DOM::Document& doc);
-
-
- // The main pass 2 function
- void runPassTwo(const DOM::Document& doc);
-
- // Replace blocks with 'fix' elements like paragraphs
- void fixBlock(const DOM::Document& doc, DOM::Element& block);
-
-
-protected:
-
- enum
- {
- PASS_0,
- PASS_1,
- PASS_TWO
- };
-
- // Our tables cached for efficiency
- StringSet m_duplicates;
- StringSet m_removes;
- StringSet m_removeEmpty;
- StringSet m_consolidateStart;
- StringSet m_consolidateEnd;
- StringSet m_requireAttrs;
-};
-
-#endif // __XMLFIXUPS_H__