summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMartin Owens <doctormo@gmail.com>2014-03-03 22:38:47 +0000
committerMartin Owens <doctormo@gmail.com>2014-03-03 22:38:47 +0000
commitbd7a0a3d7793afd623480010cfc5ae6331b73087 (patch)
tree8d8779f7a373b00cfeee8b75a461d3b471f5630d
parentRemove massive list of inx and py files for extensions Makefile, use magic in... (diff)
parentMerge to trunk (diff)
downloadinkscape-bd7a0a3d7793afd623480010cfc5ae6331b73087.tar.gz
inkscape-bd7a0a3d7793afd623480010cfc5ae6331b73087.zip
Remove dom/* code and replace two uses of dom/uri with uri.
(bzr r13107)
-rw-r--r--build-lx.xml2
-rw-r--r--build.xml13
-rw-r--r--src/Makefile.am3
-rw-r--r--src/color-profile.cpp14
-rw-r--r--src/dom/CMakeLists.txt61
-rw-r--r--src/dom/Makefile.mingw234
-rw-r--r--src/dom/Makefile_insert56
-rw-r--r--src/dom/css.h4693
-rw-r--r--src/dom/cssreader.cpp1684
-rw-r--r--src/dom/cssreader.h294
-rw-r--r--src/dom/dom.h2758
-rw-r--r--src/dom/domimpl.cpp3071
-rw-r--r--src/dom/domimpl.h2029
-rw-r--r--src/dom/domptr.cpp87
-rw-r--r--src/dom/domptr.h339
-rw-r--r--src/dom/domstring.cpp423
-rw-r--r--src/dom/domstring.h316
-rw-r--r--src/dom/events.h1644
-rw-r--r--src/dom/io/domstream.cpp1228
-rw-r--r--src/dom/io/domstream.h684
-rw-r--r--src/dom/ls.h947
-rw-r--r--src/dom/lsimpl.cpp441
-rw-r--r--src/dom/lsimpl.h390
-rw-r--r--src/dom/makefile.in17
-rw-r--r--src/dom/mingwenv.bat2
-rw-r--r--src/dom/prop-css.cpp1161
-rw-r--r--src/dom/prop-css2.cpp1305
-rw-r--r--src/dom/prop-svg.cpp746
-rw-r--r--src/dom/smil.h2508
-rw-r--r--src/dom/smilimpl.cpp855
-rw-r--r--src/dom/smilimpl.h766
-rw-r--r--src/dom/stylesheets.h597
-rw-r--r--src/dom/svg.h4758
-rw-r--r--src/dom/svgimpl.cpp2563
-rw-r--r--src/dom/svgimpl.h5543
-rw-r--r--src/dom/svgreader.cpp750
-rw-r--r--src/dom/svgreader.h187
-rw-r--r--src/dom/svgtypes.h6900
-rw-r--r--src/dom/traversal.h609
-rw-r--r--src/dom/ucd.cpp2539
-rw-r--r--src/dom/ucd.h335
-rw-r--r--src/dom/uri.cpp961
-rw-r--r--src/dom/uri.h488
-rw-r--r--src/dom/views-level3.h1967
-rw-r--r--src/dom/views.h218
-rw-r--r--src/dom/xmlreader.cpp998
-rw-r--r--src/dom/xmlreader.h126
-rw-r--r--src/dom/xmlwriter.cpp200
-rw-r--r--src/dom/xmlwriter.h84
-rw-r--r--src/dom/xpath.h351
-rw-r--r--src/dom/xpathimpl.cpp236
-rw-r--r--src/dom/xpathimpl.h265
-rw-r--r--src/dom/xpathparser.cpp2093
-rw-r--r--src/dom/xpathparser.h801
-rw-r--r--src/dom/xpathtoken.cpp1068
-rw-r--r--src/dom/xpathtoken.h672
-rw-r--r--src/extension/internal/odf.cpp19
-rw-r--r--src/extension/internal/odf.h9
-rw-r--r--src/uri.cpp5
-rw-r--r--src/uri.h3
-rw-r--r--src/util/Makefile_insert2
-rw-r--r--src/util/ziptool.cpp (renamed from src/dom/util/ziptool.cpp)0
-rw-r--r--src/util/ziptool.h (renamed from src/dom/util/ziptool.h)0
63 files changed, 28 insertions, 64090 deletions
diff --git a/build-lx.xml b/build-lx.xml
index f5b448439..03b881cea 100644
--- a/build-lx.xml
+++ b/build-lx.xml
@@ -220,8 +220,6 @@
<exclude name="test-all.cpp"/>
<exclude name="display/testnr.cpp"/>
<exclude name="display/bezier-utils-test.cpp"/>
- <exclude name="dom/work/.*"/>
- <exclude name="dom/odf/SvgOdg.cpp"/>
<exclude name="extension/api.cpp"/>
<exclude name="extension/dxf2svg/.*"/>
<exclude name="extension/implementation/plugin.cpp"/>
diff --git a/build.xml b/build.xml
index 890c9c3e3..1e8341777 100644
--- a/build.xml
+++ b/build.xml
@@ -315,8 +315,6 @@
<!--<exclude name="test-src.cpp"/>-->
<exclude name="display/test-display.cpp"/>
<exclude name="display/testnr.cpp"/>
- <exclude name="dom/work/.*"/>
- <exclude name="dom/odf/SvgOdg.cpp"/>
<exclude name="extension/api.cpp"/>
<exclude name="extension/dbus/.*"/>
<exclude name="extension/dxf2svg/.*"/>
@@ -444,9 +442,6 @@
</flags>
<fileset dir="${build}/obj">
<exclude name="winconsole.o"/>
- <exclude name="dom/prop-css.o"/>
- <exclude name="dom/prop-css2.o"/>
- <exclude name="dom/prop-svg.o"/>
<exclude name="inkview.o"/>
<exclude name="inkviewres.o"/>
<!-- CxxTest -->
@@ -532,10 +527,6 @@
<exclude name="winmain.o"/>
<exclude name="winconsole.o"/>
<exclude name="inkres.o"/>
- <!-- broken files -->
- <exclude name="dom/prop-css.o"/>
- <exclude name="dom/prop-css2.o"/>
- <exclude name="dom/prop-svg.o"/>
<!-- CxxTest -->
<exclude name="test-main.o"/>
<exclude name="test-src.o"/>
@@ -594,10 +585,6 @@
<exclude name="inkres.o"/>
<exclude name="inkviewres.o"/>
<exclude name="inkview.o"/>
- <!-- broken files -->
- <exclude name="dom/prop-css.o"/>
- <exclude name="dom/prop-css2.o"/>
- <exclude name="dom/prop-svg.o"/>
</fileset>
<libs>
-L${devlibs}/lib
diff --git a/src/Makefile.am b/src/Makefile.am
index 7fbc135c5..d3f8794ee 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -23,7 +23,6 @@ endif
noinst_LIBRARIES = \
- dom/libdom.a \
libcroco/libcroco.a \
libavoid/libavoid.a \
$(internal_GDL) \
@@ -108,7 +107,6 @@ endif
include Makefile_insert
include dialogs/Makefile_insert
include display/Makefile_insert
-include dom/Makefile_insert
include extension/Makefile_insert
include extension/dbus/Makefile_insert
include extension/implementation/Makefile_insert
@@ -148,7 +146,6 @@ EXTRA_DIST += \
debug/makefile.in \
dialogs/makefile.in \
display/makefile.in \
- dom/makefile.in \
extension/implementation/makefile.in \
extension/internal/makefile.in \
extension/makefile.in \
diff --git a/src/color-profile.cpp b/src/color-profile.cpp
index 2736b9a3b..09eaa36e5 100644
--- a/src/color-profile.cpp
+++ b/src/color-profile.cpp
@@ -46,7 +46,7 @@
#include "document.h"
#include "preferences.h"
-#include "dom/uri.h"
+#include "uri.h"
#ifdef WIN32
#include <icm.h>
@@ -331,13 +331,17 @@ void ColorProfile::set(unsigned key, gchar const *value) {
gchar* escaped = g_uri_escape_string(this->href, "!*'();:@=+$,/?#[]", TRUE);
//g_message("docbase:%s\n", docbase);
- org::w3c::dom::URI docUri(docbase);
+ //org::w3c::dom::URI docUri(docbase);
+ Inkscape::URI docUri(docbase);
+
//# 2. Get href of icc file. we don't care if it's rel or abs
- org::w3c::dom::URI hrefUri(escaped);
+ //org::w3c::dom::URI hrefUri(escaped);
+ Inkscape::URI hrefUri(escaped);
//# 3. Resolve the href according the docBase. This follows
// the w3c specs. All absolute and relative issues are considered
- org::w3c::dom::URI cprofUri = docUri.resolve(hrefUri);
- gchar* fullname = g_uri_unescape_string(cprofUri.getNativePath().c_str(), "");
+ std::string fullpath = docUri.getFullPath(hrefUri.getFullPath(""));
+
+ gchar* fullname = g_uri_unescape_string(fullpath.c_str(), "");
this->impl->_clearProfile();
this->impl->_profHandle = cmsOpenProfileFromFile( fullname, "r" );
if ( this->impl->_profHandle ) {
diff --git a/src/dom/CMakeLists.txt b/src/dom/CMakeLists.txt
deleted file mode 100644
index c3078a8e3..000000000
--- a/src/dom/CMakeLists.txt
+++ /dev/null
@@ -1,61 +0,0 @@
-
-set(dom_SRC
- cssreader.cpp
- domimpl.cpp
- domptr.cpp
- domstring.cpp
- lsimpl.cpp
- prop-css2.cpp
- prop-css.cpp
- prop-svg.cpp
- smilimpl.cpp
- svgimpl.cpp
- svgreader.cpp
- ucd.cpp
- uri.cpp
- xmlreader.cpp
- xpathimpl.cpp
- xpathparser.cpp
- xpathtoken.cpp
-
- io/domstream.cpp
-
- util/ziptool.cpp
-
-
- # -------
- # Headers
- css.h
- cssreader.h
- dom.h
- domimpl.h
- domptr.h
- domstring.h
- events.h
- ls.h
- lsimpl.h
- smil.h
- smilimpl.h
- stylesheets.h
- svg.h
- svgimpl.h
- svgreader.h
- svgtypes.h
- traversal.h
- ucd.h
- uri.h
- views-level3.h
- views.h
- xmlreader.h
- xmlwriter.h
- xpath.h
- xpathimpl.h
- xpathparser.h
- xpathtoken.h
-
- io/domstream.h
-
- util/ziptool.h
-)
-
-add_inkscape_lib(dom_LIB "${dom_SRC}")
diff --git a/src/dom/Makefile.mingw b/src/dom/Makefile.mingw
deleted file mode 100644
index 9f75b2dbb..000000000
--- a/src/dom/Makefile.mingw
+++ /dev/null
@@ -1,234 +0,0 @@
-###########################################################################
-#
-# Makefile for testing DOM code
-#
-###########################################################################
-
-####### Sense whether we are on a DOS box or cross-compiling
-ifdef ComSpec
-BUILD=native
-DOSSHELL=CMD_EXE
-else
-ifdef COMSPEC
-BUILD=native
-DOSSHELL=COMMAND_COM
-else
-BUILD=cross
-endif
-endif
-
-
-
-
-##########################################################################
-# FILE SEPARATORS
-# $(S) will be set to one of these
-##########################################################################
-BSLASH := \\#
-FSLASH := /
-
-
-
-##########################################################################
-# CROSS / NATIVE SWITCHES
-##########################################################################
-ifeq ($(BUILD),cross)
-
-
-
-##########################################################################
-# CROSS COMPILER SETTINGS
-##########################################################################
-
-CC = i686-pc-mingw32-gcc
-CXX = i686-pc-mingw32-g++
-AS = i686-pc-mingw32-as
-AR = i686-pc-mingw32-ar
-RANLIB = i686-pc-mingw32-ranlib
-WINDRES = i686-pc-mingw32-windres
-LD = i686-pc-mingw32-ld
-DLLWRAP = i686-pc-mingw32-dllwrap
-DLLTOOL = i686-pc-mingw32-dlltool
-
-####### file separator
-S = $(FSLASH)
-
-####### escape character for echo
-E = /
-
-####### file manipulation programs
-CP = cp
-RMDIR = rm -rf
-MKDIR = mkdir
-CPDIR = cp -rf
-MSGFMT = msgfmt
-RMREC = find ./inkscape -type f -name
-RMREC1 = |xargs $(RM)
-RMDIRREC = find ./inkscape -type d -name
-RMDIRREC1 = |xargs $(RMDIR)
-
-####### Where is your GTK directory?
-GTK=/target
-
-####### Same thing, file system style
-GTKDOS=$(GTK)
-
-DTG := $(shell date +%y%m%d.%H%M)
-
-else
-
-##########################################################################
-# NATIVE COMPILER SETTINGS
-##########################################################################
-
-CC = mingw32-gcc
-CXX = mingw32-g++
-AS = as
-AR = mingw32-ar
-RANLIB = ranlib
-WINDRES = windres
-DLLWRAP = dllwrap
-DLLTOOL = dlltool
-
-####### file separator
-S = $(BSLASH)
-
-####### escape character for echo
-E =
-
-####### file manipulation programs
-CP = copy
-
-####### are we on WinNt and beyond?
-ifeq ($(DOSSHELL),CMD_EXE)
-RMDIR = rmdir /s /q
-RM = del
-else
-RMDIR = deltree /y
-RM = del
-endif
-MKDIR = mkdir
-CPDIR = xcopy /e /i
-RMREC = cd inkscape & $(RM) /s /q
-RMREC1 = & cd ..
-RMDIRREC = cd inkscape & $(RMDIR) /s
-RMDIRREC1 = & cd ..
-
-####### Where is your GTK directory?
-GTK=c:/devlibs
-
-####### Same thing, DOS style
-GTKDOS=c:\devlibs
-
-####### Command to process .po files --> .mo
-MSGFMT = $(GTKDOS)$(S)bin$(S)msgfmt
-
-####### change me!!
-DTG := 20080515
-
-endif
-##########################################################################
-# END CROSS / NATIVE SWITCHES
-##########################################################################
-
-
-
-
-INC = -I. -I..
-CFLAGS = -Wall -g -DDOM_STANDALONE
-LIBS = -lws2_32
-
-DOMOBJ = \
-cssreader.o \
-domimpl.o \
-domptr.o \
-domstring.o \
-lsimpl.o \
-smilimpl.o \
-uri.o \
-xmlreader.o \
-xpathimpl.o \
-xpathparser.o \
-xpathtoken.o \
-io/base64stream.o \
-io/domstream.o \
-io/bufferstream.o \
-io/gzipstream.o \
-io/httpclient.o \
-io/stringstream.o \
-io/uristream.o \
-io/socket.o \
-odf/odfdocument.o \
-svgimpl.o \
-svgreader.o \
-ucd.o \
-util/thread.o \
-util/ziptool.o
-
-
-
-TESTOBJ = \
-work/testdom.o \
-work/testodf.o \
-work/testsvg.o \
-work/testuri.o \
-work/testxpath.o \
-work/testzip.o
-
-OBJ = $(DOMOBJ)
-
-all: testsvg.exe
-
-tests: testdom.exe testhttp.exe \
-testsvg.exe testuri.exe testxpath.exe testzip.exe
-
-testdom.exe: libdom.a work/testdom.o
- $(CXX) -o $@ work/testdom.o libdom.a $(LIBS)
-
-testhttp.exe: libdom.a work/testhttp.o
- $(CXX) -o $@ work/testhttp.o libdom.a $(LIBS)
-
-testodf.exe: libdom.a work/testodf.o
- $(CXX) -o $@ work/testodf.o libdom.a $(LIBS)
-
-testsvg.exe: libdom.a work/testsvg.o
- $(CXX) -o $@ work/testsvg.o libdom.a $(LIBS)
-
-testuri.exe: libdom.a work/testuri.o
- $(CXX) -o $@ work/testuri.o libdom.a $(LIBS)
-
-testxpath.exe: libdom.a work/testxpath.o
- $(CXX) -o $@ work/testxpath.o libdom.a $(LIBS)
-
-testzip.exe: libdom.a work/testzip.o
- $(CXX) -o $@ work/testzip.o libdom.a $(LIBS)
-
-
-libdom.a: $(OBJ)
- ar crv $@ $(OBJ)
-
-
-.cpp.o:
- $(CXX) $(CFLAGS) $(INC) -c -o $@ $<
-
-clean:
- $(foreach a, $(OBJ), $(shell $(RM) $(subst /,$(S), $(a))))
- $(foreach a, $(TESTOBJ), $(shell $(RM) $(subst /,$(S), $(a))))
- -$(RM) *.a
- -$(RM) *.gch
- -$(RM) testdom
- -$(RM) testdom.exe
- -$(RM) testsvg
- -$(RM) testsvg.exe
- -$(RM) testuri
- -$(RM) testuri.exe
- -$(RM) testxpath
- -$(RM) testxpath.exe
- -$(RM) testzip
- -$(RM) testzip.exe
- -$(RM) core.*
-
-###########################################################################
-# E N D O F F I L E
-###########################################################################
-
diff --git a/src/dom/Makefile_insert b/src/dom/Makefile_insert
deleted file mode 100644
index 6d222987e..000000000
--- a/src/dom/Makefile_insert
+++ /dev/null
@@ -1,56 +0,0 @@
-## Makefile.am fragment sourced by src/Makefile.am.
-
-dom/all: dom/libdom.a
-
-dom/clean:
- rm -f dom/libdom.a $(dom_libdom_a_OBJECTS)
-
-dom_libdom_a_SOURCES = \
- dom/css.h \
- dom/cssreader.cpp \
- dom/cssreader.h \
- dom/dom.h \
- dom/domimpl.cpp \
- dom/domimpl.h \
- dom/domptr.cpp \
- dom/domptr.h \
- dom/domstring.cpp \
- dom/domstring.h \
- dom/events.h \
- dom/ls.h \
- dom/lsimpl.cpp \
- dom/lsimpl.h \
- dom/prop-css2.cpp \
- dom/prop-css.cpp \
- dom/prop-svg.cpp \
- dom/smil.h \
- dom/smilimpl.cpp \
- dom/smilimpl.h \
- dom/stylesheets.h \
- dom/svg.h \
- dom/svgimpl.cpp \
- dom/svgimpl.h \
- dom/svgreader.cpp \
- dom/svgreader.h \
- dom/svgtypes.h \
- dom/traversal.h \
- dom/ucd.cpp \
- dom/ucd.h \
- dom/uri.cpp \
- dom/uri.h \
- dom/views.h \
- dom/views-level3.h \
- dom/xmlreader.cpp \
- dom/xmlreader.h \
- dom/xpath.h \
- dom/xpathimpl.cpp \
- dom/xpathimpl.h \
- dom/xpathparser.cpp \
- dom/xpathparser.h \
- dom/xpathtoken.h \
- dom/xpathtoken.cpp \
- dom/io/domstream.cpp \
- dom/io/domstream.h \
- dom/util/ziptool.h \
- dom/util/ziptool.cpp
-
diff --git a/src/dom/css.h b/src/dom/css.h
deleted file mode 100644
index f270b99eb..000000000
--- a/src/dom/css.h
+++ /dev/null
@@ -1,4693 +0,0 @@
-/**
- * @file
- * Phoebe DOM Implementation.
- *
- * This is a C++ approximation of the W3C DOM model, which follows
- * fairly closely the specifications in the various .idl files, copies of
- * which are provided for reference. Most important is this one:
- *
- * http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/idl-definitions.html
- */
-/*
- * Authors:
- * Bob Jamison
- *
- * Copyright (C) 2005-2008 Bob Jamison
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- *
- * =======================================================================
- * NOTES
- *
- * Views, Stylesheets and CSS are DOM Level 2 for the purposes of supporting
- * SVG. Be prepared in the future when they make Level 3 and SVG is likewise
- * updated. The API here and many of the comments come from this document:
- * http://www.w3.org/TR/DOM-Level-2-Style/css.html
-
- */
-
-#ifndef SEEN_CSS_H
-#define SEEN_CSS_H
-
-#include "dom.h"
-#include "stylesheets.h"
-#include "views.h"
-
-#include <vector>
-#include <map>
-
-
-namespace org {
-namespace w3c {
-namespace dom {
-namespace css {
-
-
-
-
-//Make local definitions
-typedef dom::DOMString DOMString;
-typedef dom::Element Element;
-typedef dom::DOMImplementation DOMImplementation;
-
-//forward declarations
-class CSSRule;
-class CSSStyleSheet;
-class CSSStyleDeclaration;
-class CSSValue;
-class Counter;
-class Rect;
-class RGBColor;
-
-
-
-
-
-/*#########################################################################
-## CSSRule
-#########################################################################*/
-
-/**
- * The CSSRule interface is the abstract base interface for any type of CSS
- * statement. This includes both rule sets and at-rules. An implementation is
- * expected to preserve all rules specified in a CSS style sheet, even if the
- * rule is not recognized by the parser. Unrecognized rules are represented using
- * the CSSUnknownRule interface.
- */
-class CSSRule
-{
-public:
-
- /**
- * An integer indicating which type of rule this is.
- */
- typedef enum
- {
- UNKNOWN_RULE = 0,
- STYLE_RULE = 1,
- CHARSET_RULE = 2,
- IMPORT_RULE = 3,
- MEDIA_RULE = 4,
- FONT_FACE_RULE = 5,
- PAGE_RULE = 6
- } RuleType;
-
-
- /**
- * The type of the rule, as defined above. The expectation is that
- * binding-specific casting methods can be used to cast down from an instance of
- * the CSSRule interface to the specific derived interface implied by the type.
- */
- virtual unsigned short getType()
- {
- return type;
- }
-
- /**
- * The parsable textual representation of the rule. This reflects the current
- * state of the rule and not its initial value.
- */
- virtual DOMString getCssText()
- {
- return cssText;
- }
-
- /**
- * The parsable textual representation of the rule. This reflects the current
- * state of the rule and not its initial value.
- * Note that setting involves reparsing.
- */
- virtual void setCssText(const DOMString &val) throw (dom::DOMException)
- {
- cssText = val;
- }
-
- /**
- * The style sheet that contains this rule.
- */
- virtual CSSStyleSheet *getParentStyleSheet()
- {
- return parentStyleSheet;
- }
-
- /**
- * If this rule is contained inside another rule (e.g. a style rule inside an
- * @media block), this is the containing rule. If this rule is not nested inside
- * any other rules, this returns null.
- */
- virtual CSSRule *getParentRule()
- {
- return parentRule;
- }
-
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- CSSRule()
- {
- type = UNKNOWN_RULE;
- cssText = "";
- parentStyleSheet = NULL;
- parentRule = NULL;
- }
-
- /**
- *
- */
- CSSRule(const CSSRule &other)
- {
- assign(other);
- }
-
- /**
- *
- */
- CSSRule &operator=(const CSSRule &other)
- {
- assign(other);
- return *this;
- }
-
- /**
- *
- */
- void assign(const CSSRule &other)
- {
- type = other.type;
- cssText = other.cssText;
- parentStyleSheet = other.parentStyleSheet;
- parentRule = other.parentRule;
- }
-
- /**
- *
- */
- virtual ~CSSRule() {}
-
-protected:
-
- int type;
-
- DOMString cssText;
-
- CSSStyleSheet *parentStyleSheet;
-
- CSSRule *parentRule;
-};
-
-
-
-/*#########################################################################
-## CSSRuleList
-#########################################################################*/
-
-/**
- * The CSSRuleList interface provides the abstraction of an ordered collection of
- * CSS rules.
- *
- * The items in the CSSRuleList are accessible via an integral index, starting
- * from 0.
- */
-class CSSRuleList
-{
-public:
-
- /**
- * The number of CSSRules in the list. The range of valid child rule indices is 0
- * to length-1 inclusive.
- */
- virtual unsigned long getLength()
- {
- return rules.size();
- }
-
- /**
- * Used to retrieve a CSS rule by ordinal index. The order in this collection
- * represents the order of the rules in the CSS style sheet. If index is greater
- * than or equal to the number of rules in the list, this returns null.
- */
- virtual CSSRule item(unsigned long index)
- {
- if (index>=rules.size())
- {
- CSSRule rule;
- return rule;
- }
- return rules[index];
- }
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- CSSRuleList() {}
-
-
- /**
- *
- */
- CSSRuleList(const CSSRuleList &other)
- : rules (other.rules)
- {
- }
-
- /**
- *
- */
- CSSRuleList &operator=(const CSSRuleList &other)
- {
- rules = other.rules;
- return *this;
- }
-
- /**
- *
- */
- virtual ~CSSRuleList() {}
-
-protected:
-
-friend class CSSMediaRule;
-friend class CSSStyleSheet;
-
- /**
- *
- */
- virtual void addRule(const CSSRule &rule)
- {
- rules.push_back(rule);
- }
-
-
- /**
- *
- */
- virtual void deleteRule(unsigned long index)
- {
- if (index>=rules.size())
- return;
- std::vector<CSSRule>::iterator iter = rules.begin() + index;
- rules.erase(iter);
- }
-
-
- /**
- *
- */
- virtual long insertRule(const CSSRule &rule, unsigned long index)
- {
- if (index>=rules.size())
- return -1;
- std::vector<CSSRule>::iterator iter = rules.begin() + index;
- rules.insert(iter, rule);
- return index;
- }
-
- std::vector<CSSRule>rules;
-};
-
-
-/*#########################################################################
-## CSSStyleSheet
-#########################################################################*/
-
-/**
- * The CSSStyleSheet interface is a concrete interface used to represent a CSS
- * style sheet i.e., a style sheet whose content type is "text/css".
- */
-class CSSStyleSheet : virtual public stylesheets::StyleSheet
-{
-public:
-
- /**
- * If this style sheet comes from an @import rule, the ownerRule attribute will
- * contain the CSSImportRule. In that case, the ownerNode attribute in the
- * StyleSheet interface will be null. If the style sheet comes from an element or
- * a processing instruction, the ownerRule attribute will be null and the
- * ownerNode attribute will contain the Node.
- */
- virtual CSSRule *getOwnerRule()
- {
- return ownerRule;
- }
-
- /**
- * The list of all CSS rules contained within the style sheet. This
- * includes both rule sets and at-rules.
- */
- virtual CSSRuleList getCssRules()
- {
- return rules;
- }
-
- /**
- * Used to insert a new rule into the style sheet. The new rule now
- * becomes part of the cascade.
- */
- virtual unsigned long insertRule(const DOMString &/*ruleStr*/,
- unsigned long index)
- throw (dom::DOMException)
- {
- CSSRule rule;
- return rules.insertRule(rule, index);
- }
-
- /**
- * Used to delete a rule from the style sheet.
- */
- virtual void deleteRule(unsigned long index)
- throw (dom::DOMException)
- {
- rules.deleteRule(index);
- }
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- CSSStyleSheet() : stylesheets::StyleSheet(), ownerRule(0)
- {
- }
-
- /**
- *
- */
- CSSStyleSheet(const CSSStyleSheet &other) :
- stylesheets::StyleSheet(other)
- {
- assign(other);
- }
-
- /**
- *
- */
- CSSStyleSheet &operator=(const CSSStyleSheet &other)
- {
- assign(other);
- return *this;
- }
-
- /**
- *
- */
- void assign(const CSSStyleSheet &other)
- {
- ownerRule = other.ownerRule;
- rules = other.rules;
- }
-
- /**
- *
- */
- virtual ~CSSStyleSheet() {}
-
-protected:
-
- CSSRule *ownerRule;
-
- CSSRuleList rules;
-};
-
-
-/*#########################################################################
-## CSSValue
-#########################################################################*/
-
-/**
- * The CSSValue interface represents a simple or a complex value. A CSSValue
- * object only occurs in a context of a CSS property.
- */
-class CSSValue
-{
-public:
-
- /**
- * An integer indicating which type of unit applies to the value.
- */
- typedef enum
- {
- CSS_INHERIT = 0,
- CSS_PRIMITIVE_VALUE = 1,
- CSS_VALUE_LIST = 2,
- CSS_CUSTOM = 3
- } UnitTypes;
-
- /**
- * A code defining the type of the value as defined above.
- */
- virtual unsigned short getCssValueType()
- {
- return valueType;
- }
-
- /**
- * A string representation of the current value.
- */
- virtual DOMString getCssText()
- {
- return cssText;
- }
-
- /**
- * A string representation of the current value.
- * Note that setting implies parsing.
- */
- virtual void setCssText(const DOMString &val)
- throw (dom::DOMException)
- {
- cssText = val;
- }
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- CSSValue()
- {
- valueType = CSS_INHERIT;
- }
-
- /**
- *
- */
- CSSValue(const CSSValue &other)
- {
- assign(other);
- }
-
- /**
- *
- */
- CSSValue &operator=(const CSSValue &other)
- {
- assign(other);
- return *this;
- }
-
- /**
- *
- */
- void assign(const CSSValue &other)
- {
- cssText = other.cssText;
- valueType = other.valueType;
- }
-
- /**
- *
- */
- virtual ~CSSValue() {}
-
-protected:
-
- DOMString cssText;
- int valueType;
-};
-
-
-
-
-
-/*#########################################################################
-## CSSStyleDeclaration
-#########################################################################*/
-
-/**
- * The CSSStyleDeclaration interface represents a single CSS declaration block.
- * This interface may be used to determine the style properties currently set in
- * a block or to set style properties explicitly within the block.
- *
- * While an implementation may not recognize all CSS properties within a CSS
- * declaration block, it is expected to provide access to all specified
- * properties in the style sheet through the CSSStyleDeclaration interface.
- * Furthermore, implementations that support a specific level of CSS should
- * correctly handle CSS shorthand properties for that level. For a further
- * discussion of shorthand properties, see the CSS2Properties interface.
- *
- * This interface is also used to provide a read-only access to the computed
- * values of an element. See also the ViewCSS interface.
- *
- * Note: The CSS Object Model doesn't provide an access to the specified or
- * actual values of the CSS cascade.
- */
-class CSSStyleDeclaration
-{
-private:
-
- class CSSStyleDeclarationEntry
- {
- public:
- CSSStyleDeclarationEntry(const DOMString &nameArg,
- const DOMString &valueArg,
- const DOMString &prioArg)
- {
- name = nameArg;
- value = valueArg;
- prio = prioArg;
- }
- virtual ~CSSStyleDeclarationEntry(){}
- DOMString name;
- DOMString value;
- DOMString prio;
- };
-
-
-public:
-
- /**
- * The parsable textual representation of the declaration block (excluding the
- * surrounding curly braces).
- */
- virtual DOMString getCssText()
- {
- return cssText;
- }
-
- /**
- * The parsable textual representation of the declaration block (excluding the
- * surrounding curly braces). Setting this attribute will result in the parsing
- * of the new value and resetting of all the properties in the declaration block
- * including the removal or addition of properties.
- */
- virtual void setCssText(const DOMString &val)
- throw (dom::DOMException)
- {
- cssText = val;
- }
-
- /**
- * Used to retrieve the value of a CSS property if it has been explicitly
- * set within this declaration block.
- */
- virtual DOMString getPropertyValue(const DOMString &propertyName)
- {
- std::vector<CSSStyleDeclarationEntry>::iterator iter;
- for (iter=items.begin() ; iter!=items.end() ; ++iter)
- {
- if (iter->name == propertyName)
- return iter->value;
- }
- return "";
- }
-
- /**
- * Used to retrieve the object representation of the value of a CSS property if
- * it has been explicitly set within this declaration block. This method returns
- * null if the property is a shorthand property. Shorthand property values can
- * only be accessed and modified as strings, using the getPropertyValue and
- * setProperty methods.
- */
- virtual CSSValue getPropertyCSSValue(const DOMString &/*propertyName*/)
- {
- CSSValue value;
- return value;
- }
-
- /**
- * Used to remove a CSS property if it has been explicitly set within
- * this declaration block.
- */
- virtual DOMString removeProperty(const DOMString &propertyName)
- throw (dom::DOMException)
- {
- std::vector<CSSStyleDeclarationEntry>::iterator iter;
- for (iter=items.begin() ; iter!=items.end() ; ){
- if (iter->name == propertyName){
- iter = items.erase(iter);
- }
- else{
- ++iter;
- }
- }
- return propertyName;
- }
-
- /**
- * Used to retrieve the priority of a CSS property (e.g. the "important"
- * qualifier) if the property has been explicitly set in this declaration block.
- */
- virtual DOMString getPropertyPriority(const DOMString &propertyName)
- {
- std::vector<CSSStyleDeclarationEntry>::iterator iter;
- for (iter=items.begin() ; iter!=items.end() ; ++iter)
- {
- if (iter->name == propertyName)
- return iter->prio;
- }
- return "";
- }
-
- /**
- * Used to set a property value and priority within this declaration block.
- */
- virtual void setProperty(const DOMString &propertyName,
- const DOMString &value,
- const DOMString &priority)
- throw (dom::DOMException)
- {
- std::vector<CSSStyleDeclarationEntry>::iterator iter;
- for (iter=items.begin() ; iter!=items.end() ; ++iter)
- {
- if (iter->name == propertyName)
- {
- iter->name = propertyName;
- iter->value = value;
- iter->prio = priority;
- return;
- }
- }
- CSSStyleDeclarationEntry entry(propertyName, value, priority);
- items.push_back(entry);
- }
-
- /**
- * The number of properties that have been explicitly set in this declaration
- * block. The range of valid indices is 0 to length-1 inclusive.
- */
- virtual unsigned long getLength()
- {
- return items.size();
- }
-
- /**
- * Used to retrieve the properties that have been explicitly set in this
- * declaration block. The order of the properties retrieved using this method
- * does not have to be the order in which they were set. This method can be used
- * to iterate over all properties in this declaration block.
- */
- virtual DOMString item(unsigned long index)
- {
- if (index>=items.size())
- return "";
- DOMString ret = items[index].name;
- ret.append(":");
- ret.append(items[index].value);
- return ret;
- }
-
- /**
- * The CSS rule that contains this declaration block or null if this
- * CSSStyleDeclaration is not attached to a CSSRule.
- */
- virtual CSSRule *getParentRule()
- {
- return parentRule;
- }
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- CSSStyleDeclaration()
- {
- parentRule = NULL;
- }
-
- /**
- *
- */
- CSSStyleDeclaration(const CSSStyleDeclaration &other)
- {
- assign(other);
- }
-
- /**
- *
- */
- CSSStyleDeclaration &operator=(const CSSStyleDeclaration &other)
- {
- assign(other);
- return *this;
- }
-
- /**
- *
- */
- void assign(const CSSStyleDeclaration &other)
- {
- parentRule = other.parentRule;
- cssText = other.cssText;
- items = other.items;
- }
-
- /**
- *
- */
- virtual ~CSSStyleDeclaration() {}
-
-protected:
-
- DOMString cssText;
-
- CSSRule *parentRule;
-
- std::vector<CSSStyleDeclarationEntry> items;
-};
-
-
-
-
-/*#########################################################################
-## CSSStyleRule
-#########################################################################*/
-
-/**
- * The CSSStyleRule interface represents a single rule set in a CSS style sheet.
- */
-class CSSStyleRule : virtual public CSSRule
-{
-public:
-
- /**
- * The textual representation of the selector for the rule set. The
- * implementation may have stripped out insignificant whitespace while parsing
- * the selector.
- */
- virtual DOMString getSelectorText()
- {
- return selectorText;
- }
-
- /**
- * The textual representation of the selector for the rule set. The
- * implementation may have stripped out insignificant whitespace while parsing
- * the selector. Setting implies reparsing.
- */
- virtual void setSelectorText(const DOMString &val)
- throw (dom::DOMException)
- {
- selectorText = val;
- }
-
-
- /**
- * The declaration-block of this rule set.
- */
- virtual CSSStyleDeclaration &getStyle()
- {
- return style;
- }
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- CSSStyleRule() : CSSRule()
- {
- type = STYLE_RULE;
- selectorText = "";
- }
-
-
- /**
- *
- */
- CSSStyleRule(const CSSStyleRule &other) : CSSRule(other)
- {
- assign(other);
- }
-
- /**
- *
- */
- CSSStyleRule &operator=(const CSSStyleRule &other)
- {
- assign(other);
- return *this;
- }
-
- /**
- *
- */
- void assign(const CSSStyleRule &other)
- {
- selectorText = other.selectorText;
- style = other.style;
- }
-
- /**
- *
- */
- virtual ~CSSStyleRule() {}
-
-protected:
-
- DOMString selectorText;
-
- CSSStyleDeclaration style;
-
-};
-
-/*#########################################################################
-## CSSMediaRule
-#########################################################################*/
-
-/**
- * The CSSMediaRule interface represents a @media rule in a CSS style sheet. A
- * @media rule can be used to delimit style rules for specific media types.
- */
-class CSSMediaRule : virtual public CSSRule
-{
-public:
-
- /**
- * A list of media types for this rule.
- */
- virtual stylesheets::MediaList getMedia()
- {
- return mediaList;
- }
-
- /**
- * A list of all CSS rules contained within the media block.
- */
- virtual CSSRuleList getCssRules()
- {
- return cssRules;
- }
-
- /**
- * Used to insert a new rule into the media block.
- */
- virtual unsigned long insertRule(const DOMString &/*ruleStr*/,
- unsigned long index)
- throw (dom::DOMException)
- {
- if (index>cssRules.getLength())
- return 0;
- CSSRule rule;
- cssRules.insertRule(rule, index);
- return index;
- }
-
- /**
- * Used to delete a rule from the media block.
- */
- virtual void deleteRule(unsigned long index)
- throw(dom::DOMException)
- {
- cssRules.deleteRule(index);
- }
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- CSSMediaRule() : CSSRule()
- {
- type = MEDIA_RULE;
- }
-
- /**
- *
- */
- CSSMediaRule(const CSSMediaRule &other) : CSSRule(other)
- {
- assign(other);
- }
-
- /**
- *
- */
- CSSMediaRule &operator=(const CSSMediaRule &other)
- {
- assign(other);
- return *this;
- }
-
- /**
- *
- */
- void assign(const CSSMediaRule &other)
- {
- mediaList = other.mediaList;
- cssRules = other.cssRules;
- }
-
- /**
- *
- */
- virtual ~CSSMediaRule() {}
-
-protected:
-
- stylesheets::MediaList mediaList;
-
- CSSRuleList cssRules;
-};
-
-
-
-
-/*#########################################################################
-## CSSFontFaceRule
-#########################################################################*/
-
-/**
- * The CSSFontFaceRule interface represents a @font-face rule in a CSS style
- * sheet. The @font-face rule is used to hold a set of font descriptions.
- */
-class CSSFontFaceRule : virtual public CSSRule
-{
-public:
-
- /**
- * The declaration-block of this rule.
- */
- virtual CSSStyleDeclaration getStyle()
- {
- return style;
- }
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- CSSFontFaceRule() : CSSRule()
- {
- type = FONT_FACE_RULE;
- }
-
- /**
- *
- */
- CSSFontFaceRule(const CSSFontFaceRule &other)
- : CSSRule(other),
- style (other.style)
- {
- }
-
- /**
- *
- */
- CSSFontFaceRule &operator=(const CSSFontFaceRule &other)
- {
- style = other.style;
- return *this;
- }
-
- /**
- *
- */
- void assign(const CSSFontFaceRule &other)
- {
- style = other.style;
- }
-
- /**
- *
- */
- virtual ~CSSFontFaceRule() {}
-
-protected:
-
- CSSStyleDeclaration style;
-};
-
-
-
-
-/*#########################################################################
-## CSSPageRule
-#########################################################################*/
-
-/**
- * The CSSPageRule interface represents a @page rule within a CSS style sheet.
- * The @page rule is used to specify the dimensions, orientation, margins, etc.
- * of a page box for paged media.
- */
-class CSSPageRule : virtual public CSSRule
-{
-public:
-
- /**
- * The parsable textual representation of the page selector for the rule.
- */
- virtual DOMString getSelectorText()
- {
- return selectorText;
- }
-
- /**
- * The parsable textual representation of the page selector for the rule.
- * Setting implies parsing.
- */
- virtual void setSelectorText(const DOMString &val)
- throw(dom::DOMException)
- {
- selectorText = val;
- }
-
-
- /**
- * The declaration-block of this rule.
- */
- virtual CSSStyleDeclaration getStyle()
- {
- return style;
- }
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- CSSPageRule() : CSSRule()
- {
- type = PAGE_RULE;
- }
-
- /**
- *
- */
- CSSPageRule(const CSSPageRule &other) : CSSRule(other)
- {
- assign(other);
- }
-
- /**
- *
- */
- CSSPageRule &operator=(const CSSPageRule &other)
- {
- assign(other);
- return *this;
- }
-
- /**
- *
- */
- void assign(const CSSPageRule &other)
- {
- selectorText = other.selectorText;
- style = other.style;
- }
-
- /**
- *
- */
- virtual ~CSSPageRule() {}
-
-protected:
-
- DOMString selectorText;
-
- CSSStyleDeclaration style;
-};
-
-
-
-
-
-/*#########################################################################
-## CSSImportRule
-#########################################################################*/
-
-/**
- * The CSSImportRule interface represents a @import rule within a CSS style
- * sheet. The @import rule is used to import style rules from other style sheets.
- */
-class CSSImportRule : virtual public CSSRule
-{
-public:
-
- /**
- * The location of the style sheet to be imported. The attribute will not contain
- * the "url(...)" specifier around the URI.
- */
- virtual DOMString getHref()
- {
- return href;
- }
-
- /**
- * A list of media types for which this style sheet may be used.
- */
- virtual stylesheets::MediaList getMedia()
- {
- return mediaList;
- }
-
- /**
- * The style sheet referred to by this rule, if it has been loaded. The value of
- * this attribute is null if the style sheet has not yet been loaded or if it
- * will not be loaded (e.g. if the style sheet is for a media type not supported
- * by the user agent).
- */
- virtual CSSStyleSheet getStyleSheet()
- {
- return styleSheet;
- }
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- CSSImportRule() : CSSRule()
- {
- type = IMPORT_RULE;
- }
-
- /**
- *
- */
- CSSImportRule(const CSSImportRule &other) : CSSRule(other)
- {
- assign(other);
- }
-
- /**
- *
- */
- CSSImportRule &operator=(const CSSImportRule &other)
- {
- assign(other);
- return *this;
- }
-
- /**
- *
- */
- void assign(const CSSImportRule &other)
- {
- href = other.href;
- mediaList = other.mediaList;
- styleSheet = other.styleSheet;
- }
-
- /**
- *
- */
- virtual ~CSSImportRule() {}
-
-protected:
-
- DOMString href;
-
- stylesheets::MediaList mediaList;
-
- CSSStyleSheet styleSheet;
-};
-
-
-
-
-
-
-/*#########################################################################
-## CSSCharsetRule
-#########################################################################*/
-
-/**
- * The CSSCharsetRule interface represents a @charset rule in a CSS style sheet.
- * The value of the encoding attribute does not affect the encoding of text data
- * in the DOM objects; this encoding is always UTF-16. After a stylesheet is
- * loaded, the value of the encoding attribute is the value found in the @charset
- * rule. If there was no @charset in the original document, then no
- * CSSCharsetRule is created. The value of the encoding attribute may also be
- * used as a hint for the encoding used on serialization of the style sheet.
- *
- * The value of the @charset rule (and therefore of the CSSCharsetRule) may not
- * correspond to the encoding the document actually came in; character encoding
- * information e.g. in an HTTP header, has priority (see CSS document
- * representation) but this is not reflected in the CSSCharsetRule.
- */
-class CSSCharsetRule : virtual public CSSRule
-{
-public:
-
- /**
- * The encoding information used in this @charset rule.
- */
- virtual DOMString getEncoding()
- {
- return encoding;
- }
-
- /**
- * The encoding information used in this @charset rule.
- * Setting implies parsing.
- */
- virtual void setEncoding(const DOMString &val) throw (dom::DOMException)
- {
- encoding = val;
- }
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- CSSCharsetRule() : CSSRule()
- {
- type = CHARSET_RULE;
- }
-
- /**
- *
- */
- CSSCharsetRule(const CSSCharsetRule &other) : CSSRule(other)
- {
- encoding = other.encoding;
- }
-
- /**
- *
- */
- CSSCharsetRule &operator=(const CSSCharsetRule &other)
- {
- encoding = other.encoding;
- return *this;
- }
-
- /**
- *
- */
- virtual ~CSSCharsetRule() {}
-
-protected:
-
- DOMString encoding;
-
-};
-
-
-
-
-
-/*#########################################################################
-## CSSUnknownRule
-#########################################################################*/
-
-/**
- * The CSSUnknownRule interface represents an at-rule not supported by
- * this user agent.
- */
-class CSSUnknownRule : virtual public CSSRule
-{
-public:
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- CSSUnknownRule() : CSSRule()
- {
- type = UNKNOWN_RULE;
- }
-
- /**
- *
- */
- CSSUnknownRule(const CSSUnknownRule &other) : CSSRule(other)
- {
- }
-
- /**
- *
- */
- CSSUnknownRule &operator=(const CSSUnknownRule &/*other*/)
- {
- return *this;
- }
-
- /**
- *
- */
- virtual ~CSSUnknownRule() {}
-};
-
-
-
-
-
-
-
-/*#########################################################################
-## CSSValueList
-#########################################################################*/
-
-/**
- * The CSSValueList interface provides the abstraction of an ordered collection
- * of CSS values.
- *
- * Some properties allow an empty list into their syntax. In that case, these
- * properties take the none identifier. So, an empty list means that the property
- * has the value none.
- *
- * The items in the CSSValueList are accessible via an integral index, starting
- * from 0.
- */
-class CSSValueList : virtual public CSSValue
-{
-public:
-
- /**
- * The number of CSSValues in the list. The range of valid values of the indices
- * is 0 to length-1 inclusive.
- */
- virtual unsigned long getLength()
- {
- return items.size();
- }
-
- /**
- * Used to retrieve a CSSValue by ordinal index. The order in this collection
- * represents the order of the values in the CSS style property. If index is
- * greater than or equal to the number of values in the list, this returns null.
- */
- virtual CSSValue item(unsigned long index)
- {
- if (index>=items.size())
- {
- CSSValue dummy;
- return dummy;
- }
- return items[index];
- }
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- CSSValueList()
- {
- }
-
- /**
- *
- */
- CSSValueList(const CSSValueList &other)
- : CSSValue(other),
- items (other.items)
- {
- }
-
- /**
- *
- */
- CSSValueList &operator=(const CSSValueList &other)
- {
- items = other.items;
- return *this;
- }
-
- /**
- *
- */
- virtual ~CSSValueList() {}
-
-protected:
-
- std::vector<CSSValue> items;
-};
-
-
-
-
-/*#########################################################################
-## CSSPrimitiveValue
-#########################################################################*/
-
-/**
- * The CSSPrimitiveValue interface represents a single CSS value. This interface
- * may be used to determine the value of a specific style property currently set
- * in a block or to set a specific style property explicitly within the block. An
- * instance of this interface might be obtained from the getPropertyCSSValue
- * method of the CSSStyleDeclaration interface. A CSSPrimitiveValue object only
- * occurs in a context of a CSS property.
- *
- * Conversions are allowed between absolute values (from millimeters to
- * centimeters, from degrees to radians, and so on) but not between relative
- * values. (For example, a pixel value cannot be converted to a centimeter value.)
- * Percentage values can't be converted since they are relative to the parent
- * value (or another property value). There is one exception for color percentage
- * values: since a color percentage value is relative to the range 0-255, a color
- * percentage value can be converted to a number; (see also the RGBColor
- * interface).
- */
-class CSSPrimitiveValue : virtual public CSSValue
-{
-public:
-
- /**
- *An integer indicating which type of unit applies to the value.
- */
- typedef enum
- {
- CSS_UNKNOWN = 0,
- CSS_NUMBER = 1,
- CSS_PERCENTAGE = 2,
- CSS_EMS = 3,
- CSS_EXS = 4,
- CSS_PX = 5,
- CSS_CM = 6,
- CSS_MM = 7,
- CSS_IN = 8,
- CSS_PT = 9,
- CSS_PC = 10,
- CSS_DEG = 11,
- CSS_RAD = 12,
- CSS_GRAD = 13,
- CSS_MS = 14,
- CSS_S = 15,
- CSS_HZ = 16,
- CSS_KHZ = 17,
- CSS_DIMENSION = 18,
- CSS_STRING = 19,
- CSS_URI = 20,
- CSS_IDENT = 21,
- CSS_ATTR = 22,
- CSS_COUNTER = 23,
- CSS_RECT = 24,
- CSS_RGBCOLOR = 25
- } UnitTypes;
-
-
- /**
- * The type of the value as defined by the constants specified above.
- */
- virtual unsigned short getPrimitiveType()
- {
- return primitiveType;
- }
-
- /**
- * A method to set the float value with a specified unit. If the property
- * attached with this value can not accept the specified unit or the float value,
- * the value will be unchanged and a DOMException will be raised.
- */
- virtual void setFloatValue(unsigned short unitType,
- double doubleValueArg)
- throw (dom::DOMException)
- {
- primitiveType = unitType;
- doubleValue = doubleValueArg;
- }
-
- /**
- * This method is used to get a float value in a specified unit. If this CSS
- * value doesn't contain a float value or can't be converted into the specified
- * unit, a DOMException is raised.
- */
- virtual double getFloatValue(unsigned short /*unitType*/)
- throw (dom::DOMException)
- {
- return doubleValue;
- }
-
- /**
- * A method to set the string value with the specified unit. If the property
- * attached to this value can't accept the specified unit or the string value,
- * the value will be unchanged and a DOMException will be raised.
- */
- virtual void setStringValue(unsigned short /*stringType*/,
- const DOMString &stringValueArg)
- throw (dom::DOMException)
- {
- stringValue = stringValueArg;
- }
-
- /**
- * This method is used to get the string value. If the CSS value doesn't contain
- * a string value, a DOMException is raised.
- *
- * Note: Some properties (like 'font-family' or 'voice-family') convert a
- * whitespace separated list of idents to a string.
- */
- virtual DOMString getStringValue() throw (dom::DOMException)
- {
- return stringValue;
- }
-
- /**
- * This method is used to get the Counter value. If this CSS value doesn't
- * contain a counter value, a DOMException is raised. Modification to the
- * corresponding style property can be achieved using the Counter interface.
- */
- virtual Counter *getCounterValue() throw (dom::DOMException)
- {
- return NULL;
- }
-
- /**
- * This method is used to get the Rect value. If this CSS value doesn't contain a
- * rect value, a DOMException is raised. Modification to the corresponding style
- * property can be achieved using the Rect interface.
- */
- virtual Rect *getRectValue() throw (dom::DOMException)
- {
- return NULL;
- }
-
- /**
- * This method is used to get the RGB color. If this CSS value doesn't contain a
- * RGB color value, a DOMException is raised. Modification to the corresponding
- * style property can be achieved using the RGBColor interface.
- */
- virtual RGBColor *getRGBColorValue() throw (dom::DOMException)
- {
- return NULL;
- }
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- CSSPrimitiveValue() :
- CSSValue(),
- primitiveType(0),
- doubleValue(0),
- stringValue()
- {
- }
-
- /**
- *
- */
- CSSPrimitiveValue(const CSSPrimitiveValue &other) :
- CSSValue()
- {
- primitiveType = other.primitiveType;
- doubleValue = other.doubleValue;
- stringValue = other.stringValue;
- }
-
- /**
- *
- */
- CSSPrimitiveValue &operator=(const CSSPrimitiveValue &other)
- {
- if(this == &other)
- {
- return *this;
- }
- primitiveType = other.primitiveType;
- doubleValue = other.doubleValue;
- stringValue = other.stringValue;
- return *this;
- }
-
- /**
- *
- */
- virtual ~CSSPrimitiveValue() {}
-
-protected:
-
- int primitiveType;
-
- double doubleValue;
-
- DOMString stringValue;
-
-
-};
-
-
-
-/*#########################################################################
-## RGBColor
-#########################################################################*/
-
-/**
- * The RGBColor interface is used to represent any RGB color value. This
- * interface reflects the values in the underlying style property. Hence,
- * modifications made to the CSSPrimitiveValue objects modify the style property.
- *
- * A specified RGB color is not clipped (even if the number is outside the range
- * 0-255 or 0%-100%). A computed RGB color is clipped depending on the device.
- *
- * Even if a style sheet can only contain an integer for a color value, the
- * internal storage of this integer is a float, and this can be used as a float
- * in the specified or the computed style.
- *
- * A color percentage value can always be converted to a number and vice versa.
- */
-class RGBColor
-{
-public:
-
- /**
- * This attribute is used for the red value of the RGB color.
- */
- virtual CSSPrimitiveValue getRed()
- {
- return red;
- }
-
- /**
- * This attribute is used for the green value of the RGB color.
- */
- virtual CSSPrimitiveValue getGreen()
- {
- return green;
- }
-
- /**
- * This attribute is used for the blue value of the RGB color.
- */
- virtual CSSPrimitiveValue getBlue()
- {
- return blue;
- }
-
- /**
- * REPLACES: RGBColor CSSPrimitiveValue::getRGBColorValue() throw (dom::DOMException)
- */
- static RGBColor getRGBColorValue(const CSSPrimitiveValue &/*val*/)
- {
- RGBColor col;
- return col;
- }
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- RGBColor() {}
-
- /**
- *
- */
- RGBColor(const RGBColor &other)
- {
- assign(other);
- }
-
- /**
- *
- */
- RGBColor &operator=(const RGBColor &other)
- {
- assign(other);
- return *this;
- }
-
- /**
- *
- */
- void assign(const RGBColor &other)
- {
- red = other.red;
- green = other.green;
- blue = other.blue;
- }
-
- /**
- *
- */
- virtual ~RGBColor() {}
-
-protected:
-
- CSSPrimitiveValue red;
- CSSPrimitiveValue green;
- CSSPrimitiveValue blue;
-};
-
-
-
-
-/*#########################################################################
-## Rect
-#########################################################################*/
-
-/**
- * The Rect interface is used to represent any rect value. This interface
- * reflects the values in the underlying style property. Hence, modifications
- * made to the CSSPrimitiveValue objects modify the style property.
- */
-class Rect
-{
-public:
-
- /**
- * This attribute is used for the top of the rect.
- */
- virtual CSSPrimitiveValue getTop()
- {
- return top;
- }
-
- /**
- * This attribute is used for the right of the rect.
- */
- virtual CSSPrimitiveValue getRight()
- {
- return right;
- }
-
- /**
- * This attribute is used for the bottom of the rect.
- */
- virtual CSSPrimitiveValue getBottom()
- {
- return bottom;
- }
-
- /**
- * This attribute is used for the left of the rect.
- */
- virtual CSSPrimitiveValue getLeft()
- {
- return left;
- }
-
- /**
- * REPLACES: Rect CSSPrimitiveValue::getRectValue() throw (dom::DOMException)
- */
- static Rect getRectValue(const CSSPrimitiveValue &/*val*/)
- {
- Rect rect;
- return rect;
- }
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- Rect() {}
-
- /**
- *
- */
- Rect(const Rect &other)
- {
- assign(other);
- }
-
- /**
- *
- */
- Rect &operator=(const Rect &other)
- {
- assign(other);
- return *this;
- }
-
- /**
- *
- */
- void assign(const Rect &other)
- {
- top = other.top;
- right = other.right;
- bottom = other.bottom;
- left = other.left;
- }
-
- /**
- *
- */
- virtual ~Rect() {}
-
-protected:
-
- CSSPrimitiveValue top;
- CSSPrimitiveValue right;
- CSSPrimitiveValue bottom;
- CSSPrimitiveValue left;
-};
-
-
-
-
-
-
-/*#########################################################################
-## Counter
-#########################################################################*/
-
-/**
- * The Counter interface is used to represent any counter or counters function
- * value. This interface reflects the values in the underlying style property.
- */
-class Counter
-{
-public:
-
- /**
- * This attribute is used for the identifier of the counter.
- */
- virtual DOMString getIdentifier()
- {
- return identifier;
- }
-
- /**
- * This attribute is used for the style of the list.
- */
- virtual DOMString getListStyle()
- {
- return listStyle;
- }
-
- /**
- * This attribute is used for the separator of the nested counters.
- */
- virtual DOMString getSeparator()
- {
- return separator;
- }
-
- /**
- * REPLACES: Counter CSSPrimitiveValue::getCounterValue() throw (dom::DOMException)
- */
- static Counter getCounterValue(const CSSPrimitiveValue &/*val*/)
- {
- Counter counter;
- return counter;
- }
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- Counter() {}
-
- /**
- *
- */
- Counter(const Counter &other)
- {
- assign(other);
- }
-
- /**
- *
- */
- Counter &operator=(const Counter &other)
- {
- assign(other);
- return *this;
- }
-
- /**
- *
- */
- void assign(const Counter &other)
- {
- identifier = other.identifier;
- listStyle = other.listStyle;
- separator = other.separator;
- }
-
- /**
- *
- */
- virtual ~Counter() {}
-
-protected:
-
- DOMString identifier;
- DOMString listStyle;
- DOMString separator;
-
-};
-
-
-
-
-/*#########################################################################
-## ElementCSSInlineStyle
-#########################################################################*/
-
-/**
- * Inline style information attached to elements is exposed through the style
- * attribute. This represents the contents of the STYLE attribute for HTML
- * elements (or elements in other schemas or DTDs which use the STYLE attribute
- * in the same way). The expectation is that an instance of the
- * ElementCSSInlineStyle interface can be obtained by using binding-specific
- * casting methods on an instance of the Element interface when the element
- * supports inline CSS style informations.
- */
-class ElementCSSInlineStyle
-{
-public:
-
- /**
- * The style attribute.
- */
- virtual CSSStyleDeclaration getStyle()
- {
- return style;
- }
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- ElementCSSInlineStyle() {}
-
- /**
- *
- */
- ElementCSSInlineStyle(const ElementCSSInlineStyle &other)
- : style (other.style)
- {
- }
-
- /**
- *
- */
- ElementCSSInlineStyle &operator=(const ElementCSSInlineStyle &other)
- {
- style = other.style;
- return *this;
- }
-
- /**
- *
- */
- virtual ~ElementCSSInlineStyle() {}
-
-protected:
-
- CSSStyleDeclaration style;
-};
-
-
-
-
-
-
-/*#########################################################################
-## CSS2Properties
-#########################################################################*/
-
-/**
- * The CSS2Properties interface represents a convenience mechanism for retrieving
- * and setting properties within a CSSStyleDeclaration. The attributes of this
- * interface correspond to all the properties specified in CSS2. Getting an
- * attribute of this interface is equivalent to calling the getPropertyValue
- * method of the CSSStyleDeclaration interface. Setting an attribute of this
- * interface is equivalent to calling the setProperty method of the
- * CSSStyleDeclaration interface.
- *
- * A conformant implementation of the CSS module is not required to implement the
- * CSS2Properties interface. If an implementation does implement this interface,
- * the expectation is that language-specific methods can be used to cast from an
- * instance of the CSSStyleDeclaration interface to the CSS2Properties interface.
- *
- * If an implementation does implement this interface, it is expected to
- * understand the specific syntax of the shorthand properties, and apply their
- * semantics; when the margin property is set, for example, the marginTop,
- * marginRight, marginBottom and marginLeft properties are actually being set by
- * the underlying implementation.
- *
- * When dealing with CSS "shorthand" properties, the shorthand properties should
- * be decomposed into their component longhand properties as appropriate, and
- * when querying for their value, the form returned should be the shortest form
- * exactly equivalent to the declarations made in the ruleset. However, if there
- * is no shorthand declaration that could be added to the ruleset without
- * changing in any way the rules already declared in the ruleset (i.e., by adding
- * longhand rules that were previously not declared in the ruleset), then the
- * empty string should be returned for the shorthand property.
- *
- * For example, querying for the font property should not return "normal normal
- * normal 14pt/normal Arial, sans-serif", when "14pt Arial, sans-serif" suffices.
- * (The normals are initial values, and are implied by use of the longhand
- * property.)
- *
- * If the values for all the longhand properties that compose a particular string
- * are the initial values, then a string consisting of all the initial values
- * should be returned (e.g. a border-width value of "medium" should be returned
- * as such, not as "").
- *
- * For some shorthand properties that take missing values from other sides, such
- * as the margin, padding, and border-[width|style|color] properties, the minimum
- * number of sides possible should be used; i.e., "0px 10px" will be returned
- * instead of "0px 10px 0px 10px".
- *
- * If the value of a shorthand property can not be decomposed into its component
- * longhand properties, as is the case for the font property with a value of
- * "menu", querying for the values of the component longhand properties should
- * return the empty string.
- * */
-class CSS2Properties
-{
-public:
-
-
- /**
- * return the 'azimuth' property
- */
- virtual DOMString getAzimuth()
- {
- return azimuth;
- }
-
- /**
- * set the 'azimuth' property
- */
- virtual void setAzimuth(const DOMString &val)
- throw (dom::DOMException)
- {
- azimuth = val;
- }
-
- /**
- * return the 'background' property
- */
- virtual DOMString getBackground()
- {
- return background;
- }
-
- /**
- * set the 'background' property
- */
- virtual void setBackground(const DOMString &val)
- throw (dom::DOMException)
- {
- background = val;
- }
-
- /**
- * return the 'backgroundAttachment' property
- */
- virtual DOMString getBackgroundAttachment()
- {
- return backgroundAttachment;
- }
-
- /**
- * set the 'backgroundAttachment' property
- */
- virtual void setBackgroundAttachment(const DOMString &val)
- throw (dom::DOMException)
- {
- backgroundAttachment = val;
- }
-
- /**
- * return the 'backgroundColor' property
- */
- virtual DOMString getBackgroundColor()
- {
- return backgroundColor;
- }
-
- /**
- * set the 'backgroundColor' property
- */
- virtual void setBackgroundColor(const DOMString &val)
- throw (dom::DOMException)
- {
- backgroundColor = val;
- }
-
- /**
- * return the 'backgroundImage' property
- */
- virtual DOMString getBackgroundImage()
- {
- return backgroundImage;
- }
-
- /**
- * set the 'backgroundImage' property
- */
- virtual void setBackgroundImage(const DOMString &val)
- throw (dom::DOMException)
- {
- backgroundImage = val;
- }
-
- /**
- * return the 'backgroundPosition' property
- */
- virtual DOMString getBackgroundPosition()
- {
- return backgroundPosition;
- }
-
- /**
- * set the 'backgroundPosition' property
- */
- virtual void setBackgroundPosition(const DOMString &val)
- throw (dom::DOMException)
- {
- backgroundPosition = val;
- }
-
- /**
- * return the 'backgroundRepeat' property
- */
- virtual DOMString getBackgroundRepeat()
- {
- return backgroundRepeat;
- }
-
- /**
- * set the 'backgroundRepeat' property
- */
- virtual void setBackgroundRepeat(const DOMString &val)
- throw (dom::DOMException)
- {
- backgroundRepeat = val;
- }
-
- /**
- * return the 'border' property
- */
- virtual DOMString getBorder()
- {
- return border;
- }
-
- /**
- * set the 'border' property
- */
- virtual void setBorder(const DOMString &val)
- throw (dom::DOMException)
- {
- border = val;
- }
-
- /**
- * return the 'borderCollapse' property
- */
- virtual DOMString getBorderCollapse()
- {
- return borderCollapse;
- }
-
- /**
- * set the 'borderCollapse' property
- */
- virtual void setBorderCollapse(const DOMString &val)
- throw (dom::DOMException)
- {
- borderCollapse = val;
- }
-
- /**
- * return the 'borderColor' property
- */
- virtual DOMString getBorderColor()
- {
- return borderColor;
- }
-
- /**
- * set the 'borderColor' property
- */
- virtual void setBorderColor(const DOMString &val)
- throw (dom::DOMException)
- {
- borderColor = val;
- }
-
- /**
- * return the 'borderSpacing' property
- */
- virtual DOMString getBorderSpacing()
- {
- return borderSpacing;
- }
-
- /**
- * set the 'borderSpacing' property
- */
- virtual void setBorderSpacing(const DOMString &val)
- throw (dom::DOMException)
- {
- borderSpacing = val;
- }
-
- /**
- * return the 'borderStyle' property
- */
- virtual DOMString getBorderStyle()
- {
- return borderStyle;
- }
-
- /**
- * set the 'borderStyle' property
- */
- virtual void setBorderStyle(const DOMString &val)
- throw (dom::DOMException)
- {
- borderStyle = val;
- }
-
- /**
- * return the 'borderTop' property
- */
- virtual DOMString getBorderTop()
- {
- return borderTop;
- }
-
- /**
- * set the 'borderTop' property
- */
- virtual void setBorderTop(const DOMString &val)
- throw (dom::DOMException)
- {
- borderTop = val;
- }
-
- /**
- * return the 'borderRight' property
- */
- virtual DOMString getBorderRight()
- {
- return borderRight;
- }
-
- /**
- * set the 'borderRight' property
- */
- virtual void setBorderRight(const DOMString &val)
- throw (dom::DOMException)
- {
- borderRight = val;
- }
-
- /**
- * return the 'borderBottom' property
- */
- virtual DOMString getBorderBottom()
- {
- return borderBottom;
- }
-
- /**
- * set the 'borderBottom' property
- */
- virtual void setBorderBottom(const DOMString &val)
- throw (dom::DOMException)
- {
- borderBottom = val;
- }
-
- /**
- * return the 'borderLeft' property
- */
- virtual DOMString getBorderLeft()
- {
- return borderLeft;
- }
-
- /**
- * set the 'borderLeft' property
- */
- virtual void setBorderLeft(const DOMString &val)
- throw (dom::DOMException)
- {
- borderLeft = val;
- }
-
- /**
- * return the 'borderTopColor' property
- */
- virtual DOMString getBorderTopColor()
- {
- return borderTopColor;
- }
-
- /**
- * set the 'borderTopColor' property
- */
- virtual void setBorderTopColor(const DOMString &val)
- throw (dom::DOMException)
- {
- borderTopColor = val;
- }
-
- /**
- * return the 'borderRightColor' property
- */
- virtual DOMString getBorderRightColor()
- {
- return borderRightColor;
- }
-
- /**
- * set the 'borderRightColor' property
- */
- virtual void setBorderRightColor(const DOMString &val)
- throw (dom::DOMException)
- {
- borderRightColor = val;
- }
-
- /**
- * return the 'borderBottomColor' property
- */
- virtual DOMString getBorderBottomColor()
- {
- return borderBottomColor;
- }
-
- /**
- * set the 'borderBottomColor' property
- */
- virtual void setBorderBottomColor(const DOMString &val)
- throw (dom::DOMException)
- {
- borderBottomColor = val;
- }
-
- /**
- * return the 'borderLeftColor' property
- */
- virtual DOMString getBorderLeftColor()
- {
- return borderLeftColor;
- }
-
- /**
- * set the 'borderLeftColor' property
- */
- virtual void setBorderLeftColor(const DOMString &val)
- throw (dom::DOMException)
- {
- borderLeftColor = val;
- }
-
- /**
- * return the 'borderTopStyle' property
- */
- virtual DOMString getBorderTopStyle()
- {
- return borderTopStyle;
- }
-
- /**
- * set the 'borderTopStyle' property
- */
- virtual void setBorderTopStyle(const DOMString &val)
- throw (dom::DOMException)
- {
- borderTopStyle = val;
- }
-
- /**
- * return the 'borderRightStyle' property
- */
- virtual DOMString getBorderRightStyle()
- {
- return borderRightStyle;
- }
-
- /**
- * set the 'borderRightStyle' property
- */
- virtual void setBorderRightStyle(const DOMString &val)
- throw (dom::DOMException)
- {
- borderRightStyle = val;
- }
-
- /**
- * return the 'borderBottomStyle' property
- */
- virtual DOMString getBorderBottomStyle()
- {
- return borderBottomStyle;
- }
-
- /**
- * set the 'borderBottomStyle' property
- */
- virtual void setBorderBottomStyle(const DOMString &val)
- throw (dom::DOMException)
- {
- borderBottomStyle = val;
- }
-
- /**
- * return the 'borderLeftStyle' property
- */
- virtual DOMString getBorderLeftStyle()
- {
- return borderLeftStyle;
- }
-
- /**
- * set the 'borderLeftStyle' property
- */
- virtual void setBorderLeftStyle(const DOMString &val)
- throw (dom::DOMException)
- {
- borderLeftStyle = val;
- }
-
- /**
- * return the 'borderTopWidth' property
- */
- virtual DOMString getBorderTopWidth()
- {
- return borderTopWidth;
- }
-
- /**
- * set the 'borderTopWidth' property
- */
- virtual void setBorderTopWidth(const DOMString &val)
- throw (dom::DOMException)
- {
- borderTopWidth = val;
- }
-
- /**
- * return the 'borderRightWidth' property
- */
- virtual DOMString getBorderRightWidth()
- {
- return borderRightWidth;
- }
-
- /**
- * set the 'borderRightWidth' property
- */
- virtual void setBorderRightWidth(const DOMString &val)
- throw (dom::DOMException)
- {
- borderRightWidth = val;
- }
-
- /**
- * return the 'borderBottomWidth' property
- */
- virtual DOMString getBorderBottomWidth()
- {
- return borderBottomWidth;
- }
-
- /**
- * set the 'borderBottomWidth' property
- */
- virtual void setBorderBottomWidth(const DOMString &val)
- throw (dom::DOMException)
- {
- borderBottomWidth = val;
- }
-
- /**
- * return the 'borderLeftWidth' property
- */
- virtual DOMString getBorderLeftWidth()
- {
- return borderLeftWidth;
- }
-
- /**
- * set the 'borderLeftWidth' property
- */
- virtual void setBorderLeftWidth(const DOMString &val)
- throw (dom::DOMException)
- {
- borderLeftWidth = val;
- }
-
- /**
- * return the 'borderWidth' property
- */
- virtual DOMString getBorderWidth()
- {
- return borderWidth;
- }
-
- /**
- * set the 'borderWidth' property
- */
- virtual void setBorderWidth(const DOMString &val)
- throw (dom::DOMException)
- {
- borderWidth = val;
- }
-
- /**
- * return the 'bottom' property
- */
- virtual DOMString getBottom()
- {
- return bottom;
- }
-
- /**
- * set the 'bottom' property
- */
- virtual void setBottom(const DOMString &val)
- throw (dom::DOMException)
- {
- bottom = val;
- }
-
- /**
- * return the 'captionSide' property
- */
- virtual DOMString getCaptionSide()
- {
- return captionSide;
- }
-
- /**
- * set the 'captionSide' property
- */
- virtual void setCaptionSide(const DOMString &val)
- throw (dom::DOMException)
- {
- captionSide = val;
- }
-
- /**
- * return the 'clear' property
- */
- virtual DOMString getClear()
- {
- return clear;
- }
-
- /**
- * set the 'clear' property
- */
- virtual void setClear(const DOMString &val)
- throw (dom::DOMException)
- {
- clear = val;
- }
-
- /**
- * return the 'clip' property
- */
- virtual DOMString getClip()
- {
- return clip;
- }
-
- /**
- * set the 'clip' property
- */
- virtual void setClip(const DOMString &val)
- throw (dom::DOMException)
- {
- clip = val;
- }
-
- /**
- * return the 'color' property
- */
- virtual DOMString getColor()
- {
- return color;
- }
-
- /**
- * set the 'color' property
- */
- virtual void setColor(const DOMString &val)
- throw (dom::DOMException)
- {
- color = val;
- }
-
- /**
- * return the 'content' property
- */
- virtual DOMString getContent()
- {
- return content;
- }
-
- /**
- * set the 'content' property
- */
- virtual void setContent(const DOMString &val)
- throw (dom::DOMException)
- {
- content = val;
- }
-
- /**
- * return the 'counterIncrement' property
- */
- virtual DOMString getCounterIncrement()
- {
- return counterIncrement;
- }
-
- /**
- * set the 'counterIncrement' property
- */
- virtual void setCounterIncrement(const DOMString &val)
- throw (dom::DOMException)
- {
- counterIncrement = val;
- }
-
- /**
- * return the 'counterReset' property
- */
- virtual DOMString getCounterReset()
- {
- return counterReset;
- }
-
- /**
- * set the 'counterReset' property
- */
- virtual void setCounterReset(const DOMString &val)
- throw (dom::DOMException)
- {
- counterReset = val;
- }
-
- /**
- * return the 'cue' property
- */
- virtual DOMString getCue()
- {
- return cue;
- }
-
- /**
- * set the 'cue' property
- */
- virtual void setCue(const DOMString &val)
- throw (dom::DOMException)
- {
- cue = val;
- }
-
- /**
- * return the 'cueAfter' property
- */
- virtual DOMString getCueAfter()
- {
- return cueAfter;
- }
-
- /**
- * set the 'cueAfter' property
- */
- virtual void setCueAfter(const DOMString &val)
- throw (dom::DOMException)
- {
- cueAfter = val;
- }
-
- /**
- * return the 'cueBefore' property
- */
- virtual DOMString getCueBefore()
- {
- return cueBefore;
- }
-
- /**
- * set the 'cueBefore' property
- */
- virtual void setCueBefore(const DOMString &val)
- throw (dom::DOMException)
- {
- cueBefore = val;
- }
-
- /**
- * return the 'cursor' property
- */
- virtual DOMString getCursor()
- {
- return cursor;
- }
-
- /**
- * set the 'cursor' property
- */
- virtual void setCursor(const DOMString &val)
- throw (dom::DOMException)
- {
- cursor = val;
- }
-
- /**
- * return the 'direction' property
- */
- virtual DOMString getDirection()
- {
- return direction;
- }
-
- /**
- * set the 'direction' property
- */
- virtual void setDirection(const DOMString &val)
- throw (dom::DOMException)
- {
- direction = val;
- }
-
- /**
- * return the 'display' property
- */
- virtual DOMString getDisplay()
- {
- return display;
- }
-
- /**
- * set the 'display' property
- */
- virtual void setDisplay(const DOMString &val)
- throw (dom::DOMException)
- {
- display = val;
- }
-
- /**
- * return the 'elevation' property
- */
- virtual DOMString getElevation()
- {
- return elevation;
- }
-
- /**
- * set the 'elevation' property
- */
- virtual void setElevation(const DOMString &val)
- throw (dom::DOMException)
- {
- elevation = val;
- }
-
- /**
- * return the 'emptyCells' property
- */
- virtual DOMString getEmptyCells()
- {
- return emptyCells;
- }
-
- /**
- * set the 'emptyCells' property
- */
- virtual void setEmptyCells(const DOMString &val)
- throw (dom::DOMException)
- {
- emptyCells = val;
- }
-
- /**
- * return the 'cssFloat' property
- */
- virtual DOMString getCssFloat()
- {
- return cssFloat;
- }
-
- /**
- * set the 'cssFloat' property
- */
- virtual void setCssFloat(const DOMString &val)
- throw (dom::DOMException)
- {
- cssFloat = val;
- }
-
- /**
- * return the 'font' property
- */
- virtual DOMString getFont()
- {
- return font;
- }
-
- /**
- * set the 'font' property
- */
- virtual void setFont(const DOMString &val)
- throw (dom::DOMException)
- {
- font = val;
- }
-
- /**
- * return the 'fontFamily' property
- */
- virtual DOMString getFontFamily()
- {
- return fontFamily;
- }
-
- /**
- * set the 'fontFamily' property
- */
- virtual void setFontFamily(const DOMString &val)
- throw (dom::DOMException)
- {
- fontFamily = val;
- }
-
- /**
- * return the 'fontSize' property
- */
- virtual DOMString getFontSize()
- {
- return fontSize;
- }
-
- /**
- * set the 'fontSize' property
- */
- virtual void setFontSize(const DOMString &val)
- throw (dom::DOMException)
- {
- fontSize = val;
- }
-
- /**
- * return the 'fontSizeAdjust' property
- */
- virtual DOMString getFontSizeAdjust()
- {
- return fontSizeAdjust;
- }
-
- /**
- * set the 'fontSizeAdjust' property
- */
- virtual void setFontSizeAdjust(const DOMString &val)
- throw (dom::DOMException)
- {
- fontSizeAdjust = val;
- }
-
- /**
- * return the 'fontStretch' property
- */
- virtual DOMString getFontStretch()
- {
- return fontStretch;
- }
-
- /**
- * set the 'fontStretch' property
- */
- virtual void setFontStretch(const DOMString &val)
- throw (dom::DOMException)
- {
- fontStretch = val;
- }
-
- /**
- * return the 'fontStyle' property
- */
- virtual DOMString getFontStyle()
- {
- return fontStyle;
- }
-
- /**
- * set the 'fontStyle' property
- */
- virtual void setFontStyle(const DOMString &val)
- throw (dom::DOMException)
- {
- fontStyle = val;
- }
-
- /**
- * return the 'fontVariant' property
- */
- virtual DOMString getFontVariant()
- {
- return fontVariant;
- }
-
- /**
- * set the 'fontVariant' property
- */
- virtual void setFontVariant(const DOMString &val)
- throw (dom::DOMException)
- {
- fontVariant = val;
- }
-
- /**
- * return the 'fontWeight' property
- */
- virtual DOMString getFontWeight()
- {
- return fontWeight;
- }
-
- /**
- * set the 'fontWeight' property
- */
- virtual void setFontWeight(const DOMString &val)
- throw (dom::DOMException)
- {
- fontWeight = val;
- }
-
- /**
- * return the 'height' property
- */
- virtual DOMString getHeight()
- {
- return height;
- }
-
- /**
- * set the 'height' property
- */
- virtual void setHeight(const DOMString &val)
- throw (dom::DOMException)
- {
- height = val;
- }
-
- /**
- * return the 'left' property
- */
- virtual DOMString getLeft()
- {
- return left;
- }
-
- /**
- * set the 'left' property
- */
- virtual void setLeft(const DOMString &val)
- throw (dom::DOMException)
- {
- left = val;
- }
-
- /**
- * return the 'letterSpacing' property
- */
- virtual DOMString getLetterSpacing()
- {
- return letterSpacing;
- }
-
- /**
- * set the 'letterSpacing' property
- */
- virtual void setLetterSpacing(const DOMString &val)
- throw (dom::DOMException)
- {
- letterSpacing = val;
- }
-
- /**
- * return the 'lineHeight' property
- */
- virtual DOMString getLineHeight()
- {
- return lineHeight;
- }
-
- /**
- * set the 'lineHeight' property
- */
- virtual void setLineHeight(const DOMString &val)
- throw (dom::DOMException)
- {
- lineHeight = val;
- }
-
- /**
- * return the 'listStyle' property
- */
- virtual DOMString getListStyle()
- {
- return listStyle;
- }
-
- /**
- * set the 'listStyle' property
- */
- virtual void setListStyle(const DOMString &val)
- throw (dom::DOMException)
- {
- listStyle = val;
- }
-
- /**
- * return the 'listStyleImage' property
- */
- virtual DOMString getListStyleImage()
- {
- return listStyleImage;
- }
-
- /**
- * set the 'listStyleImage' property
- */
- virtual void setListStyleImage(const DOMString &val)
- throw (dom::DOMException)
- {
- listStyleImage = val;
- }
-
- /**
- * return the 'listStylePosition' property
- */
- virtual DOMString getListStylePosition()
- {
- return listStylePosition;
- }
-
- /**
- * set the 'listStylePosition' property
- */
- virtual void setListStylePosition(const DOMString &val)
- throw (dom::DOMException)
- {
- listStylePosition = val;
- }
-
- /**
- * return the 'listStyleType' property
- */
- virtual DOMString getListStyleType()
- {
- return listStyleType;
- }
-
- /**
- * set the 'listStyleType' property
- */
- virtual void setListStyleType(const DOMString &val)
- throw (dom::DOMException)
- {
- listStyleType = val;
- }
-
- /**
- * return the 'margin' property
- */
- virtual DOMString getMargin()
- {
- return margin;
- }
-
- /**
- * set the 'margin' property
- */
- virtual void setMargin(const DOMString &val)
- throw (dom::DOMException)
- {
- margin = val;
- }
-
- /**
- * return the 'marginTop' property
- */
- virtual DOMString getMarginTop()
- {
- return marginTop;
- }
-
- /**
- * set the 'marginTop' property
- */
- virtual void setMarginTop(const DOMString &val)
- throw (dom::DOMException)
- {
- marginTop = val;
- }
-
- /**
- * return the 'marginRight' property
- */
- virtual DOMString getMarginRight()
- {
- return marginRight;
- }
-
- /**
- * set the 'marginRight' property
- */
- virtual void setMarginRight(const DOMString &val)
- throw (dom::DOMException)
- {
- marginRight = val;
- }
-
- /**
- * return the 'marginBottom' property
- */
- virtual DOMString getMarginBottom()
- {
- return marginBottom;
- }
-
- /**
- * set the 'marginBottom' property
- */
- virtual void setMarginBottom(const DOMString &val)
- throw (dom::DOMException)
- {
- marginBottom = val;
- }
-
- /**
- * return the 'marginLeft' property
- */
- virtual DOMString getMarginLeft()
- {
- return marginLeft;
- }
-
- /**
- * set the 'marginLeft' property
- */
- virtual void setMarginLeft(const DOMString &val)
- throw (dom::DOMException)
- {
- marginLeft = val;
- }
-
- /**
- * return the 'markerOffset' property
- */
- virtual DOMString getMarkerOffset()
- {
- return markerOffset;
- }
-
- /**
- * set the 'markerOffset' property
- */
- virtual void setMarkerOffset(const DOMString &val)
- throw (dom::DOMException)
- {
- markerOffset = val;
- }
-
- /**
- * return the 'marks' property
- */
- virtual DOMString getMarks()
- {
- return marks;
- }
-
- /**
- * set the 'marks' property
- */
- virtual void setMarks(const DOMString &val)
- throw (dom::DOMException)
- {
- marks = val;
- }
-
- /**
- * return the 'maxHeight' property
- */
- virtual DOMString getMaxHeight()
- {
- return maxHeight;
- }
-
- /**
- * set the 'maxHeight' property
- */
- virtual void setMaxHeight(const DOMString &val)
- throw (dom::DOMException)
- {
- maxHeight = val;
- }
-
- /**
- * return the 'maxWidth' property
- */
- virtual DOMString getMaxWidth()
- {
- return maxWidth;
- }
-
- /**
- * set the 'maxWidth' property
- */
- virtual void setMaxWidth(const DOMString &val)
- throw (dom::DOMException)
- {
- maxWidth = val;
- }
-
- /**
- * return the 'minHeight' property
- */
- virtual DOMString getMinHeight()
- {
- return minHeight;
- }
-
- /**
- * set the 'minHeight' property
- */
- virtual void setMinHeight(const DOMString &val)
- throw (dom::DOMException)
- {
- minHeight = val;
- }
-
- /**
- * return the 'minWidth' property
- */
- virtual DOMString getMinWidth()
- {
- return minWidth;
- }
-
- /**
- * set the 'minWidth' property
- */
- virtual void setMinWidth(const DOMString &val)
- throw (dom::DOMException)
- {
- minWidth = val;
- }
-
- /**
- * return the 'orphans' property
- */
- virtual DOMString getOrphans()
- {
- return orphans;
- }
-
- /**
- * set the 'orphans' property
- */
- virtual void setOrphans(const DOMString &val)
- throw (dom::DOMException)
- {
- orphans = val;
- }
-
- /**
- * return the 'outline' property
- */
- virtual DOMString getOutline()
- {
- return outline;
- }
-
- /**
- * set the 'outline' property
- */
- virtual void setOutline(const DOMString &val)
- throw (dom::DOMException)
- {
- outline = val;
- }
-
- /**
- * return the 'outlineColor' property
- */
- virtual DOMString getOutlineColor()
- {
- return outlineColor;
- }
-
- /**
- * set the 'outlineColor' property
- */
- virtual void setOutlineColor(const DOMString &val)
- throw (dom::DOMException)
- {
- outlineColor = val;
- }
-
- /**
- * return the 'outlineStyle' property
- */
- virtual DOMString getOutlineStyle()
- {
- return outlineStyle;
- }
-
- /**
- * set the 'outlineStyle' property
- */
- virtual void setOutlineStyle(const DOMString &val)
- throw (dom::DOMException)
- {
- outlineStyle = val;
- }
-
- /**
- * return the 'outlineWidth' property
- */
- virtual DOMString getOutlineWidth()
- {
- return outlineWidth;
- }
-
- /**
- * set the 'outlineWidth' property
- */
- virtual void setOutlineWidth(const DOMString &val)
- throw (dom::DOMException)
- {
- outlineWidth = val;
- }
-
- /**
- * return the 'overflow' property
- */
- virtual DOMString getOverflow()
- {
- return overflow;
- }
-
- /**
- * set the 'overflow' property
- */
- virtual void setOverflow(const DOMString &val)
- throw (dom::DOMException)
- {
- overflow = val;
- }
-
- /**
- * return the 'padding' property
- */
- virtual DOMString getPadding()
- {
- return padding;
- }
-
- /**
- * set the 'padding' property
- */
- virtual void setPadding(const DOMString &val)
- throw (dom::DOMException)
- {
- padding = val;
- }
-
- /**
- * return the 'paddingTop' property
- */
- virtual DOMString getPaddingTop()
- {
- return paddingTop;
- }
-
- /**
- * set the 'paddingTop' property
- */
- virtual void setPaddingTop(const DOMString &val)
- throw (dom::DOMException)
- {
- paddingTop = val;
- }
-
- /**
- * return the 'paddingRight' property
- */
- virtual DOMString getPaddingRight()
- {
- return paddingRight;
- }
-
- /**
- * set the 'paddingRight' property
- */
- virtual void setPaddingRight(const DOMString &val)
- throw (dom::DOMException)
- {
- paddingRight = val;
- }
-
- /**
- * return the 'paddingBottom' property
- */
- virtual DOMString getPaddingBottom()
- {
- return paddingBottom;
- }
-
- /**
- * set the 'paddingBottom' property
- */
- virtual void setPaddingBottom(const DOMString &val)
- throw (dom::DOMException)
- {
- paddingBottom = val;
- }
-
- /**
- * return the 'paddingLeft' property
- */
- virtual DOMString getPaddingLeft()
- {
- return paddingLeft;
- }
-
- /**
- * set the 'paddingLeft' property
- */
- virtual void setPaddingLeft(const DOMString &val)
- throw (dom::DOMException)
- {
- paddingLeft = val;
- }
-
- /**
- * return the 'page' property
- */
- virtual DOMString getPage()
- {
- return page;
- }
-
- /**
- * set the 'page' property
- */
- virtual void setPage(const DOMString &val)
- throw (dom::DOMException)
- {
- page = val;
- }
-
- /**
- * return the 'pageBreakAfter' property
- */
- virtual DOMString getPageBreakAfter()
- {
- return pageBreakAfter;
- }
-
- /**
- * set the 'pageBreakAfter' property
- */
- virtual void setPageBreakAfter(const DOMString &val)
- throw (dom::DOMException)
- {
- pageBreakAfter = val;
- }
-
- /**
- * return the 'pageBreakBefore' property
- */
- virtual DOMString getPageBreakBefore()
- {
- return pageBreakBefore;
- }
-
- /**
- * set the 'pageBreakBefore' property
- */
- virtual void setPageBreakBefore(const DOMString &val)
- throw (dom::DOMException)
- {
- pageBreakBefore = val;
- }
-
- /**
- * return the 'pageBreakInside' property
- */
- virtual DOMString getPageBreakInside()
- {
- return pageBreakInside;
- }
-
- /**
- * set the 'pageBreakInside' property
- */
- virtual void setPageBreakInside(const DOMString &val)
- throw (dom::DOMException)
- {
- pageBreakInside = val;
- }
-
- /**
- * return the 'pause' property
- */
- virtual DOMString getPause()
- {
- return pause;
- }
-
- /**
- * set the 'pause' property
- */
- virtual void setPause(const DOMString &val)
- throw (dom::DOMException)
- {
- pause = val;
- }
-
- /**
- * return the 'pauseAfter' property
- */
- virtual DOMString getPauseAfter()
- {
- return pauseAfter;
- }
-
- /**
- * set the 'pauseAfter' property
- */
- virtual void setPauseAfter(const DOMString &val)
- throw (dom::DOMException)
- {
- pauseAfter = val;
- }
-
- /**
- * return the 'pauseBefore' property
- */
- virtual DOMString getPauseBefore()
- {
- return pauseBefore;
- }
-
- /**
- * set the 'pauseBefore' property
- */
- virtual void setPauseBefore(const DOMString &val)
- throw (dom::DOMException)
- {
- pauseBefore = val;
- }
-
- /**
- * return the 'pitch' property
- */
- virtual DOMString getPitch()
- {
- return pitch;
- }
-
- /**
- * set the 'pitch' property
- */
- virtual void setPitch(const DOMString &val)
- throw (dom::DOMException)
- {
- pitch = val;
- }
-
- /**
- * return the 'pitchRange' property
- */
- virtual DOMString getPitchRange()
- {
- return pitchRange;
- }
-
- /**
- * set the 'pitchRange' property
- */
- virtual void setPitchRange(const DOMString &val)
- throw (dom::DOMException)
- {
- pitchRange = val;
- }
-
- /**
- * return the 'playDuring' property
- */
- virtual DOMString getPlayDuring()
- {
- return playDuring;
- }
-
- /**
- * set the 'playDuring' property
- */
- virtual void setPlayDuring(const DOMString &val)
- throw (dom::DOMException)
- {
- playDuring = val;
- }
-
- /**
- * return the 'position' property
- */
- virtual DOMString getPosition()
- {
- return position;
- }
-
- /**
- * set the 'position' property
- */
- virtual void setPosition(const DOMString &val)
- throw (dom::DOMException)
- {
- position = val;
- }
-
- /**
- * return the 'quotes' property
- */
- virtual DOMString getQuotes()
- {
- return quotes;
- }
-
- /**
- * set the 'quotes' property
- */
- virtual void setQuotes(const DOMString &val)
- throw (dom::DOMException)
- {
- quotes = val;
- }
-
- /**
- * return the 'richness' property
- */
- virtual DOMString getRichness()
- {
- return richness;
- }
-
- /**
- * set the 'richness' property
- */
- virtual void setRichness(const DOMString &val)
- throw (dom::DOMException)
- {
- richness = val;
- }
-
- /**
- * return the 'right' property
- */
- virtual DOMString getRight()
- {
- return right;
- }
-
- /**
- * set the 'right' property
- */
- virtual void setRight(const DOMString &val)
- throw (dom::DOMException)
- {
- right = val;
- }
-
- /**
- * return the 'size' property
- */
- virtual DOMString getSize()
- {
- return size;
- }
-
- /**
- * set the 'size' property
- */
- virtual void setSize(const DOMString &val)
- throw (dom::DOMException)
- {
- size = val;
- }
-
- /**
- * return the 'speak' property
- */
- virtual DOMString getSpeak()
- {
- return speak;
- }
-
- /**
- * set the 'speak' property
- */
- virtual void setSpeak(const DOMString &val)
- throw (dom::DOMException)
- {
- speak = val;
- }
-
- /**
- * return the 'speakHeader' property
- */
- virtual DOMString getSpeakHeader()
- {
- return speakHeader;
- }
-
- /**
- * set the 'speakHeader' property
- */
- virtual void setSpeakHeader(const DOMString &val)
- throw (dom::DOMException)
- {
- speakHeader = val;
- }
-
- /**
- * return the 'speakNumeral' property
- */
- virtual DOMString getSpeakNumeral()
- {
- return speakNumeral;
- }
-
- /**
- * set the 'speakNumeral' property
- */
- virtual void setSpeakNumeral(const DOMString &val)
- throw (dom::DOMException)
- {
- speakNumeral = val;
- }
-
- /**
- * return the 'speakPunctuation' property
- */
- virtual DOMString getSpeakPunctuation()
- {
- return speakPunctuation;
- }
-
- /**
- * set the 'speakPunctuation' property
- */
- virtual void setSpeakPunctuation(const DOMString &val)
- throw (dom::DOMException)
- {
- speakPunctuation = val;
- }
-
- /**
- * return the 'speechRate' property
- */
- virtual DOMString getSpeechRate()
- {
- return speechRate;
- }
-
- /**
- * set the 'speechRate' property
- */
- virtual void setSpeechRate(const DOMString &val)
- throw (dom::DOMException)
- {
- speechRate = val;
- }
-
- /**
- * return the 'stress' property
- */
- virtual DOMString getStress()
- {
- return stress;
- }
-
- /**
- * set the 'stress' property
- */
- virtual void setStress(const DOMString &val)
- throw (dom::DOMException)
- {
- stress = val;
- }
-
- /**
- * return the 'tableLayout' property
- */
- virtual DOMString getTableLayout()
- {
- return tableLayout;
- }
-
- /**
- * set the 'tableLayout' property
- */
- virtual void setTableLayout(const DOMString &val)
- throw (dom::DOMException)
- {
- tableLayout = val;
- }
-
- /**
- * return the 'textAlign' property
- */
- virtual DOMString getTextAlign()
- {
- return textAlign;
- }
-
- /**
- * set the 'textAlign' property
- */
- virtual void setTextAlign(const DOMString &val)
- throw (dom::DOMException)
- {
- textAlign = val;
- }
-
- /**
- * return the 'textDecoration' property
- */
- virtual DOMString getTextDecoration()
- {
- return textDecoration;
- }
-
- /**
- * set the 'textDecoration' property
- */
- virtual void setTextDecoration(const DOMString &val)
- throw (dom::DOMException)
- {
- textDecoration = val;
- }
-
- /**
- * return the 'textIndent' property
- */
- virtual DOMString getTextIndent()
- {
- return textIndent;
- }
-
- /**
- * set the 'textIndent' property
- */
- virtual void setTextIndent(const DOMString &val)
- throw (dom::DOMException)
- {
- textIndent = val;
- }
-
- /**
- * return the 'textShadow' property
- */
- virtual DOMString getTextShadow()
- {
- return textShadow;
- }
-
- /**
- * set the 'textShadow' property
- */
- virtual void setTextShadow(const DOMString &val)
- throw (dom::DOMException)
- {
- textShadow = val;
- }
-
- /**
- * return the 'textTransform' property
- */
- virtual DOMString getTextTransform()
- {
- return textTransform;
- }
-
- /**
- * set the 'textTransform' property
- */
- virtual void setTextTransform(const DOMString &val)
- throw (dom::DOMException)
- {
- textTransform = val;
- }
-
- /**
- * return the 'top' property
- */
- virtual DOMString getTop()
- {
- return top;
- }
-
- /**
- * set the 'top' property
- */
- virtual void setTop(const DOMString &val)
- throw (dom::DOMException)
- {
- top = val;
- }
-
- /**
- * return the 'unicodeBidi' property
- */
- virtual DOMString getUnicodeBidi()
- {
- return unicodeBidi;
- }
-
- /**
- * set the 'unicodeBidi' property
- */
- virtual void setUnicodeBidi(const DOMString &val)
- throw (dom::DOMException)
- {
- unicodeBidi = val;
- }
-
- /**
- * return the 'verticalAlign' property
- */
- virtual DOMString getVerticalAlign()
- {
- return verticalAlign;
- }
-
- /**
- * set the 'verticalAlign' property
- */
- virtual void setVerticalAlign(const DOMString &val)
- throw (dom::DOMException)
- {
- verticalAlign = val;
- }
-
- /**
- * return the 'visibility' property
- */
- virtual DOMString getVisibility()
- {
- return visibility;
- }
-
- /**
- * set the 'visibility' property
- */
- virtual void setVisibility(const DOMString &val)
- throw (dom::DOMException)
- {
- visibility = val;
- }
-
- /**
- * return the 'voiceFamily' property
- */
- virtual DOMString getVoiceFamily()
- {
- return voiceFamily;
- }
-
- /**
- * set the 'voiceFamily' property
- */
- virtual void setVoiceFamily(const DOMString &val)
- throw (dom::DOMException)
- {
- voiceFamily = val;
- }
-
- /**
- * return the 'volume' property
- */
- virtual DOMString getVolume()
- {
- return volume;
- }
-
- /**
- * set the 'volume' property
- */
- virtual void setVolume(const DOMString &val)
- throw (dom::DOMException)
- {
- volume = val;
- }
-
- /**
- * return the 'whiteSpace' property
- */
- virtual DOMString getWhiteSpace()
- {
- return whiteSpace;
- }
-
- /**
- * set the 'whiteSpace' property
- */
- virtual void setWhiteSpace(const DOMString &val)
- throw (dom::DOMException)
- {
- whiteSpace = val;
- }
-
- /**
- * return the 'widows' property
- */
- virtual DOMString getWidows()
- {
- return widows;
- }
-
- /**
- * set the 'widows' property
- */
- virtual void setWidows(const DOMString &val)
- throw (dom::DOMException)
- {
- widows = val;
- }
-
- /**
- * return the 'width' property
- */
- virtual DOMString getWidth()
- {
- return width;
- }
-
- /**
- * set the 'width' property
- */
- virtual void setWidth(const DOMString &val)
- throw (dom::DOMException)
- {
- width = val;
- }
-
- /**
- * return the 'wordSpacing' property
- */
- virtual DOMString getWordSpacing()
- {
- return wordSpacing;
- }
-
- /**
- * set the 'wordSpacing' property
- */
- virtual void setWordSpacing(const DOMString &val)
- throw (dom::DOMException)
- {
- wordSpacing = val;
- }
-
- /**
- * return the 'zIndex' property
- */
- virtual DOMString getZIndex()
- {
- return zIndex;
- }
-
- /**
- * set the 'zIndex' property
- */
- virtual void setZIndex(const DOMString &val)
- throw (dom::DOMException)
- {
- zIndex = val;
- }
-
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- CSS2Properties()
- {
- }
-
- /**
- *
- */
- CSS2Properties(const CSS2Properties &other)
- {
- assign(other);
- }
-
- /**
- *
- */
- CSS2Properties &operator=(const CSS2Properties &other)
- {
- assign(other);
- return *this;
- }
-
- /**
- *
- */
- void assign(const CSS2Properties &other)
- {
- azimuth = other.azimuth;
- background = other.background;
- backgroundAttachment = other.backgroundAttachment;
- backgroundColor = other.backgroundColor;
- backgroundImage = other.backgroundImage;
- backgroundPosition = other.backgroundPosition;
- backgroundRepeat = other.backgroundRepeat;
- border = other.border;
- borderCollapse = other.borderCollapse;
- borderColor = other.borderColor;
- borderSpacing = other.borderSpacing;
- borderStyle = other.borderStyle;
- borderTop = other.borderTop;
- borderRight = other.borderRight;
- borderBottom = other.borderBottom;
- borderLeft = other.borderLeft;
- borderTopColor = other.borderTopColor;
- borderRightColor = other.borderRightColor;
- borderBottomColor = other.borderBottomColor;
- borderLeftColor = other.borderLeftColor;
- borderTopStyle = other.borderTopStyle;
- borderRightStyle = other.borderRightStyle;
- borderBottomStyle = other.borderBottomStyle;
- borderLeftStyle = other.borderLeftStyle;
- borderTopWidth = other.borderTopWidth;
- borderRightWidth = other.borderRightWidth;
- borderBottomWidth = other.borderBottomWidth;
- borderLeftWidth = other.borderLeftWidth;
- borderWidth = other.borderWidth;
- bottom = other.bottom;
- captionSide = other.captionSide;
- clear = other.clear;
- clip = other.clip;
- color = other.color;
- content = other.content;
- counterIncrement = other.counterIncrement;
- counterReset = other.counterReset;
- cue = other.cue;
- cueAfter = other.cueAfter;
- cueBefore = other.cueBefore;
- cursor = other.cursor;
- direction = other.direction;
- display = other.display;
- elevation = other.elevation;
- emptyCells = other.emptyCells;
- cssFloat = other.cssFloat;
- font = other.font;
- fontFamily = other.fontFamily;
- fontSize = other.fontSize;
- fontSizeAdjust = other.fontSizeAdjust;
- fontStretch = other.fontStretch;
- fontStyle = other.fontStyle;
- fontVariant = other.fontVariant;
- fontWeight = other.fontWeight;
- height = other.height;
- left = other.left;
- letterSpacing = other.letterSpacing;
- lineHeight = other.lineHeight;
- listStyle = other.listStyle;
- listStyleImage = other.listStyleImage;
- listStylePosition = other.listStylePosition;
- listStyleType = other.listStyleType;
- margin = other.margin;
- marginTop = other.marginTop;
- marginRight = other.marginRight;
- marginBottom = other.marginBottom;
- marginLeft = other.marginLeft;
- markerOffset = other.markerOffset;
- marks = other.marks;
- maxHeight = other.maxHeight;
- maxWidth = other.maxWidth;
- minHeight = other.minHeight;
- minWidth = other.minWidth;
- orphans = other.orphans;
- outline = other.outline;
- outlineColor = other.outlineColor;
- outlineStyle = other.outlineStyle;
- outlineWidth = other.outlineWidth;
- overflow = other.overflow;
- padding = other.padding;
- paddingTop = other.paddingTop;
- paddingRight = other.paddingRight;
- paddingBottom = other.paddingBottom;
- paddingLeft = other.paddingLeft;
- page = other.page;
- pageBreakAfter = other.pageBreakAfter;
- pageBreakBefore = other.pageBreakBefore;
- pageBreakInside = other.pageBreakInside;
- pause = other.pause;
- pauseAfter = other.pauseAfter;
- pauseBefore = other.pauseBefore;
- pitch = other.pitch;
- pitchRange = other.pitchRange;
- playDuring = other.playDuring;
- position = other.position;
- quotes = other.quotes;
- richness = other.richness;
- right = other.right;
- size = other.size;
- speak = other.speak;
- speakHeader = other.speakHeader;
- speakNumeral = other.speakNumeral;
- speakPunctuation = other.speakPunctuation;
- speechRate = other.speechRate;
- stress = other.stress;
- tableLayout = other.tableLayout;
- textAlign = other.textAlign;
- textDecoration = other.textDecoration;
- textIndent = other.textIndent;
- textShadow = other.textShadow;
- textTransform = other.textTransform;
- top = other.top;
- unicodeBidi = other.unicodeBidi;
- verticalAlign = other.verticalAlign;
- visibility = other.visibility;
- voiceFamily = other.voiceFamily;
- volume = other.volume;
- whiteSpace = other.whiteSpace;
- widows = other.widows;
- width = other.width;
- wordSpacing = other.wordSpacing;
- zIndex = other.zIndex;
- }
-
- /**
- *
- */
- virtual ~CSS2Properties() {}
-
-protected:
-
- //######################
- //# P R O P E R T I E S
- //######################
- DOMString azimuth;
- DOMString background;
- DOMString backgroundAttachment;
- DOMString backgroundColor;
- DOMString backgroundImage;
- DOMString backgroundPosition;
- DOMString backgroundRepeat;
- DOMString border;
- DOMString borderCollapse;
- DOMString borderColor;
- DOMString borderSpacing;
- DOMString borderStyle;
- DOMString borderTop;
- DOMString borderRight;
- DOMString borderBottom;
- DOMString borderLeft;
- DOMString borderTopColor;
- DOMString borderRightColor;
- DOMString borderBottomColor;
- DOMString borderLeftColor;
- DOMString borderTopStyle;
- DOMString borderRightStyle;
- DOMString borderBottomStyle;
- DOMString borderLeftStyle;
- DOMString borderTopWidth;
- DOMString borderRightWidth;
- DOMString borderBottomWidth;
- DOMString borderLeftWidth;
- DOMString borderWidth;
- DOMString bottom;
- DOMString captionSide;
- DOMString clear;
- DOMString clip;
- DOMString color;
- DOMString content;
- DOMString counterIncrement;
- DOMString counterReset;
- DOMString cue;
- DOMString cueAfter;
- DOMString cueBefore;
- DOMString cursor;
- DOMString direction;
- DOMString display;
- DOMString elevation;
- DOMString emptyCells;
- DOMString cssFloat;
- DOMString font;
- DOMString fontFamily;
- DOMString fontSize;
- DOMString fontSizeAdjust;
- DOMString fontStretch;
- DOMString fontStyle;
- DOMString fontVariant;
- DOMString fontWeight;
- DOMString height;
- DOMString left;
- DOMString letterSpacing;
- DOMString lineHeight;
- DOMString listStyle;
- DOMString listStyleImage;
- DOMString listStylePosition;
- DOMString listStyleType;
- DOMString margin;
- DOMString marginTop;
- DOMString marginRight;
- DOMString marginBottom;
- DOMString marginLeft;
- DOMString markerOffset;
- DOMString marks;
- DOMString maxHeight;
- DOMString maxWidth;
- DOMString minHeight;
- DOMString minWidth;
- DOMString orphans;
- DOMString outline;
- DOMString outlineColor;
- DOMString outlineStyle;
- DOMString outlineWidth;
- DOMString overflow;
- DOMString padding;
- DOMString paddingTop;
- DOMString paddingRight;
- DOMString paddingBottom;
- DOMString paddingLeft;
- DOMString page;
- DOMString pageBreakAfter;
- DOMString pageBreakBefore;
- DOMString pageBreakInside;
- DOMString pause;
- DOMString pauseAfter;
- DOMString pauseBefore;
- DOMString pitch;
- DOMString pitchRange;
- DOMString playDuring;
- DOMString position;
- DOMString quotes;
- DOMString richness;
- DOMString right;
- DOMString size;
- DOMString speak;
- DOMString speakHeader;
- DOMString speakNumeral;
- DOMString speakPunctuation;
- DOMString speechRate;
- DOMString stress;
- DOMString tableLayout;
- DOMString textAlign;
- DOMString textDecoration;
- DOMString textIndent;
- DOMString textShadow;
- DOMString textTransform;
- DOMString top;
- DOMString unicodeBidi;
- DOMString verticalAlign;
- DOMString visibility;
- DOMString voiceFamily;
- DOMString volume;
- DOMString whiteSpace;
- DOMString widows;
- DOMString width;
- DOMString wordSpacing;
- DOMString zIndex;
-
-
-};
-
-
-
-
-
-
-
-
-/*#########################################################################
-## ViewCSS
-#########################################################################*/
-
-/**
- * This interface represents a CSS view. The getComputedStyle method provides a
- * read only access to the computed values of an element.
- *
- * The expectation is that an instance of the ViewCSS interface can be obtained
- * by using binding-specific casting methods on an instance of the AbstractView
- * interface.
- *
- * Since a computed style is related to an Element node, if this element is
- * removed from the document, the associated CSSStyleDeclaration and CSSValue
- * related to this declaration are no longer valid.
- */
-class ViewCSS : virtual public views::AbstractView
-{
-public:
-
- /**
- * This method is used to get the computed style as it is defined in [CSS2].
- */
- virtual CSSStyleDeclaration getComputedStyle(const Element &/*elt*/,
- const DOMString &/*pseudoElt*/)
- {
- CSSStyleDeclaration style;
- return style;
- }
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- ViewCSS() : views::AbstractView()
- {
- }
-
- /**
- *
- */
- ViewCSS(const ViewCSS &other) : views::AbstractView(other)
- {
- }
-
- /**
- *
- */
- ViewCSS &operator=(const ViewCSS &/*other*/)
- {
- return *this;
- }
-
- /**
- *
- */
- virtual ~ViewCSS() {}
-};
-
-
-
-
-
-/*#########################################################################
-## DocumentCSS
-#########################################################################*/
-
-/**
- * This interface represents a document with a CSS view.
- *
- * The getOverrideStyle method provides a mechanism through which a DOM author
- * could effect immediate change to the style of an element without modifying the
- * explicitly linked style sheets of a document or the inline style of elements
- * in the style sheets. This style sheet comes after the author style sheet in
- * the cascade algorithm and is called override style sheet. The override style
- * sheet takes precedence over author style sheets. An "!important" declaration
- * still takes precedence over a normal declaration. Override, author, and user
- * style sheets all may contain "!important" declarations. User "!important"
- * rules take precedence over both override and author "!important" rules, and
- * override "!important" rules take precedence over author "!important" rules.
- *
- * The expectation is that an instance of the DocumentCSS interface can be
- * obtained by using binding-specific casting methods on an instance of the
- * Document interface.
- */
-class DocumentCSS : virtual public stylesheets::DocumentStyle
-{
-public:
-
- /**
- * This method is used to retrieve the override style declaration for a specified
- * element and a specified pseudo-element.
- */
- virtual CSSStyleDeclaration getOverrideStyle(const Element */*elt*/,
- const DOMString &/*pseudoElt*/)
- {
- CSSStyleDeclaration style;
- return style;
- }
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- DocumentCSS() : stylesheets::DocumentStyle()
- {
- }
-
- /**
- *
- */
- DocumentCSS(const DocumentCSS &other) : stylesheets::DocumentStyle(other)
- {
- }
-
- /**
- *
- */
- DocumentCSS &operator=(const DocumentCSS &/*other*/)
- {
- return *this;
- }
-
- /**
- *
- */
- virtual ~DocumentCSS() {}
-};
-
-
-
-
-
-
-/*#########################################################################
-## DOMImplementationCSS
-#########################################################################*/
-
-/**
- * This interface allows the DOM user to create a CSSStyleSheet outside the
- * context of a document. There is no way to associate the new CSSStyleSheet with
- * a document in DOM Level 2.
- */
-class DOMImplementationCSS : virtual public DOMImplementation
-{
-public:
-
- /**
- * Creates a new CSSStyleSheet.
- */
- virtual CSSStyleSheet createCSSStyleSheet(const DOMString &/*title*/,
- const DOMString &/*media*/)
- throw (dom::DOMException)
- {
- CSSStyleSheet sheet;
- return sheet;
- }
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- DOMImplementationCSS() {}
-
- /**
- *
- */
- DOMImplementationCSS(const DOMImplementationCSS &other)
- : DOMImplementation(other)
- {
- }
-
- /**
- *
- */
- DOMImplementationCSS &operator=(const DOMImplementationCSS &/*other*/)
- {
- return *this;
- }
-
- /**
- *
- */
- virtual ~DOMImplementationCSS() {}
-};
-
-
-
-
-
-
-
-
-} //namespace css
-} //namespace dom
-} //namespace w3c
-} //namespace org
-
-
-#endif // SEEN_CSS_H
-
-/*#########################################################################
-## E N D O F F I L E
-#########################################################################*/
diff --git a/src/dom/cssreader.cpp b/src/dom/cssreader.cpp
deleted file mode 100644
index 93473b229..000000000
--- a/src/dom/cssreader.cpp
+++ /dev/null
@@ -1,1684 +0,0 @@
-/*
- * Phoebe DOM Implementation.
- *
- * This is a C++ approximation of the W3C DOM model, which follows
- * fairly closely the specifications in the various .idl files, copies of
- * which are provided for reference. Most important is this one:
- *
- * http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/idl-definitions.html
- *
- * Authors:
- * Bob Jamison
- *
- * Copyright (C) 2005-2008 Bob Jamison
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#include "cssreader.h"
-#include "ucd.h"
-
-#include <stdio.h>
-#include <stdarg.h>
-
-namespace org
-{
-namespace w3c
-{
-namespace dom
-{
-namespace css
-{
-
-//#########################################################################
-//# M E S S A G E S
-//#########################################################################
-
-/**
- * Get the column and row number of the given character position
- */
-void CssReader::getColumnAndRow(int p, int &colResult, int &rowResult, int &lastNL)
-{
- int col = 1;
- int row = 1;
- int lastnl = 0;
-
- for (int i=0 ; i<p ; i++)
- {
- XMLCh ch = parsebuf[i];
- if (ch == '\n')
- {
- lastnl = i;
- row++;
- col=0;
- }
- else
- col++;
- }
-
- colResult = col;
- rowResult = row;
- lastNL = lastnl;
-}
-
-/**
- *
- */
-void CssReader::error(char const *fmt, ...)
-{
- int lineNr;
- int colNr;
- int lastNL;
- getColumnAndRow(lastPosition, colNr, lineNr, lastNL);
-
- va_list args;
- fprintf(stderr, "CssReader:error at %d, line %d, column %d:",
- lastPosition, lineNr, colNr);
- va_start(args, fmt);
- vfprintf(stderr, fmt, args);
- va_end(args) ;
- fprintf(stderr, "\n");
-
- /*
- int lineLen = lastPosition - lastNL;
- printf("lineLen:%d lastNL:%d\n", lineLen, lastNL);
- for (int i=lastNL+1 ; i<lastPosition ; i++)
- fprintf(stderr, "%c", parsebuf[i]);
- fprintf(stderr, "\n");
- for (int i=0 ; i<lineLen-1 ; i++)
- fprintf(stderr, " ");
- fprintf(stderr, "^\n");
- */
- for (int i=0 ; i<lastPosition ; i++)
- fprintf(stderr, "%c", parsebuf[i]);
- fprintf(stderr, "\n");
-}
-
-
-
-//#########################################################################
-//# P A R S I N G
-//#########################################################################
-
-/**
- * Get the character at the position and record the fact
- */
-XMLCh CssReader::get(int p)
-{
- if (p >= parselen)
- return 0;
- XMLCh ch = parsebuf[p];
- //printf("%c", ch);
- lastPosition = p;
- return ch;
-}
-
-
-
-/**
- * Test if the given substring exists at the given position
- * in parsebuf. Use get() in case of out-of-bounds
- */
-bool CssReader::match(int pos, const char *str)
-{
- while (*str)
- {
- if (get(pos++) != (XMLCh) *str++)
- return false;
- }
- return true;
-}
-
-/**
- *
- */
-int CssReader::skipwhite(int p)
-{
- while (p < parselen)
- {
- //# XML COMMENT
- if (match(p, "<!--"))
- {
- p+=4;
- bool done=false;
- while (p<parselen)
- {
- if (match(p, "-->"))
- {
- p+=3;
- done=true;
- break;
- }
- p++;
- }
- lastPosition = p;
- if (!done)
- {
- error("unterminated <!-- .. --> comment");
- return -1;
- }
- }
- //# C comment
- else if (match(p, "/*"))
- {
- p+=2;
- bool done=false;
- while (p<parselen)
- {
- if (match(p, "*/"))
- {
- p+=2;
- done=true;
- break;
- }
- p++;
- }
- lastPosition = p;
- if (!done)
- {
- error("unterminated /* .. */ comment");
- return -1;
- }
- }
- else if (!uni_is_space(get(p)))
- break;
- else
- p++;
- }
- lastPosition = p;
- return p;
-}
-
-/**
- * get a word from the buffer
- */
-int CssReader::getWord(int p, DOMString &result)
-{
- XMLCh ch = get(p);
- if (!uni_is_letter(ch))
- return p;
- DOMString str;
- str.push_back(ch);
- p++;
-
- while (p < parselen)
- {
- ch = get(p);
- if (uni_is_letter_or_digit(ch) || ch=='-' || ch=='_')
- {
- str.push_back(ch);
- p++;
- }
- else if (ch == '\\')
- {
- p+=2;
- }
- else
- break;
- }
- result = str;
- return p;
-}
-
-
-/**
- * get a word from the buffer
- */
-int CssReader::getNumber(int p0, double &result)
-{
- int p=p0;
- DOMString str;
- while (p < parselen)
- {
- XMLCh ch = get(p);
- if (ch<'0' || ch>'9')
- break;
- str.push_back(ch);
- p++;
- }
- if (get(p) == '.' && get(p+1)>='0' && get(p+1)<='9')
- {
- p++;
- str.push_back('.');
- while (p < parselen)
- {
- XMLCh ch = get(p);
- if (ch<'0' || ch>'9')
- break;
- str.push_back(ch);
- p++;
- }
- }
- if (p>p0)
- {
- char *start = (char *)str.c_str();
- char *end = NULL;
- double val = strtod(start, &end);
- if (end > start)
- {
- result = val;
- return p;
- }
- }
-
- //not a number
- return p0;
-}
-
-
-
-/**
- * Assume that we are starting on a quote. Ends on the char
- * after the final '"'
- */
-int CssReader::getQuoted(int p0, DOMString &result)
-{
-
- int p = p0;
-
- XMLCh quoteChar = get(p);
- if (quoteChar != '"' && quoteChar != '\'')
- return p0;
-
- p++;
-
- DOMString buf;
-
- bool done = false;
- while (p<parselen )
- {
- XMLCh ch = get(p);
- if (ch == quoteChar)
- {
- done = true;
- p++;
- break;
- }
- else
- {
- buf.push_back(ch);
- }
- p++;
- }
-
- if (!done)
- {
- error("unterminated quoted string");
- return -1;
- }
-
- result.append(buf);
-
- return p;
-}
-
-/**
- * Not in api. replaces URI return by lexer
- */
-int CssReader::getUri(int p0, DOMString &str)
-{
- int p = p0;
- if (!match(p, "url("))
- return p0;
- p+=4;
- p = skipwhite(p);
- DOMString buf;
- XMLCh ch;
- while (p < parselen)
- {
- ch = get(p);
- if (isspace(ch) || ch==')')
- break;
- buf.push_back(ch);
- p++;
- }
- p = skipwhite(p);
- ch = get(p);
- if (ch != ')')
- {
- error("no closing ')' on url spec");
- return -1;
- }
- p++;
- str = buf;
- return p;
-}
-
-/**
- * Skip to the end of the block
- */
-int CssReader::skipBlock(int p0)
-{
- int p = p0;
- while (p < parselen)
- {
- XMLCh ch = get(p);
- if (ch == '}')
- {
- p++;
- break;
- }
- else
- {
- p++;
- }
- }
- return p;
-}
-
-//#########################################################################
-//# P R O D U C T I O N S
-//#########################################################################
-
-/**
- * stylesheet
- * : [ CHARSET_SYM S* STRING S* ';' ]?
- * [S|CDO|CDC]* [ import [S|CDO|CDC]* ]*
- * [ [ ruleset | media | page ] [S|CDO|CDC]* ]*
- * ;
- */
-int CssReader::getStyleSheet(int p0)
-{
- int p = p0;
- int p2 = p;
-
- //# CHARSET 0 or 1
- if (match(p, "@charset"))
- {
- p+=8;
- p = skipwhite(p);
- DOMString str;
- p2 = getQuoted(p, str);
- if (p2<=p)
- {
- error("quoted string required after @charset");
- return -1;
- }
- p = skipwhite(p2);
- XMLCh ch = get(p);
- if (ch !=';')
- {
- error("';' required after @charset declaration");
- return -1;
- }
- p++;
- p = skipwhite(p);
- }
-
- //# IMPORT 0 to many
- while (true)
- {
- p2 = getImport(p);
- if (p2<0)
- {
- return -1;
- }
- if (p2<=p)
- break;
- p = p2;
- }
-
- //# RULESET | MEDIA | PAGE 0 to many
- while (true)
- {
- //Ruleset
- p2 = getRuleSet(p);
- if (p2<0)
- {
- return -1;
- }
- if (p2>p)
- {
- p = p2;
- continue;
- }
-
- //Media
- p2 = getMedia(p);
- if (p2<0)
- {
- return -1;
- }
- if (p2>p)
- {
- p = p2;
- continue;
- }
-
- //Page
- p2 = getPage(p);
- if (p2<0)
- {
- return -1;
- }
- if (p2>p)
- {
- p = p2;
- continue;
- }
-
- //none of the above
- break;
- }
-
- return p;
-}
-
-/**
- * import
- * : IMPORT_SYM S*
- * [STRING|URI] S* [ medium [ COMMA S* medium]* ]? ';' S*
- * ;
- */
-int CssReader::getImport(int p0)
-{
- int p = p0;
- if (!match(p, "@import"))
- return p0;
- p+=7;
- p = skipwhite(p);
-
- //# STRING | URI
- DOMString str;
- int p2 = getQuoted(p, str);
- if (p2<0)
- {
- return -1;
- }
- if (p2<=p)
- {
- p2 = getUri(p, str);
- if (p2<0)
- {
- return -1;
- }
- if (p2<=p)
- {
- error("quoted string or URI required after @import");
- return -1;
- }
- }
- p = p2;
- p2 = getMedium(p);
- if (p2<0)
- return -1;
-
- p = p2;
- p = skipwhite(p);
- XMLCh ch = get(p);
- if (ch != ';')
- {
- error("@import must be terminated with ';'");
- return -1;
- }
- p++;
- return p;
-}
-
-/**
- * media
- * : MEDIA_SYM S* medium [ COMMA S* medium ]* LBRACE S* ruleset* '}' S*
- * ;
- */
-int CssReader::getMedia(int p0)
-{
- int p = p0;
- XMLCh ch;
- if (!match(p, "@media"))
- return p0;
- p+=6;
- p = skipwhite(p);
-
- //# MEDIUM LIST
- int p2 = getMedium(p);
- if (p2<0)
- return -1;
- if (p2<=p)
- {
- error("@media must be followed by medium");
- return -1;
- }
- p = p2;
- while (true)
- {
- ch = get(p);
- if (ch != ',')
- break;
- p2 = getMedium(p);
- if (p2<0)
- return -1;
- if (p2<=p)
- {
- error("',' in medium list must be followed by medium");
- return -1;
- }
- p = p2;
- }
-
- p = skipwhite(p);
- ch = get(p);
- if (ch!='{')
- {
- error("@media requires '{' for ruleset");
- return -1;
- }
- p++;
- p2 = getRuleSet(p);
- if (p2<0)
- return -1;
- if (p2<=p)
- {
- error("@media requires ruleset after '{'");
- return -1;
- }
- p = p2;
- ch = get(p);
- if (ch != '}')
- {
- error("@media requires '}' after ruleset");
- return -1;
- }
- p++;
- return p0;
-}
-
-/**
- * medium
- * : IDENT S*
- * ;
- */
-int CssReader::getMedium(int p0)
-{
- int p = p0;
- p = skipwhite(p);
-
- DOMString ident;
- int p2 = getWord(p, ident);
- if (p2<0)
- return -1;
- if (p2<=p)
- return p0;
- p = p2;
-
- return p;
-}
-
-/**
- * page
- * : PAGE_SYM S* pseudo_page? S*
- * LBRACE S* declaration [ ';' S* declaration ]* '}' S*
- * ;
- */
-int CssReader::getPage(int p0)
-{
- int p = p0;
-
- //# @PAGE
- p = skipwhite(p);
- if (!match(p, "@page"))
- return p0;
- p+= 5;
-
- //#PSEUDO PAGE 0 or 1
- p = skipwhite(p);
- int p2 = getPseudoPage(p);
- if (p2<0)
- return -1;
- if (p2>p)
- {
- p = p2;
- }
-
- //# {
- p=skipwhite(p);
- XMLCh ch = get(p);
- if (p != '{')
- {
- error("@page requires '{' before declarations");
- }
- p++;
-
- //# DECLARATION LIST
- p = skipwhite(p);
- CSSStyleDeclaration declarationList;
- p2 = getDeclaration(p, declarationList);
- if (p2<0)
- return -1;
- if (p2<=p)
- {
- error("@page requires declaration(s) after '{'");
- return -1;
- }
- while (true)
- {
- p = skipwhite(p2);
- XMLCh ch = get(p);
- if (ch != ';')
- break;
- p++;
- p = skipwhite(p);
- p2 = getDeclaration(p, declarationList);
- if (p2<0)
- return -1;
- if (p2<= p)
- {
- error("@page requires declaration after ';'");
- return -1;
- }
- }
-
- //# }
- p=skipwhite(p);
- ch = get(p);
- if (p != '}')
- {
- error("@page requires '}' after declarations");
- }
- p++;
-
- return p;
-}
-
-/**
- * pseudo_page
- * : ':' IDENT
- * ;
- */
-int CssReader::getPseudoPage(int p0)
-{
- int p = p0;
- if (!match(p, ":"))
- return p0;
- p++;
- DOMString str;
- int p2 = getWord(p, str);
- if (p2<0)
- return -1;
- if (p2<=p)
- {
- error("pseudo-page requires identifier after ':'");
- return -1;
- }
- p = p2;
- return p;
-}
-
-/**
- * ruleset
- * : selector [ COMMA S* selector ]*
- * LBRACE S* declaration [ ';' S* declaration ]* '}' S*
- * ;
- */
-int CssReader::getRuleSet(int p0)
-{
- int p = p0;
- XMLCh ch;
-
- //## SELECTOR
- p = skipwhite(p);
- int p2 = getSelector(p);
- if (p2<0)
- return -1;
- if (p2<=p) //no selector
- {
- if (get(p) != '{')//check for selector-less rule
- return p0;//not me
- }
- p = p2;
- while (true)
- {
- p = skipwhite(p);
- ch = get(p);
- if (ch != ',')
- break;
- p++;
- p = skipwhite(p);
- int p2 = getSelector(p);
- if (p2<0)
- return -1;
- if (p2<=p)
- {
- error("selector required after ',' in list");
- return -1;
- }
- p = p2;
- }
-
- //## {
- ch = get(p);
- if (ch != '{')
- {
- error("'{' required before declarations of ruleset");
- return -1;
- }
- p++;
-
- //## DECLARATIONS ( 0 to many )
- CSSStyleDeclaration declarationList;
-
- p = skipwhite(p);
- p2 = getDeclaration(p, declarationList);
- if (p2<0)
- return -1;
- if (p2>p)
- {
- p = p2;
- while (true)
- {
- p = skipwhite(p);
- ch = get(p);
- if (ch != ';')
- break;
- p++;
- p = skipwhite(p);
- p2 = getDeclaration(p, declarationList);
- if (p2<0)
- return -1;
- if (p2<=p)
- {
- //apparently this is ok
- //error("declaration required after ';' in ruleset");
- //return -1;
- break;
- }
- p = p2;
- }
- }
- //## }
- ch = get(p);
- if (ch != '}')
- {
- error("ruleset requires closing '}'");
- return -1;
- }
- p++;
- p = skipwhite(p);
-
- return p;
-}
-
-/**
- * selector
- * : simple_selector [ combinator simple_selector ]*
- * ;
- */
-int CssReader::getSelector(int p0)
-{
- int p = p0;
-
- //## SIMPLE SELECTOR
- p = skipwhite(p);
- int p2 = getSimpleSelector(p);
- if (p2<0)
- return -1;
- if (p2<=p)
- return p0; //not me
- p = p2;
-
- //## COMBINATORS + MORE SELECTORS
- while (true)
- {
- XMLCh ch = get(p);
- bool wasSpace = isspace(ch);
- p = skipwhite(p);
- ch = get(p);
- //# Combinators
- //easier to do here than have a getCombinator()
- int visibleCombinator = false;
- if (ch == '+')
- {
- visibleCombinator = true;
- p++;
- }
- else if (ch == '>')
- {
- visibleCombinator = true;
- p++;
- }
- else if (wasSpace)
- {
- }
- else
- {
- break;
- }
- p = skipwhite(p);
- p2 = getSimpleSelector(p);
- if (p2<0)
- return -1;
- if (p2<=p)
- {
- if (visibleCombinator)
- {
- error("need simple selector after combinator");
- return -1;
- }
- else
- {
- break;
- }
- }
- p = p2;
- }
- return p;
-}
-
-/**
- * simple_selector
- * : element_name [ HASH | class | attrib | pseudo ]*
- * | [ HASH | class | attrib | pseudo ]+
- * ;
- */
-int CssReader::getSimpleSelector(int p0)
-{
- int p = p0;
- int p2;
-
- DOMString str;
-
- p = skipwhite(p);
-
- int selectorItems = 0;
-
- XMLCh ch = get(p);
-
- //######################
- //# Note: do NOT skipwhite between items. Only within the
- //# pseudo function and attrib below
- //######################
-
- //#Element name 0 or 1
- if (uni_is_letter(ch))
- {
- p2 = getWord(p, str);
- if (p2<0)
- return -1;
- if (p2<=p)
- {
- error("null element name");
- return -1;
- }
- selectorItems++;
- p = p2;
- }
- else if (ch == '*')
- {
- str = "*";
- p++;
- selectorItems++;
- }
-
-
-
- //## HASH, CLASS, ATTRIB, PSEUDO (0 to many with elem name, 1 to many without)
- while (true)
- {
- XMLCh ch = get(p);
-
- //# HASH
- if (ch == '#')
- {
- p++;
- p2 = getWord(p, str);
- if (p2<0)
- return -1;
- if (p2<=p)
- {
- error("no name for hash");
- return -1;
- }
- p = p2;
- selectorItems++;
- }
-
- //# CLASS
- else if (ch == '.')
- {
- p++;
- p2 = getWord(p, str);
- if (p2<0)
- return -1;
- if (p2<=p)
- {
- error("no name for class");
- return -1;
- }
- p = p2;
- selectorItems++;
- }
-
- //# ATTRIB
- else if (ch == '[')
- {
- p++;
- p = skipwhite(p);
- p2 = getWord(p, str);
- if (p2<0)
- return -1;
- if (p2<=p)
- {
- error("no name for class");
- return -1;
- }
- p = skipwhite(p2);
- bool getRHS=false;
- if (match(p, "="))
- {
- p++;
- getRHS=true;
- }
- else if (match(p, "~="))
- {
- p+=2;
- getRHS=true;
- }
- else if (match(p, "|="))
- {
- p+=2;
- getRHS=true;
- }
- if (getRHS)
- {
- p = skipwhite(p);
- ch = get(p);
- if (uni_is_letter(ch))
- {
- p2 = getWord(p, str);
- if (p2<0)
- return -1;
- if (p2<=p)
- {
- error("null ident on rhs of attrib");
- return -1;
- }
- p = p2;
- }
- else if (ch == '\'' || ch =='"')
- {
- p2 = getQuoted(p, str);
- if (p2<0)
- return -1;
- if (p2<=p)
- {
- error("null literal string on rhs of attrib");
- return -1;
- }
- p = p2;
- }
- }//getRHS
- p = skipwhite(p);
- ch = get(p);
- if (ch != ']')
- {
- error("attrib needs closing ']'");
- //return -1;
- p = skipBlock(p);
- return p;
- }
- p++;
- selectorItems++;
- }
-
- //# PSEUDO
- else if (ch == ':')
- {
- p++;
- p2 = getWord(p, str);
- if (p2<0)
- return -1;
- if (p2<=p)
- {
- error("no name for pseudo");
- return -1;
- }
- p = p2;
- selectorItems++;
- ch = get(p);
- if (ch == '(')
- {
- p++;
- p = skipwhite(p);
- ch = get(p);
- if (uni_is_letter(ch))
- {
- p2 = getWord(p, str);
- if (p2<0)
- return -1;
- if (p2<=p)
- {
- error("null function parameter in pseudo");
- return -1;
- }
- p = skipwhite(p2);
- ch = get(p);
- }
- if (ch != ')')
- {
- error("function in pseudo needs ')'");
- return -1;
- }
- p++;
- }// ch==( -function-
- }//pseudo
-
- //# none of the above
- else
- {
- break;
- }
-
- }//while
-
-
- if (selectorItems > 0)
- return p;
- return p0;
-}
-
-/**
- * declaration
- * : property ':' S* expr prio?
- * | {empty}
- * ;
- */
-int CssReader::getDeclaration(int p0, CSSStyleDeclaration &/*declarationList*/)
-{
- int p = p0;
-
- //## PROPERTY
- p = skipwhite(p);
- XMLCh ch = get(p);
- if (!uni_is_letter(ch))
- return p0; //not me
- DOMString propName;
- int p2 = getWord(p, propName);
- if (p2<0)
- return -1;
-
- //## ':'
- p = skipwhite(p2);
- ch = get(p);
- if (ch != ':')
- {
- error("declaration requires ':' between name and value");
- return -1;
- }
- p++;
-
- //## EXPR
- p = skipwhite(p);
- p2 = getExpr(p);
- if (p2<0)
- return -1;
- if (p2<=p)
- {
- error("declaration requires value after ':'");
- return -1;
- }
- DOMString propVal;
- for (int i=p ; i<p2 ; i++) //get our substring
- propVal.push_back(get(i));
- printf("propVal:%s\n", propVal.c_str());
- p = p2;
-
- //## PRIO (optional)
- p = skipwhite(p);
- DOMString prio;
- p2 = getPrio(p, prio);
- if (p2<0)
- return -1;
- if (p2>p)
- {
- //do something
- p = p2;
- }
-
- return p;
-}
-
-/**
- * prio
- * : IMPORTANT_SYM S*
- * ;
- */
-int CssReader::getPrio(int p0, DOMString &val)
-{
- int p = p0;
-
- //## '!"
- p = skipwhite(p);
- XMLCh ch = get(p);
- if (ch != '!')
- return p0;
- p++;
-
- //## "important"
- p = skipwhite(p);
- if (!match(p, "important"))
- {
- error("priority symbol is 'important'");
- return -1;
- }
- p += 9;
- val = "important";
- return p;
-}
-
-/**
- * expr
- * : term [ operator term ]*
- * ;
- */
-int CssReader::getExpr(int p0)
-{
- int p = p0;
-
- //## TERM
- p = skipwhite(p);
- int p2 = getTerm(p);
- if (p2<0)
- return -1;
- if (p2<=p)
- return p0; //not me
- p = p2;
- while (p < parselen)
- {
- p = skipwhite(p);
- //#Operator. do this instead of getOperator()
- XMLCh ch = get(p);
- int visibleTerm = false;
- if (ch == '/')
- {
- visibleTerm = true;
- p++;
- }
- else if (ch == ',')
- {
- visibleTerm = true;
- p++;
- }
- else
- {
- //just space. this is allowable between terms,
- // so we still need to check for another term
- }
- p = skipwhite(p);
- p2 = getTerm(p);
- if (p2<0)
- return -1;
- if (p2<=p)
- {
- if (visibleTerm)
- {
- error("expression requires term after operator");
- return -1;
- }
- else
- {
- break;
- }
- }
- p = p2;
- }
-
- return p;
-}
-
-/**
- * term
- * : unary_operator?
- * [ NUMBER S* | PERCENTAGE S* | LENGTH S* | EMS S* | EXS S* | ANGLE S* |
- * TIME S* | FREQ S* | function ]
- * | STRING S* | IDENT S* | URI S* | hexcolor
- * ;
- */
-int CssReader::getTerm(int p0)
-{
- int p = p0;
- p = skipwhite(p);
- int unitType = CSSPrimitiveValue::CSS_UNKNOWN; /// \fixme Why is this variable never used?
- //# Unary operator
- XMLCh ch = get(p);
- bool hasUnary = false;
- if (ch == '-')
- {
- p++;
- hasUnary = true;
- }
- else if (ch == '+')
- {
- p++;
- hasUnary = true;
- }
- //# NUMERIC
- double numVal;
- int p2 = getNumber(p, numVal);
- if (p2<0)
- return -1;
- if (p2>p)
- {
- p = p2;
- if (match(p, "%"))
- {
- unitType = CSSPrimitiveValue::CSS_PERCENTAGE;
- p++;
- }
- else if (match(p, "em"))
- {
- unitType = CSSPrimitiveValue::CSS_EMS;
- p+=2;
- }
- else if (match(p, "ex"))
- {
- unitType = CSSPrimitiveValue::CSS_EXS;
- p+=2;
- }
- else if (match(p, "px"))
- {
- unitType = CSSPrimitiveValue::CSS_PX;
- p+=2;
- }
- else if (match(p, "cm"))
- {
- unitType = CSSPrimitiveValue::CSS_CM;
- p+=2;
- }
- else if (match(p, "mm"))
- {
- unitType = CSSPrimitiveValue::CSS_MM;
- p+=2;
- }
- else if (match(p, "in"))
- {
- unitType = CSSPrimitiveValue::CSS_IN;
- p+=2;
- }
- else if (match(p, "pt"))
- {
- unitType = CSSPrimitiveValue::CSS_PT;
- p+=2;
- }
- else if (match(p, "pc"))
- {
- unitType = CSSPrimitiveValue::CSS_PC;
- p+=2;
- }
- else if (match(p, "deg"))
- {
- unitType = CSSPrimitiveValue::CSS_DEG;
- p+=3;
- }
- else if (match(p, "rad"))
- {
- unitType = CSSPrimitiveValue::CSS_RAD;
- p+=3;
- }
- else if (match(p, "grad"))
- {
- unitType = CSSPrimitiveValue::CSS_GRAD;
- p+=4;
- }
- else if (match(p, "ms"))
- {
- unitType = CSSPrimitiveValue::CSS_MS;
- p+=2;
- }
- else if (match(p, "s"))
- {
- unitType = CSSPrimitiveValue::CSS_S;
- p+=1;
- }
- else if (match(p, "Hz"))
- {
- unitType = CSSPrimitiveValue::CSS_HZ;
- p+=2;
- }
- else if (match(p, "kHz"))
- {
- unitType = CSSPrimitiveValue::CSS_KHZ;
- p+=2;
- }
- else if (uni_is_letter(get(p)))//some other string
- {
- DOMString suffix;
- p2 = getWord(p, suffix);
- if (p2<0)
- return -1;
- unitType = CSSPrimitiveValue::CSS_DIMENSION;
- p = p2;
- }
- else //plain number
- {
- unitType = CSSPrimitiveValue::CSS_NUMBER;
- }
- return p;
- }
-
- DOMString str;
-
- //## URI --do before function, as syntax is similar
- p2 = getUri(p, str);
- if (p2<0)
- return -1;
- if (p2>p)
- {
- if (hasUnary)
- {
- error("+ or - not allowed on URI");
- return -1;
- }
- p = p2;
- unitType = CSSPrimitiveValue::CSS_URI;
- return p;
- }
-
- //## FUNCTION
- p2 = getFunction(p);
- if (p2<0)
- return -1;
- if (p2>p)
- {
- p = p2;
- return p;
- }
-
- //## STRING
- ch = get(p);
- if (ch == '"' || ch == '\'')
- {
- p2 = getQuoted(p, str);
- if (p2<0)
- return -1;
- if (p2>p)
- {
- if (hasUnary)
- {
- error("+ or - not allowed on a string");
- return -1;
- }
- p = p2;
- unitType = CSSPrimitiveValue::CSS_STRING;
- return p;
- }
- }
-
- //## IDENT
- ch = get(p);
- if (uni_is_letter(ch))
- {
- p2 = getWord(p, str);
- if (p2<0)
- return -1;
- if (p2>p)
- {
- if (hasUnary)
- {
- error("+ or - not allowed on an identifier");
- return -1;
- }
- p = p2;
- unitType = CSSPrimitiveValue::CSS_IDENT;
- return p;
- }
- }
-
-
- //## HEXCOLOR
- p2 = getHexColor(p);
- if (p2<0)
- return -1;
- if (p2>p)
- {
- if (hasUnary)
- {
- error("+ or - not allowed on hex color");
- return -1;
- }
- p = p2;
- unitType = CSSPrimitiveValue::CSS_RGBCOLOR;
- return p;
- }
-
-
- return p0;
-}
-
-/**
- * function
- * : FUNCTION S* expr ')' S*
- * ;
- */
-int CssReader::getFunction(int p0)
-{
- int p = p0;
-
- //## IDENT + ( (both)
- DOMString name;
- p = skipwhite(p);
- int p2 = getWord(p, name);
- if (p2<0)
- return -1;
- if (p2<=p)
- return p0; //not me
- if (name == "uri" || name=="url")
- return p0; //not me
- p = skipwhite(p2);
- XMLCh ch = get(p);
- if (ch != '(')
- return p0; //still not me
- p++;
-
- //## EXPR
- p = skipwhite(p);
- p2 = getExpr(p);
- if (p2<0)
- return -1;
- if (p2<=p)
- {
- error("function requires expression");
- return -1;
- }
- p = p2;
-
- //## ')'
- p = skipwhite(p);
- ch = get(p);
- if (ch != ')')
- {
- error("function requires closing ')'");
- return -1;
- }
- p++;
- p = skipwhite(p);
-
- return p;
-}
-
-/**
- * There is a constraint on the color that it must
- * have either 3 or 6 hex-digits (i.e., [0-9a-fA-F])
- * after the "#"; e.g., "#000" is OK, but "#abcd" is not.
- * hexcolor
- * : HASH S*
- * ;
- */
-int CssReader::getHexColor(int p0)
-{
- int p = p0;
-
- //## '#'
- p = skipwhite(p);
- if (!match(p, "#"))
- return p0;
- p++;
-
- //## HEX
- DOMString hex;
- long hexVal = 0;
- while (p < parselen)
- {
- XMLCh b = get(p);
- if (b>='0' && b<='9')
- {
- hexVal = (hexVal << 4) + (b - '0');
- hex.push_back(b);
- p++;
- }
- else if (b>='a' && b<='f')
- {
- hexVal = (hexVal << 4) + (b - 'a' + 10);
- hex.push_back(b);
- p++;
- }
- else if (b>='A' && b<='F')
- {
- hexVal = (hexVal << 4) + (b - 'A' + 10);
- hex.push_back(b);
- p++;
- }
- else
- {
- break;
- }
- }
-
- if (hex.size() != 3 && hex.size() != 6)
- {
- error("exactly 3 or 6 hex digits are required after '#'");
- return -1;
- }
-
- return p;
-}
-
-
-
-/**
- *
- */
-bool CssReader::parse(const DOMString &str)
-{
- /*
- int len = str.size();
- for (int i=0 ; i<len ; i++)
- {
- XMLCh ch = str[i];
- if (ch == '\\' && i<(len-1)) //escape!
- {
- i++;
- }
- else
- parsebuf.push_back(ch);
- }
- */
- parsebuf = str;
-
- parselen = parsebuf.size();
- //printf("==============================\n%s\n========================\n", str.c_str());
-
- lastPosition = 0;
-
- int p = getStyleSheet(0);
- if (p < parselen)
- {
- error("Not everything parsed");
- return false;
- }
-
- return true;
-}
-
-
-/**
- *
- */
-bool CssReader::parseFile(const DOMString &fileName)
-{
- DOMString tmp = fileName;
- char *fname = (char *)tmp.c_str();
- FILE *f = fopen(fname, "r");
- if (!f)
- {
- printf("Could not open %s for reading\n", fname);
- return false;
- }
-
- DOMString str;
- while (!feof(f))
- {
- int ch = fgetc(f);
- if (ch<0)
- break;
- str.push_back((XMLCh)ch);
- }
- fclose(f);
-
- bool ret = parse(str);
-
- return ret;
-}
-
-
-
-
-
-
-
-} // namespace css
-} // namespace dom
-} // namespace w3c
-} // namespace org
-
-
-#ifdef CSSTEST
-
-static const char *fileNames[] =
- {
- "001.css",
- "acid.css",
- "base.css",
- "inkscape.css",
- "meyerweb.css",
- NULL
- };
-
-bool doTests()
-{
- org::w3c::dom::css::CssReader parser;
- for (char **fname = (char **)fileNames ; *fname ; fname++)
- {
- DOMString fileName = *fname;
- if (!parser.parseFile(fileName))
- {
- printf("Test failed\n");
- return false;
- }
- }
- return true;
-}
-
-int main(int argc, char **argv)
-{
- if (!doTests())
- return 1;
- return 0;
-}
-
-#endif /* CSSTEST */
-
-//#########################################################################
-//# E N D O F F I L E
-//#########################################################################
-
diff --git a/src/dom/cssreader.h b/src/dom/cssreader.h
deleted file mode 100644
index 8f795fc9c..000000000
--- a/src/dom/cssreader.h
+++ /dev/null
@@ -1,294 +0,0 @@
-#ifndef SEEN_CSSREADER_H
-#define SEEN_CSSREADER_H
-/**
- * @file
- * Phoebe DOM Implementation.
- *
- * This is a C++ approximation of the W3C DOM model, which follows
- * fairly closely the specifications in the various .idl files, copies of
- * which are provided for reference. Most important is this one:
- *
- * http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/idl-definitions.html
- */
-/*
- * Authors:
- * Bob Jamison
- *
- * Copyright (C) 2005-2008 Bob Jamison
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-
-#include "dom.h"
-
-#include "css.h"
-
-namespace org
-{
-namespace w3c
-{
-namespace dom
-{
-namespace css
-{
-
-class CssReader
-{
-
-public:
-
- /**
- *
- */
- CssReader() :
- stylesheet(),
- parsebuf(),
- parselen(0),
- lastPosition(0)
- {}
-
- /**
- *
- */
- virtual ~CssReader()
- {}
-
- /**
- *
- */
- virtual bool parse(const DOMString &str);
-
- /**
- *
- */
- virtual bool parseFile(const DOMString &str);
-
-
-private:
-
- CSSStyleSheet stylesheet;
- DOMString parsebuf;
- long parselen;
- int lastPosition;
-
-
- /**
- *
- */
- void error(char const *fmt, ...)
- #ifdef G_GNUC_PRINTF
- G_GNUC_PRINTF(2, 3)
- #endif
- ;
-
- /**
- * Get the character at the given location in the buffer.
- * Return 0 if out-of-bounds
- */
- XMLCh get(int index);
-
-
- /**
- * Test if the given substring exists at the given position
- * in parsebuf. Use get() in case of out-of-bounds
- */
- bool match(int pos, const char *str);
-
- /**
- * Skip over whitespace
- * Return new position
- */
- int skipwhite(int index);
-
- /**
- * Get the word at the current position. Return the new
- * position if successful, the current position if no word,
- * -1 if error.
- */
- int getWord(int index, DOMString &str);
-
-
- /**
- * Get a number at the current position
- * Return the new position if a proper number, else the original pos
- */
- int getNumber(int index, double &result);
-
- /**
- * Assume that we are starting on a quote. Ends on the char
- * after the final '"'
- */
- int getQuoted(int p0, DOMString &result);
-
-/**
- * Not in api. replaces URI return by lexer
- */
-int getUri(int p0, DOMString &str);
-
-
-/**
- * Skip to the next rule
- */
-int skipBlock(int p0);
-
-//#########################################################################
-//# P R O D U C T I O N S
-//#########################################################################
-
-/**
- * stylesheet
- * : [ CHARSET_SYM S* STRING S* ';' ]?
- * [S|CDO|CDC]* [ import [S|CDO|CDC]* ]*
- * [ [ ruleset | media | page ] [S|CDO|CDC]* ]*
- * ;
- */
-int getStyleSheet(int p0);
-
-/**
- * import
- * : IMPORT_SYM S*
- * [STRING|URI] S* [ medium [ COMMA S* medium]* ]? ';' S*
- * ;
- */
-int getImport(int p0);
-
-/**
- * media
- * : MEDIA_SYM S* medium [ COMMA S* medium ]* LBRACE S* ruleset* '}' S*
- * ;
- */
-int getMedia(int p0);
-
-/**
- * medium
- * : IDENT S*
- * ;
- */
-int getMedium(int p0);
-
-/**
- * page
- * : PAGE_SYM S* pseudo_page? S*
- * LBRACE S* declaration [ ';' S* declaration ]* '}' S*
- * ;
- */
-int getPage(int p0);
-
-/**
- * pseudo_page
- * : ':' IDENT
- * ;
- */
-int getPseudoPage(int p0);
-
-/**
- * ruleset
- * : selector [ COMMA S* selector ]*
- * LBRACE S* declaration [ ';' S* declaration ]* '}' S*
- * ;
- */
-int getRuleSet(int p0);
-
-/**
- * selector
- * : simple_selector [ combinator simple_selector ]*
- * ;
- */
-int getSelector(int p0);
-
-/**
- * simple_selector
- * : element_name [ HASH | class | attrib | pseudo ]*
- * | [ HASH | class | attrib | pseudo ]+
- * ;
- */
-int getSimpleSelector(int p0);
-
-/**
- * declaration
- * : property ':' S* expr prio?
- * | {empty}
- * ;
- */
-int getDeclaration(int p0, CSSStyleDeclaration &declarationList);
-
-/**
- * prio
- * : IMPORTANT_SYM S*
- * ;
- */
-int getPrio(int p0, DOMString &val);
-
-/**
- * expr
- * : term [ operator term ]*
- * ;
- */
-int getExpr(int p0);
-
-/**
- * term
- * : unary_operator?
- * [ NUMBER S* | PERCENTAGE S* | LENGTH S* | EMS S* | EXS S* | ANGLE S* |
- * TIME S* | FREQ S* | function ]
- * | STRING S* | IDENT S* | URI S* | hexcolor
- * ;
- */
-int getTerm(int p0);
-
-/**
- * function
- * : FUNCTION S* expr ')' S*
- * ;
- */
-int getFunction(int p0);
-
-/**
- * There is a constraint on the color that it must
- * have either 3 or 6 hex-digits (i.e., [0-9a-fA-F])
- * after the "#"; e.g., "#000" is OK, but "#abcd" is not.
- *
- * hexcolor
- * : HASH S*
- * ;
- */
-int getHexColor(int p0);
-
-/**
- * Get the column and row number of the given character position.
- * Also gets the last-occuring newline before the position
- */
-void getColumnAndRow(int p, int &col, int &row, int &lastNL);
-
-};
-
-
-} // namespace css
-} // namespace dom
-} // namespace w3c
-} // namespace org
-
-
-
-
-
-
-
-#endif // SEEN_CSSREADER_H
-//#########################################################################
-//# E N D O F F I L E
-//#########################################################################
-
diff --git a/src/dom/dom.h b/src/dom/dom.h
deleted file mode 100644
index 14165166e..000000000
--- a/src/dom/dom.h
+++ /dev/null
@@ -1,2758 +0,0 @@
-#ifndef SEEN_DOM_H
-#define SEEN_DOM_H
-/**
- * @file
- * Phoebe DOM Implementation.
- *
- * This is a C++ approximation of the W3C DOM model, which follows
- * fairly closely the specifications in the various .idl files, copies of
- * which are provided for reference. Most important is this one:
- *
- * http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/idl-definitions.html
- *
- * More thorough explanations of the various classes and their algorithms
- * can be found there.
- *
- */
-/*
- * Authors:
- * Bob Jamison
- *
- * Copyright (C) 2006-2008 Bob Jamison
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- *
- * =======================================================================
- * NOTES:
- *
- * Notice that many of the classes defined here are pure virtual. In other
- * words, they are purely unimplemented interfaces. For the implementations
- * of them, look in domimpl.h and domimpl.cpp.
- *
- * Also, note that there is a domptr.cpp file that has a couple of necessary
- * functions which cannot be in a .h file.
- *
- * Some of the comments below are quoted from the W3C spec:
- * http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core.html
- *
- */
-
-#include <vector>
-
-#include "domptr.h"
-
-
-/**
- * What type of string do we want? Pick one of the following
- * Then below, select one of the corresponding typedefs.
- */
-
-#ifdef DOM_STANDALONE
-# include <string>
-#else
-# include <glibmm/ustring.h>
-#endif
-
-//# Unfortunate hack for a name collision
-#ifdef SEVERITY_ERROR
-#undef SEVERITY_ERROR
-#endif
-
-#define XMLNSNAME "http://www.w3.org/2000/xmlns/"
-
-namespace org
-{
-namespace w3c
-{
-namespace dom
-{
-
-
-/**
- * This is the org::w3c::dom::DOMString definition.
- * Which type do we want?
- */
-#ifdef DOM_STANDALONE
-typedef std::string DOMString;
-typedef unsigned short XMLCh;
-#else
-typedef Glib::ustring DOMString;
-typedef gunichar XMLCh;
-#endif
-
-/**
- * At least 64 bit time stamp value.
- */
-typedef unsigned long long DOMTimeStamp;
-
-/**
- * This is used for storing refs to user-supplied data.
- */
-typedef void DOMUserData;
-
-
-
-/**
- * This is used for opaque references to arbitrary objects from
- * the DOM tree.
- */
-typedef void DOMObject;
-
-
-/**
- * Forward references. These are needed because of extensive
- * inter-referencing within the DOM tree.
- */
-class NodeList;
-class NamedNodeMap;
-class DOMException;
-class DOMStringList;
-class NameList;
-class DOMImplementationList;
-class DOMImplementationSource;
-class DOMImplementation;
-class TypeInfo;
-class UserDataHandler;
-class DOMError;
-class DOMErrorHandler;
-class DOMLocator;
-class DOMConfiguration;
-
-/**
- * Smart pointer definitions. Most methods that return references to
- * Nodes of various types, will return one of these smart pointers instead,
- * to allow refcounting and GC.
- */
-class Node;
-typedef Ptr<Node> NodePtr;
-class CharacterData;
-typedef Ptr<CharacterData> CharacterDataPtr;
-class Attr;
-typedef Ptr<Attr> AttrPtr;
-class Element;
-typedef Ptr<Element> ElementPtr;
-class Text;
-typedef Ptr<Text> TextPtr;
-class Comment;
-typedef Ptr<Comment> CommentPtr;
-class DocumentType;
-typedef Ptr<DocumentType> DocumentTypePtr;
-class CDATASection;
-typedef Ptr<CDATASection> CDATASectionPtr;
-class Notation;
-typedef Ptr<Notation> NotationPtr;
-class Entity;
-typedef Ptr<Entity> EntityPtr;
-class EntityReference;
-typedef Ptr<EntityReference> EntityReferencePtr;
-class ProcessingInstruction;
-typedef Ptr<ProcessingInstruction> ProcessingInstructionPtr;
-class DocumentFragment;
-typedef Ptr<DocumentFragment> DocumentFragmentPtr;
-class Document;
-typedef Ptr<Document> DocumentPtr;
-
-
-
-
-/**
- * NOTE: We were originally intending to split ALL specifications into
- * interface and implementation. After consideration, though, it behooves
- * us to simplify things by implementing the base exception and
- * container classes directly:
- *
- * DOMException
- * DOMStringList
- * NameList
- * DOMImplementationList
- * DOMImplementationSource
- * DOMImplementation
- * NodeList
- * NamedNodeMap
- */
-
-
-/*#########################################################################
-## DOMException
-#########################################################################*/
-
-/**
- * An Exception class. Not an interface, since this is something that
- * all implementations must support.
- */
-class DOMException
-{
-
-public:
-
- /**
- * ExceptionCode
- */
- typedef enum
- {
- INDEX_SIZE_ERR = 1,
- DOMSTRING_SIZE_ERR = 2,
- HIERARCHY_REQUEST_ERR = 3,
- WRONG_DOCUMENT_ERR = 4,
- INVALID_CHARACTER_ERR = 5,
- NO_DATA_ALLOWED_ERR = 6,
- NO_MODIFICATION_ALLOWED_ERR = 7,
- NOT_FOUND_ERR = 8,
- NOT_SUPPORTED_ERR = 9,
- INUSE_ATTRIBUTE_ERR = 10,
- INVALID_STATE_ERR = 11,
- SYNTAX_ERR = 12,
- INVALID_MODIFICATION_ERR = 13,
- NAMESPACE_ERR = 14,
- INVALID_ACCESS_ERR = 15,
- VALIDATION_ERR = 16,
- TYPE_MISMATCH_ERR = 17
- } ExceptionCode;
-
-
-
- DOMException(const DOMString &reasonMsg)
- : msg (reasonMsg)
- { }
-
- DOMException(short theCode)
- {
- code = theCode;
- }
-
- virtual ~DOMException() throw()
- {}
-
- /**
- * What type of exception? One of the ExceptionCodes above.
- */
- unsigned short code;
-
- /**
- * Some text describing the context that generated this exception.
- */
- DOMString msg;
-
- /**
- * Get a string, translated from the code.
- * Like std::exception. Not in spec.
- */
- const char *what()
- { return (const char *)msg.c_str(); }
-
-
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## DOMStringList
-#########################################################################*/
-
-/**
- * This holds a list of DOMStrings. This is likely the response to a query,
- * or the value of an attribute.
- */
-class DOMStringList
-{
-public:
-
- /**
- * Get the nth string of the list
- */
- virtual DOMString item(unsigned long index)
- {
- if (index>=strings.size())
- return "";
- return strings[index];
- }
-
- /**
- * How many strings in this list?
- */
- virtual unsigned long getLength()
- {
- return (unsigned long) strings.size();
- }
-
- /**
- * Is the argument string present in this list? Lexically, not identically.
- */
- virtual bool contains(const DOMString &str)
- {
- for (unsigned int i=0; i<strings.size() ; i++)
- {
- if (strings[i] == str)
- return true;
- }
- return false;
- }
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- DOMStringList() {}
-
-
- /**
- *
- */
- DOMStringList(const DOMStringList &other)
- : strings (other.strings)
- {
- }
-
- /**
- *
- */
- DOMStringList &operator=(const DOMStringList &other)
- {
- strings = other.strings;
- return *this;
- }
-
- /**
- *
- */
- virtual ~DOMStringList() {}
-
-
-protected:
-
- /**
- *
- */
- virtual void add(const DOMString &str)
- {
- strings.push_back(str);
- }
-
- std::vector<DOMString>strings;
-
-};
-
-
-
-/*#########################################################################
-## NameList
-#########################################################################*/
-
-
-/**
- * Constains a list of namespaced names.
- */
-class NameList
-{
-private:
-
- class NamePair
- {
- public:
- NamePair(const DOMString &theNamespaceURI, const DOMString &theName)
- : namespaceURI (theNamespaceURI),
- name (theName)
- {
- }
- NamePair(const NamePair &other)
- : namespaceURI (other.namespaceURI),
- name (other.name)
- {
- }
- NamePair &operator=(const NamePair &other)
- {
- namespaceURI = other.namespaceURI;
- name = other.name;
- return *this;
- }
- virtual ~NamePair() {}
-
- DOMString namespaceURI;
- DOMString name;
- };
-
-public:
-
- /**
- * Returns a name at the given index. If out of range, return -1.
- */
- virtual DOMString getName(unsigned long index)
- {
- if (index>=namePairs.size())
- return "";
- return namePairs[index].name;
- }
-
- /**
- * Returns a namespace at the given index. If out of range, return -1.
- */
- virtual DOMString getNamespaceURI(unsigned long index)
- {
- if (index>=namePairs.size())
- return "";
- return namePairs[index].namespaceURI;
- }
-
- /**
- * Return the number of entries in this list.
- */
- virtual unsigned long getLength()
- {
- return (unsigned long)namePairs.size();
- }
-
- /**
- * Return whether the name argument is present in the list.
- * This is done lexically, not identically.
- */
- virtual bool contains(const DOMString &name)
- {
- for (unsigned int i=0; i<namePairs.size() ; i++)
- {
- if (namePairs[i].name == name )
- return true;
- }
- return false;
- }
-
- /**
- * Return whether the namespaced name argument is present in the list.
- * This is done lexically, not identically.
- */
- virtual bool containsNS(const DOMString &namespaceURI, const DOMString &name)
- {
- for (unsigned int i=0; i<namePairs.size() ; i++)
- {
- if (namePairs[i].namespaceURI == namespaceURI ||
- namePairs[i].name == name )
- return true;
- }
- return false;
- }
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- NameList() {}
-
- /**
- *
- */
- NameList(const NameList &other)
- : namePairs (other.namePairs)
- {
- }
-
- /**
- *
- */
- NameList &operator=(const NameList &other)
- {
- namePairs = other.namePairs;
- return *this;
- }
-
- /**
- *
- */
- virtual ~NameList() {}
-
-
-protected:
-
- std::vector<NamePair> namePairs;
-
-};
-
-/*#########################################################################
-## DOMImplementationList
-#########################################################################*/
-
-/**
- * Contains a list of DOMImplementations, with accessors.
- */
-class DOMImplementationList
-{
-public:
-
- /**
- * Return a DOMImplementation at the given index. If
- * out of range, return NULL.
- */
- virtual DOMImplementation *item(unsigned long index)
- {
- if (index >implementations.size())
- return NULL;
- return implementations[index];
- }
-
- /**
- * Return the number of DOMImplementations in this list.
- */
- virtual unsigned long getLength()
- {
- return (unsigned long) implementations.size();
- }
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- DOMImplementationList() {}
-
-
- /**
- *
- */
- DOMImplementationList(const DOMImplementationList &other)
- : implementations (other.implementations)
- {
- }
-
- /**
- *
- */
- DOMImplementationList &operator=(const DOMImplementationList &other)
- {
- implementations = other.implementations;
- return *this;
- }
-
- /**
- *
- */
- virtual ~DOMImplementationList() {}
-
-protected:
-
- std::vector<DOMImplementation *>implementations;
-
-};
-
-
-/*#########################################################################
-## DOMImplementationSource
-#########################################################################*/
-
-/**
- * This is usually the first item to be called when creating a Document.
- * You will either find one DOMImplementation with a given set of features,
- * or return a list that match. Using "" will get any implementation
- * available.
- */
-class DOMImplementationSource
-{
-public:
-
- /**
- * Return the first DOMImplementation with the given set of features.
- * Use "" to fetch any implementation.
- */
- virtual DOMImplementation *getDOMImplementation(const DOMString &features) = 0;
-
- /**
- * Return a list of DOMImplementations with the given set of features.
- * Use "" to fetch any implementation.
- */
- virtual DOMImplementationList getDOMImplementationList(const DOMString &features) = 0;
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~DOMImplementationSource() {}
-
-};
-
-
-
-
-
-/*#########################################################################
-## DOMImplementation
-#########################################################################*/
-
-/**
- * This is the class that actually creates a Document.
- */
-class DOMImplementation
-{
-public:
-
- /**
- * Determine if this implementation has the given feature and version.
- */
- virtual bool hasFeature(const DOMString& feature, const DOMString& version) = 0;
-
-
- /**
- * Create a document type to be used in creating documents.
- */
- virtual DocumentTypePtr createDocumentType(
- const DOMString& qualifiedName,
- const DOMString& publicId,
- const DOMString& systemId)
- throw(DOMException) = 0;
-
- /**
- * Create a DOM document.
- */
- virtual DocumentPtr createDocument(const DOMString& namespaceURI,
- const DOMString& qualifiedName,
- DocumentTypePtr doctype)
- throw(DOMException) = 0;
- /**
- * Return the thing which is the feature of this implementation. Since
- * this is a "one size fits all" call, you will need to typecast the
- * result to the expected type.
- */
- virtual DOMObject *getFeature(const DOMString& feature,
- const DOMString& version) = 0;
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~DOMImplementation() {}
-
-};
-
-
-
-
-
-/*#########################################################################
-## Node
-#########################################################################*/
-
-/**
- * The basic Node class, which is the root of most other
- * classes in DOM. Thus it is by far the most important, and the one
- * whose implementation we must perform correctly.
- */
-class Node
-{
-public:
-
- /**
- * Which of the DOM Core node types is this node?
- */
- typedef enum
- {
- ELEMENT_NODE = 1,
- ATTRIBUTE_NODE = 2,
- TEXT_NODE = 3,
- CDATA_SECTION_NODE = 4,
- ENTITY_REFERENCE_NODE = 5,
- ENTITY_NODE = 6,
- PROCESSING_INSTRUCTION_NODE = 7,
- COMMENT_NODE = 8,
- DOCUMENT_NODE = 9,
- DOCUMENT_TYPE_NODE = 10,
- DOCUMENT_FRAGMENT_NODE = 11,
- NOTATION_NODE = 12
- } NodeType;
-
- /**
- * Return the name of this node.
- */
- virtual DOMString getNodeName() = 0;
-
- /**
- * Return the value of this node. The interpretation of the
- * value is type-specific.
- */
- virtual DOMString getNodeValue() throw (DOMException) = 0;
-
- /**
- * Set the value of this node. The interpretation of the
- * value is type-specific.
- */
- virtual void setNodeValue(const DOMString& val) throw (DOMException) = 0;
-
- /**
- * Return the type of this Node. One of the NodeType values above.
- */
- virtual unsigned short getNodeType() = 0;
-
- /**
- * Return the parent which references this node as a child in the DOM
- * tree. Return NULL if there is none.
- */
- virtual NodePtr getParentNode() = 0;
-
- /**
- * Return a list of the children of this Node.
- * NOTE: the spec expects this to be a "live" list that always
- * reflects an accurate list of what the Node current possesses, not
- * a snapshot. How do we do this?
- */
- virtual NodeList getChildNodes() = 0;
-
- /**
- * Return the first sibling of the chidren of this node. Return
- * null if there is none.
- */
- virtual NodePtr getFirstChild() = 0;
-
- /**
- * Return the last sibling of the children of this node. Return
- * null if there is none.
- */
- virtual NodePtr getLastChild() = 0;
-
- /**
- * Return the node that is previous to this one in the parent's
- * list of children. Return null if there is none.
- */
- virtual NodePtr getPreviousSibling() = 0;
-
- /**
- * Return the node that is after this one in the parent's list
- * of children. Return null if there is none.
- */
- virtual NodePtr getNextSibling() = 0;
-
- /**
- * Get the list of all attributes of this node.
- */
- virtual NamedNodeMap &getAttributes() = 0;
-
-
- /**
- * Return the document that created or inherited this node.
- */
- virtual DocumentPtr getOwnerDocument() = 0;
-
- /**
- * Insert a node as a new child. Place it before the referenced child.
- * Place it at the end if the referenced child does not exist.
- */
- virtual NodePtr insertBefore(const NodePtr newChild,
- const NodePtr refChild)
- throw(DOMException) = 0;
-
- /**
- * Insert a node as a new child. Replace the referenced child with it.
- * Place it at the end if the referenced child does not exist.
- */
- virtual NodePtr replaceChild(const NodePtr newChild,
- const NodePtr oldChild)
- throw(DOMException) = 0;
-
- /**
- * Remove a node from the list of children. Do nothing if the
- * node is not a member of the child list.
- */
- virtual NodePtr removeChild(const NodePtr oldChild)
- throw(DOMException) = 0;
-
- /**
- * Add the node to the end of this node's child list.
- */
- virtual NodePtr appendChild(const NodePtr newChild)
- throw(DOMException) = 0;
-
- /**
- * Return true if this node has one or more children, else return false.
- */
- virtual bool hasChildNodes() = 0;
-
- /**
- * Return a new node which has the name, type, value, attributes, and
- * child list as this one.
- * If 'deep' is true, continue cloning recursively with this node's children,
- * so that the child list also contains clones of their respective nodes.
- */
- virtual NodePtr cloneNode(bool deep) = 0;
-
- /**
- * Adjust this node and its children to have its namespaces and
- * prefixes in "canonical" order.
- */
- virtual void normalize() = 0;
-
- /**
- * Return true if the named feature is supported by this node,
- * else false.
- */
- virtual bool isSupported(const DOMString& feature,
- const DOMString& version) = 0;
-
- /**
- * Return the namespace of this node. This would be whether the
- * namespace were declared explicitly on this node, it has a namespace
- * prefix, or it is inherits the namespace from an ancestor node.
- */
- virtual DOMString getNamespaceURI() = 0;
-
- /**
- * Return the namespace prefix of this node, if any. For example, if
- * the tag were <svg:image> then the prefix would be "svg"
- */
- virtual DOMString getPrefix() = 0;
-
- /**
- * Sets the namespace prefix of this node to the given value. This
- * does not change the namespaceURI value.
- */
- virtual void setPrefix(const DOMString& val) throw(DOMException) = 0;
-
- /**
- * Return the local name of this node. This is merely the name without
- * any namespace or prefix.
- */
- virtual DOMString getLocalName() = 0;
-
- /**
- * Return true if this node has one or more attributes, else false.
- */
- virtual bool hasAttributes() = 0;
-
- /**
- * Return the base URI of this node. This is basically the "location" of this
- * node, and is used in resolving the relative locations of other URIs.
- */
- virtual DOMString getBaseURI() = 0;
-
- /**
- * DocumentPosition.
- * This is used to describe the position of one node relative
- * to another in a document
- */
- typedef enum
- {
- DOCUMENT_POSITION_DISCONNECTED = 0x01,
- DOCUMENT_POSITION_PRECEDING = 0x02,
- DOCUMENT_POSITION_FOLLOWING = 0x04,
- DOCUMENT_POSITION_CONTAINS = 0x08,
- DOCUMENT_POSITION_CONTAINED_BY = 0x10,
- DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC = 0x20
- } DocumentPosition;
-
-
- /**
- * Get the position of this node relative to the node argument.
- */
- virtual unsigned short compareDocumentPosition(
- const NodePtr other) = 0;
-
- /**
- * This is a DOM L3 method. Return the text value of this node and its
- * children. This is done by concatenating all of the TEXT_NODE and
- * CDATA_SECTION nodes of this node and its children, in order, together.
- * Very handy.
- */
- virtual DOMString getTextContent() throw(DOMException) = 0;
-
-
- /**
- * This is a DOM L3 method. Remember, this is a destructive call. This
- * will replace all of the child nodes of this node with a single TEXT_NODE
- * with the given text value.
- */
- virtual void setTextContent(const DOMString &val) throw(DOMException) = 0;
-
-
- /**
- * This will search the tree from this node up, for a prefix that
- * has been assigned to the namespace argument. Return "" if not found.
- */
- virtual DOMString lookupPrefix(const DOMString &namespaceURI) =0;
-
-
- /**
- * Return true if this node is in the namespace of the argument, without
- * requiring an explicit namespace declaration or a suffix.
- */
- virtual bool isDefaultNamespace(const DOMString &namespaceURI) =0;
-
-
- /**
- * This will search the tree from this node up, for a namespace that
- * has been assigned the suffix in the argument. Return "" if not found.
- */
- virtual DOMString lookupNamespaceURI(const DOMString &prefix) =0;
-
-
- /**
- * Return true if the argument node is equal to this one. Use W3C rules
- * for equality.
- */
- virtual bool isEqualNode(const NodePtr node) =0;
-
-
-
- /**
- * Return an opaque reference to the named feature. Return null if
- * not supported. Using other than "" for the version will look for
- * a feature with the given version.
- */
- virtual DOMObject *getFeature(const DOMString &feature,
- const DOMString &version) =0;
-
- /**
- * Store a user data reference in this node, using the given key.
- * A handler is an optional function object that will be called during
- * future settings of this value. See UserDataHandler for more info.
- */
- virtual DOMUserData *setUserData(const DOMString &key,
- const DOMUserData *data,
- const UserDataHandler *handler) =0;
-
-
- /**
- * Return a reference to the named user data object. Return null
- * if it does not exist.
- */
- virtual DOMUserData *getUserData(const DOMString &key) =0;
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- Node() : _refCnt(0)
- {}
-
- /**
- *
- */
- virtual ~Node() {}
-
-protected:
-
- friend void incrementRefCount(Node *p);
- friend void decrementRefCount(Node *p);
-
- /**
- * For the Ptr smart pointer
- */
- int _refCnt;
-
-};
-
-
-
-
-/*#########################################################################
-## NodeList
-#########################################################################*/
-
-/**
- * Contains a list of Nodes. This is the standard API container for Nodes,
- * and is used in lieu of other lists, arrays, etc, in order to provide
- * a consistent API and algorithm.
- */
-class NodeList
-{
-public:
-
- /**
- * Retrieve the Node at the given index. Return NULL
- * if out of range.
- */
- virtual NodePtr item(unsigned long index)
- {
- if (index>=nodes.size())
- return NULL;
- return nodes[index];
- }
-
- /**
- * Get the number of nodes in this list
- */
- virtual unsigned long getLength()
- {
- return (unsigned long) nodes.size();
- }
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- NodeList() {}
-
- /**
- *
- */
- NodeList(const NodeList &other)
- : nodes (other.nodes)
- {
- }
-
- /**
- *
- */
- NodeList &operator=(const NodeList &other)
- {
- nodes = other.nodes;
- return *this;
- }
-
- /**
- *
- */
- virtual ~NodeList() {}
-
- /**
- *
- */
- virtual void clear()
- {
- nodes.clear();
- }
-
-protected:
-
-friend class NodeImpl;
-friend class ElementImpl;
-
- /*
- *
- */
- virtual void add(const NodePtr node)
- {
- nodes.push_back(node);
- }
-
-protected:
-
- std::vector<NodePtr> nodes;
-
-};
-
-
-
-
-/*#########################################################################
-## NamedNodeMap
-#########################################################################*/
-
-/**
- * Contains a mapping from name->NodePtr. Used for various purposes. For
- * example, a list of Attributes is a NamedNodeMap.
- */
-class NamedNodeMap
-{
-private:
-
- /**
- * table entry. Not an API item
- */
- class NamedNodeMapEntry
- {
- public:
- NamedNodeMapEntry(const DOMString &theNamespaceURI,
- const DOMString &theName,
- const NodePtr theNode)
- : namespaceURI (theNamespaceURI),
- name (theName),
- node (theNode)
- {
- }
- NamedNodeMapEntry(const NamedNodeMapEntry &other)
- {
- assign(other);
- }
- NamedNodeMapEntry &operator=(const NamedNodeMapEntry &other)
- {
- assign(other);
- return *this;
- }
- virtual ~NamedNodeMapEntry()
- {
- }
- void assign(const NamedNodeMapEntry &other)
- {
- namespaceURI = other.namespaceURI;
- name = other.name;
- node = other.node;
- }
- DOMString namespaceURI;
- DOMString name;
- NodePtr node;
- };
-
-
-public:
-
- /**
- * Return the named node. Return nullptr if not found.
- */
- virtual NodePtr getNamedItem(const DOMString& name)
- {
- std::vector<NamedNodeMapEntry>::iterator iter;
- for (iter = entries.begin() ; iter!=entries.end() ; ++iter)
- {
- if (iter->name == name)
- {
- NodePtr node = iter->node;
- return node;
- }
- }
- return NULL;
- }
-
- /**
- * Adds a node using its nodeName attribute. If a node with that name is already
- * present in this map, it is replaced by the new one. Replacing a node by itself
- * has no effect.
- */
- virtual NodePtr setNamedItem(NodePtr arg) throw(DOMException)
- {
- if (!arg)
- return NULL;
- DOMString namespaceURI = arg->getNamespaceURI();
- DOMString name = arg->getNodeName();
- std::vector<NamedNodeMapEntry>::iterator iter;
- for (iter = entries.begin() ; iter!=entries.end() ; ++iter)
- {
- if (iter->name == name)
- {
- NodePtr node = iter->node;
- iter->node = arg;
- return node;
- }
- }
- NamedNodeMapEntry entry(namespaceURI, name, arg);
- entries.push_back(entry);
- return arg;
- }
-
-
- /**
- * Removes a node specified by name.
- */
- virtual NodePtr removeNamedItem(const DOMString& name) throw(DOMException)
- {
- std::vector<NamedNodeMapEntry>::iterator iter;
- for (iter = entries.begin() ; iter!=entries.end() ; ++iter)
- {
- if (iter->name == name)
- {
- NodePtr node = iter->node;
- entries.erase(iter);
- return node;
- }
- }
- return NULL;
- }
-
- /**
- * Retrieves an item at the given index. If out of bounds, return NULL
- */
- virtual NodePtr item(unsigned long index)
- {
- if (index>=entries.size())
- return NULL;
- return entries[index].node;
- }
-
- /**
- * Return the number of items in this map
- */
- virtual unsigned long getLength()
- {
- return (unsigned long)entries.size();
- }
-
- /**
- * Retrieves a node specified by local name and namespace URI.
- */
- virtual NodePtr getNamedItemNS(const DOMString& namespaceURI,
- const DOMString& localName)
- {
- std::vector<NamedNodeMapEntry>::iterator iter;
- for (iter = entries.begin() ; iter!=entries.end() ; ++iter)
- {
- if (iter->namespaceURI == namespaceURI && iter->name == localName)
- {
- NodePtr node = iter->node;
- return node;
- }
- }
- return NULL;
- }
-
- /**
- * Adds a node using its namespaceURI and localName. If a node with that
- * namespace URI and that local name is already present in this map, it is
- * replaced by the new one. Replacing a node by itself has no effect.
- */
- virtual NodePtr setNamedItemNS(NodePtr arg) throw(DOMException)
- {
- if (!arg)
- return NULL;
- DOMString namespaceURI = arg->getNamespaceURI();
- DOMString name = arg->getNodeName();
- std::vector<NamedNodeMapEntry>::iterator iter;
- for (iter = entries.begin() ; iter!=entries.end() ; ++iter)
- {
- if (iter->namespaceURI == namespaceURI && iter->name == name)
- {
- NodePtr node = iter->node;
- iter->node = arg;
- return node;
- }
- }
- NamedNodeMapEntry entry(namespaceURI, name, arg);
- entries.push_back(entry);
- return arg;
- }
-
- /**
- * Removes a node specified by local name and namespace URI.
- */
- virtual NodePtr removeNamedItemNS(const DOMString& namespaceURI,
- const DOMString& localName)
- throw(DOMException)
- {
- std::vector<NamedNodeMapEntry>::iterator iter;
- for (iter = entries.begin() ; iter!=entries.end() ; ++iter)
- {
- if (iter->namespaceURI == namespaceURI && iter->name == localName)
- {
- NodePtr node = iter->node;
- entries.erase(iter);
- return node;
- }
- }
- return NULL;
- }
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- NamedNodeMap() {}
-
-
- /**
- *
- */
- NamedNodeMap(const NamedNodeMap &other)
- : entries (other.entries)
- {
- }
-
- /**
- *
- */
- NamedNodeMap &operator=(const NamedNodeMap &other)
- {
- entries = other.entries;
- return *this;
- }
-
-
- /**
- *
- */
- virtual ~NamedNodeMap() {}
-
-protected:
-
- std::vector<NamedNodeMapEntry> entries;
-
-};
-
-
-
-
-/*#########################################################################
-## CharacterData
-#########################################################################*/
-
-/**
- * This is the base class for other text-oriented Nodes, such as TEXT_NODE
- * or CDATA_SECTION_NODE. No DOM objects correspond directly to CharacterData.
- */
-class CharacterData : virtual public Node
-{
-public:
-
- /**
- * This is an alias for getNodeValue()
- */
- virtual DOMString getData() throw(DOMException) = 0;
-
- /**
- * This is an alias for setNodeValue()
- */
- virtual void setData(const DOMString& val) throw(DOMException) = 0;
-
- /**
- * Return the number of characters contained in this node's data
- */
- virtual unsigned long getLength() = 0;
-
- /**
- * Return a substring of this node's data, starting at offset, and
- * continuing for 'count' characters. Throw an exception if this goes
- * out of range.
- */
- virtual DOMString substringData(unsigned long offset,
- unsigned long count)
- throw(DOMException) = 0;
-
- /**
- * Append the argument string to the end of the node's current data.
- */
- virtual void appendData(const DOMString& arg) throw(DOMException) = 0;
-
- /**
- * Insert the argument string at the offset position into the node's
- * current data. If the position is out of range, throw an Exception.
- */
- virtual void insertData(unsigned long offset,
- const DOMString& arg)
- throw(DOMException) = 0;
-
- /**
- * Delete 'count' characters from the node's data starting from the
- * offset position. If this goes out of range, throw an Exception.
- */
- virtual void deleteData(unsigned long offset,
- unsigned long count)
- throw(DOMException) = 0;
-
- /**
- * Replace the 'count' characters at the offset position with the given
- * argument string. If this goes out of range, throw an Exception.
- */
- virtual void replaceData(unsigned long offset,
- unsigned long count,
- const DOMString& arg)
- throw(DOMException) = 0;
-
-
- //##################
- //# Non-API methods
- //##################
-
-
- /**
- *
- */
- virtual ~CharacterData() {}
-
-};
-
-
-
-
-/*#########################################################################
-## Attr
-#########################################################################*/
-
-/**
- * The Attr interface represents an attribute in an Element object.
- * Typically the allowable values for the attribute are defined in a
- * schema associated with the document.
- * Since Attrs are not considered to be part of the DOM tree, parent,
- * previousSibling, and nextSibling are null.
- */
-class Attr : virtual public Node
-{
-public:
-
- /**
- * Returns the name of this attribute. If Node.localName is different
- * from null, this attribute is a qualified name.
- */
- virtual DOMString getName() = 0;
-
- /**
- * True if this attribute was explicitly given a value in the instance document,
- * false otherwise. If the application changed the value of this attribute node
- * (even if it ends up having the same value as the default value) then it is set
- * to true. The implementation may handle attributes with default values from
- * other schemas similarly but applications should use
- * Document.normalizeDocument() to guarantee this information is up-to-date.
- */
- virtual bool getSpecified() = 0;
-
- /**
- * Returns the value of the attribute
- */
- virtual DOMString getValue() = 0;
-
- /**
- * Sets the value of the attribute
- */
- virtual void setValue(const DOMString& val) throw(DOMException) = 0;
-
- /**
- * Return the Element that possesses this attribute
- */
- virtual ElementPtr getOwnerElement() = 0;
-
-
- /**
- * The type information associated with this attribute.
- */
- virtual TypeInfo &getSchemaTypeInfo() = 0;
-
-
- /**
- * Returns whether this attribute is known to be of type ID (i.e. to contain an
- * identifier for its owner element) or not. When it is and its value is unique,
- * the ownerElement of this attribute can be retrieved using the method
- * Document.getElementById.
- */
- virtual bool getIsId() = 0;
-
- //##################
- //# Non-API methods
- //##################
-
-
- /**
- *
- */
- virtual ~Attr() {}
-
-};
-
-
-
-
-
-/*#########################################################################
-## Element
-#########################################################################*/
-
-/**
- * The Element interface represents an element in an XML document.
- * Elements may have attributes associated with them; since the Element interface
- * inherits from Node, the generic Node interface attribute attributes may be
- * used to retrieve the set of all attributes for an element. There are methods
- * on the Element interface to retrieve either an Attr object by name or an
- * attribute value by name. In XML, where an attribute value may contain entity
- * references, an Attr object should be retrieved to examine the possibly fairly
- * complex sub-tree representing the attribute value. On the other hand, in HTML,
- * where all attributes have simple string values, methods to directly access an
- * attribute value can safely be used as a convenience.
- */
-class Element : virtual public Node
-{
-public:
-
-
- /**
- * The name of the element. If Node.localName is different from null,
- * this attribute is a qualified name.
- */
- virtual DOMString getTagName() = 0;
-
- /**
- * Retrieves an attribute value by name.
- */
- virtual DOMString getAttribute(const DOMString& name) = 0;
-
- /**
- * Adds a new attribute. If an attribute with that name is already present in the
- * element, its value is changed to be that of the value parameter. This value is
- * a simple string; it is not parsed as it is being set. So any markup (such as
- * syntax to be recognized as an entity reference) is treated as literal text,
- * and needs to be appropriately escaped by the implementation when it is written
- * out. In order to assign an attribute value that contains entity references,
- * the user must create an Attr node plus any Text and EntityReference nodes,
- * build the appropriate subtree, and use setAttributeNode to assign it as the
- * value of an attribute.
- */
- virtual void setAttribute(const DOMString& name,
- const DOMString& value)
- throw(DOMException) = 0;
-
- /**
- * Removes an attribute by name. If no attribute with this name is found,
- * this method has no effect.
- */
- virtual void removeAttribute(const DOMString& name)
- throw(DOMException) = 0;
-
- /**
- * Retrieves an attribute node by name.
- */
- virtual AttrPtr getAttributeNode(const DOMString& name) = 0;
-
- /**
- * Adds a new attribute node. If an attribute with that name (nodeName)
- * is already present in the element, it is replaced by the new one.
- * Replacing an attribute node by itself has no effect.
- */
- virtual AttrPtr setAttributeNode(AttrPtr newAttr)
- throw(DOMException) = 0;
-
- /**
- * Removes the specified attribute node.
- */
- virtual AttrPtr removeAttributeNode(AttrPtr oldAttr)
- throw(DOMException) = 0;
-
- /**
- * Returns a NodeList of all descendant Elements with a given tag name,
- * in document order.
- */
- virtual NodeList getElementsByTagName(const DOMString& name) = 0;
-
- /**
- * Retrieves an attribute value by local name and namespace URI.
- * Per [XML Namespaces], applications must use the value null as the
- * namespaceURI parameter for methods if they wish to have no namespace.
- */
- virtual DOMString getAttributeNS(const DOMString& namespaceURI,
- const DOMString& localName) = 0;
-
- /**
- * Adds a new attribute. If an attribute with the same local name and namespace
- * URI is already present on the element, its prefix is changed to be the prefix
- * part of the qualifiedName, and its value is changed to be the value parameter.
- * This value is a simple string; it is not parsed as it is being set. So any
- * markup (such as syntax to be recognized as an entity reference) is treated as
- * literal text, and needs to be appropriately escaped by the implementation when
- * it is written out. In order to assign an attribute value that contains entity
- * references, the user must create an Attr node plus any Text and
- * EntityReference nodes, build the appropriate subtree, and use
- * setAttributeNodeNS or setAttributeNode to assign it as the value of an
- * attribute.
- */
- virtual void setAttributeNS(const DOMString& namespaceURI,
- const DOMString& qualifiedName,
- const DOMString& value)
- throw(DOMException) = 0;
-
- /**
- * Removes an attribute by local name and namespace URI.
- */
- virtual void removeAttributeNS(const DOMString& namespaceURI,
- const DOMString& localName)
- throw(DOMException) = 0;
-
- /**
- * Retrieves an Attr node by local name and namespace URI.
- */
- virtual AttrPtr getAttributeNodeNS(const DOMString& namespaceURI,
- const DOMString& localName) = 0;
-
- /**
- * Adds a new attribute. If an attribute with that local name and
- * that namespace URI is already present in the element, it is
- * replaced by the new one. Replacing an attribute node by itself has no effect.
- */
- virtual AttrPtr setAttributeNodeNS(AttrPtr newAttr)
- throw(DOMException) = 0;
-
- /**
- * Returns a NodeList of all the descendant Elements with a given
- * local name and namespace URI in document order.
- */
- virtual NodeList getElementsByTagNameNS(const DOMString& namespaceURI,
- const DOMString& localName) = 0;
-
- /**
- * Returns true when an attribute with a given name is specified on
- * this element or has a default value, false otherwise.
- */
- virtual bool hasAttribute(const DOMString& name) = 0;
-
- /**
- * Returns true when an attribute with a given local name and namespace
- * URI is specified on this element or has a default value, false otherwise.
- */
- virtual bool hasAttributeNS(const DOMString& namespaceURI,
- const DOMString& localName) = 0;
-
- /**
- * The type information associated with this element.
- */
- virtual TypeInfo &getSchemaTypeInfo() = 0;
-
-
- /**
- * If the parameter isId is true, this method declares the specified
- * attribute to be a user-determined ID attribute.
- */
- virtual void setIdAttribute(const DOMString &name,
- bool isId) throw (DOMException) = 0;
-
- /**
- * If the parameter isId is true, this method declares the specified
- * attribute to be a user-determined ID attribute.
- */
- virtual void setIdAttributeNS(const DOMString &namespaceURI,
- const DOMString &localName,
- bool isId) throw (DOMException) = 0;
-
- /**
- * If the parameter isId is true, this method declares the specified
- * attribute to be a user-determined ID attribute.
- */
- virtual void setIdAttributeNode(const AttrPtr idAttr,
- bool isId) throw (DOMException) = 0;
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~Element() {}
-
-};
-
-
-
-
-
-/*#########################################################################
-## Text
-#########################################################################*/
-
-/**
- * The Text interface inherits from CharacterData and represents the textual
- * content (termed character data in XML) of an Element or Attr. If there is no
- * markup inside an element's content, the text is contained in a single object
- * implementing the Text interface that is the only child of the element. If
- * there is markup, it is parsed into the information items (elements, comments,
- * etc.) and Text nodes that form the list of children of the element.
- */
-class Text : virtual public CharacterData
-{
-public:
-
- /**
- * Breaks this node into two nodes at the specified offset, keeping both in the
- * tree as siblings. After being split, this node will contain all the content up
- * to the offset point. A new node of the same type, which contains all the
- * content at and after the offset point, is returned. If the original node had a
- * parent node, the new node is inserted as the next sibling of the original
- * node. When the offset is equal to the length of this node, the new node has no
- * data.
- */
- virtual TextPtr splitText(unsigned long offset)
- throw(DOMException) = 0;
-
- /**
- * Returns whether this text node contains element content whitespace, often
- * abusively called "ignorable whitespace". The text node is determined to
- * contain whitespace in element content during the load of the document or if
- * validation occurs while using Document.normalizeDocument().
- */
- virtual bool getIsElementContentWhitespace()= 0;
-
- /**
- * Returns all text of Text nodes logically-adjacent text nodes
- * to this node, concatenated in document order.
- */
- virtual DOMString getWholeText() = 0;
-
-
- /**
- * Replaces the text of the current node and all logically-adjacent text nodes
- * with the specified text. All logically-adjacent text nodes are removed
- * including the current node unless it was the recipient of the replacement text.
- *
- * This method returns the node which received the replacement text. The returned
- * node is:
- * o null, when the replacement text is the empty string;
- * o the current node, except when the current node is read-only;
- * o a new Text node of the same type (Text or CDATASection) as
- * the current node inserted at the location of the replacement.
- */
- virtual TextPtr replaceWholeText(const DOMString &content)
- throw(DOMException) = 0;
-
- //##################
- //# Non-API methods
- //##################
-
-
- /**
- *
- */
- virtual ~Text() {}
-
-};
-
-
-
-/*#########################################################################
-## Comment
-#########################################################################*/
-
-/**
- * This interface inherits from CharacterData and represents the content of a
- * comment, i.e., all the characters between the starting '<!--' and ending '-->'.
- * Note that this is the definition of a comment in XML, and, in practice,
- * HTML, although some HTML tools may implement the full SGML comment structure.
- */
-class Comment : virtual public CharacterData
-{
-public:
-
- //##################
- //# Non-API methods
- //##################
-
-
- /**
- *
- */
- virtual ~Comment() {}
-
-
-};
-
-
-
-/*#########################################################################
-## TypeInfo
-#########################################################################*/
-
-/**
- * The TypeInfo interface represents a type referenced from Element or Attr nodes,
- * specified in the schemas associated with the document. The type is a pair of
- * a namespace URI and name properties, and depends on the document's schema.
- */
-class TypeInfo
-{
-public:
-
- /**
- * The name of a type declared for the associated element or attribute,
- * or null if unknown.
- */
- virtual DOMString getTypeName()
- { return typeName; }
-
- /**
- * The namespace of the type declared for the associated element
- * or attribute or null if the element does not have declaration or
- * if no namespace information is available.
- */
- virtual DOMString getTypeNamespace()
- { return typeNameSpace; }
-
- /**
- * These are the available values for the derivationMethod parameter used by the
- * method TypeInfo.isDerivedFrom(). It is a set of possible types of derivation,
- * and the values represent bit positions. If a bit in the derivationMethod
- * parameter is set to 1, the corresponding type of derivation will be taken into
- * account when evaluating the derivation between the reference type definition
- * and the other type definition. When using the isDerivedFrom method, combining
- * all of them in the derivationMethod parameter is equivalent to invoking the
- * method for each of them separately and combining the results with the OR
- * boolean function. This specification only defines the type of derivation for
- * XML Schema.
- */
- typedef enum
- {
- DERIVATION_RESTRICTION = 0x00000001,
- DERIVATION_EXTENSION = 0x00000002,
- DERIVATION_UNION = 0x00000004,
- DERIVATION_LIST = 0x00000008
- } DerivationMethod;
-
-
- /**
- * This method returns if there is a derivation between the reference
- * type definition, i.e. the TypeInfo on which the method is being called,
- * and the other type definition, i.e. the one passed as parameters.
- */
- virtual bool isDerivedFrom(const DOMString &/*typeNamespaceArg*/,
- const DOMString &/*typeNameArg*/,
- DerivationMethod /*derivationMethod*/)
- { return false; }
-
- //##################
- //# Non-API methods
- //##################
-
-
- /**
- *
- */
- TypeInfo()
- {}
-
- /**
- *
- */
- TypeInfo(const TypeInfo &other)
- { assign(other); }
-
- /**
- *
- */
- TypeInfo &operator=(const TypeInfo &other)
- { assign(other); return *this; }
-
- /**
- *
- */
- virtual ~TypeInfo() {}
-
-private:
-
- void assign(const TypeInfo &other)
- {
- typeName = other.typeName;
- typeNameSpace = other.typeNameSpace;
- }
-
- DOMString typeName;
- DOMString typeNameSpace;
-};
-
-
-
-
-/*#########################################################################
-## UserDataHandler
-#########################################################################*/
-
-/**
- * When associating an object to a key on a node using Node.setUserData() the
- * application can provide a handler that gets called when the node the object is
- * associated to is being cloned, imported, or renamed. This can be used by the
- * application to implement various behaviors regarding the data it associates to
- * the DOM nodes. This interface defines that handler.
- */
-class UserDataHandler
-{
-public:
-
- /**
- * An integer indicating the type of operation being performed on a node.
- */
- typedef enum
- {
- NODE_CLONED = 1,
- NODE_IMPORTED = 2,
- NODE_DELETED = 3,
- NODE_RENAMED = 4,
- NODE_ADOPTED = 5
- } OperationType;
-
-
- /**
- * This method is called whenever the node for which this handler
- * is registered is imported or cloned.
- */
- virtual void handle(unsigned short operation,
- const DOMString &key,
- const DOMUserData *data,
- const NodePtr src,
- const NodePtr dst) =0;
-
- //##################
- //# Non-API methods
- //##################
-
-
- /**
- *
- */
- virtual ~UserDataHandler() {}
-
-};
-
-
-/*#########################################################################
-## DOMError
-#########################################################################*/
-
-/**
- * DOMError is an interface that describes an error.
- */
-class DOMError
-{
-public:
-
- /**
- * An integer indicating the severity of the error.
- */
- typedef enum
- {
- SEVERITY_WARNING = 1,
- SEVERITY_ERROR = 2,
- SEVERITY_FATAL_ERROR = 3
- } ErrorSeverity;
-
-
- /**
- * The severity of the error, either SEVERITY_WARNING, SEVERITY_ERROR,
- * or SEVERITY_FATAL_ERROR.
- */
- virtual unsigned short getSeverity() =0;
-
- /**
- * An implementation specific string describing the error that occurred.
- */
- virtual DOMString getMessage() =0;
-
- /**
- * A DOMString indicating which related data is expected in relatedData.
- * Users should refer to the specification of the error in order to find
- * its DOMString type and relatedData definitions if any.
- */
- virtual DOMString getType() =0;
-
- /**
- * The related platform dependent exception if any.
- */
- virtual DOMObject *getRelatedException() =0;
-
- /**
- * The related DOMError.type dependent data if any.
- */
- virtual DOMObject *getRelatedData() =0;
-
- /**
- * The location of the error.
- */
- virtual DOMLocator *getLocation() =0;
-
-
- //##################
- //# Non-API methods
- //##################
-
-
- /**
- *
- */
- virtual ~DOMError() {}
-
-};
-
-
-/*#########################################################################
-## DOMErrorHandler
-#########################################################################*/
-
-/**
- * DOMErrorHandler is a callback interface that the DOM implementation can call
- * when reporting errors that happens while processing XML data, or when doing
- * some other processing (e.g. validating a document). A DOMErrorHandler object
- * can be attached to a Document using the "error-handler" on the
- * DOMConfiguration interface. If more than one error needs to be reported during
- * an operation, the sequence and numbers of the errors passed to the error
- * handler are implementation dependent.
- */
-class DOMErrorHandler
-{
-public:
-
- /**
- * This method is called on the error handler when an error occurs.
- * If an exception is thrown from this method, it is considered to be
- * equivalent of returning true.
- */
- virtual bool handleError(const DOMError *error) =0;
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~DOMErrorHandler() {}
-
-};
-
-
-
-/*#########################################################################
-## DOMLocator
-#########################################################################*/
-
-/**
- * DOMLocator is an interface that describes a location (e.g. where an error occurred).
- */
-class DOMLocator
-{
-public:
-
- /**
- * The line number this locator is pointing to, or -1 if there is
- * no column number available.
- */
- virtual long getLineNumber() =0;
-
- /**
- * The column number this locator is pointing to, or -1 if there is
- * no column number available.
- */
- virtual long getColumnNumber() =0;
-
- /**
- * The byte offset into the input source this locator is pointing to
- * or -1 if there is no byte offset available.
- */
- virtual long getByteOffset() =0;
-
- /**
- * The UTF-16, as defined in [Unicode] and Amendment 1 of [ISO/IEC 10646],
- * offset into the input source this locator is pointing to or -1
- * if there is no UTF-16 offset available.
- */
- virtual long getUtf16Offset() =0;
-
-
- /**
- * The node this locator is pointing to, or null if no node is available.
- */
- virtual NodePtr getRelatedNode() =0;
-
-
- /**
- * The URI this locator is pointing to, or null if no URI is available.
- */
- virtual DOMString getUri() =0;
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~DOMLocator() {}
-};
-
-
-/*#########################################################################
-## DOMConfiguration
-#########################################################################*/
-
-/**
- * The DOMConfiguration interface represents the configuration of a document and
- * maintains a table of recognized parameters. Using the configuration, it is
- * possible to change Document.normalizeDocument() behavior, such as replacing
- * the CDATASection nodes with Text nodes or specifying the type of the schema
- * that must be used when the validation of the Document is requested.
- * DOMConfiguration objects are also used in [DOM Level 3 Load and Save] in the
- * DOMParser and DOMSerializer interfaces.
- *
- * Look here for a list of valid parameters:
- * http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/core.html#DOMConfiguration
- */
-class DOMConfiguration
-{
-public:
-
- /**
- * Set the value of a parameter.
- */
- virtual void setParameter(const DOMString &name,
- const DOMUserData *value)
- throw (DOMException) =0;
-
- /**
- * Return the value of a parameter if known.
- */
- virtual DOMUserData *getParameter(const DOMString &name)
- throw (DOMException) =0;
-
- /**
- * Check if setting a parameter to a specific value is supported.
- */
- virtual bool canSetParameter(const DOMString &name,
- const DOMUserData *data) =0;
-
- /**
- * The list of the parameters supported by this DOMConfiguration
- * object and for which at least one value can be set by the application.
- * Note that this list can also contain parameter names defined outside
- * this specification.
- */
- virtual DOMStringList *getParameterNames() =0;
-
- //##################
- //# Non-API methods
- //##################
-
-
- /**
- *
- */
- virtual ~DOMConfiguration() {}
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## CDATASection
-#########################################################################*/
-
-/**
- * CDATA sections are used to escape blocks of text containing characters that
- * would otherwise be regarded as markup. The only delimiter that is recognized
- * in a CDATA section is the "]]>" string that ends the CDATA section. CDATA
- * sections cannot be nested. Their primary purpose is for including material
- * such as XML fragments, without needing to escape all the delimiters.
- */
-class CDATASection : virtual public Text
-{
-public:
-
- //##################
- //# Non-API methods
- //##################
-
-
- /**
- *
- */
- virtual ~CDATASection() {}
-
-};
-
-
-
-
-/*#########################################################################
-## DocumentType
-#########################################################################*/
-
-/**
- * Each Document has a doctype attribute whose value is either null or a
- * DocumentType object. The DocumentType interface in the DOM Core provides an
- * interface to the list of entities that are defined for the document, and
- * little else because the effect of namespaces and the various XML schema
- * efforts on DTD representation are not clearly understood as of this writing.
- */
-class DocumentType : virtual public Node
-{
-public:
-
- /**
- * The name of DTD; i.e., the name immediately following the DOCTYPE keyword.
- */
- virtual DOMString getName() = 0;
-
- /**
- * A NamedNodeMap containing the general entities, both external and
- * internal, declared in the DTD. Parameter entities are not contained.
- * Duplicates are discarded.
- */
- virtual NamedNodeMap getEntities() = 0;
-
- /**
- * A NamedNodeMap containing the notations declared in the DTD. Duplicates
- * are discarded. Every node in this map also implements the
- * Notation interface.
- */
- virtual NamedNodeMap getNotations() = 0;
-
- /**
- * The public identifier of the external subset.
- */
- virtual DOMString getPublicId() = 0;
-
- /**
- * The system identifier of the external subset. This may be an
- * absolute URI or not.
- */
- virtual DOMString getSystemId() = 0;
-
- /**
- * The internal subset as a string, or null if there is none. This
- * does not contain the delimiting square brackets.
- */
- virtual DOMString getInternalSubset() = 0;
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~DocumentType() {}
-
-};
-
-
-
-
-
-/*#########################################################################
-## Notation
-#########################################################################*/
-
-/**
- * This interface represents a notation declared in the DTD. A notation either
- * declares, by name, the format of an unparsed entity (see section 4.7 of the
- * XML 1.0 specification [XML 1.0]), or is used for formal declaration of
- * processing instruction targets (see section 2.6 of the XML 1.0 specification
- * [XML 1.0]). The nodeName attribute inherited from Node is set to the declared
- * name of the notation.
- */
-class Notation : virtual public Node
-{
-public:
-
- /**
- * The public identifier of this notation. If the public identifier was
- * not specified, this is null.
- */
- virtual DOMString getPublicId() = 0;
-
- /**
- * The system identifier of this notation. If the system identifier was
- * not specified, this is null. This may be an absolute URI or not.
- */
- virtual DOMString getSystemId() = 0;
-
- //##################
- //# Non-API methods
- //##################
-
-
- /**
- *
- */
- virtual ~Notation() {}
-};
-
-
-
-
-
-
-/*#########################################################################
-## Entity
-#########################################################################*/
-
-/**
- * This interface represents a known entity, either parsed or unparsed, in an XML
- * document. Note that this models the entity itself not the entity declaration.
- */
-class Entity : virtual public Node
-{
-public:
-
- /**
- * The public identifier associated with the entity if specified,
- * and null otherwise.
- */
- virtual DOMString getPublicId() = 0;
-
- /**
- * The system identifier associated with the entity if specified,
- * and null otherwise. This may be an absolute URI or not.
- */
- virtual DOMString getSystemId() = 0;
-
- /**
- * For unparsed entities, the name of the notation for the entity.
- * For parsed entities, this is null.
- */
- virtual DOMString getNotationName() = 0;
-
- /**
- * An attribute specifying the encoding used for this entity at the
- * time of parsing, when it is an external parsed entity. This is null
- * if it an entity from the internal subset or if it is not known.
- */
- virtual DOMString getInputEncoding() = 0;
-
- /**
- * An attribute specifying, as part of the text declaration, the encoding
- * of this entity, when it is an external parsed entity. This is null otherwise.
- */
- virtual DOMString getXmlEncoding() = 0;
-
- /**
- * An attribute specifying, as part of the text declaration, the version
- * number of this entity, when it is an external parsed entity.
- * This is null otherwise.
- */
- virtual DOMString getXmlVersion() = 0;
-
- //##################
- //# Non-API methods
- //##################
-
-
- /**
- *
- */
- virtual ~Entity() {}
-};
-
-
-
-
-
-/*#########################################################################
-## EntityReference
-#########################################################################*/
-
-/**
- * EntityReference nodes may be used to represent an entity reference in the tree.
- */
-class EntityReference : virtual public Node
-{
-public:
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~EntityReference() {}
-};
-
-
-
-
-
-/*#########################################################################
-## ProcessingInstruction
-#########################################################################*/
-
-/**
- * The ProcessingInstruction interface represents a "processing instruction",
- * used in XML as a way to keep processor-specific information in the text of the
- * document.
- */
-class ProcessingInstruction : virtual public Node
-{
-public:
-
- /**
- * The target of this processing instruction. XML defines this as being
- * the first token following the markup that begins the processing instruction.
- */
- virtual DOMString getTarget() = 0;
-
- /**
- * The content of this processing instruction. This is from the first non
- * white space character after the target to the character immediately
- * preceding the ?>.
- */
- virtual DOMString getData() = 0;
-
- /**
- * Sets the content above.
- */
- virtual void setData(const DOMString& val) throw(DOMException) = 0;
-
- //##################
- //# Non-API methods
- //##################
-
-
- /**
- *
- */
- virtual ~ProcessingInstruction() {}
-
-};
-
-
-
-
-
-/*#########################################################################
-## DocumentFragment
-#########################################################################*/
-
-/**
- * DocumentFragment is a "lightweight" or "minimal" Document object. It is very
- * common to want to be able to extract a portion of a document's tree or to
- * create a new fragment of a document. Imagine implementing a user command like
- * cut or rearranging a document by moving fragments around. It is desirable to
- * have an object which can hold such fragments and it is quite natural to use a
- * Node for this purpose. While it is true that a Document object could fulfill
- * this role, a Document object can potentially be a heavyweight object,
- * depending on the underlying implementation. What is really needed for this is
- * a very lightweight object. DocumentFragment is such an object.
- */
-class DocumentFragment : virtual public Node
-{
-public:
-
- //##################
- //# Non-API methods
- //##################
-
-
- /**
- *
- */
- virtual ~DocumentFragment() {}
-};
-
-
-
-
-
-
-/*#########################################################################
-## Document
-#########################################################################*/
-
-/**
- * From the spec:
- *
- * The Document interface represents the entire HTML or XML document.
- * Conceptually, it is the root of the document tree, and provides the primary
- * access to the document's data.
- *
- * Since elements, text nodes, comments, processing instructions, etc. cannot
- * exist outside the context of a Document, the Document interface also contains
- * the factory methods needed to create these objects. The Node objects created
- * have a ownerDocument attribute which associates them with the Document within
- * whose context they were created.
- *
- */
-class Document : virtual public Node
-{
-public:
-
- /**
- * The Document Type Declaration (see DocumentType) associated with this document.
- */
- virtual DocumentTypePtr getDoctype() = 0;
-
- /**
- * The DOMImplementation object that handles this document. A DOM application
- * may use objects from multiple implementations.
- */
- virtual DOMImplementation *getImplementation() = 0;
-
- /**
- * This is a convenience attribute that allows direct access to the child
- * node that is the document element of the document.
- */
- virtual ElementPtr getDocumentElement() = 0;
-
- /**
- * Creates an element of the type specified.
- */
- virtual ElementPtr createElement(const DOMString& tagName)
- throw(DOMException) = 0;
-
- /**
- * Creates a new, empty DocumentFragment
- */
- virtual DocumentFragmentPtr createDocumentFragment() = 0;
-
- /**
- * Creates an Text node with the text data specified.
- */
- virtual TextPtr createTextNode(const DOMString& text) = 0;
-
- /**
- * Creates a new Comment node with the argument text
- */
- virtual CommentPtr createComment(const DOMString& text) = 0;
-
- /**
- * Creates a new CDATASection node with the argument text
- */
- virtual CDATASectionPtr createCDATASection(const DOMString& text)
- throw(DOMException) = 0;
-
- /**
- * Creates a new ProcessingInstruction
- */
- virtual ProcessingInstructionPtr
- createProcessingInstruction(const DOMString& target,
- const DOMString& data)
- throw(DOMException) = 0;
-
- /**
- * Creates a new Attr with the given name, but no value.
- */
- virtual AttrPtr createAttribute(const DOMString& name)
- throw(DOMException) = 0;
-
- /**
- * Creates a new EntityReference
- */
- virtual EntityReferencePtr createEntityReference(const DOMString& name)
- throw(DOMException) = 0;
-
- /**
- * Searches the Document in document order for all elements with the given
- * tag name
- */
- virtual NodeList getElementsByTagName(const DOMString& tagname) = 0;
-
-
- /**
- * Imports a node from another document to this document, without altering or
- * removing the source node from the original document; this method creates a new
- * copy of the source node. The returned node has no parent; (parentNode is
- * null). For all nodes, importing a node creates a node object owned by the
- * importing document, with attribute values identical to the source node's
- * nodeName and nodeType, plus the attributes related to namespaces (prefix,
- * localName, and namespaceURI). As in the cloneNode operation, the source node
- * is not altered. User data associated to the imported node is not carried over.
- * However, if any UserDataHandlers has been specified along with the associated
- * data these handlers will be called with the appropriate parameters before this
- * method returns. Additional information is copied as appropriate to the
- * nodeType, attempting to mirror the behavior expected if a fragment of XML or
- * HTML source was copied from one document to another, recognizing that the two
- * documents may have different DTDs in the XML case. The following list
- * describes the specifics for each type of node.
- */
- virtual NodePtr importNode(const NodePtr importedNode,
- bool deep)
- throw(DOMException) = 0;
-
- /**
- * Creates a new Element with the given namespace and qualifiedName.
- * Use "" for no namespace
- */
- virtual ElementPtr createElementNS(const DOMString& namespaceURI,
- const DOMString& qualifiedName)
- throw(DOMException) = 0;
-
- /**
- * Creates a new Attr with the given namespace and qualifiedName.
- */
- virtual AttrPtr createAttributeNS(const DOMString& namespaceURI,
- const DOMString& qualifiedName)
- throw(DOMException) = 0;
-
- /**
- * Searches the Document in document order for all elements with the given
- * namespace and tag name
- */
- virtual NodeList getElementsByTagNameNS(const DOMString& namespaceURI,
- const DOMString& localName) = 0;
-
- /**
- * Gets the element with the given id if it exists, else null.
- */
- virtual ElementPtr getElementById(const DOMString& elementId) = 0;
-
-
- /**
- * Return the input encoding of this Document
- */
- virtual DOMString getInputEncoding() = 0;
-
-
- /**
- * Return the XML encoding of this Document
- */
- virtual DOMString getXmlEncoding() = 0;
-
- /**
- * An attribute specifying, as part of the XML declaration, whether
- * this document is standalone. This is false when unspecified.
- */
- virtual bool getXmlStandalone() = 0;
-
- /**
- * Sets whether this is a standalone XML document. No validation is
- * done here.
- */
- virtual void setXmlStandalone(bool val) throw (DOMException) = 0;
-
- /**
- * Gets the version (1.0, 1.1, etc) of this document.
- */
- virtual DOMString getXmlVersion() = 0;
-
- /**
- * Sets the XML version of this document.
- */
- virtual void setXmlVersion(const DOMString &version)
- throw (DOMException) = 0;
-
- /**
- * An attribute specifying whether error checking is enforced or not. When set to
- * false, the implementation is free to not test every possible error case
- * normally defined on DOM operations, and not raise any DOMException on DOM
- * operations or report errors while using Document.normalizeDocument(). In case
- * of error, the behavior is undefined. This attribute is true by default.
- */
- virtual bool getStrictErrorChecking() = 0;
-
- /**
- * Sets the value described above.
- */
- virtual void setStrictErrorChecking(bool val) = 0;
-
-
- /**
- * Gets the document URI (the base location) of this Document.
- */
- virtual DOMString getDocumentURI() = 0;
-
- /**
- * Sets the document URI (the base location) of this Document to the
- * argument uri.
- */
- virtual void setDocumentURI(const DOMString &uri) = 0;
-
- /**
- * Attempts to adopt a node from another document to this document. If supported,
- * it changes the ownerDocument of the source node, its children, as well as the
- * attached attribute nodes if there are any. If the source node has a parent it
- * is first removed from the child list of its parent. This effectively allows
- * moving a subtree from one document to another (unlike importNode() which
- * create a copy of the source node instead of moving it). When it fails,
- * applications should use Document.importNode() instead. Note that if the
- * adopted node is already part of this document (i.e. the source and target
- * document are the same), this method still has the effect of removing the
- * source node from the child list of its parent, if any.
- */
- virtual NodePtr adoptNode(const NodePtr source) throw (DOMException) = 0;
-
- /**
- * Get the configuration item associated with this Document
- */
- virtual DOMConfiguration *getDomConfig() = 0;
-
- /**
- * This method acts as if the document was going through a save and load cycle,
- * putting the document in a "normal" form. As a consequence, this method updates
- * the replacement tree of EntityReference nodes and normalizes Text nodes, as
- * defined in the method Node.normalize(). Otherwise, the actual result depends
- * on the features being set on the Document.domConfig object and governing what
- * operations actually take place. Noticeably this method could also make the
- * document namespace well-formed according to the algorithm described in
- * Namespace Normalization, check the character normalization, remove the
- * CDATASection nodes, etc. See DOMConfiguration for details.
- */
- virtual void normalizeDocument() = 0;
-
- /**
- *
- * Rename an existing node of type ELEMENT_NODE or ATTRIBUTE_NODE. When possible
- * this simply changes the name of the given node, otherwise this creates a new
- * node with the specified name and replaces the existing node with the new node
- * as described below. If simply changing the name of the given node is not
- * possible, the following operations are performed: a new node is created, any
- * registered event listener is registered on the new node, any user data
- * attached to the old node is removed from that node, the old node is removed
- * from its parent if it has one, the children are moved to the new node, if the
- * renamed node is an Element its attributes are moved to the new node, the new
- * node is inserted at the position the old node used to have in its parent's
- * child nodes list if it has one, the user data that was attached to the old
- * node is attached to the new node. When the node being renamed is an Element
- * only the specified attributes are moved, default attributes originated from
- * the DTD are updated according to the new element name. In addition, the
- * implementation may update default attributes from other schemas. Applications
- * should use Document.normalizeDocument() to guarantee these attributes are
- * up-to-date. When the node being renamed is an Attr that is attached to an
- * Element, the node is first removed from the Element attributes map. Then, once
- * renamed, either by modifying the existing node or creating a new one as
- * described above, it is put back.
- *
- * In addition,
- * a user data event NODE_RENAMED is fired,
- * when the implementation supports the feature "MutationNameEvents",
- * each mutation operation involved in this method fires the appropriate
- * event, and in the end the event {http://www.w3.org/2001/xml-events,
- * DOMElementNameChanged} or {http://www.w3.org/2001/xml-events,
- * DOMAttributeNameChanged} is fired.
- *
- */
- virtual NodePtr renameNode(const NodePtr n,
- const DOMString &namespaceURI,
- const DOMString &qualifiedName)
- throw (DOMException) = 0;
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~Document() {}
-
-};
-
-
-
-
-
-
-
-
-} //namespace dom
-} //namespace w3c
-} //namespace org
-
-
-#endif // SEEN_DOM_H
-
-
-/*#########################################################################
-## E N D O F F I L E
-#########################################################################*/
-
-
-
-
diff --git a/src/dom/domimpl.cpp b/src/dom/domimpl.cpp
deleted file mode 100644
index 3d9a29592..000000000
--- a/src/dom/domimpl.cpp
+++ /dev/null
@@ -1,3071 +0,0 @@
-/*
- * Phoebe DOM Implementation.
- *
- * This is a C++ approximation of the W3C DOM model, which follows
- * fairly closely the specifications in the various .idl files, copies of
- * which are provided for reference. Most important is this one:
- *
- * http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/idl-definitions.html
- *
- * Authors:
- * Bob Jamison
- *
- * Copyright (C) 2005-2008 Bob Jamison
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-
-#include <cstdio>
-#include "domimpl.h"
-
-namespace org
-{
-namespace w3c
-{
-namespace dom
-{
-
-
-/**
- * Test if the given substring exists for the length of the string
- * in a given buffer
- */
-/*
-static bool match(const DOMString &buf, char *str)
-{
- int pos = 0;
- while (*str)
- {
- if (buf[pos++] != *str++)
- return false;
- }
- return true;
-}
-*/
-
-
-
-/*#########################################################################
-## DOMImplementationSourceImpl
-#########################################################################*/
-
-
-/**
- *
- */
-DOMImplementationSourceImpl::DOMImplementationSourceImpl()
-{
- domImpl = new DOMImplementationImpl();
-}
-
-/**
- *
- */
-DOMImplementationSourceImpl::~DOMImplementationSourceImpl()
-{
- delete domImpl;
-}
-
-/**
- *
- */
-DOMImplementation *DOMImplementationSourceImpl::getDOMImplementation(
- const DOMString &/*features*/)
-{
- return domImpl;
-}
-
-/**
- *
- */
-DOMImplementationList DOMImplementationSourceImpl::getDOMImplementationList(
- const DOMString &/*features*/)
-{
- return domImplList;
-}
-
-
-
-
-
-
-
-/*#########################################################################
-## DOMImplementationImpl
-#########################################################################*/
-
-
-/**
- *
- */
-DOMImplementationImpl::DOMImplementationImpl()
-{
-}
-
-/**
- *
- */
-DOMImplementationImpl::~DOMImplementationImpl()
-{
-}
-
-/**
- *
- */
-bool DOMImplementationImpl::hasFeature(const DOMString& /*feature*/,
- const DOMString& /*version*/)
-{
- return false;
-}
-
-
-/**
- *
- */
-DocumentTypePtr DOMImplementationImpl::createDocumentType(const DOMString& qualifiedName,
- const DOMString& publicId,
- const DOMString& systemId)
- throw(DOMException)
-{
- DocumentTypePtr typeImpl = new DocumentTypeImpl(qualifiedName,
- publicId, systemId);
- return typeImpl;
-}
-
-/**
- *
- */
-DocumentPtr DOMImplementationImpl::createDocument(
- const DOMString& namespaceURI,
- const DOMString& qualifiedName,
- DocumentTypePtr doctype)
- throw(DOMException)
-{
- DocumentPtr doc = new DocumentImpl(this,
- namespaceURI,
- qualifiedName,
- doctype);
- return doc;
-}
-
-/**
- *
- */
-DOMObject *DOMImplementationImpl::getFeature(const DOMString& /*feature*/,
- const DOMString& /*version*/)
-
-{
- return NULL;
-}
-
-
-
-
-
-/*#########################################################################
-## NodeImpl
-#########################################################################*/
-
-/**
- * Utility for finding the first Element above
- * a given node. Used by several methods below
- */
-static NodePtr getAncestorElement(NodePtr node)
-{
- if (!node.get())
- return NULL;
- node = node->getParentNode();
- //Either quit because I am an element, or because I am null
- while (node.get())
- {
- if (node->getNodeType() == Node::ELEMENT_NODE)
- return node;
- node = node->getParentNode();
- }
- return node;
-}
-
-/**
- *
- */
-DOMString NodeImpl::getNodeName()
-{
- return nodeName;
-}
-
-/**
- *
- */
-DOMString NodeImpl::getNodeValue() throw (DOMException)
-{
- return nodeValue;
-}
-
-/**
- *
- */
-void NodeImpl::setNodeValue(const DOMString& val) throw (DOMException)
-{
- nodeValue = val;
-}
-
-/**
- *
- */
-unsigned short NodeImpl::getNodeType()
-{
- return nodeType;
-}
-
-/**
- *
- */
-NodePtr NodeImpl::getParentNode()
-{
- return parent;
-}
-
-/**
- *
- */
-NodeList NodeImpl::getChildNodes()
-{
- NodeList list;
- for (NodeImplPtr node = firstChild ; node.get() ; node=node->next)
- list.add(node);
- return list;
-}
-
-/**
- *
- */
-NodePtr NodeImpl::getFirstChild()
-{
- return firstChild;
-}
-
-/**
- *
- */
-NodePtr NodeImpl::getLastChild()
-{
- return lastChild;
-}
-
-/**
- *
- */
-NodePtr NodeImpl::getPreviousSibling()
-{
- return prev;
-}
-
-/**
- *
- */
-NodePtr NodeImpl::getNextSibling()
-{
- return next;
-}
-
-/**
- *
- */
-NamedNodeMap &NodeImpl::getAttributes()
-{
- NamedNodeMap &attrs = attributes;
- return attrs;
-}
-
-
-/**
- *
- */
-DocumentPtr NodeImpl::getOwnerDocument()
-{
- return ownerDocument;
-}
-
-/**
- *
- */
-NodePtr NodeImpl::insertBefore(const NodePtr newChild,
- const NodePtr refChild)
- throw(DOMException)
-{
- if (!newChild)
- return NULL;
-
- //if no ref, then just append
- if (!refChild)
- return appendChild(newChild);
-
- NodeImplPtr newChildImpl = reinterpret_cast<NodeImpl *>(newChild.get());
- for (NodeImplPtr n = firstChild ; n.get() ; n=n->next)
- {
- if (n == refChild)
- {
- //link to new
- if (n->prev.get())
- n->prev->next = newChildImpl;
- else
- firstChild = newChildImpl;
- n->prev = newChildImpl;
- //link from new
- newChildImpl->next = n;
- newChildImpl->prev = n->prev;
- //reflect new location
- newChildImpl->parent = this;
- newChildImpl->ownerDocument = ownerDocument;
- return n;
- }
- }
- return NULL;
-}
-
-/**
- *
- */
-NodePtr NodeImpl::replaceChild(const NodePtr newChild,
- const NodePtr oldChild)
- throw(DOMException)
-{
- if (!oldChild)
- return NULL;
-
- NodeImplPtr newChildImpl = reinterpret_cast<NodeImpl *>(newChild.get());
- for (NodeImplPtr n = firstChild ; n.get() ; n=n->next)
- {
- if (n == oldChild)
- {
- //link to new
- if (n->prev.get())
- n->prev->next = newChildImpl;
- else
- firstChild = newChildImpl;
- if (n->next.get())
- n->next->prev = newChildImpl;
- else
- lastChild = newChildImpl;
- //link from new
- newChildImpl->next = n->next;
- newChildImpl->prev = n->prev;
- //reflect new location
- newChildImpl->parent = this;
- newChildImpl->ownerDocument = ownerDocument;
- return n;
- }
- }
- return NULL;
-}
-
-/**
- *
- */
-NodePtr NodeImpl::removeChild(const NodePtr oldChild)
- throw(DOMException)
-{
- if (!oldChild)
- return NULL;
-
- for (NodeImplPtr n = firstChild ; n.get() ; n=n->next)
- {
- if (n == oldChild)
- {
- if (n->prev.get())
- n->prev->next = n->next;
- if (n->next.get())
- n->next->prev = n->prev;
- return n;
- }
- }
- return NULL;
-}
-
-/**
- *
- */
-NodePtr NodeImpl::appendChild(const NodePtr newChild)
- throw(DOMException)
-{
- if (!newChild)
- return NULL;
-
- NodeImplPtr newChildImpl =
- reinterpret_cast<NodeImpl *> (newChild.get());
-
- newChildImpl->parent = this;
- newChildImpl->ownerDocument = ownerDocument;
-
- if (!firstChild || !lastChild)
- {
- //Set up our first member
- firstChild = newChildImpl;
- lastChild = newChildImpl;
- }
- else
- {
- //link at the last position
- lastChild->next = newChildImpl;
- newChildImpl->prev = lastChild;
- lastChild = newChildImpl;
- }
-
- return newChild;
-}
-
-/**
- *
- */
-bool NodeImpl::hasChildNodes()
-{
- return (firstChild != (NodeImpl *)0);
-}
-
-/**
- *
- */
-NodePtr NodeImpl::cloneNode(bool deep)
-{
- NodeImplPtr node = new NodeImpl(ownerDocument, nodeName);
- node->parent = parent;
- node->prev = prev;
- node->next = next;
- node->userData = userData;
- node->nodeValue = nodeValue;
-
- if (deep)
- {
- node->firstChild = node->lastChild = NULL;
- for (NodeImplPtr child = firstChild ; child.get() ; child=child->next)
- {
- node->appendChild(child->cloneNode(deep));
- }
- }
- else
- {
- node->firstChild = firstChild;
- node->lastChild = lastChild;
- }
-
- return node;
-}
-
-/**
- * Concatenate adjoining text subnodes, remove null-length nodes
- */
-void NodeImpl::normalize()
-{
- //First, concatenate adjoining text nodes
- NodeImplPtr next = (NodeImpl *)0;
- for (NodeImplPtr child = firstChild ; child.get() ; child=next)
- {
- if (child->getNodeType() != Node::TEXT_NODE)
- continue;
- next = NULL;
- DOMString sval = child->getNodeValue();
- for (NodeImplPtr sibling = child->next ; sibling.get() ; sibling=next)
- {
- next = sibling->next;
- if (sibling->getNodeType() != Node::TEXT_NODE)
- break;
- sval.append(sibling->getNodeValue());
- //unlink and delete
- child->next = sibling->next;
- if (sibling->next.get())
- sibling->next->prev = child;
- //delete sibling;
- }
- child->setNodeValue(sval);
- }
-
- //Next, we remove zero-length text subnodes
- next = NULL;
- for (NodeImplPtr child = firstChild ; child.get() ; child=next)
- {
- next = child->next;
- if (child->getNodeType() != Node::TEXT_NODE)
- continue;
- if (child->getNodeValue().size() == 0)
- {
- //unlink and delete
- if (child->prev.get())
- child->prev->next = child->next;
- if (child->next.get())
- child->next->prev = child->prev;
- //delete child;
- }
- }
-
-}
-
-/**
- *
- */
-bool NodeImpl::isSupported(const DOMString& /*feature*/,
- const DOMString& /*version*/)
-{
- //again, no idea
- return false;
-}
-
-/**
- *
- */
-DOMString NodeImpl::getNamespaceURI()
-{
- return namespaceURI;
-}
-
-/**
- *
- */
-DOMString NodeImpl::getPrefix()
-{
- return prefix;
-}
-
-/**
- *
- */
-void NodeImpl::setPrefix(const DOMString& val) throw(DOMException)
-{
- prefix = val;
- if (prefix.size()>0)
- nodeName = prefix + ":" + localName;
- else
- nodeName = localName;
-}
-
-/**
- *
- */
-DOMString NodeImpl::getLocalName()
-{
- return localName;
-}
-
-/**
- *
- */
-bool NodeImpl::hasAttributes()
-{
- return (attributes.getLength() > 0);
-}
-
-/**
- *
- */
-DOMString NodeImpl::getBaseURI()
-{
- return baseURI;
-}
-
-/**
- *
- */
-unsigned short NodeImpl::compareDocumentPosition(const NodePtr otherArg)
-{
- if (!otherArg || otherArg == (NodePtr )this)
- return 0;//no flags
-
- NodePtr node;
- NodePtr other = otherArg;
-
- //Look above me
- for (node=getParentNode() ; node.get() ; node=node->getParentNode())
- if (node == other)
- return DOCUMENT_POSITION_CONTAINED_BY;
-
- //Look above the other guy. See me?
- for (node=other->getParentNode() ; node.get() ; node=node->getParentNode())
- if (node == (NodePtr )this)
- return DOCUMENT_POSITION_CONTAINS;
-
-
- return DOCUMENT_POSITION_DISCONNECTED |
- DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC;
-}
-
-/**
- *
- */
-DOMString NodeImpl::getTextContent() throw(DOMException)
-{
- DOMString buf;
- if (nodeType == TEXT_NODE ||
- nodeType == CDATA_SECTION_NODE ||
- nodeType == COMMENT_NODE ||
- nodeType == PROCESSING_INSTRUCTION_NODE)
- buf = getNodeValue();
- else if (nodeType == ELEMENT_NODE ||
- nodeType == ATTRIBUTE_NODE ||
- nodeType == ENTITY_NODE ||
- nodeType == ENTITY_REFERENCE_NODE ||
- nodeType == DOCUMENT_FRAGMENT_NODE)
- {
- for (NodePtr n = getFirstChild() ; n.get() ;
- n=n->getNextSibling() )
- {
- if (n->getNodeType() != COMMENT_NODE &&
- n->getNodeType() != COMMENT_NODE)
- buf.append(n->getTextContent());
- }
- }
- return buf;
-}
-
-
-/**
- *
- */
-void NodeImpl::setTextContent(const DOMString &val) throw(DOMException)
-{
- //Delete children
- /** Not necessary. Just let smart pointers to their work
- for (NodePtr n = getFirstChild() ; n.get() ;
- n=n->getNextSibling() )
- delete n;
- */
- firstChild = lastChild = NULL;
-
- //Replace with a single text node
- NodeImplPtr tnode = new NodeImpl(ownerDocument);
- tnode->nodeType = Node::TEXT_NODE;
- tnode->setNodeValue(val);
- appendChild(tnode);
-}
-
-
-/**
- * From DOM3 Namespace algorithms
- */
-DOMString NodeImpl::lookupPrefix(const DOMString &theNamespaceURI)
-{
-
- if (theNamespaceURI.size()==0)
- {
- return DOMString("");
- }
-
- switch (nodeType)
- {
- case Node::ELEMENT_NODE:
- {
- ElementPtr elem = reinterpret_cast<Element *>(this);
- return lookupNamespacePrefix(theNamespaceURI, elem);
- }
- case Node::DOCUMENT_NODE:
- {
- DocumentPtr doc = reinterpret_cast<Document *>(this);
- ElementPtr elem = doc->getDocumentElement();
- return elem->lookupPrefix(theNamespaceURI);
- }
- case Node::ENTITY_NODE :
- case Node::NOTATION_NODE:
- case Node::DOCUMENT_FRAGMENT_NODE:
- case Node::DOCUMENT_TYPE_NODE:
- return DOMString(""); // type is unknown
- case Node::ATTRIBUTE_NODE:
- {
- AttrPtr attr = reinterpret_cast<Attr *>(this);
- ElementPtr elem = attr->getOwnerElement();
- if ( elem.get() )
- {
- return elem->lookupPrefix(theNamespaceURI);
- }
- return DOMString("");
- }
- default:
- {
- //Get ancestor element, if any
- NodePtr ancestor = getAncestorElement(this);
- if ( ancestor.get() )
- {
- return ancestor->lookupPrefix(theNamespaceURI);
- }
- return DOMString("");
- }
- }//switch
- return DOMString("");
-}
-
-
-/**
- *
- */
-bool NodeImpl::isDefaultNamespace(const DOMString &theNamespaceURI)
-{
- switch (nodeType)
- {
- case ELEMENT_NODE:
- {
- if ( namespaceURI.size()>0 && prefix.size()==0 )
- {
- return (namespaceURI == theNamespaceURI);
- }
- NodePtr attr = attributes.getNamedItem("xmlns");
- if ( attr.get() )
- {
- return (attr->getNodeValue() == theNamespaceURI);
- }
-
- NodePtr ancestor = getAncestorElement(this);
- if ( ancestor.get() )
- {
- return ancestor->isDefaultNamespace(theNamespaceURI);
- }
- else
- {
- return false;
- }
- }
- case DOCUMENT_NODE:
- { //just use braces for local declaration
- DocumentPtr doc = reinterpret_cast<Document *>(this);
- ElementPtr elem = doc->getDocumentElement();
- return elem->isDefaultNamespace(theNamespaceURI);
- }
- case ENTITY_NODE:
- case NOTATION_NODE:
- case DOCUMENT_TYPE_NODE:
- case DOCUMENT_FRAGMENT_NODE:
- return false;
- case ATTRIBUTE_NODE:
- {//braces only for scope
- AttrPtr attr = reinterpret_cast<Attr *>(this);
- ElementPtr ownerElement = attr->getOwnerElement();
- if ( ownerElement.get() )
- {
- return ownerElement->isDefaultNamespace(theNamespaceURI);
- }
- else
- {
- return false;
- }
- }
- default:
- {
- NodePtr ancestor = getAncestorElement(this);
- if ( ancestor.get() )
- {
- return ancestor->isDefaultNamespace(theNamespaceURI);
- }
- else
- {
- return false;
- }
- }
- }//switch
-
- return false;
-}
-
-
-/**
- *
- */
-DOMString NodeImpl::lookupNamespaceURI(const DOMString &thePrefix)
-{
- switch (nodeType)
- {
- case ELEMENT_NODE:
- {
- if ( namespaceURI.size()>0 && prefix == thePrefix )
- {
- DOMString nsURI = namespaceURI;
- return (nsURI);
- }
- if ( hasAttributes() )
- {
- NamedNodeMap attributes = getAttributes();
- int nrAttrs = attributes.getLength();
- for (int i=0 ; i<nrAttrs ; i++)
- {
- NodePtr attr = attributes.item(i);
- if (attr->getPrefix() == "xmlns" && attr->getLocalName() == thePrefix )
- { // non default namespace
- if (attr->getNodeValue().size()>0)
- {
- return (attr->getNodeValue());
- }
- return DOMString("");
- }
- else if (attr->getLocalName() == "xmlns" && thePrefix.size()==0)
- { // default namespace
- if (attr->getNodeValue().size()>0)
- {
- return (attr->getNodeValue());
- }
- return DOMString("");
- }
- }
- }
-
- NodePtr ancestor = getAncestorElement(this);
- if ( ancestor.get() )
- {
- return ancestor->lookupNamespaceURI(thePrefix);
- }
- return DOMString("");
- }
- case DOCUMENT_NODE:
- {
- DocumentPtr doc = reinterpret_cast<Document *>(this);
- ElementPtr elem = doc->getDocumentElement();
- return elem->lookupNamespaceURI(thePrefix);
- }
- case ENTITY_NODE:
- case NOTATION_NODE:
- case DOCUMENT_TYPE_NODE:
- case DOCUMENT_FRAGMENT_NODE:
- return DOMString("");
-
- case ATTRIBUTE_NODE:
- {
- ElementPtr ownerElement = (reinterpret_cast<Attr *>(this))->getOwnerElement();
- if ( ownerElement.get() )
- {
- return ownerElement->lookupNamespaceURI(thePrefix);
- }
- else
- {
- return DOMString("");
- }
- }
- default:
- {
- NodePtr ancestor = getAncestorElement(this);
- if ( ancestor.get() )
- {
- return ancestor->lookupNamespaceURI(thePrefix);
- }
- else
- {
- return DOMString("");
- }
- }
- }//switch
-}
-
-
-/**
- *
- */
-bool NodeImpl::isEqualNode(const NodePtr nodeArg)
-{
- if (!nodeArg)
- return false;
-
- if (nodeArg == static_cast<NodePtr>(this))
- return true;
-
- NodePtr node = nodeArg;
-
- if (getNodeType() != node->getNodeType() ||
- getNodeName() != node->getNodeName() ||
- getLocalName() != node->getLocalName() ||
- getNamespaceURI() != node->getNamespaceURI() ||
- getPrefix() != node->getPrefix() ||
- getNodeValue() != node->getNodeValue() ||
- getBaseURI() != node->getBaseURI() )
- return false;
-
- return true;
-}
-
-
-
-/**
- *
- */
-DOMObject *NodeImpl::getFeature(const DOMString &/*feature*/,
- const DOMString &/*version*/)
-{
- //dont know
- return NULL;
-}
-
-/**
- *
- */
-DOMUserData *NodeImpl::setUserData(const DOMString &key,
- const DOMUserData *data,
- const UserDataHandler *handler)
-{
- UserDataEntry *entry = userDataEntries;
- UserDataEntry *prev = NULL;
- while (entry)
- {
- if (entry->key == key)
- {
- DOMUserData *oldData = entry->data;
- entry->data = const_cast<DOMUserData *>(data);
- entry->handler = const_cast<UserDataHandler *>(handler);
- return oldData;
- }
- prev = entry;
- entry = entry->next;
- }
-
- //Make a new one
- UserDataEntry *newEntry = new UserDataEntry(key, data, handler);
- if (!prev)
- userDataEntries = newEntry;
- else
- prev->next = newEntry;
-
- return NULL;
-}
-
-/**
- *
- */
-DOMUserData *NodeImpl::getUserData(const DOMString &key)
-{
- UserDataEntry *entry = userDataEntries;
- while (entry)
- {
- if (entry->key == key)
- return entry->data;
- entry = entry->next;
- }
- return NULL;
-}
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-/**
- *
- */
-void NodeImpl::setNodeName(const DOMString &qualifiedName)
-{
- nodeName = qualifiedName;
- prefix = "";
- localName = "";
- for (unsigned int i=0 ; i<qualifiedName.size() ; i++)
- {
- int ch = qualifiedName[i];
- if (ch == ':')
- {
- prefix = localName;
- localName = "";
- }
- else
- {
- localName.push_back((XMLCh)ch);
- }
- }
-}
-
-/**
- *
- */
-void NodeImpl::setNamespaceURI(const DOMString &theNamespaceURI)
-{
- namespaceURI = theNamespaceURI;
-}
-
-
-/**
- * From DOM3 Namespace algorithms
- */
-DOMString NodeImpl::lookupNamespacePrefix(const DOMString &theNamespaceURI,
- NodePtr originalElement)
-{
- if (!originalElement)
- return DOMString("");
-
- if ( namespaceURI.size()>0 && namespaceURI==theNamespaceURI &&
- prefix.size()>0 &&
- originalElement->lookupNamespaceURI(prefix) == theNamespaceURI)
- {
- return (prefix);
- }
-
- if ( hasAttributes() )
- {
- NamedNodeMap attributes = getAttributes();
- int nrAttrs = attributes.getLength();
- for (int i=0 ; i<nrAttrs ; i++)
- {
- NodePtr attr = attributes.item(i);
- DOMString attrLocalName = attr->getLocalName();
- if (attr->getPrefix() == "xmlns" &&
- attr->getNodeValue() == theNamespaceURI &&
- originalElement->lookupNamespaceURI(attrLocalName)
- == theNamespaceURI)
- {
- return (attrLocalName);
- }
- }
- }
-
- //Get ancestor element, if any
- NodeImplPtr ancestor = parent;
- while (ancestor.get() && ancestor->getNodeType()!= Node::ELEMENT_NODE)
- ancestor = ancestor->parent;
-
- if ( ancestor.get() )
- {
- return ancestor->lookupNamespacePrefix(theNamespaceURI, originalElement);
- }
-
- return DOMString("");
-}
-
-
-/**
- *
- */
-NodeImpl::NodeImpl() : Node()
-{
- init();
-}
-
-
-/**
- *
- */
-NodeImpl::NodeImpl(const NodeImpl &other) : Node()
-{
- init();
- assign(other);
-}
-
-/**
- *
- */
-NodeImpl &NodeImpl::operator=(const NodeImpl &other)
-{
- init();
- assign(other);
- return *this;
-}
-
-
-/**
- *
- */
-NodeImpl::NodeImpl(DocumentImplPtr owner) : Node()
-{
- init();
- ownerDocument = owner;
-}
-
-/**
- *
- */
-NodeImpl::NodeImpl(DocumentImplPtr owner, const DOMString &nodeName)
- : Node()
-{
- init();
- ownerDocument = owner;
- setNodeName(nodeName);
-}
-
-/**
- *
- */
-NodeImpl::NodeImpl(DocumentImplPtr owner, const DOMString &/*theNamespaceURI*/,
- const DOMString &qualifiedName) : Node()
-{
- init();
- ownerDocument = owner;
- //if (owner)
- // namespaceURI = owner->stringCache(theNamespaceURI);
- setNodeName(qualifiedName);
-}
-
-
-
-/**
- *
- */
-void NodeImpl::init()
-{
- nodeType = 0; //none yet
- nodeValue = "";
- setNodeName("");
- namespaceURI = "";
- parent = NULL;
- prev = NULL;
- next = NULL;
- userData = NULL;
- firstChild = NULL;
- lastChild = NULL;
- ownerDocument = NULL;
- userDataEntries = NULL;
-}
-
-/**
- *
- */
-void NodeImpl::assign(const NodeImpl &other)
-{
- ownerDocument = other.ownerDocument;
- prefix = other.prefix;
- localName = other.localName;
- nodeName = other.nodeName;
- nodeValue = other.nodeValue;
- namespaceURI = other.namespaceURI;
- attributes = other.attributes;
-}
-
-
-/**
- *
- */
-NodeImpl::~NodeImpl()
-{
- if (userDataEntries)
- delete userDataEntries;
- //Delete children
- /** Use smart pointers. do not delete explicitly
- for (NodePtr n = getFirstChild() ; n.get() ;
- n=n->getNextSibling() )
- delete n;
- */
- firstChild = lastChild = (NodeImpl *)0;
-}
-
-
-
-/*#########################################################################
-## CharacterDataImpl
-#########################################################################*/
-
-
-/**
- *
- */
-CharacterDataImpl::CharacterDataImpl() : NodeImpl()
-{
-}
-
-/**
- *
- */
-CharacterDataImpl::CharacterDataImpl(DocumentImplPtr owner,
- const DOMString &theValue) : NodeImpl()
-{
- ownerDocument = owner;
- nodeValue = theValue;
-}
-
-/**
- *
- */
-CharacterDataImpl::~CharacterDataImpl()
-{
-}
-
-/**
- *
- */
-DOMString CharacterDataImpl::getData() throw(DOMException)
-{
- return nodeValue;
-}
-
-/**
- *
- */
-void CharacterDataImpl::setData(const DOMString& val) throw(DOMException)
-{
- nodeValue = val;
-}
-
-/**
- *
- */
-unsigned long CharacterDataImpl::getLength()
-{
- return nodeValue.size();
-}
-
-/**
- *
- */
-DOMString CharacterDataImpl::substringData(unsigned long offset,
- unsigned long count)
- throw(DOMException)
-{
- return nodeValue.substr(offset, count);
-}
-
-/**
- *
- */
-void CharacterDataImpl::appendData(const DOMString& arg) throw(DOMException)
-{
- nodeValue += arg;
-}
-
-/**
- *
- */
-void CharacterDataImpl::insertData(unsigned long offset,
- const DOMString& arg)
- throw(DOMException)
-{
- nodeValue.insert(offset, arg);
-}
-
-/**
- *
- */
-void CharacterDataImpl::deleteData(unsigned long offset,
- unsigned long count)
- throw(DOMException)
-{
- nodeValue.erase(offset, count);
-}
-
-/**
- *
- */
-void CharacterDataImpl::replaceData(unsigned long offset,
- unsigned long count,
- const DOMString& arg)
- throw(DOMException)
-{
- nodeValue.replace(offset, count, arg);
-}
-
-
-
-
-
-
-/*#########################################################################
-## AttrImpl
-#########################################################################*/
-
-/**
- *
- */
-DOMString AttrImpl::getName()
-{
- return nodeName;
-}
-
-/**
- *
- */
-bool AttrImpl::getSpecified()
-{
- return (nodeValue.size() > 0);
-}
-
-/**
- *
- */
-DOMString AttrImpl::getValue()
-{
- return nodeValue;
-}
-
-/**
- *
- */
-void AttrImpl::setValue(const DOMString& val) throw(DOMException)
-{
- nodeValue = val;
-}
-
-/**
- *
- */
-ElementPtr AttrImpl::getOwnerElement()
-{
- return ownerElement;
-}
-
-
-/**
- *
- */
-TypeInfo &AttrImpl::getSchemaTypeInfo()
-{
- return typeInfo;
-}
-
-
-/**
- *
- */
-bool AttrImpl::getIsId()
-{
- return (nodeName == "id");
-}
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-void AttrImpl::setOwnerElement(const ElementPtr elem)
-{
- ownerElement = elem;
-}
-
-/**
- *
- */
-AttrImpl::AttrImpl(DocumentImplPtr owner, const DOMString &theName)
- : NodeImpl()
-{
- nodeType = ATTRIBUTE_NODE;
- ownerDocument = owner;
- setNodeName(theName);
-}
-
-/**
- *
- */
-AttrImpl::AttrImpl(DocumentImplPtr owner,
- const DOMString &/*theNamespaceURI*/,
- const DOMString &theQualifiedName)
- : NodeImpl()
-{
- nodeType = ATTRIBUTE_NODE;
- ownerDocument = owner;
- //if (owner)
- // namespaceURI = owner->stringCache(theNamespaceURI);
- setNodeName(theQualifiedName);
-}
-
-/**
- *
- */
-AttrImpl::~AttrImpl()
-{
-}
-
-
-
-
-
-/*#########################################################################
-## ElementImpl
-#########################################################################*/
-
-
-/**
- *
- */
-DOMString ElementImpl::getTagName()
-{
- if (prefix.size() > 0)
- return prefix + ":" + nodeName;
- else
- return nodeName;
-}
-
-/**
- *
- */
-DOMString ElementImpl::getAttribute(const DOMString& name)
-{
- NodePtr node = attributes.getNamedItem(name);
- if (!node || node->getNodeType() != ATTRIBUTE_NODE)
- return DOMString("");
- AttrPtr attr = reinterpret_cast<Attr *>(node.get());
- return attr->getValue();
-}
-
-/**
- *
- */
-void ElementImpl::setAttribute(const DOMString& name,
- const DOMString& value)
- throw(DOMException)
-{
- AttrImplPtr attr = new AttrImpl(ownerDocument, name);
- attr->setValue(value);
- attr->setOwnerElement(this);
- attributes.setNamedItem(attr);
-}
-
-/**
- *
- */
-void ElementImpl::removeAttribute(const DOMString& name)
- throw(DOMException)
-{
- attributes.removeNamedItem(name);
-}
-
-/**
- *
- */
-AttrPtr ElementImpl::getAttributeNode(const DOMString& name)
-{
- NodePtr node = attributes.getNamedItem(name);
- if (!node || node->getNodeType() != ATTRIBUTE_NODE)
- return NULL;
- AttrPtr attr = reinterpret_cast<Attr *>(node.get());
- return attr;
-}
-
-/**
- *
- */
-AttrPtr ElementImpl::setAttributeNode(AttrPtr attr)
- throw(DOMException)
-{
- attributes.setNamedItem(attr);
- return attr;
-}
-
-/**
- *
- */
-AttrPtr ElementImpl::removeAttributeNode(AttrPtr attr)
- throw(DOMException)
-{
- attributes.removeNamedItem(attr->getName());
- return attr;
-}
-
-
-/**
- *
- */
-void ElementImpl::getElementsByTagNameRecursive(NodeList &list,
- const DOMString& name, ElementPtr elem)
-{
- if (!elem)
- return;
-
- if (name == elem->getTagName())
- list.add(elem);
- for (NodePtr node = elem->getFirstChild() ; node.get() ;
- node=node->getNextSibling())
- {
- if (node->getNodeType() != Node::ELEMENT_NODE)
- continue;
- ElementPtr childElem = reinterpret_cast<Element *>(node.get());
- getElementsByTagNameRecursive(list, name, childElem);
- }
-}
-
-
-/**
- *
- */
-NodeList ElementImpl::getElementsByTagName(const DOMString& tagName)
-{
- NodeList list;
- getElementsByTagNameRecursive(list, tagName, this);
- return list;
-}
-
-/**
- *
- */
-DOMString ElementImpl::getAttributeNS(const DOMString& namespaceURI,
- const DOMString& localName)
-{
- NodePtr node = attributes.getNamedItemNS(namespaceURI, localName);
- if (!node || node->getNodeType()!=ATTRIBUTE_NODE)
- return DOMString("");
- AttrPtr attr = reinterpret_cast<Attr *>(node.get());
- return attr->getValue();
-}
-
-/**
- *
- */
-void ElementImpl::setAttributeNS(const DOMString& namespaceURI,
- const DOMString& qualifiedName,
- const DOMString& value)
- throw(DOMException)
-{
- AttrImplPtr attr = new AttrImpl(ownerDocument, namespaceURI, qualifiedName);
- attr->setValue(value);
- attr->setOwnerElement(this);
- attributes.setNamedItemNS(attr);
-}
-
-/**
- *
- */
-void ElementImpl::removeAttributeNS(const DOMString& namespaceURI,
- const DOMString& localName)
- throw(DOMException)
-{
- attributes.removeNamedItemNS(namespaceURI, localName);
-}
-
-/**
- *
- */
- AttrPtr ElementImpl::getAttributeNodeNS(const DOMString& namespaceURI,
- const DOMString& localName)
-{
- NodePtr node = attributes.getNamedItemNS(namespaceURI, localName);
- if (!node || node->getNodeType() != ATTRIBUTE_NODE)
- return (Attr *)0;
- AttrPtr attr = reinterpret_cast<Attr *>(node.get());
- return attr;
-}
-
-/**
- *
- */
-AttrPtr ElementImpl::setAttributeNodeNS(AttrPtr attr)
- throw(DOMException)
-{
- attributes.setNamedItemNS(attr);
- return attr;
-}
-
-
-/**
- *
- */
-void ElementImpl::getElementsByTagNameNSRecursive(NodeList &list,
- const DOMString& namespaceURI,
- const DOMString& tagName, ElementPtr elem)
-{
- if (!elem)
- return;
-
- if (namespaceURI == elem->getNamespaceURI() && tagName == elem->getTagName())
- list.add(elem);
- for (NodePtr node = elem->getFirstChild() ; node.get() ; node=node->getNextSibling())
- {
- if (node->getNodeType() != Node::ELEMENT_NODE)
- continue;
- ElementPtr childElem = reinterpret_cast<Element *>(node.get());
- getElementsByTagNameNSRecursive(list, namespaceURI, tagName, childElem);
- }
-}
-
-/**
- *
- */
-NodeList ElementImpl::getElementsByTagNameNS(const DOMString& namespaceURI,
- const DOMString& localName)
-{
- NodeList list;
- getElementsByTagNameNSRecursive(list, namespaceURI, localName, this);
- return list;
-}
-
-/**
- *
- */
-bool ElementImpl::hasAttribute(const DOMString& attrName)
-{
- NodePtr node = attributes.getNamedItem(attrName);
- if (!node || node->getNodeType() != ATTRIBUTE_NODE)
- return false;
- return true;
-}
-
-/**
- *
- */
-bool ElementImpl::hasAttributeNS(const DOMString& namespaceURI,
- const DOMString& localName)
-{
- NodePtr node = attributes.getNamedItemNS(namespaceURI, localName);
- if (!node || node->getNodeType() != ATTRIBUTE_NODE)
- return false;
- return true;
-}
-
-/**
- *
- */
-TypeInfo &ElementImpl::getSchemaTypeInfo()
-{
- return typeInfo;
-}
-
-
-/**
- *
- */
-void ElementImpl::setIdAttribute(const DOMString &/*name*/,
- bool /*isId*/) throw (DOMException)
-{
- //fixme
-}
-
-/**
- *
- */
-void ElementImpl::setIdAttributeNS(const DOMString &/*namespaceURI*/,
- const DOMString &/*localName*/,
- bool /*isId*/) throw (DOMException)
-{
- //fixme
-}
-
-/**
- *
- */
-void ElementImpl::setIdAttributeNode(const AttrPtr /*idAttr*/,
- bool /*isId*/) throw (DOMException)
-{
- //fixme
-}
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-/**
- *
- */
-ElementImpl::ElementImpl() : NodeImpl()
-{
- nodeType = ELEMENT_NODE;
-}
-
-/**
- *
- */
-ElementImpl::ElementImpl(DocumentImplPtr owner, const DOMString &tagName)
- : NodeImpl()
-{
- nodeType = ELEMENT_NODE;
- ownerDocument = owner;
- setNodeName(tagName);
-}
-
-/**
- *
- */
-ElementImpl::ElementImpl(DocumentImplPtr owner,
- const DOMString &/*theNamespaceURI*/,
- const DOMString &qualifiedName) :
- NodeImpl()
-{
- nodeType = ELEMENT_NODE;
- ownerDocument = owner;
- setNodeName(qualifiedName);
-}
-
-/**
- *
- */
-ElementImpl::~ElementImpl()
-{
-}
-
-
-/**
- *
- */
-void ElementImpl::normalizeNamespaces()
-{
- //printf("### NORMALIZE\n");
-
- NamedNodeMap attrs = getAttributes();
-
- //#######################################
- //# Pick up local namespace declarations
- //#######################################
- bindingsClear(); //Reset bindings on this node
-
- int nrAttrs = attrs.getLength();
- for (int i=0; i<nrAttrs ; i++)
- {
- NodePtr attrNode = attrs.item(i);
- if (attrNode->getNodeType() != Node::ATTRIBUTE_NODE)
- continue;
- AttrImplPtr attr = reinterpret_cast<AttrImpl *>(attrNode.get());
- DOMString attrName = attr->getLocalName();
- DOMString attrPrefix = attr->getPrefix();
- DOMString attrValue = attr->getNodeValue();
- if (attrName != "xmlns" && attrPrefix != "xmlns")
- continue;
-
- //is the namespace declaration is invalid?
- if (attrValue == XMLNSNAME || attrName == attrPrefix)
- {
- // Note: The prefix xmlns is used only to declare namespace bindings and
- // is by definition bound to the namespace name http://www.w3.org/2000/xmlns/.
- // It must not be declared. No other prefix may be bound to this namespace name.
-
- //==> Report an error.
- printf("normalizeNamespaces() error: Namespace %s cannot be reassigned\n",
- XMLNSNAME);
-
- }
- else
- {
- //==> Record the namespace declaration
- attr->setNamespaceURI(XMLNSNAME);
- if (attrPrefix.size() > 0)
- bindingsAdd(attrPrefix, attrValue);
- else
- bindingsAdd("*", attrValue);//default
-
- }
- }
-
-
- //#######################################
- //# Fixup element's namespace
- //#######################################
- if ( namespaceURI.size() > 0 )
- {
- DOMString key = prefix;
- if (key.size() == 0)
- key = "*";
- DOMString binding = bindingsFind(key);
- //Element's prefix/namespace pair (or default namespace, if no prefix)
- // are within the scope of a binding
- if ( binding == namespaceURI )
- {
- //==> do nothing, declaration in scope is inherited
-
- // See section "B.1.1: Scope of a binding" for an example
-
- }
- else
- {
-
- /*
- ==> Create a local namespace declaration attr for this namespace,
- with Element's current prefix (or a default namespace, if
- no prefix). If there's a conflicting local declaration
- already present, change its value to use this namespace.
-
- See section "B.1.2: Conflicting namespace declaration" for an example
- */
- DOMString attrName = "xmlns";
- if (prefix.size() > 0)
- {
- attrName.append(":");
- attrName.append(prefix);
- }
- setAttribute(attrName, namespaceURI);
- // NOTE that this may break other nodes within this Element's
- // subtree, if they're already using this prefix.
- // They will be repaired when we reach them.
- }
- }
- else // Element has no namespace URI:
- {
- //###############################################
- //# Bob -- alter this from the specs a bit.
- //# Since the XmlReader does not set namespaces,
- //# do it here
- //###############################################
- DOMString localName = getLocalName();
- if ( localName.size()==0 )
- {
- // DOM Level 1 node
- /*
- ==> if in process of validation against a namespace aware schema
- (i.e XML Schema) report a fatal error: the processor can not recover
- in this situation.
- Otherwise, report an error: no namespace fixup will be performed on this node.
- */
- printf("normalizeNamespaces() error: no localName\n");
- }
- else
- {
- // Element has no pseudo-prefix
- //there's a conflicting local default namespace declaration already present
- if ( prefix.size()==0 )
- {
- //==> change its value to use this empty namespace.
- namespaceURI = bindingsFind("*");
- //setAttribute("xmlns", "");
- }
- else //#BOB . I added this.
- {
- namespaceURI = bindingsFind(prefix);
- }
- // NOTE that this may break other nodes within this Element's
- // subtree, if they're already using the default namespaces.
- // They will be repaired when we reach them.
- }
- }
-
-
- //#######################################
- //# Examine and polish the attributes
- //#######################################
- nrAttrs = attrs.getLength();
- for (int i=0; i<nrAttrs ; i++)// all non-namespace Attrs of Element
- {
- NodePtr attrNode = attrs.item(i);
- if (attrNode->getNodeType() != Node::ATTRIBUTE_NODE)
- continue;
- AttrPtr attr = reinterpret_cast<Attr *>(attrNode.get());
- DOMString attrNS = attr->getNamespaceURI();
- DOMString attrPrefix = attr->getPrefix();
- if (attrNS == XMLNSNAME)
- continue;
-
- if ( attrNS.size()>0 ) //Attr[i] has a namespace URI
- {
- DOMString attrBinding = bindingsFind(attrPrefix);
- /*
- if attribute has no prefix (default namespace decl does not apply to attributes)
- OR
- attribute prefix is not declared
- OR
- conflict: attribute has a prefix that conflicts with a binding
- already active in scope
- */
- if ( attrPrefix.size() == 0 || attrBinding.size() == 0)
- {
- //namespaceURI matches an in scope declaration of one or more prefixes)
- DOMString prefixForNS = lookupNamespacePrefix(attrNS, this);
- if ( prefixForNS.size() > 0 )
- {
- // pick the most local binding available;
- // if there is more than one pick one arbitrarily
-
- //==> change attribute's prefix.
- attr->setPrefix(prefixForNS);
- }
- else
- {
- // the current prefix is not null and it has no in scope declaration)
- if ( attrPrefix.size() > 0 || attrBinding.size() == 0 )
- {
- //==> declare this prefix
- DOMString newAttrName = "xmlns:";
- newAttrName.append(attrPrefix);
- setAttribute(newAttrName, attrNS);
- bindingsAdd(attrPrefix, attrNS);
- }
- else
- {
- // find a prefix following the pattern "NS" +index (starting at 1)
- // make sure this prefix is not declared in the current scope.
- // create a local namespace declaration attribute
-
- //==> declare this prefix
- char buf[16];
- sprintf(buf, "%d" , ownerDocument->namespaceIndex++);
- DOMString newPrefix = "NS";
- newPrefix.append(buf);
- DOMString newAttrName = "xmlns:";
- newAttrName.append(newPrefix);
- setAttribute(newAttrName, attrNS);
- bindingsAdd(newPrefix, attrNS);
- //==> change attribute's prefix.
- }
- }
- }
- }
- else // Attr has no namespace URI
- {
- // Attr has no localName
- if ( attr->getLocalName().size() == 0 )
- {
- // DOM Level 1 node
- /*
- ==> if in process of validation against a namespace aware schema
- (i.e XML Schema) report a fatal error: the processor can not recover
- in this situation.
- Otherwise, report an error: no namespace fixup will be performed on this node.
- */
- printf("normalizeNamespaces: no local name for attribute\n");
- }
- else
- {
- // attr has no namespace URI and no prefix
- // no action is required, since attrs don't use default
- //==> do nothing
- }
- }
- } // end for-all-Attrs
-
-
- //#######################################
- //# Recursively normalize children
- //#######################################
- for (NodePtr child=getFirstChild() ; child.get() ; child=child->getNextSibling())
- {
- if (child->getNodeType() != Node::ELEMENT_NODE)
- continue;
- ElementImplPtr childElement = reinterpret_cast<ElementImpl *>(child.get());
- childElement->normalizeNamespaces();
- }
-
-}
-
-
-/*#########################################################################
-## TextImpl
-#########################################################################*/
-
-
-/**
- *
- */
-TextImpl::TextImpl() : CharacterDataImpl()
-{
- nodeType = TEXT_NODE;
- nodeName = "#text";
-}
-
-
-/**
- *
- */
-TextImpl::TextImpl(DocumentImplPtr owner, const DOMString &value)
- : CharacterDataImpl()
-{
- nodeType = TEXT_NODE;
- nodeName = "#text";
- ownerDocument = owner;
- nodeValue = value;
-}
-
-
-/**
- *
- */
-TextImpl::~TextImpl()
-{
-}
-
-/**
- *
- */
-TextPtr TextImpl::splitText(unsigned long /*offset*/)
- throw(DOMException)
-{
- return NULL;
-}
-
-/**
- *
- */
-bool TextImpl::getIsElementContentWhitespace()
-{
- return false;
-}
-
-/**
- *
- */
-DOMString TextImpl::getWholeText()
-{
- return nodeValue;
-}
-
-
-/**
- *
- */
-TextPtr TextImpl::replaceWholeText(const DOMString &/*content*/)
- throw(DOMException)
-{
- return NULL;
-}
-
-
-/*#########################################################################
-## CommentImpl
-#########################################################################*/
-
-/**
- *
- */
-CommentImpl::CommentImpl() : CharacterDataImpl()
-{
- nodeType = COMMENT_NODE;
- nodeName = "#comment";
-}
-
-
-/**
- *
- */
-CommentImpl::CommentImpl(DocumentImplPtr owner, const DOMString &value)
- : CharacterDataImpl()
-{
- nodeType = COMMENT_NODE;
- nodeName = "#comment";
- ownerDocument = owner;
- nodeValue = value;
-}
-
-
-/**
- *
- */
-CommentImpl::~CommentImpl()
-{
-}
-
-
-
-
-
-
-
-/*#########################################################################
-## UserDataHandlerImpl
-#########################################################################*/
-
-
-
-/**
- *
- */
-UserDataHandlerImpl::UserDataHandlerImpl()
-{
-}
-
-
-/**
- *
- */
-UserDataHandlerImpl::~UserDataHandlerImpl()
-{
-}
-
-/**
- *
- */
-void UserDataHandlerImpl::handle(unsigned short /*operation*/,
- const DOMString &/*key*/,
- const DOMUserData */*data*/,
- const NodePtr /*src*/,
- const NodePtr /*dst*/)
-{
- //do nothing. do we need anything here?
-}
-
-
-
-/*#########################################################################
-## DOMErrorImpl
-#########################################################################*/
-
-
-
-/**
- *
- */
-DOMErrorImpl::DOMErrorImpl() :
- severity(0),
- message(),
- type()
-{
-}
-
-
-/**
- *
- */
-DOMErrorImpl::~DOMErrorImpl()
-{
-}
-
-/**
- *
- */
-unsigned short DOMErrorImpl::getSeverity()
-{
- return severity;
-}
-
-/**
- *
- */
-DOMString DOMErrorImpl::getMessage()
-{
- return message;
-}
-
-/**
- *
- */
-DOMString DOMErrorImpl::getType()
-{
- return type;
-}
-
-/**
- *
- */
-DOMObject *DOMErrorImpl::getRelatedException()
-{
- return NULL;
-}
-
-/**
- *
- */
-DOMObject *DOMErrorImpl::getRelatedData()
-{
- return NULL;
-}
-
-/**
- *
- */
-DOMLocator *DOMErrorImpl::getLocation()
-{
- //really should fill this in
- return NULL;
-}
-
-
-
-
-/*#########################################################################
-## DOMErrorHandlerImpl
-#########################################################################*/
-
-
-
-/**
- *
- */
-DOMErrorHandlerImpl::DOMErrorHandlerImpl()
-{
-}
-
-
-/**
- *
- */
-DOMErrorHandlerImpl::~DOMErrorHandlerImpl()
-{
-}
-
-/**
- *
- */
-bool DOMErrorHandlerImpl::handleError(const DOMError *error)
-{
- if (!error)
- return false;
- return true;
-}
-
-
-
-
-/*#########################################################################
-## DOMLocatorImpl
-#########################################################################*/
-
-
-/**
- *
- */
-DOMLocatorImpl::DOMLocatorImpl() :
- lineNumber(0),
- columnNumber(0),
- byteOffset(0),
- utf16Offset(0),
- relatedNode(0),
- uri()
-{
-}
-
-
-/**
- *
- */
-DOMLocatorImpl::~DOMLocatorImpl()
-{
-}
-
-
-/**
- *
- */
-long DOMLocatorImpl::getLineNumber()
-{
- return lineNumber;
-}
-
-/**
- *
- */
-long DOMLocatorImpl::getColumnNumber()
-{
- return columnNumber;
-}
-
-/**
- *
- */
-long DOMLocatorImpl::getByteOffset()
-{
- return byteOffset;
-}
-
-/**
- *
- */
-long DOMLocatorImpl::getUtf16Offset()
-{
- return utf16Offset;
-}
-
-
-/**
- *
- */
-NodePtr DOMLocatorImpl::getRelatedNode()
-{
- return relatedNode;
-}
-
-
-/**
- *
- */
-DOMString DOMLocatorImpl::getUri()
-{
- return uri;
-}
-
-
-
-/*#########################################################################
-## DOMConfigurationImpl
-#########################################################################*/
-
-
-/**
- *
- */
-DOMConfigurationImpl::DOMConfigurationImpl()
-{
-}
-
-
-/**
- *
- */
-DOMConfigurationImpl::~DOMConfigurationImpl()
-{
-}
-
-/**
- *
- */
-void DOMConfigurationImpl::setParameter(const DOMString &/*name*/,
- const DOMUserData */*value*/) throw (DOMException)
-{
-}
-
-/**
- *
- */
-DOMUserData *DOMConfigurationImpl::getParameter(const DOMString &/*name*/)
- throw (DOMException)
-{
- return NULL;
-}
-
-/**
- *
- */
-bool DOMConfigurationImpl::canSetParameter(const DOMString &/*name*/,
- const DOMUserData */*data*/)
-{
- return false;
-}
-
-/**
- *
- */
-DOMStringList *DOMConfigurationImpl::getParameterNames()
-{
- return NULL;
-}
-
-
-
-/*#########################################################################
-## CDATASectionImpl
-#########################################################################*/
-
-/**
- *
- */
-CDATASectionImpl::CDATASectionImpl() : TextImpl()
-{
- nodeType = CDATA_SECTION_NODE;
- nodeName = "#cdata-section";
-}
-
-/**
- *
- */
-CDATASectionImpl::CDATASectionImpl(DocumentImplPtr owner, const DOMString &theValue)
- : TextImpl()
-{
- nodeType = CDATA_SECTION_NODE;
- nodeName = "#cdata-section";
- ownerDocument = owner;
- nodeValue = theValue;
-}
-
-
-/**
- *
- */
-CDATASectionImpl::~CDATASectionImpl()
-{
-}
-
-
-
-
-
-/*#########################################################################
-## DocumentTypeImpl
-#########################################################################*/
-
-/**
- *
- */
-DocumentTypeImpl::DocumentTypeImpl(const DOMString& theName,
- const DOMString& thePublicId,
- const DOMString& theSystemId)
- : NodeImpl(),
- name(), //what with this variable?
- publicId(thePublicId),
- systemId(theSystemId),
- entities(),
- notations()
-{
- nodeType = DOCUMENT_TYPE_NODE;//of class NodeImpl
- nodeName = theName;//of class NodeImpl
-}
-
-/**
- *
- */
-DocumentTypeImpl::~DocumentTypeImpl()
-{
-}
-
-/**
- *
- */
-DOMString DocumentTypeImpl::getName()
-{
- return nodeName;
-}
-
-/**
- *
- */
-NamedNodeMap DocumentTypeImpl::getEntities()
-{
- return entities;
-}
-
-/**
- *
- */
-NamedNodeMap DocumentTypeImpl::getNotations()
-{
- return notations;
-}
-
-/**
- *
- */
-DOMString DocumentTypeImpl::getPublicId()
-{
- return publicId;
-}
-
-/**
- *
- */
-DOMString DocumentTypeImpl::getSystemId()
-{
- return systemId;
-}
-
-/**
- *
- */
-DOMString DocumentTypeImpl::getInternalSubset()
-{
- return DOMString("");
-}
-
-
-
-
-
-
-/*#########################################################################
-## NotationImpl
-#########################################################################*/
-
-
-
-/**
- *
- */
-NotationImpl::NotationImpl(DocumentImplPtr owner) : NodeImpl()
-{
- nodeType = NOTATION_NODE;
- ownerDocument = owner;
-}
-
-
-/**
- *
- */
-NotationImpl::~NotationImpl()
-{
-}
-
-/**
- *
- */
-DOMString NotationImpl::getPublicId()
-{
- return publicId;
-}
-
-/**
- *
- */
-DOMString NotationImpl::getSystemId()
-{
- return systemId;
-}
-
-
-
-
-
-
-
-
-/*#########################################################################
-## EntityImpl
-#########################################################################*/
-
-
-/**
- *
- */
-EntityImpl::EntityImpl() : NodeImpl()
-{
- nodeType = ENTITY_NODE;
-}
-
-
-/**
- *
- */
-EntityImpl::EntityImpl(DocumentImplPtr owner) : NodeImpl()
-{
- nodeType = ENTITY_NODE;
- ownerDocument = owner;
-}
-
-
-/**
- *
- */
-EntityImpl::~EntityImpl()
-{
-}
-
-/**
- *
- */
-DOMString EntityImpl::getPublicId()
-{
- return publicId;
-}
-
-/**
- *
- */
-DOMString EntityImpl::getSystemId()
-{
- return systemId;
-}
-
-/**
- *
- */
-DOMString EntityImpl::getNotationName()
-{
- return notationName;
-}
-
-/**
- *
- */
-DOMString EntityImpl::getInputEncoding()
-{
- return inputEncoding;
-}
-
-/**
- *
- */
-DOMString EntityImpl::getXmlEncoding()
-{
- return xmlEncoding;
-}
-
-/**
- *
- */
-DOMString EntityImpl::getXmlVersion()
-{
- return xmlVersion;
-}
-
-
-
-
-
-
-/*#########################################################################
-## EntityReferenceImpl
-#########################################################################*/
-
-
-
-/**
- *
- */
-EntityReferenceImpl::EntityReferenceImpl() : NodeImpl()
-{
- nodeType = ENTITY_REFERENCE_NODE;
-}
-
-
-/**
- *
- */
-EntityReferenceImpl::EntityReferenceImpl(DocumentImplPtr owner,
- const DOMString &theName)
- : NodeImpl()
-{
- nodeType = ENTITY_REFERENCE_NODE;
- nodeName = theName;
- ownerDocument = owner;
-}
-
-
-/**
- *
- */
-EntityReferenceImpl::~EntityReferenceImpl()
-{
-}
-
-
-
-/*#########################################################################
-## ProcessingInstructionImpl
-#########################################################################*/
-
-
-
-
-/**
- *
- */
-ProcessingInstructionImpl::ProcessingInstructionImpl(): NodeImpl()
-{
- nodeType = PROCESSING_INSTRUCTION_NODE;
-}
-
-
-
-/**
- *
- */
-ProcessingInstructionImpl::ProcessingInstructionImpl(DocumentImplPtr owner,
- const DOMString &target,
- const DOMString &data)
- : NodeImpl()
-{
- nodeType = PROCESSING_INSTRUCTION_NODE;
- ownerDocument = owner;
- nodeName = target;
- nodeValue = data;
-}
-
-
-/**
- *
- */
-ProcessingInstructionImpl::~ProcessingInstructionImpl()
-{
-}
-
-
-
-
-/**
- *
- */
-DOMString ProcessingInstructionImpl::getTarget()
-{
- return nodeName;
-}
-
-/**
- *
- */
-DOMString ProcessingInstructionImpl::getData()
-{
- return nodeValue;
-}
-
-/**
- *
- */
-void ProcessingInstructionImpl::setData(const DOMString& /*val*/) throw(DOMException)
-{
- //do something here
-}
-
-
-
-
-
-
-
-/*#########################################################################
-## DocumentFragmentImpl
-#########################################################################*/
-
-/**
- *
- */
-DocumentFragmentImpl::DocumentFragmentImpl() : NodeImpl()
-{
- nodeType = DOCUMENT_FRAGMENT_NODE;
- nodeName = "#document-fragment";
-}
-
-
-/**
- *
- */
-DocumentFragmentImpl::DocumentFragmentImpl(DocumentImplPtr owner) : NodeImpl()
-{
- nodeType = DOCUMENT_FRAGMENT_NODE;
- nodeName = "#document-fragment";
- ownerDocument = owner;
-}
-
-
-/**
- *
- */
-DocumentFragmentImpl::~DocumentFragmentImpl()
-{
-}
-
-
-
-
-
-
-/*#########################################################################
-## DocumentImpl
-#########################################################################*/
-
-
-
-/**
- *
- */
-DocumentTypePtr DocumentImpl::getDoctype()
-{
- return doctype;
-}
-
-/**
- *
- */
-DOMImplementation *DocumentImpl::getImplementation()
-{
- return parent;
-}
-
-/**
- *
- */
-ElementPtr DocumentImpl::getDocumentElement()
-{
- return documentElement;
-}
-
-/**
- *
- */
-ElementPtr DocumentImpl::createElement(const DOMString& tagName)
- throw(DOMException)
-{
- ElementPtr elem = new ElementImpl(this, tagName);
- return elem;
-}
-
-/**
- *
- */
-DocumentFragmentPtr DocumentImpl::createDocumentFragment()
-{
- DocumentFragmentPtr frag = new DocumentFragmentImpl(this);
- return frag;
-}
-
-/**
- *
- */
-TextPtr DocumentImpl::createTextNode(const DOMString& data)
-{
- TextPtr text = new TextImpl(this, data);
- return text;
-}
-
-/**
- *
- */
-CommentPtr DocumentImpl::createComment(const DOMString& data)
-{
- CommentPtr comment = new CommentImpl(this, data);
- return comment;
-}
-
-/**
- *
- */
-CDATASectionPtr DocumentImpl::createCDATASection(const DOMString& data)
- throw(DOMException)
-{
- CDATASectionPtr cdata = new CDATASectionImpl(this, data);
- return cdata;
-}
-
-/**
- *
- */
-ProcessingInstructionPtr
-DocumentImpl::createProcessingInstruction(const DOMString& target,
- const DOMString& data)
- throw(DOMException)
-{
- ProcessingInstructionPtr pi =
- new ProcessingInstructionImpl(this, target, data);
- return pi;
-}
-
-/**
- *
- */
-AttrPtr DocumentImpl::createAttribute(const DOMString& attrName)
- throw(DOMException)
-{
- AttrPtr attr = new AttrImpl(this, attrName);
- return attr;
-}
-
-/**
- *
- */
-EntityReferencePtr DocumentImpl::createEntityReference(const DOMString& erName)
- throw(DOMException)
-{
- EntityReferencePtr ref = new EntityReferenceImpl(this, erName);
- return ref;
-}
-
-
-/**
- *
- */
-NodeList DocumentImpl::getElementsByTagName(const DOMString& tagname)
-{
- NodeList list;
- ElementImpl::getElementsByTagNameRecursive(list,
- tagname, documentElement);
- return list;
-}
-
-
-/**
- *
- */
-NodePtr DocumentImpl::importNode(const NodePtr /*importedNode*/,
- bool /*deep*/)
- throw(DOMException)
-{
- return NULL;
-}
-
-/**
- *
- */
-ElementPtr DocumentImpl::createElementNS(const DOMString& namespaceURI,
- const DOMString& qualifiedName)
- throw(DOMException)
-{
- ElementPtr elem = new ElementImpl(this, namespaceURI, qualifiedName);
- return elem;
-}
-
-/**
- *
- */
-AttrPtr DocumentImpl::createAttributeNS(const DOMString& namespaceURI,
- const DOMString& qualifiedName)
- throw(DOMException)
-{
- AttrPtr attr = new AttrImpl(this, namespaceURI, qualifiedName);
- return attr;
-}
-
-
-/**
- *
- */
-NodeList DocumentImpl::getElementsByTagNameNS(const DOMString& namespaceURI,
- const DOMString& localName)
-{
- NodeList list;
- ElementImpl::getElementsByTagNameNSRecursive(list, namespaceURI,
- localName, documentElement);
- return list;
-}
-
-/**
- *
- */
-ElementPtr DocumentImpl::getElementById(const DOMString& elementId)
-{
- for (NamedElementItem *entry = elementsById.next; entry ; entry=entry->next)
- if (entry->name == elementId)
- return entry->elem;
- return NULL;
-}
-
-
-/**
- *
- */
-DOMString DocumentImpl::getInputEncoding()
-{
- return inputEncoding;
-}
-
-
-/**
- *
- */
-DOMString DocumentImpl::getXmlEncoding()
-{
- return xmlEncoding;
-}
-
-/**
- *
- */
-bool DocumentImpl::getXmlStandalone()
-{
- return xmlStandalone;
-}
-
-/**
- *
- */
-void DocumentImpl::setXmlStandalone(bool val) throw (DOMException)
-{
- xmlStandalone = val;
-}
-
-/**
- *
- */
-DOMString DocumentImpl::getXmlVersion()
-{
- return xmlVersion;
-}
-
-/**
- *
- */
-void DocumentImpl::setXmlVersion(const DOMString &version) throw (DOMException)
-{
- xmlVersion = version;
-}
-
-/**
- *
- */
-bool DocumentImpl::getStrictErrorChecking()
-{
- return strictErrorChecking;
-}
-
-/**
- *
- */
-void DocumentImpl::setStrictErrorChecking(bool val)
-{
- strictErrorChecking = val;
-}
-
-
-/**
- *
- */
-DOMString DocumentImpl::getDocumentURI()
-{
- return documentURI;
-}
-
-/**
- *
- */
-void DocumentImpl::setDocumentURI(const DOMString &/*uri*/)
-{
- //documentURI = stringCache(uri);
-}
-
-/**
- *
- */
-NodePtr DocumentImpl::adoptNode(const NodePtr source) throw (DOMException)
-{
- return (NodePtr )source;
-}
-
-/**
- *
- */
-DOMConfiguration *DocumentImpl::getDomConfig()
-{
- return domConfig;
-}
-
-/**
- *
- */
-void DocumentImpl::normalizeDocument()
-{
- //i assume that this means adjusting namespaces & prefixes
- if (documentElement.get())
- documentElement->normalizeNamespaces();
-}
-
-/**
- *
- */
-NodePtr DocumentImpl::renameNode(const NodePtr node,
- const DOMString &/*namespaceURI*/,
- const DOMString &qualifiedName)
- throw (DOMException)
-{
- NodeImplPtr nodeImpl = reinterpret_cast<NodeImpl *> (node.get());
- nodeImpl->setNodeName(qualifiedName);
- return node;
-}
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-/**
- *
- */
-DocumentImpl::DocumentImpl(const DOMImplementation *domImpl,
- const DOMString &/*theNamespaceURI*/,
- const DOMString &theQualifiedName,
- const DocumentTypePtr theDoctype)
- : NodeImpl(),
- namespaceIndex(0),
- parent(const_cast<DOMImplementation *>(domImpl)),
- qualifiedName(theQualifiedName),
- xmlStandalone(false),
- strictErrorChecking(false),
- domConfig(NULL)
-{
- nodeType = DOCUMENT_NODE;//of class NodeImpl
- nodeName = "#document";//of class NodeImpl
- if (theDoctype.get()) //only assign if not null.
- doctype = theDoctype;
- else
- doctype = new DocumentTypeImpl("", "", "");
- documentElement = new ElementImpl(this, "root");
-}
-
-
-/**
- *
- */
-DocumentImpl::~DocumentImpl()
-{
- documentElement = NULL;
-}
-
-
-
-
-
-
-
-
-
-
-
-
-} //namespace dom
-} //namespace w3c
-} //namespace org
-
-
-
-/*#########################################################################
-## E N D O F F I L E
-#########################################################################*/
-
-
-
-
diff --git a/src/dom/domimpl.h b/src/dom/domimpl.h
deleted file mode 100644
index df586f35e..000000000
--- a/src/dom/domimpl.h
+++ /dev/null
@@ -1,2029 +0,0 @@
-#ifndef SEEN_DOMIMPL_H
-#define SEEN_DOMIMPL_H
-/**
- * @file
- * Phoebe DOM Implementation.
- *
- * This is a C++ approximation of the W3C DOM model, which follows
- * fairly closely the specifications in the various .idl files, copies of
- * which are provided for reference. Most important is this one:
- *
- * http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/idl-definitions.html
- */
-/*
- * Authors:
- * Bob Jamison
- *
- * Copyright (C) 2005 Bob Jamison
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-
-#include "dom.h"
-
-#include <map>
-
-namespace org
-{
-namespace w3c
-{
-namespace dom
-{
-
-
-
-class DOMImplementationSourceImpl;
-class DOMImplementationImpl;
-class NodeImpl;
-typedef Ptr<NodeImpl> NodeImplPtr;
-class CharacterDataImpl;
-class AttrImpl;
-typedef Ptr<AttrImpl> AttrImplPtr;
-class ElementImpl;
-typedef Ptr<ElementImpl> ElementImplPtr;
-class TextImpl;
-class CommentImpl;
-class TypeInfoImpl;
-class UserDataHandlerImpl;
-class DOMErrorImpl;
-class DOMErrorHandlerImpl;
-class DOMLocatorImpl;
-class DOMConfigurationImpl;
-class CDATASectionImpl;
-class DocumentTypeImpl;
-typedef Ptr<DocumentTypeImpl> DocumentTypeImplPtr;
-class NotationImpl;
-class EntityImpl;
-class EntityReferenceImpl;
-class ProcessingInstructionImpl;
-class DocumentFragmentImpl;
-class DocumentImpl;
-typedef Ptr<DocumentImpl> DocumentImplPtr;
-
-
-
-/*#########################################################################
-## DOMImplementationSourceImpl
-#########################################################################*/
-
-class DOMImplementationSourceImpl : public DOMImplementationSource
-{
-public:
-
- /**
- *
- */
- virtual DOMImplementation *getDOMImplementation(const DOMString &features);
-
- /**
- *
- */
- virtual DOMImplementationList getDOMImplementationList(const DOMString &features);
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- DOMImplementationSourceImpl();
-
- /**
- *
- */
- virtual ~DOMImplementationSourceImpl();
-
-protected:
-
-
- DOMImplementationImpl *domImpl;
- DOMImplementationList domImplList;
-};
-
-
-
-
-
-/*#########################################################################
-## DOMImplementationImpl
-#########################################################################*/
-/**
- *
- */
-class DOMImplementationImpl : public DOMImplementation
-{
-public:
-
-
- /**
- *
- */
- DOMImplementationImpl();
-
- /**
- *
- */
- virtual ~DOMImplementationImpl();
-
- /**
- *
- */
- virtual bool hasFeature(const DOMString& feature, const DOMString& version);
-
-
- /**
- *
- */
- virtual DocumentTypePtr createDocumentType(const DOMString& qualifiedName,
- const DOMString& publicId,
- const DOMString& systemId)
- throw(DOMException);
-
- /**
- *
- */
- virtual DocumentPtr createDocument(const DOMString& namespaceURI,
- const DOMString& qualifiedName,
- DocumentTypePtr doctype)
- throw(DOMException);
- /**
- *
- */
- virtual DOMObject *getFeature(const DOMString& feature,
- const DOMString& version);
-
-
-protected:
-
-};
-
-
-
-
-/*#########################################################################
-## NodeImpl
-#########################################################################*/
-
-/**
- *
- */
-class NodeImpl : virtual public Node
-{
-
- friend class DocumentImpl;
-
-public:
-
- /**
- *
- */
- virtual DOMString getNodeName();
-
- /**
- *
- */
- virtual DOMString getNodeValue() throw (DOMException);
-
- /**
- *
- */
- virtual void setNodeValue(const DOMString& val) throw (DOMException);
-
- /**
- *
- */
- virtual unsigned short getNodeType();
-
- /**
- *
- */
- virtual NodePtr getParentNode();
-
- /**
- *
- */
- virtual NodeList getChildNodes();
-
- /**
- *
- */
- virtual NodePtr getFirstChild();
-
- /**
- *
- */
- virtual NodePtr getLastChild();
-
- /**
- *
- */
- virtual NodePtr getPreviousSibling();
-
- /**
- *
- */
- virtual NodePtr getNextSibling();
-
- /**
- *
- */
- virtual NamedNodeMap &getAttributes();
-
-
- /**
- *
- */
- virtual DocumentPtr getOwnerDocument();
-
- /**
- *
- */
- virtual NodePtr insertBefore(const NodePtr newChild,
- const NodePtr refChild)
- throw(DOMException);
-
- /**
- *
- */
- virtual NodePtr replaceChild(const NodePtr newChild,
- const NodePtr oldChild)
- throw(DOMException);
-
- /**
- *
- */
- virtual NodePtr removeChild(const NodePtr oldChild)
- throw(DOMException);
-
- /**
- *
- */
- virtual NodePtr appendChild(const NodePtr newChild)
- throw(DOMException);
-
- /**
- *
- */
- virtual bool hasChildNodes();
-
- /**
- *
- */
- virtual NodePtr cloneNode(bool deep);
-
- /**
- *
- */
- virtual void normalize();
-
- /**
- *
- */
- virtual bool isSupported(const DOMString& feature,
- const DOMString& version);
-
- /**
- *
- */
- virtual DOMString getNamespaceURI();
-
- /**
- *
- */
- virtual DOMString getPrefix();
-
- /**
- *
- */
- virtual void setPrefix(const DOMString& val) throw(DOMException);
-
- /**
- *
- */
- virtual DOMString getLocalName();
-
- /**
- *
- */
- virtual bool hasAttributes();
-
- /**
- *
- */
- virtual DOMString getBaseURI();
-
- /**
- *
- */
- virtual unsigned short compareDocumentPosition(const NodePtr other);
-
- /**
- *
- */
- virtual DOMString getTextContent() throw(DOMException);
-
-
- /**
- *
- */
- virtual void setTextContent(const DOMString &val) throw(DOMException);
-
-
- /**
- *
- */
- virtual DOMString lookupPrefix(const DOMString &namespaceURI);
-
-
- /**
- *
- */
- virtual bool isDefaultNamespace(const DOMString &namespaceURI);
-
-
- /**
- *
- */
- virtual DOMString lookupNamespaceURI(const DOMString &prefix);
-
-
- /**
- *
- */
- virtual bool isEqualNode(const NodePtr node);
-
-
-
- /**
- *
- */
- virtual DOMObject *getFeature(const DOMString &feature,
- const DOMString &version);
-
- /**
- *
- */
- virtual DOMUserData *setUserData(const DOMString &key,
- const DOMUserData *data,
- const UserDataHandler *handler);
-
-
- /**
- *
- */
- virtual DOMUserData *getUserData(const DOMString &key);
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual void bindingsAdd(const DOMString &prefix, const DOMString &namespaceURI)
- {
- bindings[prefix] = namespaceURI;
- }
-
- /**
- *
- */
- virtual void bindingsClear()
- {
- bindings.clear();
- }
-
- DOMString bindingsFind(const DOMString &prefix)
- {
- std::map<DOMString, DOMString>::iterator iter =
- bindings.find(prefix);
- if (iter != bindings.end())
- {
- DOMString ret = iter->second;
- return ret;
- }
- if (parent.get())
- {
- DOMString ret = parent->bindingsFind(prefix);
- if (ret.size() > 0)
- return ret;
- }
- return "";
- }
-
- /**
- *
- */
- virtual void setNodeName(const DOMString &qualifiedName);
-
- /**
- *
- */
- virtual void setNamespaceURI(const DOMString &theNamespaceURI);
-
- /**
- *
- */
- DOMString lookupNamespacePrefix(const DOMString &namespaceURI,
- NodePtr originalElement);
- /**
- *
- */
- NodeImpl();
-
- /**
- *
- */
- NodeImpl(const NodeImpl &other);
-
- /**
- *
- */
- NodeImpl &operator=(const NodeImpl &other);
-
- /**
- *
- */
- NodeImpl(DocumentImplPtr owner);
-
- /**
- *
- */
- NodeImpl(DocumentImplPtr owner, const DOMString &nodeName);
-
- /**
- *
- */
- NodeImpl(DocumentImplPtr owner, const DOMString &namespaceURI,
- const DOMString &nodeName);
-
- /**
- *
- */
- virtual ~NodeImpl();
-
-
- /**
- *
- */
- void assign(const NodeImpl &other);
-
-protected:
-
- /**
- * Set up the internal values
- */
- void init();
-
- unsigned short nodeType;
-
- NodeImplPtr parent;
-
- NodeImplPtr prev;
-
- NodeImplPtr next;
-
- DOMUserData *userData;
-
- DOMString prefix;
-
- DOMString localName;
-
- DOMString nodeName;
-
- DOMString namespaceURI;
-
- DOMString baseURI;
-
- DOMString nodeValue;
-
- NodeImplPtr firstChild;
- NodeImplPtr lastChild;
-
- DocumentImplPtr ownerDocument;
-
- NamedNodeMap attributes;
-
- class UserDataEntry
- {
- public:
- UserDataEntry(const DOMString &theKey,
- const DOMUserData *theData,
- const UserDataHandler *theHandler)
- : next(NULL),
- key(theKey),
- data(const_cast<DOMUserData *>(theData)),
- handler(const_cast<UserDataHandler *>(theHandler))
- {
- }
-
- virtual ~UserDataEntry()
- {
- //delete anything after me, too
- if (next)
- delete next;
- }
-
- UserDataEntry *next;
- DOMString key;
- DOMUserData *data;
- UserDataHandler *handler;
- };
-
- UserDataEntry *userDataEntries;
-
- TypeInfo typeInfo;
-
- //### Our prefix->namespaceURI bindings
-
- std::map<DOMString, DOMString> bindings;
-
-
-};
-
-
-
-/*#########################################################################
-## CharacterDataImpl
-#########################################################################*/
-
-/**
- *
- */
-class CharacterDataImpl : virtual public CharacterData, protected NodeImpl
-{
-public:
-
- /**
- *
- */
- virtual DOMString getData() throw(DOMException);
-
- /**
- *
- */
- virtual void setData(const DOMString& val) throw(DOMException);
-
- /**
- *
- */
- virtual unsigned long getLength();
-
- /**
- *
- */
- virtual DOMString substringData(unsigned long offset,
- unsigned long count)
- throw(DOMException);
-
- /**
- *
- */
- virtual void appendData(const DOMString& arg) throw(DOMException);
-
- /**
- *
- */
- virtual void insertData(unsigned long offset,
- const DOMString& arg)
- throw(DOMException);
-
- /**
- *
- */
- virtual void deleteData(unsigned long offset,
- unsigned long count)
- throw(DOMException);
-
- /**
- *
- */
- virtual void replaceData(unsigned long offset,
- unsigned long count,
- const DOMString& arg)
- throw(DOMException);
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- CharacterDataImpl();
-
-
- /**
- *
- */
- CharacterDataImpl(DocumentImplPtr owner, const DOMString &value);
-
- /**
- *
- */
- virtual ~CharacterDataImpl();
-
-protected:
-
- //'data' is the nodeValue
-
-};
-
-
-
-
-
-/*#########################################################################
-## AttrImpl
-#########################################################################*/
-
-/**
- *
- */
-class AttrImpl : virtual public Attr, public NodeImpl
-{
-public:
-
- /**
- *
- */
- virtual DOMString getName();
-
- /**
- *
- */
- virtual bool getSpecified();
-
- /**
- *
- */
- virtual DOMString getValue();
-
- /**
- *
- */
- virtual void setValue(const DOMString& val) throw(DOMException);
-
- /**
- *
- */
- virtual ElementPtr getOwnerElement();
-
-
- /**
- *
- */
- virtual TypeInfo &getSchemaTypeInfo();
-
-
- /**
- *
- */
- virtual bool getIsId();
-
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual void setOwnerElement(const ElementPtr elem);
-
- /**
- *
- */
- AttrImpl(DocumentImplPtr owner, const DOMString &name);
-
- /**
- *
- */
- AttrImpl(DocumentImplPtr owner, const DOMString &namespaceURI,
- const DOMString &name);
-
- /**
- *
- */
- virtual ~AttrImpl();
-
-protected:
-
-
- ElementPtr ownerElement;
-
-
-};
-
-
-
-
-
-/*#########################################################################
-## ElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class ElementImpl : virtual public Element, public NodeImpl
-{
-public:
-
- /**
- *
- */
- virtual DOMString getTagName();
-
- /**
- *
- */
- virtual DOMString getAttribute(const DOMString& name);
-
- /**
- *
- */
- virtual void setAttribute(const DOMString& name,
- const DOMString& value)
- throw(DOMException);
-
- /**
- *
- */
- virtual void removeAttribute(const DOMString& name)
- throw(DOMException);
-
- /**
- *
- */
- virtual AttrPtr getAttributeNode(const DOMString& name);
-
- /**
- *
- */
- virtual AttrPtr setAttributeNode(AttrPtr newAttr)
- throw(DOMException);
-
- /**
- *
- */
- virtual AttrPtr removeAttributeNode(AttrPtr oldAttr)
- throw(DOMException);
-
- /**
- *
- */
- virtual NodeList getElementsByTagName(const DOMString& name);
-
- /**
- *
- */
- virtual DOMString getAttributeNS(const DOMString& namespaceURI,
- const DOMString& localName);
-
- /**
- *
- */
- virtual void setAttributeNS(const DOMString& namespaceURI,
- const DOMString& qualifiedName,
- const DOMString& value)
- throw(DOMException);
-
- /**
- *
- */
- virtual void removeAttributeNS(const DOMString& namespaceURI,
- const DOMString& localName)
- throw(DOMException);
-
- /**
- *
- */
- virtual AttrPtr getAttributeNodeNS(const DOMString& namespaceURI,
- const DOMString& localName);
-
- /**
- *
- */
- virtual AttrPtr setAttributeNodeNS(AttrPtr newAttr)
- throw(DOMException);
-
- /**
- *
- */
- virtual NodeList getElementsByTagNameNS(const DOMString& namespaceURI,
- const DOMString& localName);
-
- /**
- *
- */
- virtual bool hasAttribute(const DOMString& name);
-
- /**
- *
- */
- virtual bool hasAttributeNS(const DOMString& namespaceURI,
- const DOMString& localName);
-
- /**
- *
- */
- virtual TypeInfo &getSchemaTypeInfo();
-
-
- /**
- *
- */
- virtual void setIdAttribute(const DOMString &name,
- bool isId) throw (DOMException);
-
- /**
- *
- */
- virtual void setIdAttributeNS(const DOMString &namespaceURI,
- const DOMString &localName,
- bool isId) throw (DOMException);
-
- /**
- *
- */
- virtual void setIdAttributeNode(const AttrPtr idAttr,
- bool isId) throw (DOMException);
-
-
-
- //##################
- //# Non-API methods
- //##################
-
-
- /**
- *
- */
- ElementImpl();
-
- /**
- *
- */
- ElementImpl(DocumentImplPtr owner, const DOMString &tagName);
-
- /**
- *
- */
- ElementImpl(DocumentImplPtr owner, const DOMString &namespaceURI,
- const DOMString &tagName);
-
- /**
- *
- */
- virtual ~ElementImpl();
-
- /**
- *
- */
- void normalizeNamespaces();
-
-protected:
-
-friend class DocumentImpl;
-
- static void getElementsByTagNameRecursive(NodeList &list,
- const DOMString& name, ElementPtr elem);
- static void getElementsByTagNameNSRecursive(NodeList &list,
- const DOMString& namespaceURI, const DOMString& tagName,
- ElementPtr elem);
-};
-
-
-
-
-
-/*#########################################################################
-## TextImpl
-#########################################################################*/
-
-/**
- *
- */
-class TextImpl : virtual public Text, protected CharacterDataImpl
-{
-public:
-
- /**
- *
- */
- virtual TextPtr splitText(unsigned long offset)
- throw(DOMException);
-
- /**
- *
- */
- virtual bool getIsElementContentWhitespace();
-
- /**
- *
- */
- virtual DOMString getWholeText();
-
-
- /**
- *
- */
- virtual TextPtr replaceWholeText(const DOMString &content)
- throw(DOMException);
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- TextImpl();
-
-
- /**
- *
- */
- TextImpl(DocumentImplPtr owner, const DOMString &val);
-
- /**
- *
- */
- virtual ~TextImpl();
-
-protected:
-
-};
-
-
-
-/*#########################################################################
-## CommentImpl
-#########################################################################*/
-
-/**
- *
- */
-class CommentImpl : virtual public Comment, protected CharacterDataImpl
-{
-public:
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- CommentImpl();
-
- /**
- *
- */
- CommentImpl(DocumentImplPtr owner, const DOMString &theValue);
-
- /**
- *
- */
- virtual ~CommentImpl();
-};
-
-
-
-/*#########################################################################
-## TypeInfoImpl
-#########################################################################*/
-
-/**
- *
- */
-class TypeInfoImpl : public TypeInfo
-{
-public:
-
- /**
- *
- */
- virtual DOMString getTypeName();
-
- /**
- *
- */
- virtual DOMString getTypeNamespace();
-
- /**
- *
- */
- virtual bool isDerivedFrom(const DOMString &typeNamespaceArg,
- const DOMString &typeNameArg,
- const DerivationMethod derivationMethod);
-
-
- //##################
- //# Non-API methods
- //##################
-
-
- /**
- *
- */
- TypeInfoImpl(const DOMString &typeNamespaceArg,
- const DOMString &typeNameArg,
- const DerivationMethod derivationMethod);
-
- /**
- *
- */
- virtual ~TypeInfoImpl();
-
-protected:
-
- DOMString typeName;
-
- DOMString typeNamespace;
-
- unsigned short derivationMethod;
-
-};
-
-
-
-
-/*#########################################################################
-## UserDataHandlerImpl
-#########################################################################*/
-
-/**
- *
- */
-class UserDataHandlerImpl : public UserDataHandler
-{
-public:
-
- /**
- *
- */
- virtual void handle(unsigned short operation,
- const DOMString &key,
- const DOMUserData *data,
- const NodePtr src,
- const NodePtr dst);
-
- //##################
- //# Non-API methods
- //##################
-
-
-protected:
-
- /**
- *
- */
- UserDataHandlerImpl();
-
- /**
- *
- */
- virtual ~UserDataHandlerImpl();
-};
-
-
-/*#########################################################################
-## DOMErrorImpl
-#########################################################################*/
-
-/**
- *
- */
-class DOMErrorImpl : public DOMError
-{
-public:
-
- /**
- *
- */
- virtual unsigned short getSeverity();
-
- /**
- *
- */
- virtual DOMString getMessage();
-
- /**
- *
- */
- virtual DOMString getType();
-
- /**
- *
- */
- virtual DOMObject *getRelatedException();
-
- /**
- *
- */
- virtual DOMObject *getRelatedData();
-
- /**
- *
- */
- virtual DOMLocator *getLocation();
-
-
- //##################
- //# Non-API methods
- //##################
-
-
-protected:
-
- /**
- *
- */
- DOMErrorImpl();
-
- /**
- *
- */
- virtual ~DOMErrorImpl();
-
- unsigned short severity;
-
- DOMString message;
-
- DOMString type;
-
-
-};
-
-
-/*#########################################################################
-## DOMErrorHandlerImpl
-#########################################################################*/
-
-/**
- *
- */
-class DOMErrorHandlerImpl : public DOMErrorHandler
-{
-public:
-
- /**
- *
- */
- virtual bool handleError(const DOMError *error);
-
-
-
- //##################
- //# Non-API methods
- //##################
-
-
-
-protected:
-
- /**
- *
- */
- DOMErrorHandlerImpl();
-
- /**
- *
- */
- virtual ~DOMErrorHandlerImpl();
-
-
-};
-
-
-
-/*#########################################################################
-## DOMLocatorImpl
-#########################################################################*/
-
-/**
- *
- */
-class DOMLocatorImpl : public DOMLocator
-{
-public:
-
- /**
- *
- */
- virtual long getLineNumber();
-
- /**
- *
- */
- virtual long getColumnNumber();
-
- /**
- *
- */
- virtual long getByteOffset();
-
- /**
- *
- */
- virtual long getUtf16Offset();
-
-
- /**
- *
- */
- virtual NodePtr getRelatedNode();
-
-
- /**
- *
- */
- virtual DOMString getUri();
-
-
-
- //##################
- //# Non-API methods
- //##################
-
-
- /**
- *
- */
- DOMLocatorImpl();
-
- /**
- *
- */
- virtual ~DOMLocatorImpl();
-
-protected:
-
-
- long lineNumber;
-
- long columnNumber;
-
- long byteOffset;
-
- long utf16Offset;
-
- NodePtr relatedNode;
-
- DOMString uri;
-};
-
-
-/*#########################################################################
-## DOMConfigurationImpl
-#########################################################################*/
-
-/**
- *
- */
-class DOMConfigurationImpl : public DOMConfiguration
-{
-public:
-
- /**
- *
- */
- virtual void setParameter(const DOMString &name,
- const DOMUserData *value) throw (DOMException);
-
- /**
- *
- */
- virtual DOMUserData *getParameter(const DOMString &name)
- throw (DOMException);
-
- /**
- *
- */
- virtual bool canSetParameter(const DOMString &name,
- const DOMUserData *data);
-
- /**
- *
- */
- virtual DOMStringList *getParameterNames();
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- DOMConfigurationImpl();
-
- /**
- *
- */
- virtual ~DOMConfigurationImpl();
-
-protected:
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## CDATASectionImpl
-#########################################################################*/
-/**
- *
- */
-class CDATASectionImpl : public CDATASection, public TextImpl
-{
-public:
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- CDATASectionImpl();
-
-
- /**
- *
- */
- CDATASectionImpl(DocumentImplPtr owner, const DOMString &value);
-
- /**
- *
- */
- virtual ~CDATASectionImpl();
-
-};
-
-
-
-
-/*#########################################################################
-## DocumentTypeImpl
-#########################################################################*/
-
-/**
- *
- */
-class DocumentTypeImpl : public DocumentType, public NodeImpl
-{
-public:
-
- /**
- *
- */
- virtual DOMString getName();
-
- /**
- *
- */
- virtual NamedNodeMap getEntities();
-
- /**
- *
- */
- virtual NamedNodeMap getNotations();
-
- /**
- *
- */
- virtual DOMString getPublicId();
-
- /**
- *
- */
- virtual DOMString getSystemId();
-
- /**
- *
- */
- virtual DOMString getInternalSubset();
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- DocumentTypeImpl();
-
- /**
- *
- */
- DocumentTypeImpl(const DOMString& name,
- const DOMString& publicId,
- const DOMString& systemId);
- /**
- *
- */
- virtual ~DocumentTypeImpl();
-
-
-protected:
- DOMString name;
- DOMString publicId;
- DOMString systemId;
-
- NamedNodeMap entities;
- NamedNodeMap notations;
-
-};
-
-
-
-
-
-/*#########################################################################
-## NotationImpl
-#########################################################################*/
-
-/**
- *
- */
-class NotationImpl : public Notation, public NodeImpl
-{
-public:
-
- /**
- *
- */
- virtual DOMString getPublicId();
-
- /**
- *
- */
- virtual DOMString getSystemId();
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- NotationImpl();
-
- /**
- *
- */
- NotationImpl(DocumentImplPtr owner);
-
- /**
- *
- */
- virtual ~NotationImpl();
-
-
-protected:
-
-
-
- DOMString publicId;
-
- DOMString systemId;
-};
-
-
-
-
-
-
-/*#########################################################################
-## EntityImpl
-#########################################################################*/
-
-/**
- *
- */
-class EntityImpl : public Entity, public NodeImpl
-{
-public:
-
- /**
- *
- */
- virtual DOMString getPublicId();
-
- /**
- *
- */
- virtual DOMString getSystemId();
-
- /**
- *
- */
- virtual DOMString getNotationName();
-
- /**
- *
- */
- virtual DOMString getInputEncoding();
-
- /**
- *
- */
- virtual DOMString getXmlEncoding();
-
- /**
- *
- */
- virtual DOMString getXmlVersion();
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- EntityImpl();
-
-
- /**
- *
- */
- EntityImpl(DocumentImplPtr owner);
-
- /**
- *
- */
- virtual ~EntityImpl();
-
-protected:
-
-
-
- DOMString publicId;
-
- DOMString systemId;
-
- DOMString notationName;
-
- DOMString inputEncoding;
-
- DOMString xmlEncoding;
-
- DOMString xmlVersion;
-
-};
-
-
-
-
-
-/*#########################################################################
-## EntityReferenceImpl
-#########################################################################*/
-/**
- *
- */
-class EntityReferenceImpl : public EntityReference, public NodeImpl
-{
-public:
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- EntityReferenceImpl();
-
-
- /**
- *
- */
- EntityReferenceImpl(DocumentImplPtr owner, const DOMString &theName);
-
- /**
- *
- */
- virtual ~EntityReferenceImpl();
-
-};
-
-
-
-
-
-/*#########################################################################
-## ProcessingInstructionImpl
-#########################################################################*/
-
-/**
- *
- */
-class ProcessingInstructionImpl :
- public ProcessingInstruction,
- public NodeImpl
-{
-public:
-
- /**
- *
- */
- virtual DOMString getTarget();
-
- /**
- *
- */
- virtual DOMString getData();
-
- /**
- *
- */
- virtual void setData(const DOMString& val) throw(DOMException);
-
-
- //##################
- //# Non-API methods
- //##################
-
-
- /**
- *
- */
- ProcessingInstructionImpl();
-
-
- /**
- *
- */
- ProcessingInstructionImpl(DocumentImplPtr owner,
- const DOMString &target,
- const DOMString &data);
-
- /**
- *
- */
- virtual ~ProcessingInstructionImpl();
-
-
-protected:
-
-
- //'target' is nodeName
-
- //'data' is nodeValue
-
-
-};
-
-
-
-
-
-/*#########################################################################
-## DocumentFragmentImpl
-#########################################################################*/
-/**
- *
- */
-class DocumentFragmentImpl : public DocumentFragment, public NodeImpl
-{
-
-public:
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- DocumentFragmentImpl();
-
- /**
- *
- */
- DocumentFragmentImpl(DocumentImplPtr owner);
-
- /**
- *
- */
- virtual ~DocumentFragmentImpl();
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## DocumentImpl
-#########################################################################*/
-
-/**
- *
- */
-class DocumentImpl : virtual public Document, public NodeImpl
-{
-public:
-
- /**
- *
- */
- virtual DocumentTypePtr getDoctype();
-
- /**
- *
- */
- virtual DOMImplementation *getImplementation();
-
- /**
- *
- */
- virtual ElementPtr getDocumentElement();
-
- /**
- *
- */
- virtual ElementPtr createElement(const DOMString& tagName)
- throw(DOMException);
-
- /**
- *
- */
- virtual DocumentFragmentPtr createDocumentFragment();
-
- /**
- *
- */
- virtual TextPtr createTextNode(const DOMString& data);
-
- /**
- *
- */
- virtual CommentPtr createComment(const DOMString& data);
-
- /**
- *
- */
- virtual CDATASectionPtr createCDATASection(const DOMString& data)
- throw(DOMException);
-
- /**
- *
- */
- virtual ProcessingInstructionPtr createProcessingInstruction(
- const DOMString& target,
- const DOMString& data)
- throw(DOMException);
-
- /**
- *
- */
- virtual AttrPtr createAttribute(const DOMString& name)
- throw(DOMException);
-
- /**
- *
- */
- virtual EntityReferencePtr createEntityReference(const DOMString& name)
- throw(DOMException);
-
- /**
- *
- */
- virtual NodeList getElementsByTagName(const DOMString& tagname);
-
-
- /**
- *
- */
- virtual NodePtr importNode(const NodePtr importedNode,
- bool deep)
- throw(DOMException);
-
- /**
- *
- */
- virtual ElementPtr createElementNS(const DOMString& namespaceURI,
- const DOMString& qualifiedName)
- throw(DOMException);
-
- /**
- *
- */
- virtual AttrPtr createAttributeNS(const DOMString& namespaceURI,
- const DOMString& qualifiedName)
- throw(DOMException);
-
- /**
- *
- */
- virtual NodeList getElementsByTagNameNS(const DOMString& namespaceURI,
- const DOMString& localName);
-
- /**
- *
- */
- virtual ElementPtr getElementById(const DOMString& elementId);
-
-
- /**
- *
- */
- virtual DOMString getInputEncoding();
-
-
- /**
- *
- */
- virtual DOMString getXmlEncoding();
-
- /**
- *
- */
- virtual bool getXmlStandalone();
-
- /**
- *
- */
- virtual void setXmlStandalone(bool val) throw (DOMException);
-
- /**
- *
- */
- virtual DOMString getXmlVersion();
-
- /**
- *
- */
- virtual void setXmlVersion(const DOMString &version) throw (DOMException);
-
- /**
- *
- */
- virtual bool getStrictErrorChecking();
-
- /**
- *
- */
- virtual void setStrictErrorChecking(bool val);
-
-
- /**
- *
- */
- virtual DOMString getDocumentURI();
-
- /**
- *
- */
- virtual void setDocumentURI(const DOMString &uri);
-
- /**
- *
- */
- virtual NodePtr adoptNode(const NodePtr source) throw (DOMException);
-
- /**
- *
- */
- virtual DOMConfiguration *getDomConfig();
-
- /**
- *
- */
- virtual void normalizeDocument();
-
- /**
- *
- */
- virtual NodePtr renameNode(const NodePtr n,
- const DOMString &name,
- const DOMString &qualifiedName)
- throw (DOMException);
-
-
- //##################
- //# Non-API methods
- //##################
-
- DocumentImpl(const DOMImplementation *domImpl,
- const DOMString &namespaceURI,
- const DOMString &qualifiedName,
- const DocumentTypePtr doctype);
-
- virtual ~DocumentImpl();
-
-
- DOMString *stringCache(const DOMString &val);
-
- int namespaceIndex;
-
-protected:
-
- DOMImplementation *parent;
-
- DOMString documentURI;
-
- DOMString qualifiedName;
-
- DocumentTypePtr doctype;
-
- ElementImplPtr documentElement;
-
- class NamedElementItem
- {
- public:
- NamedElementItem()
- {
- next = NULL;
- }
- NamedElementItem(const DOMString &nameArg, ElementPtr elemArg)
- : next (NULL),
- name (nameArg),
- elem (elemArg)
- {
- }
- ~NamedElementItem()
- {
- if (next)
- delete next;
- }
- NamedElementItem *next;
- DOMString name;
- ElementPtr elem;
- };
-
- NamedElementItem elementsById;
-
-
- DOMString xmlEncoding;
-
- DOMString inputEncoding;
-
- DOMString xmlVersion;
-
- bool xmlStandalone;
-
- bool strictErrorChecking;
-
- DOMConfiguration *domConfig;
-
- NamedNodeMap namespaceURIs;
-
-
-};
-
-
-
-
-
-
-
-
-
-
-
-} //namespace dom
-} //namespace w3c
-} //namespace org
-
-
-#endif // SEEN_DOMIMPL_H
-
-
-/*#########################################################################
-## E N D O F F I L E
-#########################################################################*/
-
-
-
-
diff --git a/src/dom/domptr.cpp b/src/dom/domptr.cpp
deleted file mode 100644
index 73999e100..000000000
--- a/src/dom/domptr.cpp
+++ /dev/null
@@ -1,87 +0,0 @@
-/*
- * Phoebe DOM Implementation.
- *
- * This is a C++ approximation of the W3C DOM model, which follows
- * fairly closely the specifications in the various .idl files, copies of
- * which are provided for reference. Most important is this one:
- *
- * http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/idl-definitions.html
- *
- * Authors:
- * Bob Jamison
- *
- * Copyright (C) 2006-2008 Bob Jamison
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#include "dom.h"
-#include "domptr.h"
-
-
-namespace org
-{
-namespace w3c
-{
-namespace dom
-{
-
-
-
-
-/*#########################################################################
-## NodePtr
-#########################################################################*/
-
-
-
-/**
- * Increment the ref counter of the wrapped class instance
- */
-void incrementRefCount(Node *p)
-{
- if (p)
- p->_refCnt++;
-}
-
-/**
- * Decrement the ref counter of the wrapped class instance. Delete
- * the object if the reference count goes to zero
- */
-void decrementRefCount(Node *p)
-{
- if (p)
- {
- if (--(p->_refCnt) < 1)
- delete p;
- }
-}
-
-
-
-
-} //namespace dom
-} //namespace w3c
-} //namespace org
-
-
-
-/*#########################################################################
-## E N D O F F I L E
-#########################################################################*/
-
-
-
-
diff --git a/src/dom/domptr.h b/src/dom/domptr.h
deleted file mode 100644
index aa9d4c208..000000000
--- a/src/dom/domptr.h
+++ /dev/null
@@ -1,339 +0,0 @@
-#ifndef SEEN_DOMPTR_H
-#define SEEN_DOMPTR_H
-/**
- * @file
- * Phoebe DOM Implementation.
- *
- * This is a C++ approximation of the W3C DOM model, which follows
- * fairly closely the specifications in the various .idl files, copies of
- * which are provided for reference. Most important is this one:
- *
- * http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/idl-definitions.html
- *
- * More thorough explanations of the various classes and their algorithms
- * can be found there.
- *
- */
-/*
- * Authors:
- * Bob Jamison
- *
- * Copyright (C) 2006-2008 Bob Jamison
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- *
- * =======================================================================
- * NOTES:
- *
- * Notice that many of the classes defined here are pure virtual. In other
- * words, they are purely unimplemented interfaces. For the implementations
- * of them, look in domimpl.h and domimpl.cpp.
- *
- * Also, note that there is a domptr.cpp file that has a couple of necessary
- * functions which cannot be in a .h file
- *
- */
-
-#include <functional>
-
-namespace org
-{
-namespace w3c
-{
-namespace dom
-{
-
-
-
-/*#########################################################################
-## NodePtr
-#########################################################################*/
-
-/**
- * A simple Smart Pointer class that handles Nodes and all of its
- * descendants. This is very similar to shared_ptr, but it is customized
- * to handle our needs.
- */
-template<class T> class Ptr
-{
-public:
-
- /**
- * Simple constructor
- */
- Ptr()
- { _ref = 0; }
-
- /**
- * Constructor upon a reference
- */
- template<class Y> Ptr(const Ptr<Y> &other)
- {
- _ref = other._ref;
- incrementRefCount(_ref);
- }
-
- /**
- * Constructor upon a reference
- */
- Ptr(T * refArg, bool addRef = true)
- {
- _ref = refArg;
- if(addRef)
- incrementRefCount(_ref);
- }
-
-
- /**
- * Copy constructor
- */
- Ptr(const Ptr &other)
- {
- _ref = other._ref;
- incrementRefCount(_ref);
- }
-
- /**
- * Destructor
- */
- virtual ~Ptr()
- {
- decrementRefCount(_ref);
- }
-
-
- /**
- * Assignment operator
- */
- template<class Y> Ptr &operator=(const Ptr<Y> &other)
- {
- decrementRefCount(_ref);
- _ref = other._ref;
- incrementRefCount(_ref);
- return *this;
- }
-
- /**
- * Assignment operator
- */
- Ptr &operator=(const Ptr &other)
- {
- decrementRefCount(_ref);
- _ref = other._ref;
- incrementRefCount(_ref);
- return *this;
- }
-
- /**
- * Assignment operator
- */
- template<class Y> Ptr &operator=(Y * ref)
- {
- decrementRefCount(_ref);
- _ref = ref;
- incrementRefCount(_ref);
- return *this;
- }
-
- /**
- * Assignment operator
- */
- template<class Y> Ptr &operator=(const Y * ref)
- {
- decrementRefCount(_ref);
- _ref = const_cast<Y *>(ref);
- incrementRefCount(_ref);
- return *this;
- }
-
- /**
- * Return the reference
- */
- T * get() const
- {
- return _ref;
- }
-
- /**
- * Dereference operator
- */
- T &operator*() const
- {
- return *_ref;
- }
-
- /**
- * Point-to operator
- */
- T *operator->() const
- {
- return _ref;
- }
-
- /**
- * NOT bool operator. How to check if we are null without a comparison
- */
- bool operator! () const
- {
- return (_ref == 0);
- }
-
- /**
- * Swap what I reference with the other guy
- */
- void swap(Ptr &other)
- {
- T *tmp = _ref;
- _ref = other._ref;
- other._ref = tmp;
- }
-
- //The referenced item
- T *_ref;
-};
-
-
-/**
- * Global definitions. Many of these are used to mimic behaviour of
- * a real pointer
- */
-
-/**
- * Equality
- */
-template<class T, class U> inline bool
- operator==(const Ptr<T> &a, const Ptr<U> &b)
-{
- return a.get() == b.get();
-}
-
-/**
- * Inequality
- */
-template<class T, class U> inline bool
- operator!=(const Ptr<T> &a, const Ptr<U> &b)
-{
- return a.get() != b.get();
-}
-
-/**
- * Equality
- */
-template<class T> inline bool
- operator==(const Ptr<T> &a, T * b)
-{
- return a.get() == b;
-}
-
-/**
- * Inequality
- */
-template<class T> inline bool
- operator!=(const Ptr<T> &a, T * b)
-{
- return a.get() != b;
-}
-
-/**
- * Equality
- */
-template<class T> inline bool
- operator==(T * a, const Ptr<T> &b)
-{
- return a == b.get();
-}
-
-/**
- * Inequality
- */
-template<class T> inline bool
- operator!=(T * a, const Ptr<T> &b)
-{
- return a != b.get();
-}
-
-
-/**
- * Less than
- */
-template<class T> inline bool
- operator<(const Ptr<T> &a, const Ptr<T> &b)
-{
- return std::less<T *>()(a.get(), b.get());
-}
-
-/**
- * Swap
- */
-template<class T> void
- swap(Ptr<T> &a, Ptr<T> &b)
-{
- a.swap(b);
-}
-
-
-/**
- * Get the pointer globally, for <algo>
- */
-template<class T> T *
- get_pointer(const Ptr<T> &p)
-{
- return p.get();
-}
-
-/**
- * Static cast
- */
-template<class T, class U> Ptr<T>
- static_pointer_cast(const Ptr<U> &p)
-{
- return static_cast<T *>(p.get());
-}
-
-/**
- * Const cast
- */
-template<class T, class U> Ptr<T>
- const_pointer_cast(const Ptr<U> &p)
-{
- return const_cast<T *>(p.get());
-}
-
-/**
- * Dynamic cast
- */
-template<class T, class U> Ptr<T>
- dynamic_pointer_cast(const Ptr<U> &p)
-{
- return dynamic_cast<T *>(p.get());
-}
-
-
-
-} //namespace dom
-} //namespace w3c
-} //namespace org
-
-
-#endif // SEEN_DOMPTR_H
-
-
-/*#########################################################################
-## E N D O F F I L E
-#########################################################################*/
-
-
-
-
diff --git a/src/dom/domstring.cpp b/src/dom/domstring.cpp
deleted file mode 100644
index 32e3c078f..000000000
--- a/src/dom/domstring.cpp
+++ /dev/null
@@ -1,423 +0,0 @@
-/*
- * Phoebe DOM Implementation.
- *
- * This is a C++ approximation of the W3C DOM model, which follows
- * fairly closely the specifications in the various .idl files, copies of
- * which are provided for reference. Most important is this one:
- *
- * http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/idl-definitions.html
- *
- * Authors:
- * Bob Jamison
- *
- * Copyright (C) 2005 Bob Jamison
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-
-#include "domstring.h"
-
-namespace org
-{
-namespace w3c
-{
-namespace dom
-{
-
-
-//#########################################################################
-//# C O N S T R U C T O R S
-//#########################################################################
-
-DOMString::DOMString()
-{
- init();
-}
-
-DOMString::DOMString(const DOMString &other)
-{
- init();
- chars = other.chars;
-}
-
-DOMString::DOMString(const char *str)
-{
- init();
- append(str);
-}
-
-
-DOMString::~DOMString()
-{
- if (cstring)
- delete[] cstring;
-}
-
-
-/**
- * Called only by Constructors
- */
-void DOMString::init()
-{
- cstring = NULL;
- chars.clear();
-}
-
-//#########################################################################
-//# M O D I F Y
-//#########################################################################
-
-DOMString &DOMString::append(const DOMString &str)
-{
- unsigned int len = str.size();
- for (unsigned int i=0 ; i<len ; i++)
- {
- XMLCh ch = str.charAt(i);
- chars.push_back(ch);
- }
- return *this;
-}
-
-DOMString &DOMString::append(const char *str)
-{
- if (!str)
- return *this;
- char *s = (char *)str;
- while (*s)
- {
- XMLCh ch = (XMLCh) *s++;
- chars.push_back(ch);
- }
- return *this;
-}
-
-DOMString &DOMString::append(const std::string &str)
-{
- unsigned int len = str.size();
- for (unsigned int i=0 ; i<len ; i++)
- {
- XMLCh ch = str[i];
- chars.push_back(ch);
- }
- return *this;
-}
-
-DOMString &DOMString::assign(const DOMString &str)
-{
- clear();
- append(str);
- return *this;
-}
-
-DOMString &DOMString::operator=(const DOMString &str)
-{
- clear();
- append(str);
- return *this;
-}
-
-DOMString &DOMString::assign(const char *str)
-{
- clear();
- append(str);
- return *this;
-}
-
-DOMString &DOMString::assign(const std::string &str)
-{
- clear();
- append(str);
- return *this;
-}
-
-
-void DOMString::erase(unsigned long /*pos*/, unsigned long count)
-{
- std::vector<XMLCh>::iterator iter = chars.begin();
- chars.erase(iter, iter + count);
-}
-
-DOMString &DOMString::insert(unsigned long pos, const DOMString &str)
-{
- DOMString a = substr(0, pos);
- DOMString b = substr(pos, size());
- clear();
- append(a);
- append(str);
- append(b);
- return *this;
-}
-
-DOMString &DOMString::insert(unsigned long pos, const char *str)
-{
- DOMString a = substr(0, pos);
- DOMString b = substr(pos, size());
- clear();
- append(a);
- append(str);
- append(b);
- return *this;
-}
-
-DOMString &DOMString::insert(unsigned long pos, const std::string &str)
-{
- DOMString a = substr(0, pos);
- DOMString b = substr(pos, size());
- clear();
- append(a);
- append(str);
- append(b);
- return *this;
-}
-
-
-DOMString &DOMString::prepend(const DOMString &str)
-{
- DOMString tmp = *this;
- clear();
- append(str);
- append(tmp);
- return *this;
-}
-
-DOMString &DOMString::prepend(const char *str)
-{
- DOMString tmp = *this;
- clear();
- append(str);
- append(tmp);
- return *this;
-}
-
-DOMString &DOMString::prepend(const std::string &str)
-{
- DOMString tmp = *this;
- clear();
- append(str);
- append(tmp);
- return *this;
-}
-
-DOMString &DOMString::replace(unsigned long pos, unsigned long count,
- const DOMString &str)
-{
- DOMString a = substr(0, pos);
- DOMString b = substr(pos+count, size());
- clear();
- append(a);
- append(str);
- append(b);
- return *this;
-}
-
-DOMString &DOMString::replace(unsigned long pos, unsigned long count,
- const char *str)
-{
- DOMString a = substr(0, pos);
- DOMString b = substr(pos+count, size());
- clear();
- append(a);
- append(str);
- append(b);
- return *this;
-}
-
-DOMString &DOMString::replace(unsigned long pos, unsigned long count,
- const std::string &str)
-{
- DOMString a = substr(0, pos);
- DOMString b = substr(pos+count, size());
- clear();
- append(a);
- append(str);
- append(b);
- return *this;
-}
-
-
-DOMString &DOMString::push_back(XMLCh ch)
-{
- chars.push_back(ch);
- return *this;
-}
-
-
-
-void DOMString::clear()
-{
- chars.clear();
- if (cstring)
- {
- delete[] cstring;
- cstring = NULL;
- }
-}
-
-//#########################################################################
-//# Q U E R Y
-//#########################################################################
-
-XMLCh DOMString::charAt(unsigned long index) const
-{
- return chars[index];
-}
-
-XMLCh DOMString::operator[](unsigned long index) const
-{
- return chars[index];
-}
-
-DOMString DOMString::substr(unsigned long start, unsigned long end) const
-{
- DOMString ret;
- for (unsigned long i = start; i<end ; i++)
- ret.push_back(chars[i]);
- return ret;
-}
-
-const char *DOMString::c_str()
-{
- if (cstring)
- delete[] cstring;
-
- int length = chars.size();
-
- cstring = new char[length+1];
-
- int i=0;
- for ( ; i<length ; i++ )
- cstring[i] = (char) chars[i];
-
- cstring[i] = '\0';
-
- return cstring;
-}
-
-
-unsigned long DOMString::size() const
-{
- return chars.size();
-}
-
-
-
-//#########################################################################
-//# C O M P A R I S O N
-//#########################################################################
-
-int DOMString::compare(const DOMString &str) const
-{
- int asize = chars.size();
- int bsize = str.size();
-
- int diff = 0;
- int index = 0;
- while (index < asize && index < bsize)
- {
- int a = (int) chars[index];
- int b = (int) str[index];
- diff = a - b;
- if (diff)
- return diff;
- index++;
- }
-
- //equal for their common length. lets see which is longer
- diff = asize - bsize;
-
- return diff;
-}
-
-
-int DOMString::compare(const char *str) const
-{
- if (!str)
- return 1;
-
- int asize = chars.size();
-
- int diff = 0;
- int index = 0;
- while (index < asize)
- {
- int a = (int) chars[index];
- int b = (int) str[index];
- if (!b)
- return a;
-
- diff = a - b;
- if (diff)
- return diff;
- index++;
- }
-
- diff = str[index]; //char or terminating 0
-
- return diff;
-
-}
-
-
-int DOMString::compare(const std::string &str) const
-{
- int asize = chars.size();
- int bsize = str.size();
-
- int diff = 0;
- int index = 0;
- while (index < asize && index < bsize)
- {
- int a = (int) chars[index];
- int b = (int) str[index];
- diff = a - b;
- if (diff)
- return diff;
- index++;
- }
-
- diff = asize - bsize;
-
- return diff;
-
-
-
-}
-
-
-
-//#########################################################################
-//# O P E R A T O R S
-//#########################################################################
-DOMString &operator +(DOMString &a, const char *b)
- { return a.append(b); }
-
-DOMString &operator +(const char *b, DOMString &a)
- { return a.prepend(b); }
-
-
-
-} //namespace dom
-} //namespace w3c
-} //namespace org
-
-/*#########################################################################
-## E N D O F F I L E
-#########################################################################*/
-
-
-
diff --git a/src/dom/domstring.h b/src/dom/domstring.h
deleted file mode 100644
index 0002bd9b5..000000000
--- a/src/dom/domstring.h
+++ /dev/null
@@ -1,316 +0,0 @@
-#ifndef SEEN_DOMSTRING_H
-#define SEEN_DOMSTRING_H
-/**
- * @file
- * Phoebe DOM Implementation.
- *
- * This is a C++ approximation of the W3C DOM model, which follows
- * fairly closely the specifications in the various .idl files, copies of
- * which are provided for reference. Most important is this one:
- *
- * http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/idl-definitions.html
- */
-/*
- * Authors:
- * Bob Jamison
- *
- * Copyright (C) 2005 Bob Jamison
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-
-#include <vector>
-#include <string>
-
-namespace org
-{
-namespace w3c
-{
-namespace dom
-{
-
-/**
- *
- */
-typedef unsigned short XMLCh;
-
-class DOMString
-{
-public:
-
- //###############################
- //# C O N S T R U C T O R S
- //###############################
-
- /**
- *
- */
- DOMString();
-
- /**
- *
- */
- DOMString(const char *str);
-
-
- /**
- *
- */
- DOMString(const DOMString &str);
-
-
- /**
- *
- */
- DOMString(const std::string &str);
-
- /**
- *
- */
- virtual ~DOMString();
-
-
- //###############################
- //# M O D I F Y
- //###############################
-
-
-
- /**
- *
- */
- virtual DOMString &append(const DOMString &str);
- virtual DOMString &operator +(const DOMString &str)
- { return append(str); }
- virtual DOMString &operator +=(const DOMString &str)
- { return append(str); }
-
- /**
- *
- */
- virtual DOMString &append(const char *str);
-
- /**
- *
- */
- virtual DOMString &append(const std::string &str);
-
-
- /**
- *
- */
- virtual DOMString &assign(const DOMString &str);
-
- /**
- *
- */
- DOMString &operator =(const DOMString &a);
-
- /**
- *
- */
- virtual DOMString &assign(const char *str);
-
- /**
- *
- */
- virtual DOMString &assign(const std::string &str);
-
- /**
- *
- */
- virtual void erase(unsigned long pos, unsigned long count);
-
- /**
- *
- */
- virtual DOMString &insert(unsigned long pos, const DOMString &str);
-
- /**
- *
- */
- virtual DOMString &insert(unsigned long pos, const char *str);
-
- /**
- *
- */
- virtual DOMString &insert(unsigned long pos, const std::string &str);
-
-
- /**
- *
- */
- virtual DOMString &prepend(const DOMString &str);
-
- /**
- *
- */
- virtual DOMString &prepend(const char *str);
-
- /**
- *
- */
- virtual DOMString &prepend(const std::string &str);
-
-
- /**
- *
- */
- virtual DOMString &replace(unsigned long pos, unsigned long count,
- const DOMString &str);
-
- /**
- *
- */
- virtual DOMString &replace(unsigned long pos, unsigned long count,
- const char *str);
-
- /**
- *
- */
- virtual DOMString &replace(unsigned long pos, unsigned long count,
- const std::string &str);
-
- /**
- *
- */
- virtual DOMString &push_back(XMLCh ch);
-
- /**
- *
- */
- virtual void clear();
-
- //###############################
- //# Q U E R Y
- //###############################
-
- /**
- *
- */
- virtual DOMString substr(unsigned long start, unsigned long end) const;
-
- /**
- *
- */
- virtual XMLCh charAt(unsigned long index) const;
-
- /**
- *
- */
- virtual XMLCh operator[](unsigned long index) const;
-
- /**
- *
- */
- virtual unsigned long size() const;
-
- /**
- *
- */
- virtual const char *c_str();
-
- //###############################
- //# C O M P A R I S O N
- //###############################
-
- /**
- *
- */
- virtual int compare(const DOMString &str) const;
- virtual bool operator <(const DOMString &str) const
- { return (compare(str)<0) ; }
- virtual bool operator <=(const DOMString &str) const
- { return (compare(str)<=0) ; }
- virtual bool operator >(const DOMString &str) const
- { return (compare(str)>0) ; }
- virtual bool operator >=(const DOMString &str) const
- { return (compare(str)>=0) ; }
- virtual bool operator !=(const DOMString &str) const
- { return (compare(str)!=0) ; }
- virtual bool operator ==(const DOMString &str) const
- { return (compare(str)==0) ; }
-
- /**
- *
- */
- virtual int compare(const char *str) const;
- virtual bool operator <(const char *str) const
- { return (compare(str)<0) ; }
- virtual bool operator <=(const char *str) const
- { return (compare(str)<=0) ; }
- virtual bool operator >(const char *str) const
- { return (compare(str)>0) ; }
- virtual bool operator >=(const char *str) const
- { return (compare(str)>=0) ; }
- virtual bool operator !=(const char *str) const
- { return (compare(str)!=0) ; }
- virtual bool operator ==(const char *str) const
- { return (compare(str)==0) ; }
-
- /**
- *
- */
- virtual int compare(const std::string &str) const;
- virtual bool operator <(const std::string &str) const
- { return (compare(str)<0) ; }
- virtual bool operator <=(const std::string &str) const
- { return (compare(str)<=0) ; }
- virtual bool operator >(const std::string &str) const
- { return (compare(str)>0) ; }
- virtual bool operator >=(const std::string &str) const
- { return (compare(str)>=0) ; }
- virtual bool operator !=(const std::string &str) const
- { return (compare(str)!=0) ; }
- virtual bool operator ==(const std::string &str) const
- { return (compare(str)==0) ; }
-
-
-
-
-protected:
-
- void init();
-
- char *cstring;
-
- std::vector<XMLCh> chars;
-
-}; // class DOMString
-
-
-
-
-//###############################
-//# O P E R A T O R S
-//###############################
-
-DOMString &operator +(DOMString &a, const char *b);
-
-DOMString &operator +(const char *b, DOMString &a);
-
-
-
-} //namespace dom
-} //namespace w3c
-} //namespace org
-
-#endif // SEEN_DOMSTRING_H
-//#########################################################################
-//## E N D O F F I L E
-//#########################################################################
-
-
diff --git a/src/dom/events.h b/src/dom/events.h
deleted file mode 100644
index e62c5d420..000000000
--- a/src/dom/events.h
+++ /dev/null
@@ -1,1644 +0,0 @@
-#ifndef SEEN_EVENTS_H
-#define SEEN_EVENTS_H
-
-/**
- * @file
- * Phoebe DOM Implementation.
- *
- * This is a C++ approximation of the W3C DOM model, which follows
- * fairly closely the specifications in the various .idl files, copies of
- * which are provided for reference. Most important is this one:
- *
- * http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/idl-definitions.html
- */
-/*
- * Authors:
- * Bob Jamison
- *
- * Copyright (C) 2005-2008 Bob Jamison
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- *
- * ========================================================================
- * NOTES
- *
- * This Events API follows somewhat this specification:
- * http://www.w3.org/TR/2003/NOTE-DOM-Level-3-Events-20031107/events.html
- *
- * Some of the comments are excerpted from that document.
- *
- *
- */
-
-
-#include "dom.h"
-#include "views.h"
-
-
-
-
-namespace org {
-namespace w3c {
-namespace dom {
-namespace events {
-
-
-
-
-//Local definitions
-typedef dom::DOMString DOMString;
-typedef dom::DOMTimeStamp DOMTimeStamp;
-typedef dom::NodePtr NodePtr ;
-
-
-
-
-//forward declarations
-class EventTarget;
-class EventListener;
-class DocumentEvent;
-class CustomEvent;
-class UIEvent;
-class TextEvent;
-class MouseEvent;
-class KeyboardEvent;
-class MutationEvent;
-class MutationNameEvent;
-
-
-
-/*#########################################################################
-## EventException
-#########################################################################*/
-
-/**
- * Event operations may throw an EventException as specified in their
- * method descriptions.
- */
-class EventException
-{
-public:
-
- /**
- * An integer indicating the type of error generated.
- */
- typedef enum
- {
- UNSPECIFIED_EVENT_TYPE_ERR = 0,
- DISPATCH_REQUEST_ERR = 1
- } EventExceptionCode;
-
- unsigned short code;
-
-
- //##################
- //# Non-API methods
- //##################
-
- EventException(short theCode)
- {
- code = theCode;
- }
-
- virtual ~EventException() throw()
- {}
-
-};
-
-
-
-
-/*#########################################################################
-## Event
-#########################################################################*/
-
-/**
- * The Event interface is used to provide contextual information about an event
- * to the listener processing the event. An object which implements the Event
- * interface is passed as the parameter to an EventListener. More specific
- * context information is passed to event listeners by deriving additional
- * interfaces from Event which contain information directly relating to the type
- * of event they represent. These derived interfaces are also implemented by the
- * object passed to the event listener.
- *
- * To create an instance of the Event interface, use the
- * DocumentEvent.createEvent("Event") method call.
- */
-class Event
-{
-public:
-
- /**
- * An integer indicating which phase of the event flow is being processed
- * as defined in DOM event flow.
- */
- typedef enum
- {
- CAPTURING_PHASE = 1,
- AT_TARGET = 2,
- BUBBLING_PHASE = 3
- } PhaseType;
-
- /**
- * The name should be an NCName as defined in [XML Namespaces] and is
- * case-sensitive.
- * If the attribute Event.namespaceURI is different from null, this
- * attribute represents a local name.
- */
- virtual DOMString getType() const
- { return eventType; }
-
- /**
- * Used to indicate the event target. This attribute contains the target
- * node when used with the DOM event flow.
- */
- virtual EventTarget *getTarget()
- { return target; }
-
- /**
- * Used to indicate the EventTarget whose EventListeners are currently
- * being processed. This is particularly useful during the capture and
- * bubbling phases. This attribute could contain the target node or a
- * target ancestor when used with the DOM event flow.
- */
- virtual EventTarget *getCurrentTarget()
- { return currentTarget; }
-
- /**
- * Used to indicate which phase of event flow is currently being accomplished.
- */
- virtual unsigned short getEventPhase()
- { return eventPhase; }
-
- /**
- * Used to indicate whether or not an event is a bubbling event. If the
- * event can bubble the value is true, otherwise the value is false.
- */
- virtual bool getBubbles()
- { return canBubble; }
-
- /**
- * Used to indicate whether or not an event can have its default action
- * prevented (see also Default actions and cancelable events). If the
- * default action can be prevented the value is true, otherwise the
- * value is false.
- */
- virtual bool getCancelable()
- { return cancelable; }
-
- /**
- * Used to specify the time (in milliseconds relative to the epoch) at which the
- * event was created. Due to the fact that some systems may not provide this
- * information the value of timeStamp may be not available for all events. When
- * not available, a value of 0 will be returned. Examples of epoch time are the
- * time of the system start or 0:0:0 UTC 1st January 1970.
- */
- virtual DOMTimeStamp getTimeStamp()
- { return timeStamp; }
-
- /**
- * This method is used to prevent event listeners of the same group to be
- * triggered but its effect is deferred until all event listeners attached on the
- * currentTarget have been triggered (see Event propagation and event groups).
- * Once it has been called, further calls to that method have no additional effect.
- */
- virtual void stopPropagation()
- {
- }
-
- /**
- * If an event is cancelable, the preventDefault method is used to signify that
- * the event is to be canceled, meaning any default action normally taken by the
- * implementation as a result of the event will not occur (see also Default
- * actions and cancelable events), and thus independently of event groups.
- * Calling this method for a non-cancelable event has no effect.
- */
- virtual void preventDefault()
- {
- }
-
- /**
- * The initEvent method is used to initialize the value of an Event created
- * through the DocumentEvent.createEvent method. This method may only be called
- * before the Event has been dispatched via the EventTarget.dispatchEvent()
- * method. If the method is called several times before invoking
- * EventTarget.dispatchEvent, only the final invocation takes precedence. This
- * method has no effect if called after the event has been dispatched. If called
- * from a subclass of the Event interface only the values specified in this
- * method are modified, all other attributes are left unchanged.
- *
- * This method sets the Event.type attribute to eventTypeArg, and
- * Event.namespaceURI to null. To initialize an event with a namespace URI, use
- * the Event.initEventNS(namespaceURIArg, eventTypeArg, ...) method.
- */
- virtual void initEvent(const DOMString &eventTypeArg,
- bool canBubbleArg,
- bool cancelableArg)
- {
- namespaceURI = "";
- eventType = eventTypeArg;
- canBubble = canBubbleArg;
- cancelable = cancelableArg;
- }
-
-
- /**
- * The namespace URI associated with this event at creation time, or
- * null if it is unspecified.
- */
- virtual DOMString getNamespaceURI() const
- { return namespaceURI; }
-
- /**
- * This method will always return false, unless the event implements
- * the CustomEvent interface.
- */
- virtual bool isCustom()
- { return custom; }
-
- /**
- * This method is used to prevent event listeners of the same group to be
- * triggered and, unlike stopPropagation its effect is immediate (see Event
- * propagation and event groups). Once it has been called, further calls to that
- * method have no additional effect.
- *
- * Note: This method does not prevent the default action from being invoked; use
- * Event.preventDefault() for that effect.
- */
- virtual void stopImmediatePropagation()
- {
- }
-
- /**
- * This method will return true if the method Event.preventDefault()
- * has been called for this event, false otherwise.
- */
- virtual bool isDefaultPrevented()
- { return defaultPrevented; }
-
- /**
- * The initEventNS method is used to initialize the value of an Event
- * object and has the same behavior as Event.initEvent().
- */
- virtual void initEventNS(const DOMString &namespaceURIArg,
- const DOMString &eventTypeArg,
- bool canBubbleArg,
- bool cancelableArg)
- {
- namespaceURI = namespaceURIArg;
- eventType = eventTypeArg;
- canBubble = canBubbleArg;
- cancelable = cancelableArg;
- }
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- Event()
- {
- init();
- }
-
- /**
- *
- */
- Event(const DOMString &eventTypeArg)
- {
- init();
- eventType = eventTypeArg;
- }
-
-
- /**
- *
- */
- Event(const Event &other)
- {
- eventType = other.eventType;
- target = other.target;
- currentTarget = other.currentTarget;
- eventPhase = other.eventPhase;
- canBubble = other.canBubble;
- cancelable = other.cancelable;
- timeStamp = other.timeStamp;
- namespaceURI = other.namespaceURI;
- custom = other.custom;
- defaultPrevented = other.defaultPrevented;
- }
-
- /**
- *
- */
- virtual ~Event() {}
-
-protected:
-
- /**
- *
- */
- void init()
- {
- eventType = "";
- target = NULL;
- currentTarget = NULL;
- eventPhase = 0;
- canBubble = false;
- cancelable = false;
- //timeStamp = other.timeStamp;
- namespaceURI = "";
- custom = false;
- defaultPrevented = false;
- }
-
- DOMString eventType;
- EventTarget *target;
- EventTarget *currentTarget;
- unsigned short eventPhase;
- bool canBubble;
- bool cancelable;
- DOMTimeStamp timeStamp;
- DOMString namespaceURI;
- bool custom;
- bool defaultPrevented;
-
-};
-
-
-
-
-/*#########################################################################
-## EventListener
-#########################################################################*/
-
-/**
- * The EventListener interface is the primary way for handling events. Users
- * implement the EventListener interface and register their event listener on an
- * EventTarget. The users should also remove their EventListener from its
- * EventTarget after they have completed using the listener.
- *
- * Copying a Node, with methods such as Node.cloneNode or Range.cloneContents,
- * does not copy the event listeners attached to it. Event listeners must be
- * attached to the newly created Node afterwards if so desired.
- *
- * Moving a Node, with methods Document.adoptNode, Node.appendChild, or
- * Range.extractContents, does not affect the event listeners attached to it.
- */
-class EventListener
-{
-public:
-
- /**
- * This method is called whenever an event occurs of the event type
- * for which the EventListener interface was registered.
- */
- virtual void handleEvent(const Event &/*evt*/)
- {}
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~EventListener() {}
-};
-
-
-
-
-
-
-/*#########################################################################
-## EventTarget
-#########################################################################*/
-
-
-/**
- * The EventTarget interface is implemented by all the objects which could be
- * event targets in an implementation which supports the Event flows. The
- * interface allows registration, removal or query of event listeners, and
- * dispatch of events to an event target.
- *
- * When used with DOM event flow, this interface is implemented by all target
- * nodes and target ancestors, i.e. all DOM Nodes of the tree support this
- * interface when the implementation conforms to DOM Level 3 Events and,
- * therefore, this interface can be obtained by using binding-specific casting
- * methods on an instance of the Node interface.
- *
- * Invoking addEventListener or addEventListenerNS multiple times on the same
- * EventTarget with the same parameters (namespaceURI, type, listener, and
- * useCapture) is considered to be a no-op and thus independently of the event
- * group. They do not cause the EventListener to be called more than once and do
- * not cause a change in the triggering order. In order to guarantee that an
- * event listener will be added to the event target for the specified event group,
- * one needs to invoke removeEventListener or removeEventListenerNS first.
- */
-class EventTarget
-{
-private:
-
- class EventListenerEntry
- {
- public:
- EventListenerEntry(const DOMString &namespaceURIArg,
- const DOMString &eventTypeArg,
- const EventListener *listenerArg,
- bool useCaptureArg)
- {
- namespaceURI = namespaceURIArg;
- eventType = eventTypeArg;
- listener = const_cast<EventListener *>(listenerArg);
- useCapture = useCaptureArg;
- }
-
- EventListenerEntry(const EventListenerEntry &other)
- {
- namespaceURI = other.namespaceURI;
- eventType = other.eventType;
- listener = other.listener;
- useCapture = other.useCapture;
- }
-
- virtual ~EventListenerEntry() {}
-
- DOMString namespaceURI;
- DOMString eventType;
- EventListener *listener;
- bool useCapture;
- };
-
-
-
-public:
-
- /**
- * This method allows the registration of an event listener in the default group
- * and, depending on the useCapture parameter, on the capture phase of the DOM
- * event flow or its target and bubbling phases.
- */
- virtual void addEventListener(const DOMString &type,
- const EventListener *listener,
- bool useCapture)
- {
- EventListenerEntry entry("", type, listener, useCapture);
- listeners.push_back(entry);
- }
-
- /**
- * This method allows the removal of event listeners from the default group.
- * Calling removeEventListener with arguments which do not identify any currently
- * registered EventListener on the EventTarget has no effect.
- */
- virtual void removeEventListener(const DOMString &type,
- const EventListener *listener,
- bool useCapture)
- {
- std::vector<EventListenerEntry>::iterator iter;
- for (iter = listeners.begin() ; iter != listeners.end() ; ){
- EventListenerEntry entry = *iter;
- if (entry.eventType == type &&
- entry.listener == listener &&
- useCapture && entry.useCapture){
- iter = listeners.erase(iter);
- }
- else{
- ++iter;
- }
- }
- }
-
- /**
- * This method allows the dispatch of events into the implementation's event
- * model. The event target of the event is the EventTarget object on which
- * dispatchEvent is called.
- */
- virtual bool dispatchEvent(const Event &evt) throw(EventException)
- {
-
- for (unsigned int i=0 ; i<listeners.size() ; i++)
- {
- EventListenerEntry listener = listeners[i];
- if (listener.namespaceURI == evt.getNamespaceURI() &&
- listener.eventType == evt.getType())
- {
- if (listener.listener)
- listener.listener->handleEvent(evt);
- }
- }
- return true;
- }
-
-
- /**
- * This method allows the registration of an event listener in a specified group
- * or the default group and, depending on the useCapture parameter, on the
- * capture phase of the DOM event flow or its target and bubbling phases.
- */
- virtual void addEventListenerNS(const DOMString &namespaceURI,
- const DOMString &type,
- const EventListener *listener,
- bool useCapture)
- {
- EventListenerEntry entry(namespaceURI, type, listener, useCapture);
- listeners.push_back(entry);
- }
-
- /**
- * This method allows the removal of an event listener, independently of the
- * associated event group.
- * Calling removeEventListenerNS with arguments which do not identify any
- * currently registered EventListener on the EventTarget has no effect.
- */
- virtual void removeEventListenerNS(const DOMString &namespaceURI,
- const DOMString &type,
- const EventListener *listener,
- bool useCapture)
- {
- std::vector<EventListenerEntry>::iterator iter;
- for (iter = listeners.begin() ; iter != listeners.end() ; ){
- EventListenerEntry entry = *iter;
- if (entry.namespaceURI == namespaceURI &&
- entry.eventType == type &&
- entry.listener == listener &&
- useCapture && entry.useCapture){
- iter = listeners.erase(iter);
- }
- else {
- ++iter;
- }
- }
- }
-
- /**
- * This method allows the DOM application to know if an event listener, attached
- * to this EventTarget or one of its ancestors, will be triggered by the
- * specified event type during the dispatch of the event to this event target or
- * one of its descendants.
- */
- virtual bool willTriggerNS(const DOMString &namespaceURI,
- const DOMString &type)
- {
- std::vector<EventListenerEntry>::iterator iter;
- for (iter = listeners.begin() ; iter != listeners.end() ; ++iter)
- {
- EventListenerEntry entry = *iter;
- if (entry.namespaceURI == namespaceURI &&
- entry.eventType == type)
- return true;
- }
- return false;
- }
-
- /**
- * This method allows the DOM application to know if this EventTarget contains an
- * event listener registered for the specified event type. This is useful for
- * determining at which nodes within a hierarchy altered handling of specific
- * event types has been introduced, but should not be used to determine whether
- * the specified event type triggers an event listener (see
- * EventTarget.willTriggerNS()).
- */
- virtual bool hasEventListenerNS(const DOMString &namespaceURI,
- const DOMString &type)
- {
- std::vector<EventListenerEntry>::iterator iter;
- for (iter = listeners.begin() ; iter != listeners.end() ; ++iter)
- {
- EventListenerEntry entry = *iter;
- if (entry.namespaceURI == namespaceURI &&
- entry.eventType == type)
- return true;
- }
- return false;
- }
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- EventTarget() {}
-
- /**
- *
- */
- EventTarget(const EventTarget &other)
- : listeners (other.listeners)
- {
- }
-
- /**
- *
- */
- virtual ~EventTarget() {}
-
-protected:
-
- std::vector<EventListenerEntry> listeners;
-
-};
-
-
-
-
-/*#########################################################################
-## DocumentEvent
-#########################################################################*/
-
-/**
- * The DocumentEvent interface provides a mechanism by which the user can create
- * an Event object of a type supported by the implementation. If the feature
- * "Events" is supported by the Document object, the DocumentEvent interface must
- * be implemented on the same object. If the feature "+Events" is supported by
- * the Document object, an object that supports the DocumentEvent interface must
- * be returned by invoking the method Node.getFeature("+Events", "3.0") on the
- * Document object.
- */
-class DocumentEvent : virtual public Event
-{
-public:
-
- /**
- * Create an event with the current document
- */
- virtual Event createEvent(const DOMString &/*eventType*/)
- throw (dom::DOMException)
- {
- Event event;
- return event;
- }
-
- /**
- * Test if the implementation can generate events of a specified type.
- */
- virtual bool canDispatch(const DOMString &/*namespaceURI*/,
- const DOMString &/*type*/)
- {
- return dispatchable;
- }
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- DocumentEvent()
- : dispatchable(false)
- {}
-
- /**
- *
- */
- DocumentEvent(const DocumentEvent &other) : Event(other)
- {
- dispatchable = other.dispatchable;
- }
-
- /**
- *
- */
- virtual ~DocumentEvent() {}
-
-protected:
-
- bool dispatchable;
-
-
-};
-
-
-/*#########################################################################
-## CustomEvent
-#########################################################################*/
-
-/**
- * The CustomEvent interface gives access to the attributes Event.currentTarget
- * and Event.eventPhase. It is intended to be used by the DOM Events
- * implementation to access the underlying current target and event phase while
- * dispatching a custom Event in the tree; it is also intended to be implemented,
- * and not used, by DOM applications.
- *
- * The methods contained in this interface are not intended to be used by a DOM
- * application, especially during the dispatch on the Event object. Changing the
- * current target or the current phase may result in unpredictable results of the
- * event flow. The DOM Events implementation should ensure that both methods
- * return the appropriate current target and phase before invoking each event
- * listener on the current target to protect DOM applications from malicious
- * event listeners.
- *
- * Note: If this interface is supported by the event object, Event.isCustom()
- * must return true.
-*/
-class CustomEvent : virtual public Event
-{
-public:
-
- /**
- * The setDispatchState method is used by the DOM Events implementation to set
- * the values of Event.currentTarget and Event.eventPhase. It also reset the
- * states of isPropagationStopped and isImmediatePropagationStopped.
- */
- virtual void setDispatchState(const EventTarget */*target*/,
- unsigned short /*phase*/)
- {
- }
-
- /**
- * This method will return true if the method stopPropagation() has been
- * called for this event, false in any other cases.
- */
- virtual bool isPropagationStopped()
- {
- return propagationStopped;
- }
-
- /**
- * The isImmediatePropagationStopped method is used by the DOM Events
- * implementation to know if the method stopImmediatePropagation() has been
- * called for this event. It returns true if the method has been called, false
- * otherwise.
- */
- virtual bool isImmediatePropagationStopped()
- {
- return immediatePropagationStopped;
- }
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- CustomEvent()
- : propagationStopped(false),
- immediatePropagationStopped(false)
- {}
-
- /**
- *
- */
- CustomEvent(const CustomEvent &other) : Event(other)
- {
- propagationStopped = other.propagationStopped;
- immediatePropagationStopped = other.immediatePropagationStopped;
- }
-
- /**
- *
- */
- virtual ~CustomEvent() {}
-
-protected:
-
- bool propagationStopped;
- bool immediatePropagationStopped;
-
-
-
-};
-
-
-
-
-/*#########################################################################
-## UIEvent
-#########################################################################*/
-
-/**
- * The UIEvent interface provides specific contextual information associated with
- * User Interface events.
- *
- * To create an instance of the UIEvent interface, use the
- * DocumentEvent.createEvent("UIEvent") method call.
- *
- * NOTE:
- * For dom level 2 and 3, note that views.idl and events.idl disagree on the
- * name of Views. We are using level -2- Views
- */
-class UIEvent : virtual public Event
-{
-public:
-
- /**
- * The view attribute identifies the AbstractView from which the
- * event was generated.
- */
- virtual views::AbstractView getView()
- { return view; }
-
- /**
- * Specifies some detail information about the Event, depending on
- * the type of event.
- */
- virtual long getDetail()
- { return detail; }
-
- /**
- * The initUIEvent method is used to initialize the value of a UIEvent object and
- * has the same behavior as Event.initEvent().
- */
- virtual void initUIEvent(const DOMString &/*typeArg*/,
- bool /*canBubbleArg*/,
- bool /*cancelableArg*/,
- const views::AbstractView */*viewArg*/,
- long /*detailArg*/)
- {
- }
-
- /**
- * The initUIEventNS method is used to initialize the value of a UIEvent object
- * and has the same behavior as Event.initEventNS().
- */
- virtual void initUIEventNS(const DOMString &/*namespaceURI*/,
- const DOMString &/*typeArg*/,
- bool /*canBubbleArg*/,
- bool /*cancelableArg*/,
- const views::AbstractView */*viewArg*/,
- long /*detailArg*/)
- {
- }
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- UIEvent()
- : view(),
- detail(0)
- {}
-
- /**
- *
- */
- UIEvent(const UIEvent &other)
- : Event(other),
- view(other.view),
- detail(other.detail)
- {
- }
-
- /**
- *
- */
- virtual ~UIEvent() {}
-
-protected:
-
- views::AbstractView view;
- long detail;
-};
-
-
-
-
-/*#########################################################################
-## TextEvent
-#########################################################################*/
-
-/**
- * The TextEvent interface provides specific contextual information associated
- * with Text Events.
- *
- * To create an instance of the TextEvent interface, use the
- * DocumentEvent.createEvent("TextEvent") method call.
- */
-class TextEvent : virtual public UIEvent
-{
-public:
-
- /**
- * data holds the value of the characters generated by the character device. This
- * may be a single Unicode character or a non-empty sequence of Unicode
- * characters [Unicode]. Characters should be normalized as defined by the
- * Unicode normalization form NFC, defined in [UTR #15]. This attribute cannot be
- * null or contain the empty string.
- */
- virtual DOMString getData()
- { return data; }
-
- /**
- * The initTextEvent method is used to initialize the value of a TextEvent object
- * and has the same behavior as UIEvent.initUIEvent(). The value of
- * UIEvent.detail remains undefined.
- */
- virtual void initTextEvent(const DOMString &/*typeArg*/,
- bool /*canBubbleArg*/,
- bool /*cancelableArg*/,
- const views::AbstractView */*viewArg*/,
- long /*detailArg*/)
- {
- }
-
- /**
- * The initTextEventNS method is used to initialize the value of a TextEvent
- * object and has the same behavior as UIEvent.initUIEventNS(). The value of
- * UIEvent.detail remains undefined.
- */
- virtual void initTextEventNS(const DOMString &/*namespaceURI*/,
- const DOMString &/*typeArg*/,
- bool /*canBubbleArg*/,
- bool /*cancelableArg*/,
- const views::AbstractView */*viewArg*/,
- long /*detailArg*/)
- {
- }
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- TextEvent() {}
-
- /**
- *
- */
- TextEvent(const TextEvent &other) : Event(other), UIEvent(other)
- {
- data = other.data;
- }
-
- /**
- *
- */
- virtual ~TextEvent() {}
-
-protected:
-
- DOMString data;
-
-};
-
-
-
-
-
-
-
-
-/*#########################################################################
-## MouseEvent
-#########################################################################*/
-
-/**
- * The MouseEvent interface provides specific contextual information associated
- * with Mouse events.
- *
- * In the case of nested elements mouse events are always targeted at the most
- * deeply nested element. Ancestors of the targeted element may use bubbling to
- * obtain notification of mouse events which occur within theirs descendent
- * elements.
- *
- * To create an instance of the MouseEvent interface, use the
- * DocumentEvent.createEvent("MouseEvent") method call.
- */
-class MouseEvent : virtual public UIEvent
-{
-public:
-
- /**
- * The horizontal coordinate at which the event occurred relative to the
- * origin of the screen coordinate system.
- */
- virtual long getScreenX()
- { return screenX; }
-
- /**
- * The vertical coordinate at which the event occurred relative to the
- * origin of the screen coordinate system.
- */
- virtual long getScreenY()
- { return screenY; }
-
- /**
- * The horizontal coordinate at which the event occurred relative to the
- * DOM implementation's client area.
- */
- virtual long getClientX()
- { return clientX; }
-
- /**
- * The vertical coordinate at which the event occurred relative to the
- * DOM implementation's client area.
- */
- virtual long getClientY()
- { return clientY; }
-
- /**
- * true if the control (Ctrl) key modifier is activated.
- */
- virtual bool getCtrlKey()
- { return ctrlKey; }
-
- /**
- * true if the shift (Shift) key modifier is activated.
- */
- virtual bool getShiftKey()
- { return shiftKey; }
-
- /**
- * true if the alt (alternative) key modifier is activated.
- */
- virtual bool getAltKey()
- { return altKey; }
-
- /**
- * true if the meta (Meta) key modifier is activated.
- */
- virtual bool getMetaKey()
- { return metaKey; }
-
- /**
- * During mouse events caused by the depression or release of a mouse button,
- * button is used to indicate which mouse button changed state. 0 indicates the
- * normal button of the mouse (in general on the left or the one button on
- * Macintosh mice, used to activate a button or select text). 2 indicates the
- * contextual property (in general on the right, used to display a context menu)
- * button of the mouse if present. 1 indicates the extra (in general in the
- * middle and often combined with the mouse wheel) button. Some mice may provide
- * or simulate more buttons, and values higher than 2 can be used to represent
- * such buttons.
- */
- virtual unsigned short getButton()
- { return button; }
-
- /**
- * Used to identify a secondary EventTarget related to a UI event. Currently this
- * attribute is used with the mouseover event to indicate the EventTarget which
- * the pointing device exited and with the mouseout event to indicate the
- * EventTarget which the pointing device entered.
- */
- virtual EventTarget *getRelatedTarget()
- { return relatedTarget; }
-
-
- /**
- * This methods queries the state of a modifier using a key identifier.
- * The argument is a modifier key identifier, as defined by the
- * KeyboardEvent.keyIdentifier attribute. Common modifier keys are "Alt",
- * "AltGraph", "CapsLock", "Control", "Meta", "NumLock", "Scroll", or "Shift".
- */
- virtual bool getModifierState(const DOMString &/*id*/)
- { return false; }
-
- /**
- * The initMouseEvent method is used to initialize the value of a MouseEvent
- * object and has the same behavior as UIEvent.initUIEvent().
- */
- virtual void initMouseEvent(const DOMString &/*typeArg*/,
- bool /*canBubbleArg*/,
- bool /*cancelableArg*/,
- const views::AbstractView */*viewArg*/,
- long /*detailArg*/,
- long /*screenXArg*/,
- long /*screenYArg*/,
- long /*clientXArg*/,
- long /*clientYArg*/,
- bool /*ctrlKeyArg*/,
- bool /*altKeyArg*/,
- bool /*shiftKeyArg*/,
- bool /*metaKeyArg*/,
- unsigned short /*buttonArg*/,
- const EventTarget */*relatedTargetArg*/)
- {
- }
-
-
- /**
- * The initMouseEventNS method is used to initialize the value of a
- * MouseEvent object and has the same behavior as UIEvent.initUIEventNS().
- */
- virtual void initMouseEventNS(const DOMString &/*namespaceURI*/,
- const DOMString &/*typeArg*/,
- bool /*canBubbleArg*/,
- bool /*cancelableArg*/,
- const views::AbstractView */*viewArg*/,
- long /*detailArg*/,
- long /*screenXArg*/,
- long /*screenYArg*/,
- long /*clientXArg*/,
- long /*clientYArg*/,
- unsigned short /*buttonArg*/,
- const EventTarget */*relatedTargetArg*/,
- const DOMString &/*modifiersList*/)
- {
- }
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- MouseEvent()
- : screenX(0),
- screenY(0),
- clientX(0),
- clientY(0),
- ctrlKey(false),
- shiftKey(false),
- altKey(false),
- metaKey(false),
- button(0),
- relatedTarget(NULL)
- {}
-
- /**
- *
- */
- MouseEvent(const MouseEvent &other) : Event(other), UIEvent(other)
- {
- screenX = other.screenX;
- screenY = other.screenY;
- clientX = other.clientX;
- clientY = other.clientY;
- ctrlKey = other.ctrlKey;
- shiftKey = other.shiftKey;
- altKey = other.altKey;
- metaKey = other.metaKey;
- button = other.button;
- relatedTarget = other.relatedTarget;
- }
-
- /**
- *
- */
- virtual ~MouseEvent() {}
-
-protected:
-
- long screenX;
- long screenY;
- long clientX;
- long clientY;
- bool ctrlKey;
- bool shiftKey;
- bool altKey;
- bool metaKey;
- unsigned short button;
- EventTarget *relatedTarget;
-};
-
-
-
-
-/*#########################################################################
-## KeyboardEvent
-#########################################################################*/
-
-/**
- * The KeyboardEvent interface provides specific contextual information
- * associated with keyboard devices. Each keyboard event references a key using
- * an identifier. Keyboard events are commonly directed at the element that has
- * the focus.
- *
- * The KeyboardEvent interface provides convenient attributes for some common
- * modifiers keys: KeyboardEvent.ctrlKey, KeyboardEvent.shiftKey,
- * KeyboardEvent.altKey, KeyboardEvent.metaKey. These attributes are equivalent
- * to use the method KeyboardEvent.getModifierState(keyIdentifierArg) with
- * "Control", "Shift", "Alt", or "Meta" respectively.
- *
- * To create an instance of the KeyboardEvent interface, use the
- * DocumentEvent.createEvent("KeyboardEvent") method call.
- */
-class KeyboardEvent : virtual public UIEvent
-{
-public:
-
- /**
- * This set of constants is used to indicate the location of a key on
- * the device. In case a DOM implementation wishes to provide a new
- * location information, a value different from the following constant
- * values must be used.
- */
- typedef enum
- {
- DOM_KEY_LOCATION_STANDARD = 0x00,
- DOM_KEY_LOCATION_LEFT = 0x01,
- DOM_KEY_LOCATION_RIGHT = 0x02,
- DOM_KEY_LOCATION_NUMPAD = 0x03
- } KeyLocationCode;
-
- /**
- * keyIdentifier holds the identifier of the key.
- * Key identifiers can be found here:
- * http://www.w3.org/TR/2003/NOTE-DOM-Level-3-Events-20031107/keyset.html#KeySet-Set
- * Implementations that are unable to identify a key must use the key
- * identifier "Unidentified".
- */
- virtual DOMString getKeyIdentifier()
- { return keyIdentifier; }
-
- /**
- * The keyLocation attribute contains an indication of the location of
- * they key on the device, as described in:
- * http://www.w3.org/TR/2003/NOTE-DOM-Level-3-Events-20031107/events.html#ID-KeyboardEvent-KeyLocationCode
- */
- virtual unsigned long getKeyLocation()
- { return keyLocation; }
-
- /**
- * true if the control (Ctrl) key modifier is activated.
- */
- virtual bool getCtrlKey()
- { return ctrlKey; }
-
- /**
- * true if the shift (Shift) key modifier is activated.
- */
- virtual bool getShiftKey()
- { return shiftKey; }
-
- /**
- * true if the alternative (Alt) key modifier is activated.
- */
- virtual bool getAltKey()
- { return altKey; }
-
- /**
- * true if the meta (Meta) key modifier is activated.
- */
- virtual bool getMetaKey()
- { return metaKey; }
-
- /**
- * This methods queries the state of a modifier using a key identifier.
- * The argument is a modifier key identifier. Common modifier keys are "Alt",
- * "AltGraph", "CapsLock", "Control", "Meta", "NumLock", "Scroll", or "Shift".
- */
- virtual bool getModifierState(const DOMString &/*id*/)
- { return false; }
-
- /**
- * The initKeyboardEvent method is used to initialize the value of a
- * KeyboardEvent object and has the same behavior as UIEvent.initUIEvent(). The
- * value of UIEvent.detail remains undefined.
- */
- virtual void initKeyboardEvent(const DOMString &/*typeArg*/,
- bool /*canBubbleArg*/,
- bool /*cancelableArg*/,
- const views::AbstractView */*viewArg*/,
- const DOMString &/*keyIdentifier*/,
- unsigned long /*keyLocation*/,
- const DOMString /*modifiersList*/)
- {
- }
-
-
-
- /**
- * The initKeyboardEventNS method is used to initialize the value of a
- * KeyboardEvent object and has the same behavior as UIEvent.initUIEventNS(). The
- * value of UIEvent.detail remains undefined.
- */
- virtual void initKeyboardEventNS(const DOMString &/*namespaceURI*/,
- const DOMString &/*typeArg*/,
- bool /*canBubbleArg*/,
- bool /*cancelableArg*/,
- const views::AbstractView */*viewArg*/,
- const DOMString &/*keyIdentifier*/,
- unsigned long /*keyLocation*/,
- const DOMString /*modifiersList*/)
- {
- }
-
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- KeyboardEvent()
- : keyIdentifier(),
- keyLocation(0),
- ctrlKey(false),
- shiftKey(false),
- altKey(false),
- metaKey(false)
- {}
-
- /**
- *
- */
- KeyboardEvent(const KeyboardEvent &other) : Event(other), UIEvent(other)
- {
- keyIdentifier = other.keyIdentifier;
- keyLocation = other.keyLocation;
- ctrlKey = other.ctrlKey;
- shiftKey = other.shiftKey;
- altKey = other.altKey;
- metaKey = other.metaKey;
- }
-
- /**
- *
- */
- virtual ~KeyboardEvent() {}
-
-protected:
-
- DOMString keyIdentifier;
- unsigned long keyLocation;
- bool ctrlKey;
- bool shiftKey;
- bool altKey;
- bool metaKey;
-};
-
-
-
-
-
-
-
-
-
-/*#########################################################################
-## MutationEvent
-#########################################################################*/
-
-/**
- * The MutationEvent interface provides specific contextual information
- * associated with Mutation events.
- *
- * To create an instance of the MutationEvent interface, use the
- * DocumentEvent.createEvent("MutationEvent") method call.
- */
-class MutationEvent : virtual public Event
-{
-public:
-
- /**
- * An integer indicating in which way the Attr was changed.
- */
- typedef enum
- {
- MODIFICATION = 1,
- ADDITION = 2,
- REMOVAL = 3
- } AttrChangeType;
-
- /**
- * relatedNode is used to identify a secondary node related to a mutation event.
- * For example, if a mutation event is dispatched to a node indicating that its
- * parent has changed, the relatedNode is the changed parent. If an event is
- * instead dispatched to a subtree indicating a node was changed within it, the
- * relatedNode is the changed node. In the case of the
- * {"http://www.w3.org/2001/xml-events", "DOMAttrModified"} event it indicates
- * the Attr node which was modified, added, or removed.
- */
- virtual NodePtr getRelatedNode()
- { return relatedNodePtr ; }
-
- /**
- * prevValue indicates the previous value of the Attr node in
- * {"http://www.w3.org/2001/xml-events", "DOMAttrModified"} events, and of the
- * CharacterData node in {"http://www.w3.org/2001/xml-events",
- * "DOMCharacterDataModified"} events.
- */
- virtual DOMString getPrevValue()
- { return prevValue; }
-
- /**
- * newValue indicates the new value of the Attr node in
- * {"http://www.w3.org/2001/xml-events", "DOMAttrModified"} events, and of the
- * CharacterData node in {"http://www.w3.org/2001/xml-events",
- * "DOMCharacterDataModified"} events.
- */
- virtual DOMString getNewValue()
- { return newValue; }
-
- /**
- * attrName indicates the name of the changed Attr node in a
- * {"http://www.w3.org/2001/xml-events", "DOMAttrModified"} event.
- */
- virtual DOMString getAttrName()
- { return attrName; }
-
- /**
- * attrChange indicates the type of change which triggered the
- * {"http://www.w3.org/2001/xml-events", "DOMAttrModified"} event. The values can
- * be MODIFICATION, ADDITION, or REMOVAL.
- */
- virtual unsigned short getAttrChange()
- {
- return attrChange;
- }
-
- /**
- * The initMutationEvent method is used to initialize the value of a
- * MutationEvent object and has the same behavior as Event.initEvent().
- */
- virtual void initMutationEvent(const DOMString &/*typeArg*/,
- bool /*canBubbleArg*/,
- bool /*cancelableArg*/,
- const NodePtr /*relatedNodeArg*/,
- const DOMString &/*prevValueArg*/,
- const DOMString &/*newValueArg*/,
- const DOMString &/*attrNameArg*/,
- unsigned short /*attrChangeArg*/)
- {
- }
-
- /**
- * The initMutationEventNS method is used to initialize the value of a
- * MutationEvent object and has the same behavior as Event.initEventNS().
- */
- virtual void initMutationEventNS(const DOMString &/*namespaceURI*/,
- const DOMString &/*typeArg*/,
- bool /*canBubbleArg*/,
- bool /*cancelableArg*/,
- const NodePtr /*relatedNodeArg*/,
- const DOMString &/*prevValueArg*/,
- const DOMString &/*newValueArg*/,
- const DOMString &/*attrNameArg*/,
- unsigned short /*attrChangeArg*/)
- {
- }
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- MutationEvent()
- : relatedNodePtr (NULL),
- attrChange(0)
- {
- }
-
- /**
- *
- */
- MutationEvent(const MutationEvent &other) : Event(other)
- {
- relatedNodePtr = other.relatedNodePtr ;
- prevValue = other.prevValue;
- newValue = other.newValue;
- attrName = other.attrName;
- attrChange = other.attrChange;
- }
-
- /**
- *
- */
- virtual ~MutationEvent() {}
-
-protected:
-
- NodePtr relatedNodePtr ;
- DOMString prevValue;
- DOMString newValue;
- DOMString attrName;
- unsigned short attrChange;
-
-};
-
-
-
-
-/*#########################################################################
-## MutationNameEvent
-#########################################################################*/
-
-/**
- * The MutationNameEvent interface provides specific contextual information
- * associated with Mutation name event types.
- *
- * To create an instance of the MutationNameEvent interface, use the
- * Document.createEvent("MutationNameEvent") method call.
- */
-class MutationNameEvent : virtual public MutationEvent
-{
-public:
-
- /**
- * The previous value of the relatedNode's namespaceURI.
- */
- virtual DOMString getPrevNamespaceURI()
- { return prevNamespaceURI; }
-
- /**
- * The previous value of the relatedNode's nodeName.
- */
- virtual DOMString getPrevNodeName()
- { return prevNodeName; }
-
- /**
- * The initMutationNameEvent method is used to initialize the value of a
- * MutationNameEvent object and has the same behavior as
- * MutationEvent.initMutationEvent().
- */
- virtual void initMutationNameEvent(const DOMString &/*typeArg*/,
- bool /*canBubbleArg*/,
- bool /*cancelableArg*/,
- const NodePtr /*relatedNodeArg*/,
- const DOMString &/*prevNamespaceURIArg*/,
- const DOMString &/*prevNodeNameArg*/)
- {
- }
-
-
- /**
- * The initMutationNameEventNS method is used to initialize the value of a
- * MutationNameEvent object and has the same behavior as
- * MutationEvent.initMutationEventNS().
- */
- virtual void initMutationNameEventNS(const DOMString &/*namespaceURI*/,
- const DOMString &/*typeArg*/,
- bool /*canBubbleArg*/,
- bool /*cancelableArg*/,
- const NodePtr /*relatedNodeArg*/,
- const DOMString &/*prevNamespaceURIArg*/,
- const DOMString &/*prevNodeNameArg*/)
- {
- }
-
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- MutationNameEvent() {}
-
-
- /**
- *
- */
- MutationNameEvent(const MutationNameEvent &other)
- : Event(other), MutationEvent(other)
- {
- prevNamespaceURI = other.prevNamespaceURI;
- prevNodeName = other.prevNodeName;
- }
-
-
- /**
- *
- */
- virtual ~MutationNameEvent() {}
-
-protected:
-
- DOMString prevNamespaceURI;
- DOMString prevNodeName;
-
-
-};
-
-
-
-
-
-
-} //namespace events
-} //namespace dom
-} //namespace w3c
-} //namespace org
-
-#endif // SEEN_EVENTS_H
-
-/*#########################################################################
-## E N D O F F I L E
-#########################################################################*/
-
diff --git a/src/dom/io/domstream.cpp b/src/dom/io/domstream.cpp
deleted file mode 100644
index 1f08c0eee..000000000
--- a/src/dom/io/domstream.cpp
+++ /dev/null
@@ -1,1228 +0,0 @@
-/*
- * Phoebe DOM Implementation.
- *
- * This is a C++ approximation of the W3C DOM model, which follows
- * fairly closely the specifications in the various .idl files, copies of
- * which are provided for reference. Most important is this one:
- *
- * http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/idl-definitions.html
- *
- * Authors:
- * Bob Jamison
- *
- * Copyright (C) 2006-2008 Bob Jamison
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-/**
- * Our base input/output stream classes. These are is directly
- * inherited from iostreams, and includes any extra
- * functionality that we might need.
- *
- */
-
-#include <cmath>
-#include <cstdarg>
-#include <cstdio>
-#include <cstdlib>
-
-#include "domstream.h"
-#include "dom/ucd.h"
-
-namespace org
-{
-namespace w3c
-{
-namespace dom
-{
-namespace io
-{
-
-
-//#########################################################################
-//# U T I L I T Y
-//#########################################################################
-
-void pipeStream(InputStream &source, OutputStream &dest)
-{
- for (;;)
- {
- int ch = source.get();
- if (ch<0)
- break;
- dest.put(ch);
- }
- dest.flush();
-}
-/*
-
-
-//#########################################################################
-//# F O R M A T T E D P R I N T I N G
-//#########################################################################
-
-static char const *digits = "0123456789abcdefghijklmnopqrstuvwxyz";
-*/
-// static int dprintInt(Writer &outs,
- // long arg, int base,
- // int flag, int width, int /*precision*/)
-/*{
-
- DOMString buf;
-
- //### Get the digits
- while (arg > 0)
- {
- int ch = arg % base;
- buf.insert(buf.begin(), digits[ch]);
- arg /= base;
- }
-
- if (flag == '#' && base == 16)
- {
- buf.insert(buf.begin(), 'x');
- buf.insert(buf.begin(), '0');
- }
-
- if (buf.size() == 0)
- buf = "0";
-
- int pad = width - (int)buf.size();
- for (int i=0 ; i<pad ; i++)
- buf.insert(buf.begin(), '0');
-
- //### Output the result
- for (unsigned int i=0 ; i<buf.size() ; i++)
- {
- if (outs.put(buf[i]) < 0)
- return -1;
- }
-
- return 1;
-}
-
-
-
-static int dprintDouble(Writer &outs, double val,
- int flag, int width, int precision)
-{
-
- DOMString buf;
-
- //printf("int:%f frac:%f\n", intPart, fracPart);
-
- bool negative = false;
- if (val < 0)
- {
- negative = true;
- val = -val;
- }
-
- int intDigits = 0;
- double scale = 1.0;
- while (scale < val)
- {
- intDigits++;
- scale *= 10.0;
- }
-
- double intPart;
- double fracPart = modf(val, &intPart);
-
- if (precision <= 0)
- precision = 5;
-
- //### How many pad digits?
- int pad = width - intDigits;
- if (precision > 0)
- pad -= precision + 1;
- else if (flag == '#')
- pad--;
-
-
- //### Signs
- if (negative)
- buf.push_back('-');
- else if (flag == '+')
- buf.push_back('+');
-
- //### Prefix pad
- if (pad > 0 && flag == '0')
- {
- while (pad--)
- buf.push_back('0');
- }
-
- //### Integer digits
- intPart = (intPart + 0.1 ) / scale; // turn 12345.678 to .12345678
- while (intDigits--)
- {
- intPart *= 10.0;
- double dig;
- intPart = modf(intPart, &dig);
- char ch = '0' + (int)dig;
- buf.push_back(ch);
- }
- if (buf.size() == 0)
- buf = "0";
-
- //### Decimal point
- if (flag == '#' || precision > 0)
- {
- buf.push_back('.');
- }
-
- //### Fractional digits
- while (precision--)
- {
- fracPart *= 10.0;
- double dig;
- fracPart = modf(fracPart, &dig);
- char ch = '0' + (int)dig;
- buf.push_back(ch);
- }
-
- //### Left justify if requested
- if (pad > 0 && flag == '-')
- {
- while (pad--)
- buf.push_back(' ');
- }
-
- //### Output the result
- for (unsigned int i=0 ; i<buf.size() ; i++)
- {
- if (outs.put(buf[i]) < 0)
- return -1;
- }
- return 1;
-}
-*/
-
-/**
- * Output a string. We veer from the standard a tiny bit.
- * Normally, a flag of '#' is undefined for strings. We use
- * it as an indicator that the user wants to XML-escape any
- * XML entities.
- */
-// static int dprintString(Writer &outs, const DOMString &str,
- // int flags, int /*width*/, int /*precision*/)
-/*{
- int len = str.size();
- if (flags == '#')
- {
- for (int pos = 0; pos < len; pos++)
- {
- XMLCh ch = (XMLCh) str[pos];
- if (ch == '&')
- outs.writeString("&ampr;");
- else if (ch == '<')
- outs.writeString("&lt;");
- else if (ch == '>')
- outs.writeString("&gt;");
- else if (ch == '"')
- outs.writeString("&quot;");
- else if (ch == '\'')
- outs.writeString("&apos;");
- else
- outs.put(ch);
- }
- }
- else
- {
- outs.writeString(str);
- }
-
- return 1;
-}
-
-
-
-static int getint(const DOMString &buf, int pos, int *ret)
-{
- int len = buf.size();
- if (!len)
- {
- *ret = 0;
- return pos;
- }
-
- bool has_sign = false;
- int val = 0;
- if (buf[pos] == '-')
- {
- has_sign = true;
- pos++;
- }
- while (pos < len)
- {
- XMLCh ch = buf[pos];
- if (ch >= '0' && ch <= '9')
- val = val * 10 + (ch - '0');
- else
- break;
- pos++;
- }
- if (has_sign)
- val = -val;
-
- *ret = val;
-
- return pos;
-}
-
-
-
-static int dprintf(Writer &outs, const DOMString &fmt, va_list ap)
-{
-
- int len = fmt.size();
-
- for (int pos=0 ; pos < len ; pos++)
- {
- XMLCh ch = fmt[pos];
-
- //## normal character
- if (ch != '%')
- {
- if (outs.put(ch)<0)
- {
- return -1;
- }
- continue;
- }
-
- if (++pos >= len)
- {
- return -1;
- }
-
- ch = fmt[pos];
-
- //## is this %% ?
- if (ch == '%') // escaped '%'
- {
- if (outs.put('%')<0)
- {
- return -1;
- }
- continue;
- }
-
- //## flag
- char flag = '\0';
- if (ch == '-' || ch == '+' || ch == ' ' ||
- ch == '#' || ch == '0')
- {
- flag = ch;
- if (++pos >= len)
- {
- return -1;
- }
- ch = fmt[pos];
- }
-
- //## width.precision
- int width = 0;
- int precision = 0;
- pos = getint(fmt, pos, &width);
- if (pos >= len)
- {
- return -1;
- }
- ch = fmt[pos];
- if (ch == '.')
- {
- if (++pos >= len)
- {
- return -1;
- }
- pos = getint(fmt, pos, &precision);
- if (pos >= len)
- {
- return -1;
- }
- ch = fmt[pos];
- }
-
- //## length
- char length = '\0';
- if (ch == 'l' || ch == 'h')
- {
- length = ch;
- if (++pos >= len)
- {
- return -1;
- }
- ch = fmt[pos];
- }
-
- //## data type
- switch (ch)
- {
- case 'f':
- case 'g':
- {
- double val = va_arg(ap, double);
- dprintDouble(outs, val, flag, width, precision);
- break;
- }
- case 'd':
- {
- long val = 0;
- if (length == 'l')
- val = va_arg(ap, long);
- else if (length == 'h')
- val = (long)va_arg(ap, int);
- else
- val = (long)va_arg(ap, int);
- dprintInt(outs, val, 10, flag, width, precision);
- break;
- }
- case 'x':
- {
- long val = 0;
- if (length == 'l')
- val = va_arg(ap, long);
- else if (length == 'h')
- val = (long)va_arg(ap, int);
- else
- val = (long)va_arg(ap, int);
- dprintInt(outs, val, 16, flag, width, precision);
- break;
- }
- case 's':
- {
- DOMString val = va_arg(ap, char *);
- dprintString(outs, val, flag, width, precision);
- break;
- }
- default:
- {
- break;
- }
- }
- }
-
- return 1;
-}
-*/
-
-//#########################################################################
-//# B A S I C I N P U T S T R E A M
-//#########################################################################
-
-/**
- *
- */
-BasicInputStream::BasicInputStream(InputStream &sourceStream)
- : source(sourceStream)
-{
- closed = false;
-}
-
-/**
- * Returns the number of bytes that can be read (or skipped over) from
- * this input stream without blocking by the next caller of a method for
- * this input stream.
- */
-int BasicInputStream::available()
-{
- if (closed)
- return 0;
- return source.available();
-}
-
-
-/**
- * Closes this input stream and releases any system resources
- * associated with the stream.
- */
-void BasicInputStream::close()
-{
- if (closed)
- return;
- source.close();
- closed = true;
-}
-
-/**
- * Reads the next byte of data from the input stream. -1 if EOF
- */
-int BasicInputStream::get()
-{
- if (closed)
- return -1;
- return source.get();
-}
-
-
-
-//#########################################################################
-//# B A S I C O U T P U T S T R E A M
-//#########################################################################
-
-/**
- *
- */
-BasicOutputStream::BasicOutputStream(OutputStream &destinationStream)
- : destination(destinationStream)
-{
- closed = false;
-}
-
-/**
- * Closes this output stream and releases any system resources
- * associated with this stream.
- */
-void BasicOutputStream::close()
-{
- if (closed)
- return;
- destination.close();
- closed = true;
-}
-
-/**
- * Flushes this output stream and forces any buffered output
- * bytes to be written out.
- */
-void BasicOutputStream::flush()
-{
- if (closed)
- return;
- destination.flush();
-}
-
-/**
- * Writes the specified byte to this output stream.
- */
-int BasicOutputStream::put(gunichar ch)
-{
- if (closed)
- return -1;
- destination.put(ch);
- return 1;
-}
-
-
-//#########################################################################
-//# B A S I C R E A D E R
-//#########################################################################
-BasicReader::BasicReader(Reader &sourceReader)
-{
- source = &sourceReader;
-}
-
-/**
- * Returns the number of bytes that can be read (or skipped over) from
- * this reader without blocking by the next caller of a method for
- * this reader.
- */
-int BasicReader::available()
-{
- if (source)
- return source->available();
- else
- return 0;
-}
-
-
-/**
- * Closes this reader and releases any system resources
- * associated with the reader.
- */
-void BasicReader::close()
-{
- if (source)
- source->close();
-}
-
-/**
- * Reads the next byte of data from the reader.
- */
-gunichar BasicReader::get()
-{
- if (source)
- return source->get();
- else
- return (gunichar)-1;
-}
-
-
-/**
- * Reads a line of data from the reader.
- */
-Glib::ustring BasicReader::readLine()
-{
- Glib::ustring str;
- while (available() > 0)
- {
- gunichar ch = get();
- if (ch == '\n')
- break;
- str.push_back(ch);
- }
- return str;
-}
-
-/**
- * Reads a line of data from the reader.
- */
-Glib::ustring BasicReader::readWord()
-{
- Glib::ustring str;
- while (available() > 0)
- {
- gunichar ch = get();
- if (!g_unichar_isprint(ch))
- break;
- str.push_back(ch);
- }
- return str;
-}
-
-
-static bool getLong(Glib::ustring &str, long *val)
-{
- const char *begin = str.raw().c_str();
- char *end;
- long ival = strtol(begin, &end, 10);
- if (str == end)
- return false;
- *val = ival;
- return true;
-}
-
-static bool getULong(Glib::ustring &str, unsigned long *val)
-{
- const char *begin = str.raw().c_str();
- char *end;
- unsigned long ival = strtoul(begin, &end, 10);
- if (str == end)
- return false;
- *val = ival;
- return true;
-}
-
-static bool getDouble(Glib::ustring &str, double *val)
-{
- const char *begin = str.raw().c_str();
- char *end;
- double ival = strtod(begin, &end);
- if (str == end)
- return false;
- *val = ival;
- return true;
-}
-
-
-
-const Reader &BasicReader::readBool (bool& val )
-{
- Glib::ustring buf = readWord();
- if (buf == "true")
- val = true;
- else
- val = false;
- return *this;
-}
-
-const Reader &BasicReader::readShort (short& val )
-{
- Glib::ustring buf = readWord();
- long ival;
- if (getLong(buf, &ival))
- val = (short) ival;
- return *this;
-}
-
-const Reader &BasicReader::readUnsignedShort (unsigned short& val )
-{
- Glib::ustring buf = readWord();
- unsigned long ival;
- if (getULong(buf, &ival))
- val = (unsigned short) ival;
- return *this;
-}
-
-const Reader &BasicReader::readInt (int& val )
-{
- Glib::ustring buf = readWord();
- long ival;
- if (getLong(buf, &ival))
- val = (int) ival;
- return *this;
-}
-
-const Reader &BasicReader::readUnsignedInt (unsigned int& val )
-{
- Glib::ustring buf = readWord();
- unsigned long ival;
- if (getULong(buf, &ival))
- val = (unsigned int) ival;
- return *this;
-}
-
-const Reader &BasicReader::readLong (long& val )
-{
- Glib::ustring buf = readWord();
- long ival;
- if (getLong(buf, &ival))
- val = ival;
- return *this;
-}
-
-const Reader &BasicReader::readUnsignedLong (unsigned long& val )
-{
- Glib::ustring buf = readWord();
- unsigned long ival;
- if (getULong(buf, &ival))
- val = ival;
- return *this;
-}
-
-const Reader &BasicReader::readFloat (float& val )
-{
- Glib::ustring buf = readWord();
- double ival;
- if (getDouble(buf, &ival))
- val = (float)ival;
- return *this;
-}
-
-const Reader &BasicReader::readDouble (double& val )
-{
- Glib::ustring buf = readWord();
- double ival;
- if (getDouble(buf, &ival))
- val = ival;
- return *this;
-}
-
-
-
-//#########################################################################
-//# I N P U T S T R E A M R E A D E R
-//#########################################################################
-
-
-InputStreamReader::InputStreamReader(InputStream &inputStreamSource)
- : inputStream(inputStreamSource)
-{
-}
-
-
-
-/**
- * Close the underlying OutputStream
- */
-void InputStreamReader::close()
-{
- inputStream.close();
-}
-
-/**
- * Flush the underlying OutputStream
- */
-int InputStreamReader::available()
-{
- return inputStream.available();
-}
-
-/**
- * Overloaded to receive its bytes from an InputStream
- * rather than a Reader
- */
-gunichar InputStreamReader::get()
-{
- //Do we need conversions here?
- gunichar ch = (gunichar)inputStream.get();
- return ch;
-}
-
-
-
-//#########################################################################
-//# S T D R E A D E R
-//#########################################################################
-
-
-/**
- *
- */
-StdReader::StdReader()
-{
- inputStream = new StdInputStream();
-}
-
-/**
- *
- */
-StdReader::~StdReader()
-{
- delete inputStream;
-}
-
-
-
-/**
- * Close the underlying OutputStream
- */
-void StdReader::close()
-{
- inputStream->close();
-}
-
-/**
- * Flush the underlying OutputStream
- */
-int StdReader::available()
-{
- return inputStream->available();
-}
-
-/**
- * Overloaded to receive its bytes from an InputStream
- * rather than a Reader
- */
-gunichar StdReader::get()
-{
- //Do we need conversions here?
- gunichar ch = (gunichar)inputStream->get();
- return ch;
-}
-
-
-
-
-//#########################################################################
-//# B A S I C W R I T E R
-//#########################################################################
-/**
- *
- */
-BasicWriter::BasicWriter(const Writer &destinationWriter)
-{
- destination = (Writer*) &destinationWriter;
-}
-
-/**
- * Closes this writer and releases any system resources
- * associated with this writer.
- */
-void BasicWriter::close()
-{
- if (destination)
- destination->close();
-}
-
-/**
- * Flushes this output stream and forces any buffered output
- * bytes to be written out.
- */
-void BasicWriter::flush()
-{
- if (destination)
- destination->flush();
-}
-
-/**
- * Writes the specified byte to this output writer.
- */
-int BasicWriter::put(gunichar ch)
-{
- if (destination && destination->put(ch)>=0)
- return 1;
- return -1;
-}
-
-/**
- * Provide printf()-like formatting
- */
-Writer &BasicWriter::printf(char const *fmt, ...)
-{
- va_list args;
- va_start(args, fmt);
- gchar *buf = g_strdup_vprintf(fmt, args);
- va_end(args);
- if (buf) {
- writeString(buf);
- g_free(buf);
- }
- return *this;
-}
-/**
- * Writes the specified character to this output writer.
- */
-Writer &BasicWriter::writeChar(char ch)
-{
- gunichar uch = ch;
- put(uch);
- return *this;
-}
-
-
-/**
- * Writes the specified unicode string to this output writer.
- */
-Writer &BasicWriter::writeUString(Glib::ustring &str)
-{
- for (int i=0; i< (int)str.size(); i++)
- put(str[i]);
- return *this;
-}
-
-/**
- * Writes the specified standard string to this output writer.
- */
-Writer &BasicWriter::writeStdString(std::string &str)
-{
- Glib::ustring tmp(str);
- writeUString(tmp);
- return *this;
-}
-
-/**
- * Writes the specified character string to this output writer.
- */
-Writer &BasicWriter::writeString(const char *str)
-{
- Glib::ustring tmp;
- if (str)
- tmp = str;
- else
- tmp = "null";
- writeUString(tmp);
- return *this;
-}
-
-
-
-
-/**
- *
- */
-Writer &BasicWriter::writeBool (bool val )
-{
- if (val)
- writeString("true");
- else
- writeString("false");
- return *this;
-}
-
-
-/**
- *
- */
-Writer &BasicWriter::writeShort (short val )
-{
- gchar *buf = g_strdup_printf("%d", val);
- if (buf) {
- writeString(buf);
- g_free(buf);
- }
- return *this;
-}
-
-
-
-/**
- *
- */
-Writer &BasicWriter::writeUnsignedShort (unsigned short val )
-{
- gchar *buf = g_strdup_printf("%u", val);
- if (buf) {
- writeString(buf);
- g_free(buf);
- }
- return *this;
-}
-
-/**
- *
- */
-Writer &BasicWriter::writeInt (int val)
-{
- gchar *buf = g_strdup_printf("%d", val);
- if (buf) {
- writeString(buf);
- g_free(buf);
- }
- return *this;
-}
-
-/**
- *
- */
-Writer &BasicWriter::writeUnsignedInt (unsigned int val)
-{
- gchar *buf = g_strdup_printf("%u", val);
- if (buf) {
- writeString(buf);
- g_free(buf);
- }
- return *this;
-}
-
-/**
- *
- */
-Writer &BasicWriter::writeLong (long val)
-{
- gchar *buf = g_strdup_printf("%ld", val);
- if (buf) {
- writeString(buf);
- g_free(buf);
- }
- return *this;
-}
-
-/**
- *
- */
-Writer &BasicWriter::writeUnsignedLong(unsigned long val)
-{
- gchar *buf = g_strdup_printf("%lu", val);
- if (buf) {
- writeString(buf);
- g_free(buf);
- }
- return *this;
-}
-
-/**
- *
- */
-Writer &BasicWriter::writeFloat(float val)
-{
-#if 1
- gchar *buf = g_strdup_printf("%8.3f", val);
- if (buf) {
- writeString(buf);
- g_free(buf);
- }
-#else
- std::string tmp = ftos(val, 'g', 8, 3, 0);
- writeStdString(tmp);
-#endif
- return *this;
-}
-
-/**
- *
- */
-Writer &BasicWriter::writeDouble(double val)
-{
-#if 1
- gchar *buf = g_strdup_printf("%8.3f", val);
- if (buf) {
- writeString(buf);
- g_free(buf);
- }
-#else
- std::string tmp = ftos(val, 'g', 8, 3, 0);
- writeStdString(tmp);
-#endif
- return *this;
-}
-
-
-
-
-//#########################################################################
-//# O U T P U T S T R E A M W R I T E R
-//#########################################################################
-
-
-OutputStreamWriter::OutputStreamWriter(OutputStream &outputStreamDest)
- : outputStream(outputStreamDest)
-{
-}
-
-
-
-/**
- * Close the underlying OutputStream
- */
-void OutputStreamWriter::close()
-{
- flush();
- outputStream.close();
-}
-
-/**
- * Flush the underlying OutputStream
- */
-void OutputStreamWriter::flush()
-{
- outputStream.flush();
-}
-
-/**
- * Overloaded to redirect the output chars from the next Writer
- * in the chain to an OutputStream instead.
- */
-int OutputStreamWriter::put(gunichar ch)
-{
- if (outputStream.put(ch)>=0)
- return 1;
- return -1;
-}
-
-//#########################################################################
-//# S T D W R I T E R
-//#########################################################################
-
-
-/**
- *
- */
-StdWriter::StdWriter()
-{
- outputStream = new StdOutputStream();
-}
-
-/**
- *
- */
-StdWriter::~StdWriter()
-{
- delete outputStream;
-}
-
-/**
- * Close the underlying OutputStream
- */
-void StdWriter::close()
-{
- flush();
- outputStream->close();
-}
-
-/**
- * Flush the underlying OutputStream
- */
-void StdWriter::flush()
-{
- outputStream->flush();
-}
-
-/**
- * Overloaded to redirect the output chars from the next Writer
- * in the chain to an OutputStream instead.
- */
-int StdWriter::put(gunichar ch)
-{
- if (outputStream && (outputStream->put(ch)>=0))
- return 1;
- return -1;
-}
-
-
-
-//###############################################
-//# O P E R A T O R S
-//###############################################
-//# Normally these would be in the .h, but we
-//# just want to be absolutely certain that these
-//# are never multiply defined. Easy to maintain,
-//# though. Just occasionally copy/paste these
-//# into the .h , and replace the {} with a ;
-//###############################################
-
-
-
-
-const Reader& operator>> (Reader &reader, bool& val )
- { return reader.readBool(val); }
-
-const Reader& operator>> (Reader &reader, short &val)
- { return reader.readShort(val); }
-
-const Reader& operator>> (Reader &reader, unsigned short &val)
- { return reader.readUnsignedShort(val); }
-
-const Reader& operator>> (Reader &reader, int &val)
- { return reader.readInt(val); }
-
-const Reader& operator>> (Reader &reader, unsigned int &val)
- { return reader.readUnsignedInt(val); }
-
-const Reader& operator>> (Reader &reader, long &val)
- { return reader.readLong(val); }
-
-const Reader& operator>> (Reader &reader, unsigned long &val)
- { return reader.readUnsignedLong(val); }
-
-const Reader& operator>> (Reader &reader, float &val)
- { return reader.readFloat(val); }
-
-const Reader& operator>> (Reader &reader, double &val)
- { return reader.readDouble(val); }
-
-
-
-Writer& operator<< (Writer &writer, char val)
- { return writer.writeChar(val); }
-
-Writer& operator<< (Writer &writer, Glib::ustring &val)
- { return writer.writeUString(val); }
-
-Writer& operator<< (Writer &writer, std::string &val)
- { return writer.writeStdString(val); }
-
-Writer& operator<< (Writer &writer, char const *val)
- { return writer.writeString(val); }
-
-Writer& operator<< (Writer &writer, bool val)
- { return writer.writeBool(val); }
-
-Writer& operator<< (Writer &writer, short val)
- { return writer.writeShort(val); }
-
-Writer& operator<< (Writer &writer, unsigned short val)
- { return writer.writeUnsignedShort(val); }
-
-Writer& operator<< (Writer &writer, int val)
- { return writer.writeInt(val); }
-
-Writer& operator<< (Writer &writer, unsigned int val)
- { return writer.writeUnsignedInt(val); }
-
-Writer& operator<< (Writer &writer, long val)
- { return writer.writeLong(val); }
-
-Writer& operator<< (Writer &writer, unsigned long val)
- { return writer.writeUnsignedLong(val); }
-
-Writer& operator<< (Writer &writer, float val)
- { return writer.writeFloat(val); }
-
-Writer& operator<< (Writer &writer, double val)
- { return writer.writeDouble(val); }
-
-} //namespace io
-} //namespace dom
-} //namespace w3c
-} //namespace org
-
-
-//#########################################################################
-//# E N D O F F I L E
-//#########################################################################
diff --git a/src/dom/io/domstream.h b/src/dom/io/domstream.h
deleted file mode 100644
index edd180b83..000000000
--- a/src/dom/io/domstream.h
+++ /dev/null
@@ -1,684 +0,0 @@
-#ifndef SEEN_DOMSTREAM_H
-#define SEEN_DOMSTREAM_H
-/**
- * @file
- * Phoebe DOM Implementation.
- *
- * This is a C++ approximation of the W3C DOM model, which follows
- * fairly closely the specifications in the various .idl files, copies of
- * which are provided for reference. Most important is this one:
- *
- * http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/idl-definitions.html
- */
-/*
- * Authors:
- * Bob Jamison
- *
- * Copyright (C) 2006-2007 Bob Jamison
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-
-#include <cstdio>
-#include <dom/dom.h>
-
-namespace org
-{
-namespace w3c
-{
-namespace dom
-{
-namespace io
-{
-
-class StreamException : public std::exception
-{
-public:
-
- StreamException(const char *theReason) throw()
- { reason = theReason; }
- StreamException(Glib::ustring &theReason) throw()
- { reason = theReason; }
- virtual ~StreamException() throw()
- { }
- char const *what() const throw()
- { return reason.c_str(); }
-
-private:
- Glib::ustring reason;
-
-};
-
-//#########################################################################
-//# I N P U T S T R E A M
-//#########################################################################
-
-/**
- * This interface is the base of all input stream classes. Users who wish
- * to make an InputStream that is part of a chain should inherit from
- * BasicInputStream. Inherit from this class to make a source endpoint,
- * such as a URI or buffer.
- *
- */
-class InputStream
-{
-
-public:
-
- /**
- * Constructor.
- */
- InputStream() {}
-
- /**
- * Destructor
- */
- virtual ~InputStream() {}
-
- /**
- * Return the number of bytes that are currently available
- * to be read
- */
- virtual int available() = 0;
-
- /**
- * Do whatever it takes to 'close' this input stream
- * The most likely implementation of this method will be
- * for endpoints that use a resource for their data.
- */
- virtual void close() = 0;
-
- /**
- * Read one byte from this input stream. This is a blocking
- * call. If no data is currently available, this call will
- * not return until it exists. If the user does not want
- * their code to block, then the usual solution is:
- * if (available() > 0)
- * myChar = get();
- * This call returns -1 on end-of-file.
- */
- virtual int get() = 0;
-
-}; // class InputStream
-
-
-
-
-/**
- * This is the class that most users should inherit, to provide
- * their own streams.
- *
- */
-class BasicInputStream : public InputStream
-{
-
-public:
-
- BasicInputStream(InputStream &sourceStream);
-
- virtual ~BasicInputStream() {}
-
- virtual int available();
-
- virtual void close();
-
- virtual int get();
-
-protected:
-
- bool closed;
-
- InputStream &source;
-
-private:
-
-
-}; // class BasicInputStream
-
-
-
-/**
- * Convenience class for reading from standard input
- */
-class StdInputStream : public InputStream
-{
-public:
-
- int available()
- { return 0; }
-
- void close()
- { /* do nothing */ }
-
- int get()
- { return getchar(); }
-
-};
-
-
-
-
-
-//#########################################################################
-//# O U T P U T S T R E A M
-//#########################################################################
-
-/**
- * This interface is the base of all input stream classes. Users who wish
- * to make an OutputStream that is part of a chain should inherit from
- * BasicOutputStream. Inherit from this class to make a destination endpoint,
- * such as a URI or buffer.
- */
-class OutputStream
-{
-
-public:
-
- /**
- * Constructor.
- */
- OutputStream() {}
-
- /**
- * Destructor
- */
- virtual ~OutputStream() {}
-
- /**
- * This call should
- * 1. flush itself
- * 2. close itself
- * 3. close the destination stream
- */
- virtual void close() = 0;
-
- /**
- * This call should push any pending data it might have to
- * the destination stream. It should NOT call flush() on
- * the destination stream.
- */
- virtual void flush() = 0;
-
- /**
- * Send one byte to the destination stream.
- */
- virtual int put(gunichar ch) = 0;
-
-
-}; // class OutputStream
-
-
-/**
- * This is the class that most users should inherit, to provide
- * their own output streams.
- */
-class BasicOutputStream : public OutputStream
-{
-
-public:
-
- BasicOutputStream(OutputStream &destinationStream);
-
- virtual ~BasicOutputStream() {}
-
- virtual void close();
-
- virtual void flush();
-
- virtual int put(gunichar ch);
-
-protected:
-
- bool closed;
-
- OutputStream &destination;
-
-
-}; // class BasicOutputStream
-
-
-
-/**
- * Convenience class for writing to standard output
- */
-class StdOutputStream : public OutputStream
-{
-public:
-
- void close()
- { }
-
- void flush()
- { }
-
- int put(gunichar ch)
- { return putchar(ch); }
-
-};
-
-
-
-
-//#########################################################################
-//# R E A D E R
-//#########################################################################
-
-/**
- * This interface and its descendants are for unicode character-oriented input
- *
- */
-class Reader
-{
-
-public:
-
- /**
- * Constructor.
- */
- Reader() {}
-
- /**
- * Destructor
- */
- virtual ~Reader() {}
-
-
- virtual int available() = 0;
-
- virtual void close() = 0;
-
- virtual gunichar get() = 0;
-
- virtual Glib::ustring readLine() = 0;
-
- virtual Glib::ustring readWord() = 0;
-
- /* Input formatting */
- virtual const Reader& readBool (bool& val ) = 0;
- virtual const Reader& operator>> (bool& val ) = 0;
-
- virtual const Reader& readShort (short &val) = 0;
- virtual const Reader& operator>> (short &val) = 0;
-
- virtual const Reader& readUnsignedShort (unsigned short &val) = 0;
- virtual const Reader& operator>> (unsigned short &val) = 0;
-
- virtual const Reader& readInt (int &val) = 0;
- virtual const Reader& operator>> (int &val) = 0;
-
- virtual const Reader& readUnsignedInt (unsigned int &val) = 0;
- virtual const Reader& operator>> (unsigned int &val) = 0;
-
- virtual const Reader& readLong (long &val) = 0;
- virtual const Reader& operator>> (long &val) = 0;
-
- virtual const Reader& readUnsignedLong (unsigned long &val) = 0;
- virtual const Reader& operator>> (unsigned long &val) = 0;
-
- virtual const Reader& readFloat (float &val) = 0;
- virtual const Reader& operator>> (float &val) = 0;
-
- virtual const Reader& readDouble (double &val) = 0;
- virtual const Reader& operator>> (double &val) = 0;
-
-}; // interface Reader
-
-
-
-/**
- * This class and its descendants are for unicode character-oriented input
- *
- */
-class BasicReader : public Reader
-{
-
-public:
-
- BasicReader(Reader &sourceStream);
-
- virtual ~BasicReader() {}
-
- virtual int available();
-
- virtual void close();
-
- virtual gunichar get();
-
- virtual Glib::ustring readLine();
-
- virtual Glib::ustring readWord();
-
- /* Input formatting */
- virtual const Reader& readBool (bool& val );
- virtual const Reader& operator>> (bool& val )
- { return readBool(val); }
-
- virtual const Reader& readShort (short &val);
- virtual const Reader& operator>> (short &val)
- { return readShort(val); }
-
- virtual const Reader& readUnsignedShort (unsigned short &val);
- virtual const Reader& operator>> (unsigned short &val)
- { return readUnsignedShort(val); }
-
- virtual const Reader& readInt (int &val);
- virtual const Reader& operator>> (int &val)
- { return readInt(val); }
-
- virtual const Reader& readUnsignedInt (unsigned int &val);
- virtual const Reader& operator>> (unsigned int &val)
- { return readUnsignedInt(val); }
-
- virtual const Reader& readLong (long &val);
- virtual const Reader& operator>> (long &val)
- { return readLong(val); }
-
- virtual const Reader& readUnsignedLong (unsigned long &val);
- virtual const Reader& operator>> (unsigned long &val)
- { return readUnsignedLong(val); }
-
- virtual const Reader& readFloat (float &val);
- virtual const Reader& operator>> (float &val)
- { return readFloat(val); }
-
- virtual const Reader& readDouble (double &val);
- virtual const Reader& operator>> (double &val)
- { return readDouble(val); }
-
-
-protected:
-
- Reader *source;
-
- BasicReader()
- { source = NULL; }
-
-private:
-
-}; // class BasicReader
-
-
-
-/**
- * Class for placing a Reader on an open InputStream
- *
- */
-class InputStreamReader : public BasicReader
-{
-public:
-
- InputStreamReader(InputStream &inputStreamSource);
-
- /*Overload these 3 for your implementation*/
- virtual int available();
-
- virtual void close();
-
- virtual gunichar get();
-
-
-private:
-
- InputStream &inputStream;
-
-
-};
-
-/**
- * Convenience class for reading formatted from standard input
- *
- */
-class StdReader : public BasicReader
-{
-public:
-
- StdReader();
-
- virtual ~StdReader();
-
- /*Overload these 3 for your implementation*/
- virtual int available();
-
- virtual void close();
-
- virtual gunichar get();
-
-
-private:
-
- InputStream *inputStream;
-
-
-};
-
-
-
-//#########################################################################
-//# W R I T E R
-//#########################################################################
-
-/**
- * This interface and its descendants are for unicode character-oriented output
- *
- */
-class Writer
-{
-
-public:
-
- /**
- * Constructor.
- */
- Writer() {}
-
- /**
- * Destructor
- */
- virtual ~Writer() {}
-
- virtual void close() = 0;
-
- virtual void flush() = 0;
-
- virtual int put(gunichar ch) = 0;
-
- /* Formatted output */
- virtual Writer& printf(char const *fmt, ...) G_GNUC_PRINTF(2,3) = 0;
-
- virtual Writer& writeChar(char val) = 0;
-
- virtual Writer& writeUString(Glib::ustring &val) = 0;
-
- virtual Writer& writeStdString(std::string &val) = 0;
-
- virtual Writer& writeString(const char *str) = 0;
-
- virtual Writer& writeBool (bool val ) = 0;
-
- virtual Writer& writeShort (short val ) = 0;
-
- virtual Writer& writeUnsignedShort (unsigned short val ) = 0;
-
- virtual Writer& writeInt (int val ) = 0;
-
- virtual Writer& writeUnsignedInt (unsigned int val ) = 0;
-
- virtual Writer& writeLong (long val ) = 0;
-
- virtual Writer& writeUnsignedLong (unsigned long val ) = 0;
-
- virtual Writer& writeFloat (float val ) = 0;
-
- virtual Writer& writeDouble (double val ) = 0;
-
-
-
-}; // interface Writer
-
-
-/**
- * This class and its descendants are for unicode character-oriented output
- *
- */
-class BasicWriter : public Writer
-{
-
-public:
-
- BasicWriter(const Writer &destinationWriter);
-
- virtual ~BasicWriter() {}
-
- /*Overload these 3 for your implementation*/
- virtual void close();
-
- virtual void flush();
-
- virtual int put(gunichar ch);
-
-
-
- /* Formatted output */
- virtual Writer &printf(char const *fmt, ...) G_GNUC_PRINTF(2,3);
-
- virtual Writer& writeChar(char val);
-
- virtual Writer& writeUString(Glib::ustring &val);
-
- virtual Writer& writeStdString(std::string &val);
-
- virtual Writer& writeString(const char *str);
-
- virtual Writer& writeBool (bool val );
-
- virtual Writer& writeShort (short val );
-
- virtual Writer& writeUnsignedShort (unsigned short val );
-
- virtual Writer& writeInt (int val );
-
- virtual Writer& writeUnsignedInt (unsigned int val );
-
- virtual Writer& writeLong (long val );
-
- virtual Writer& writeUnsignedLong (unsigned long val );
-
- virtual Writer& writeFloat (float val );
-
- virtual Writer& writeDouble (double val );
-
-
-protected:
-
- Writer *destination;
-
- BasicWriter()
- { destination = NULL; }
-
-private:
-
-}; // class BasicWriter
-
-
-Writer& operator<< (Writer &writer, char val);
-
-Writer& operator<< (Writer &writer, Glib::ustring &val);
-
-Writer& operator<< (Writer &writer, std::string &val);
-
-Writer& operator<< (Writer &writer, char const *val);
-
-Writer& operator<< (Writer &writer, bool val);
-
-Writer& operator<< (Writer &writer, short val);
-
-Writer& operator<< (Writer &writer, unsigned short val);
-
-Writer& operator<< (Writer &writer, int val);
-
-Writer& operator<< (Writer &writer, unsigned int val);
-
-Writer& operator<< (Writer &writer, long val);
-
-Writer& operator<< (Writer &writer, unsigned long val);
-
-Writer& operator<< (Writer &writer, float val);
-
-Writer& operator<< (Writer &writer, double val);
-
-
-/**
- * Class for placing a Writer on an open OutputStream
- *
- */
-class OutputStreamWriter : public BasicWriter
-{
-public:
-
- OutputStreamWriter(OutputStream &outputStreamDest);
-
- /*Overload these 3 for your implementation*/
- virtual void close();
- virtual void flush();
- virtual int put(gunichar ch);
-
-
-private:
-
- OutputStream &outputStream;
-
-
-};
-
-
-/**
- * Convenience class for writing to standard output
- */
-class StdWriter : public BasicWriter
-{
-public:
- StdWriter();
-
- virtual ~StdWriter();
- virtual void close();
- virtual void flush();
- virtual int put(gunichar ch);
-
-
-private:
-
- OutputStream *outputStream;
-
-};
-
-//#########################################################################
-//# U T I L I T Y
-//#########################################################################
-
-void pipeStream(InputStream &source, OutputStream &dest);
-
-
-} //namespace io
-} //namespace dom
-} //namespace w3c
-} //namespace org
-
-
-#endif // SEEN_DOMSTREAM_H
-
-//#########################################################################
-//# E N D O F F I L E
-//#########################################################################
diff --git a/src/dom/ls.h b/src/dom/ls.h
deleted file mode 100644
index 6e9a940f7..000000000
--- a/src/dom/ls.h
+++ /dev/null
@@ -1,947 +0,0 @@
-#ifndef SEEN_LS_H
-#define SEEN_LS_H
-/**
- * @file
- * Phoebe DOM Implementation.
- *
- * This is a C++ approximation of the W3C DOM model, which follows
- * fairly closely the specifications in the various .idl files, copies of
- * which are provided for reference. Most important is this one:
- *
- * http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/idl-definitions.html
- */
-/*
- * Authors:
- * Bob Jamison
- *
- * Copyright (C) 2005 Bob Jamison
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-
-#include "dom.h"
-#include "events.h"
-#include "traversal.h"
-
-#include "io/domstream.h"
-
-namespace org
-{
-namespace w3c
-{
-namespace dom
-{
-namespace ls
-{
-
-
-
-//Local definitions
-//The idl said Object. Since this is undefined, we will
-//use our own class which is designed to be a bit similar to
-//java.io streams
-
-typedef dom::io::InputStream LSInputStream;
-typedef dom::io::OutputStream LSOutputStream;
-typedef dom::io::Reader LSReader;
-typedef dom::io::Writer LSWriter;
-
-
-//local definitions
-typedef dom::DOMString DOMString;
-typedef dom::DOMConfiguration DOMConfiguration;
-typedef dom::Node Node;
-typedef dom::NodePtr NodePtr;
-typedef dom::Document Document;
-typedef dom::DocumentPtr DocumentPtr;
-typedef dom::Element Element;
-typedef dom::ElementPtr ElementPtr;
-
-
-//forward declarations
-class LSParser;
-class LSSerializer;
-class LSInput;
-class LSOutput;
-class LSParserFilter;
-class LSSerializerFilter;
-
-
-
-/*#########################################################################
-## LSException
-#########################################################################*/
-
-/**
- * Maybe this should inherit from DOMException?
- */
-class LSException
-{
-
-public:
-
- LSException(const DOMString &reasonMsg)
- { msg = reasonMsg; }
-
- LSException(short theCode)
- {
- code = theCode;
- }
-
- virtual ~LSException() throw()
- {}
-
- /**
- *
- */
- unsigned short code;
-
- /**
- *
- */
- DOMString msg;
-
- /**
- * Get a string, translated from the code.
- * Like std::exception. Not in spec.
- */
- const char *what()
- { return msg.c_str(); }
-
-
-
-};
-
-
-/**
- * LSExceptionCode
- */
-typedef enum
- {
- PARSE_ERR = 81,
- SERIALIZE_ERR = 82
- } XPathExceptionCode;
-
-
-/*#########################################################################
-## LSParserFilter
-#########################################################################*/
-
-/**
- *
- */
-class LSParserFilter
-{
-public:
-
- // Constants returned by startElement and acceptNode
- typedef enum
- {
- FILTER_ACCEPT = 1,
- FILTER_REJECT = 2,
- FILTER_SKIP = 3,
- FILTER_INTERRUPT = 4
- } ReturnValues;
-
-
- /**
- *
- */
- virtual unsigned short startElement(const ElementPtr elementArg) =0;
-
- /**
- *
- */
- virtual unsigned short acceptNode(const NodePtr nodeArg) =0;
-
- /**
- *
- */
- virtual unsigned long getWhatToShow() =0;
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~LSParserFilter() {}
-
-
-
-};
-
-/*#########################################################################
-## LSInput
-#########################################################################*/
-
-/**
- *
- */
-class LSInput
-{
-public:
-
- /**
- *
- */
- virtual LSReader *getCharacterStream() const
- { return characterStream; }
-
- /**
- *
- */
- virtual void setCharacterStream(const LSReader *val)
- { characterStream = (LSReader *)val; }
-
- /**
- *
- */
- virtual LSInputStream *getByteStream() const
- { return byteStream; }
-
- /**
- *
- */
- virtual void setByteStream(const LSInputStream *val)
- { byteStream = (LSInputStream *)val; }
-
- /**
- *
- */
- virtual DOMString getStringData() const
- { return stringData; }
-
- /**
- *
- */
- virtual void setStringData(const DOMString &val)
- { stringData = val; }
-
- /**
- *
- */
- virtual DOMString getSystemId() const
- { return systemId; }
-
- /**
- *
- */
- virtual void setSystemId(const DOMString &val)
- { systemId = val; }
-
- /**
- *
- */
- virtual DOMString getPublicId() const
- { return publicId; }
-
- /**
- *
- */
- virtual void setPublicId(const DOMString &val)
- { publicId = val; }
-
- /**
- *
- */
- virtual DOMString getBaseURI() const
- { return baseURI; }
-
- /**
- *
- */
- virtual void setBaseURI(const DOMString &val)
- { baseURI = val; }
-
- /**
- *
- */
- virtual DOMString getEncoding() const
- { return encoding; }
-
- /**
- *
- */
- virtual void setEncoding(const DOMString &val)
- { encoding = val; }
-
- /**
- *
- */
- virtual bool getCertifiedText() const
- { return certifiedText; }
-
- /**
- *
- */
- virtual void setCertifiedText(bool val)
- { certifiedText = val; }
-
- //##################
- //# Non-API methods
- //##################
-
-
- /**
- *
- */
- LSInput()
- {
- characterStream = NULL;
- byteStream = NULL;
- stringData = "";
- systemId = "";
- publicId = "";
- baseURI = "";
- encoding = "";
- certifiedText = false;
- }
-
-
-
- /**
- *
- */
- LSInput(const LSInput &other)
- {
- characterStream = other.characterStream;
- byteStream = other.byteStream;
- stringData = other.stringData;
- systemId = other.systemId;
- publicId = other.publicId;
- baseURI = other.baseURI;
- encoding = other.encoding;
- certifiedText = other.certifiedText;
- }
-
- /**
- *
- */
- virtual ~LSInput()
- {}
-
-private:
-
- LSReader *characterStream;
- LSInputStream *byteStream;
- DOMString stringData;
- DOMString systemId;
- DOMString publicId;
- DOMString baseURI;
- DOMString encoding;
- bool certifiedText;
-
-
-};
-
-
-/*#########################################################################
-## LSParser
-#########################################################################*/
-
-/**
- *
- */
-class LSParser
-{
-public:
-
-
- /**
- *
- */
- virtual DOMConfiguration *getDomConfig()
- { return NULL; }
-
- /**
- *
- */
- virtual LSParserFilter *getFilter()
- { return filter; }
-
- /**
- *
- */
- virtual void setFilter(const LSParserFilter *val)
- { filter = const_cast<LSParserFilter *>(val); }
-
- /**
- *
- */
- virtual bool getAsync()
- { return false; }
-
- /**
- *
- */
- virtual bool getBusy()
- { return false; }
-
- /**
- *
- */
- virtual DocumentPtr parse(const LSInput &/*input*/)
- throw(dom::DOMException, LSException)
- { return NULL; }
-
-
- /**
- *
- */
- virtual DocumentPtr parseURI(const DOMString &/*uri*/)
- throw(dom::DOMException, LSException)
- { return NULL; }
-
- typedef enum
- {
- ACTION_APPEND_AS_CHILDREN = 1,
- ACTION_REPLACE_CHILDREN = 2,
- ACTION_INSERT_BEFORE = 3,
- ACTION_INSERT_AFTER = 4,
- ACTION_REPLACE = 5
- } ActionTypes;
-
-
- /**
- *
- */
- virtual NodePtr parseWithContext(const LSInput &/*input*/,
- const NodePtr /*contextArg*/,
- unsigned short /*action*/)
- throw(dom::DOMException, LSException)
- { return NULL; }
-
- /**
- *
- */
- virtual void abort()
- {}
-
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- LSParser()
- {
- filter = NULL;
- }
-
- /**
- *
- */
- LSParser(const LSParser &other)
- {
- filter = other.filter;
- }
-
- /**
- *
- */
- virtual ~LSParser() {}
-
-protected:
-
- LSParserFilter *filter;
-};
-
-
-
-/*#########################################################################
-## LSResourceResolver
-#########################################################################*/
-
-/**
- *
- */
-class LSResourceResolver
-{
-public:
-
- /**
- *
- */
- virtual LSInput resolveResource(const DOMString &/*type*/,
- const DOMString &/*namespaceURI*/,
- const DOMString &/*publicId*/,
- const DOMString &/*systemId*/,
- const DOMString &/*baseURI*/)
- {
- LSInput input;
- //do something
- return input;
- }
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- LSResourceResolver() {}
-
- /**
- *
- */
- LSResourceResolver(const LSResourceResolver &/*other*/)
- {
- }
-
- /**
- *
- */
- virtual ~LSResourceResolver() {}
-
-
-
-};
-
-/*#########################################################################
-## LSOutput
-#########################################################################*/
-
-/**
- *
- */
-class LSOutput
-{
-public:
-
- /**
- *
- */
- virtual LSWriter *getCharacterStream() const
- { return characterStream; }
-
- /**
- *
- */
- virtual void setCharacterStream(const LSWriter *val)
- { characterStream = (LSWriter *)val; }
-
- /**
- *
- */
- virtual LSOutputStream *getByteStream() const
- { return byteStream; }
-
- /**
- *
- */
- virtual void setByteStream(const LSOutputStream *val)
- { byteStream = (LSOutputStream *) val; }
-
- /**
- *
- */
- virtual DOMString getSystemId() const
- { return systemId; }
-
- /**
- *
- */
- virtual void setSystemId(const DOMString &val)
- { systemId = val; }
-
- /**
- *
- */
- virtual DOMString getEncoding() const
- { return encoding; }
-
- /**
- *
- */
- virtual void setEncoding(const DOMString &val)
- { encoding = val; }
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- LSOutput()
- {
- characterStream = NULL;
- byteStream = NULL;
- systemId = "";
- encoding = "";
- }
-
-
- /**
- *
- */
- LSOutput(const LSOutput &other)
- {
- characterStream = other.characterStream;
- byteStream = other.byteStream;
- systemId = other.systemId;
- encoding = other.encoding;
- }
-
- /**
- *
- */
- virtual ~LSOutput()
- {}
-
-private:
-
- LSWriter *characterStream;
- LSOutputStream *byteStream;
- DOMString systemId;
- DOMString encoding;
-
-};
-
-
-/*#########################################################################
-## LSSerializer
-#########################################################################*/
-
-/**
- *
- */
-class LSSerializer
-{
-public:
-
- /**
- *
- */
- virtual DOMConfiguration *getDomConfig()
- { return NULL; }
-
- /**
- *
- */
- virtual DOMString getNewLine()
- { return newLine; }
- /**
- *
- */
- virtual void setNewLine(const DOMString &val)
- { newLine = val; }
-
- /**
- *
- */
- virtual LSSerializerFilter *getFilter()
- { return filter; }
-
- /**
- *
- */
- virtual void setFilter(const LSSerializerFilter *val)
- { filter = const_cast<LSSerializerFilter *>(val); }
-
- /**
- *
- */
- virtual bool write(const NodePtr /*nodeArg*/,
- const LSOutput &/*destination*/)
- throw (LSException)
- { return false; }
-
- /**
- *
- */
- virtual bool writeToURI(const NodePtr /*nodeArg*/,
- const DOMString &/*uri*/)
- throw(LSException)
- { return false; }
-
- /**
- *
- */
- virtual DOMString writeToString(const NodePtr /*nodeArg*/)
- throw(dom::DOMException, LSException)
- {
- DOMString str;
- return str;
- }
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- LSSerializer()
- {
- filter = NULL;
- newLine = "\n";
- }
-
- /**
- *
- */
- LSSerializer(const LSSerializer &other)
- {
- filter = other.filter;
- newLine = other.newLine;
- }
-
- /**
- *
- */
- virtual ~LSSerializer() {}
-
-protected:
-
- LSSerializerFilter *filter;
- DOMString newLine;
-
-};
-
-/*#########################################################################
-## LSProgressEvent
-#########################################################################*/
-
-/**
- *
- */
-class LSProgressEvent : virtual public events::Event
-{
-public:
-
- /**
- *
- */
- virtual LSInput &getInput()
- {
- return input;
- }
-
- /**
- *
- */
- virtual unsigned long getPosition()
- { return position; }
-
- /**
- *
- */
- virtual unsigned long getTotalSize()
- { return totalSize; }
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- LSProgressEvent(const LSInput &inputArg, unsigned long positionArg,
- unsigned long totalSizeArg) : input((LSInput &)inputArg)
- {
- position = positionArg;
- totalSize = totalSizeArg;
- }
-
-
- /**
- *
- */
- LSProgressEvent(const LSProgressEvent &other)
- : events::Event(other) , input(other.input)
- {
- position = other.position;
- totalSize = other.totalSize;
- }
-
-
- /**
- *
- */
- virtual ~LSProgressEvent() {}
-
-protected:
-
- LSInput &input;
- unsigned long position;
- unsigned long totalSize;
-
-};
-
-/*#########################################################################
-## LSLoadEvent
-#########################################################################*/
-
-/**
- *
- */
-class LSLoadEvent : public events::Event
-{
-public:
-
- /**
- *
- */
- virtual DocumentPtr getNewDocument()
- { return newDocument; }
-
- /**
- *
- */
- virtual LSInput &getInput()
- { return input; }
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- LSLoadEvent(const LSInput &inputArg,
- const DocumentPtr docArg)
- : input((LSInput &)inputArg)
- { newDocument = docArg; }
-
- /**
- *
- */
- LSLoadEvent(const LSLoadEvent &other)
- : events::Event(other) , input(other.input)
- {
- newDocument = other.newDocument;
- }
-
- /**
- *
- */
- virtual ~LSLoadEvent() {}
-
-protected:
-
- DocumentPtr newDocument;
-
- LSInput &input;
-
-
-};
-
-
-
-/*#########################################################################
-## LSSerializerFilter
-#########################################################################*/
-
-/**
- *
- */
-class LSSerializerFilter : virtual public traversal::NodeFilter
-{
-public:
-
- /**
- *
- */
- virtual unsigned long getWhatToShow() =0;
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~LSSerializerFilter() {}
-};
-
-
-
-
-/*#########################################################################
-## DOMImplementationLS
-#########################################################################*/
-
-/**
- *
- */
-class DOMImplementationLS
-{
-public:
-
- typedef enum
- {
- MODE_SYNCHRONOUS = 1,
- MODE_ASYNCHRONOUS = 2
- } DOMImplementationLSMode;
-
- /**
- * To use, for this and subclasses:
- * LSParser &parser = myImplementation.createLSParser(mode, schemaType);
- */
- virtual LSParser &createLSParser(unsigned short mode,
- const DOMString &schemaType)
- throw (dom::DOMException) =0;
-
- /**
- * To use, for this and subclasses:
- * LSSerializer &serializer = myImplementation.createLSSerializer();
- *
- */
- virtual LSSerializer &createLSSerializer() =0;
-
- /**
- *
- */
- virtual LSInput createLSInput() =0;
-
- /**
- *
- */
- virtual LSOutput createLSOutput() =0;
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~DOMImplementationLS() {}
-};
-
-
-
-
-} //namespace ls
-} //namespace dom
-} //namespace w3c
-} //namespace org
-
-
-#endif // SEEN_LS_H
-
-/*#########################################################################
-## E N D O F F I L E
-#########################################################################*/
-
diff --git a/src/dom/lsimpl.cpp b/src/dom/lsimpl.cpp
deleted file mode 100644
index d4da0d5ce..000000000
--- a/src/dom/lsimpl.cpp
+++ /dev/null
@@ -1,441 +0,0 @@
-/*
- * Phoebe DOM Implementation.
- *
- * This is a C++ approximation of the W3C DOM model, which follows
- * fairly closely the specifications in the various .idl files, copies of
- * which are provided for reference. Most important is this one:
- *
- * http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/idl-definitions.html
- *
- * Authors:
- * Bob Jamison
- *
- * Copyright (C) 2005-2007 Bob Jamison
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#include "domimpl.h"
-#include "events.h"
-#include "traversal.h"
-#include "lsimpl.h"
-
-#include <stdarg.h>
-#include <cstdio>
-
-namespace org
-{
-namespace w3c
-{
-namespace dom
-{
-namespace ls
-{
-
-
-
-/*#########################################################################
-## LSParserImpl
-#########################################################################*/
-
-
-/**
- *
- */
-bool LSParserImpl::getBusy()
-{
- return false;
-}
-
-/**
- *
- */
-DocumentPtr LSParserImpl::parse(const LSInput &input)
- throw(dom::DOMException, LSException)
-{
-
- //#### Check the various inputs of 'input' in order, according
- //# to the L&S spec
- LSReader *lsreader = input.getCharacterStream();
- if (lsreader)
- {
- DOMString buf;
- while (true)
- {
- int ch = lsreader->get();
- if (ch < 0)
- break;
- buf.push_back((XMLCh)ch);
- }
- XmlReader reader;
- DocumentPtr doc = reader.parse(buf);
- return doc;
- }
-
- LSInputStream *inputStream = input.getByteStream();
- if (inputStream)
- {
- DOMString buf;
- while (true)
- {
- int ch = inputStream->get();
- if (ch < 0)
- break;
- buf.push_back((XMLCh)ch);
- }
- XmlReader reader;
- DocumentPtr doc = reader.parse(buf);
- return doc;
- }
-
- DOMString stringData = input.getStringData();
- if (stringData.size() > 0)
- {
- XmlReader reader;
- DocumentPtr doc = reader.parse(stringData);
- return doc;
- }
-
- DOMString systemId = input.getSystemId();
- if (systemId.size() > 0)
- {
- //lets not do this yet
- return NULL;
- }
-
- DOMString publicId = input.getPublicId();
- if (publicId.size() > 0)
- {
- //lets not do this yet
- return NULL;
- }
-
- return NULL;
-}
-
-
-/**
- *
- */
-DocumentPtr LSParserImpl::parseURI(const DOMString &/*uri*/)
- throw(dom::DOMException, LSException)
-{
- return NULL;
-}
-
- /**
- *
- */
-NodePtr LSParserImpl::parseWithContext(const LSInput &/*input*/,
- const NodePtr /*contextArg*/,
- unsigned short /*action*/)
- throw(dom::DOMException, LSException)
-{
- return NULL;
-}
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-
-
-
-
-
-/*#########################################################################
-## LSSerializerImpl
-#########################################################################*/
-
-
-/**
- *
- */
-bool LSSerializerImpl::write(
- const NodePtr nodeArg,
- const LSOutput &destination)
- throw (LSException)
-{
- outbuf = "";
- indent = 0;
-
- writeNode(nodeArg);
-
- //## Check in order specified in the L&S specs
- LSWriter *writer = destination.getCharacterStream();
- if (writer)
- {
- for (unsigned int i=0 ; i<outbuf.size() ; i++)
- {
- int ch = outbuf[i];
- writer->put(ch);
- }
- return true;
- }
-
- LSOutputStream *outputStream = destination.getByteStream();
- if (outputStream)
- {
- for (unsigned int i=0 ; i<outbuf.size() ; i++)
- {
- int ch = outbuf[i];
- writer->put(ch);
- }
- return true;
- }
-
- DOMString systemId = destination.getSystemId();
- if (systemId.size() > 0)
- {
- //DO SOMETHING
- return true;
- }
-
- return false;
-}
-
-/**
- *
- */
-bool LSSerializerImpl::writeToURI(const NodePtr nodeArg,
- const DOMString &uriArg)
- throw(LSException)
-{
- outbuf = "";
- indent = 0;
-
- writeNode(nodeArg);
-
- DOMString uri = uriArg;
- char *fileName = (char *) uri.c_str(); //temporary hack
- FILE *f = fopen(fileName, "wb");
- if (!f)
- return false;
- for (unsigned int i=0 ; i<outbuf.size() ; i++)
- {
- int ch = outbuf[i];
- fputc(ch, f);
- }
- fclose(f);
- return false;
-}
-
-/**
- *
- */
-DOMString LSSerializerImpl::writeToString(const NodePtr nodeArg)
- throw(dom::DOMException, LSException)
-{
- outbuf = "";
- indent = 0;
-
- writeNode(nodeArg);
- return outbuf;
-}
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-/**
- *
- */
-void LSSerializerImpl::spaces()
-{
- for (int i=0 ; i<indent ; i++)
- {
- outbuf.push_back(' ');
- }
-}
-
-/**
- *
- */
-void LSSerializerImpl::po(char const *fmt, ...)
-{
- char str[257];
- va_list args;
- va_start(args, fmt);
- vsnprintf(str, 256, fmt, args);
- va_end(args) ;
-
- outbuf.append(str);
-}
-
-
-void LSSerializerImpl::pos(const DOMString &str)
-{
- outbuf.append(str);
-}
-
-void LSSerializerImpl::poxml(const DOMString &str)
-{
- for (unsigned int i=0 ; i<str.size() ; i++)
- {
- XMLCh ch = (XMLCh) str[i];
- if (ch == '&')
- outbuf.append("&ampr;");
- else if (ch == '<')
- outbuf.append("&lt;");
- else if (ch == '>')
- outbuf.append("&gt;");
- else if (ch == '"')
- outbuf.append("&quot;");
- else if (ch == '\'')
- outbuf.append("&apos;");
- else
- outbuf.push_back(ch);
- }
-}
-
-/**
- *
- */
-void LSSerializerImpl::writeNode(const NodePtr nodeArg)
-{
- NodePtr node = nodeArg;
-
- int type = node->getNodeType();
-
- switch (type)
- {
-
- //#############
- //# DOCUMENT
- //#############
- case Node::DOCUMENT_NODE:
- {
- DocumentPtr doc = dynamic_cast<Document *>(node.get());
- writeNode(doc->getDocumentElement());
- }
- break;
-
- //#############
- //# TEXT
- //#############
- case Node::TEXT_NODE:
- {
- poxml(node->getNodeValue());
- }
- break;
-
-
- //#############
- //# CDATA
- //#############
- case Node::CDATA_SECTION_NODE:
- {
- pos("<![CDATA[");
- poxml(node->getNodeValue());
- pos("]]>");
- }
- break;
-
-
- //#############
- //# ELEMENT
- //#############
- case Node::ELEMENT_NODE:
- {
-
- indent+=2;
-
- NamedNodeMap attributes = node->getAttributes();
- int nrAttrs = attributes.getLength();
-
- //### Start open tag
- spaces();
- po("<");
- pos(node->getNodeName());
- //if (nrAttrs>0)
- // pos(newLine);
-
- //### Attributes
- for (int i=0 ; i<nrAttrs ; i++)
- {
- NodePtr attr = attributes.item(i);
- spaces();
- pos(attr->getNodeName());
- po("=\"");
- pos(attr->getNodeValue());
- po("\"");
- //pos(newLine);
- }
-
- //### Finish open tag
- //if (nrAttrs>0)
- // spaces();
- po(">");
- //pos(newLine);
-
- //### Contents
- //spaces();
- pos(node->getNodeValue());
-
- //### Children
- for (NodePtr child = node->getFirstChild() ;
- child.get() ;
- child=child->getNextSibling())
- {
- writeNode(child);
- }
-
- //### Close tag
- //spaces();
- po("</");
- pos(node->getNodeName());
- po(">");
- pos(newLine);
-
- indent-=2;
- }
- break;
-
- }//switch
-
-}
-
-
-
-
-
-
-
-
-
-
-} //namespace ls
-} //namespace dom
-} //namespace w3c
-} //namespace org
-
-
-
-
-
-/*#########################################################################
-## E N D O F F I L E
-#########################################################################*/
-
diff --git a/src/dom/lsimpl.h b/src/dom/lsimpl.h
deleted file mode 100644
index fcfd42a4b..000000000
--- a/src/dom/lsimpl.h
+++ /dev/null
@@ -1,390 +0,0 @@
-#ifndef SEEN_LSIMPL_H
-#define SEEN_LSIMPL_H
-/**
- * @file
- * Phoebe DOM Implementation.
- *
- * This is a C++ approximation of the W3C DOM model, which follows
- * fairly closely the specifications in the various .idl files, copies of
- * which are provided for reference. Most important is this one:
- *
- * http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/idl-definitions.html
- */
-/*
- * Authors:
- * Bob Jamison
- *
- * Copyright (C) 2005-2007 Bob Jamison
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#include "domimpl.h"
-#include "events.h"
-#include "traversal.h"
-#include "ls.h"
-
-
-#include "xmlreader.h"
-
-namespace org
-{
-namespace w3c
-{
-namespace dom
-{
-namespace ls
-{
-
-
-/*#########################################################################
-## LSParserImpl
-#########################################################################*/
-
-/**
- *
- */
-class LSParserImpl : virtual public LSParser
-{
-public:
-
- typedef enum
- {
- PARSE_AS_DATA = 0,
- PARSE_AS_DOCUMENT = 1
- } ParsingModes;
-
- /**
- *
- */
- virtual bool getBusy();
-
- /**
- *
- */
- virtual DocumentPtr parse(const LSInput &input)
- throw(dom::DOMException, LSException);
-
-
- /**
- *
- */
- virtual DocumentPtr parseURI(const DOMString &uri)
- throw(dom::DOMException, LSException);
-
- /**
- *
- */
- virtual NodePtr parseWithContext(const LSInput &input,
- const NodePtr contextArg,
- unsigned short action)
- throw(dom::DOMException, LSException);
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- LSParserImpl() :
- reader(),
- filter(0)
- {}
-
- /**
- *
- */
- LSParserImpl(const LSParserImpl &other) :
- LSParser(other),
- reader(),
- filter(0)
- {}
-
- /**
- *
- */
- virtual ~LSParserImpl()
- {}
-
-
-
- //##################
- //# Internals
- //##################
-
-
-protected:
-
- XmlReader reader;
- LSParserFilter *filter;
-
-};
-
-
-
-
-/*#########################################################################
-## LSParserFilterImpl
-#########################################################################*/
-
-/**
- *
- */
-class LSParserFilterImpl : virtual public LSParserFilter
-{
-public:
-
- /**
- *
- */
- virtual unsigned short startElement(const ElementPtr /*elementArg*/)
- { return 0; }
-
- /**
- *
- */
- virtual unsigned short acceptNode(const NodePtr /*nodeArg*/)
- { return 0; }
-
- /**
- *
- */
- virtual unsigned long getWhatToShow()
- { return 0; }
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~LSParserFilterImpl()
- {}
-
-
-
-};
-
-/*#########################################################################
-## LSSerializerImpl
-#########################################################################*/
-
-/**
- *
- */
-class LSSerializerImpl : virtual public LSSerializer
-{
-public:
-
-
- /**
- *
- */
- virtual bool write(const NodePtr nodeArg,
- const LSOutput &destination)
- throw (LSException);
-
- /**
- *
- */
- virtual bool writeToURI(const NodePtr nodeArg,
- const DOMString &uri)
- throw(LSException);
-
- /**
- *
- */
- virtual DOMString writeToString(const NodePtr nodeArg)
- throw(dom::DOMException, LSException);
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- LSSerializerImpl() :
- outbuf(),
- indent(0),
- domConfig(0),
- filter(0)
- {
- }
-
- /**
- *
- */
- virtual ~LSSerializerImpl()
- {}
-
-
-
-protected:
-
- /**
- *
- */
- void writeNode(const NodePtr nodeArg);
-
-private:
-
- void spaces();
-
- void po(char const *fmt, ...)
- #ifdef G_GNUC_PRINTF
- G_GNUC_PRINTF(2, 3)
- #endif
- ;
-
- void pos(const DOMString &str);
-
- void poxml(const DOMString &str);
-
- DOMString outbuf;
-
- int indent;
-
- DOMConfiguration *domConfig;
-
- LSSerializerFilter *filter;
-
-
-
-};
-
-
-
-
-/*#########################################################################
-## LSSerializerFilterImpl
-#########################################################################*/
-
-/**
- *
- */
-class LSSerializerFilterImpl : virtual public LSSerializerFilter
-{
-public:
-
- /**
- *
- */
- virtual unsigned long getWhatToShow()
- { return 0; }
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~LSSerializerFilterImpl()
- {}
-};
-
-
-
-/*#########################################################################
-## DOMImplementationLSImpl
-#########################################################################*/
-
-/**
- *
- */
-class DOMImplementationLSImpl : virtual public DOMImplementationLS
-{
-public:
-
- /**
- *
- */
- virtual LSParser &createLSParser(unsigned short /*mode*/,
- const DOMString &/*schemaType*/)
- throw (dom::DOMException)
- {
- LSParserImpl newParser;
- parser = newParser;
- return parser;
- }
-
-
- /**
- *
- */
- virtual LSSerializer &createLSSerializer()
- {
- LSSerializerImpl newSerializer;
- serializer = newSerializer;
- return serializer;
- }
-
-
- /**
- *
- */
- virtual LSInput createLSInput()
- {
- LSInput input;
- return input;
- }
-
- /**
- *
- */
- virtual LSOutput createLSOutput()
- {
- LSOutput output;
- return output;
- }
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~DOMImplementationLSImpl() {}
-
-protected:
-
- LSParserImpl parser;
- LSSerializerImpl serializer;
-};
-
-
-
-
-
-
-} //namespace ls
-} //namespace dom
-} //namespace w3c
-} //namespace org
-
-
-
-
-#endif // SEEN_LSIMPL_H
-
-/*#########################################################################
-## E N D O F F I L E
-#########################################################################*/
-
diff --git a/src/dom/makefile.in b/src/dom/makefile.in
deleted file mode 100644
index b505975a6..000000000
--- a/src/dom/makefile.in
+++ /dev/null
@@ -1,17 +0,0 @@
-# Convenience stub makefile to call the real Makefile.
-
-@SET_MAKE@
-
-OBJEXT = @OBJEXT@
-
-# Explicit so that it's the default rule.
-all:
- cd .. && $(MAKE) dom/all
-
-clean %.a %.$(OBJEXT):
- cd .. && $(MAKE) dom/$@
-
-.PHONY: all clean
-
-.SUFFIXES:
-.SUFFIXES: .a .$(OBJEXT)
diff --git a/src/dom/mingwenv.bat b/src/dom/mingwenv.bat
deleted file mode 100644
index 48e8bf096..000000000
--- a/src/dom/mingwenv.bat
+++ /dev/null
@@ -1,2 +0,0 @@
-set PATH=c:\mingw\bin;%PATH%
-set RM=del
diff --git a/src/dom/prop-css.cpp b/src/dom/prop-css.cpp
deleted file mode 100644
index 9922b4935..000000000
--- a/src/dom/prop-css.cpp
+++ /dev/null
@@ -1,1161 +0,0 @@
-/*
- * Phoebe DOM Implementation.
- *
- * This is a C++ approximation of the W3C DOM model, which follows
- * fairly closely the specifications in the various .idl files, copies of
- * which are provided for reference. Most important is this one:
- *
- * http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/idl-definitions.html
- *
- * Authors:
- * Bob Jamison
- *
- * Copyright (C) 2005 Bob Jamison
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- */
-#include <stdio.h>
-
-
-struct CssProp_def
-{
- const char *name;
- const char *values;
- const char *defaultValue;
- const char *appliesTo;
- bool inherited;
- const char *percentages;
- const char *mediaGroups;
-};
-
-typedef struct CssProp_def CssProp;
-
-static CssProp cssProps[] =
-{
-
-{
-"azimuth",
-"<angle> | [[ left-side | far-left | left | center-left | center | center-right | right | far-right | right-side ] || behind ] | leftwards | rightwards | inherit",
-"center",
-"",
-true,
-"",
-"aural"
-},
-
-
-{
-"background-attachment",
-"scroll | fixed | inherit",
-"scroll",
-"",
-false,
-"",
-"visual"
-},
-
-
-{
-"background-color",
-"<color> | transparent | inherit",
-"transparent",
-"",
-false,
-"",
-"visual"
-},
-
-
-{
-"background-image",
-"<uri> | none | inherit",
-"none",
-"",
-false,
-"",
-"visual"
-},
-
-
-{
-"background-position",
-"[ [ <percentage> | <length> | left | center | right ] [ <percentage> | <length> | top | center | bottom ]? ] | [ [ left | center | right ] || [ top | center | bottom ] ] | inherit",
-"0% 0%",
-"",
-false,
-"refer to the size of the box itself",
-"visual"
-},
-
-
-{
-"background-repeat",
-"repeat | repeat-x | repeat-y | no-repeat | inherit",
-"repeat",
-"",
-false,
-"",
-"visual"
-},
-
-
-{
-"background",
-"['background-color' || 'background-image' || 'background-repeat' || 'background-attachment' || 'background-position'] | inherit",
-"see individual properties",
-"",
-false,
-"allowed on 'background-position",
-"visual"
-},
-
-
-{
-"border-collapse",
-"collapse | separate | inherit",
-"separate",
-"table' and 'inline-table' elements",
-true,
-"",
-"visual"
-},
-
-
-{
-"border-color",
-"[ <color> | transparent ]{1,4} | inherit",
-"see individual properties",
-"",
-false,
-"",
-"visual"
-},
-
-
-{
-"border-spacing",
-"<length> <length>? | inherit",
-"0",
-"table' and 'inline-table' elements",
-true,
-"",
-"visual"
-},
-
-
-{
-"border-style",
-"<border-style>{1,4} | inherit",
-"see individual properties",
-"",
-false,
-"",
-"visual"
-},
-
-
-{
-"border-top' 'border-right' 'border-bottom' 'border-left",
-"[ <border-width> || <border-style> || 'border-top-color' ] | inherit",
-"see individual properties",
-"",
-false,
-"",
-"visual"
-},
-
-
-{
-"border-top-color' 'border-right-color' 'border-bottom-color' 'border-left-color",
-"<color> | transparent | inherit",
-"the value of the 'color' property",
-"",
-false,
-"",
-"visual"
-},
-
-
-{
-"border-top-style' 'border-right-style' 'border-bottom-style' 'border-left-style",
-"<border-style> | inherit",
-"none",
-"",
-false,
-"",
-"visual"
-},
-
-
-{
-"border-top-width' 'border-right-width' 'border-bottom-width' 'border-left-width",
-"<border-width> | inherit",
-"medium",
-"",
-false,
-"",
-"visual"
-},
-
-
-{
-"border-width",
-"<border-width>{1,4} | inherit",
-"see individual properties",
-"",
-false,
-"",
-"visual"
-},
-
-
-{
-"border",
-"[ <border-width> || <border-style> || 'border-top-color' ] | inherit",
-"see individual properties",
-"",
-false,
-"",
-"visual"
-},
-
-
-{
-"bottom",
-"<length> | <percentage> | auto | inherit",
-"auto",
-"positioned elements",
-false,
-"refer to height of containing block",
-"visual"
-},
-
-
-{
-"caption-side",
-"top | bottom | inherit",
-"top",
-"table-caption' elements",
-true,
-"",
-"visual"
-},
-
-
-{
-"clear",
-"none | left | right | both | inherit",
-"none",
-"block-level elements",
-false,
-"",
-"visual"
-},
-
-
-{
-"clip",
-"<shape> | auto | inherit",
-"auto",
-"absolutely positioned elements",
-false,
-"",
-"visual"
-},
-
-
-{
-"color",
-"<color> | inherit",
-"depends on user agent",
-"",
-true,
-"",
-"visual"
-},
-
-
-{
-"content",
-"normal | [ <string> | <uri> | <counter> | attr(<identifier>) | open-quote | close-quote | no-open-quote | no-close-quote ]+ | inherit",
-"normal",
-":before and :after pseudo-elements",
-false,
-"",
-"all "
-},
-
-
-{
-"counter-increment",
-"[ <identifier> <integer>? ]+ | none | inherit",
-"none",
-"",
-false,
-"",
-"all "
-},
-
-
-{
-"counter-reset",
-"[ <identifier> <integer>? ]+ | none | inherit",
-"none",
-"",
-false,
-"",
-"all "
-},
-
-
-{
-"cue-after",
-"<uri> | none | inherit",
-"none",
-"",
-false,
-"",
-"aural"
-},
-
-
-{
-"cue-before",
-"<uri> | none | inherit",
-"none",
-"",
-false,
-"",
-"aural"
-},
-
-
-{
-"cue",
-"[ 'cue-before' || 'cue-after' ] | inherit",
-"see individual properties",
-"",
-false,
-"",
-"aural"
-},
-
-
-{
-"cursor",
-"[ [<uri> ,]* [ auto | crosshair | default | pointer | move | e-resize | ne-resize | nw-resize | n-resize | se-resize | sw-resize | s-resize | w-resize | text | wait | help | progress ] ] | inherit",
-"auto",
-"",
-true,
-"",
-"visual, interactive "
-},
-
-
-{
-"direction",
-"ltr | rtl | inherit",
-"ltr",
-"all elements, but see prose",
-true,
-"",
-"visual"
-},
-
-
-{
-"display",
-"inline | block | list-item | run-in | inline-block | table | inline-table | table-row-group | table-header-group | table-footer-group | table-row | table-column-group | table-column | table-cell | table-caption | none | inherit",
-"inline",
-"",
-false,
-"",
-"all "
-},
-
-
-{
-"elevation",
-"<angle> | below | level | above | higher | lower | inherit",
-"level",
-"",
-true,
-"",
-"aural"
-},
-
-
-{
-"empty-cells",
-"show | hide | inherit",
-"show",
-"table-cell' elements",
-true,
-"",
-"visual"
-},
-
-
-{
-"float",
-"left | right | none | inherit",
-"none",
-"all, but see 9.7",
-false,
-"",
-"visual"
-},
-
-
-{
-"font-family",
-"[[ <family-name> | <generic-family> ] [, <family-name>| <generic-family>]* ] | inherit",
-"depends on user agent",
-"",
-true,
-"",
-"visual"
-},
-
-
-{
-"font-size",
-"<absolute-size> | <relative-size> | <length> | <percentage> | inherit",
-"medium",
-"",
-true,
-"refer to parent element's font size",
-"visual"
-},
-
-
-{
-"font-style",
-"normal | italic | oblique | inherit",
-"normal",
-"",
-true,
-"",
-"visual"
-},
-
-
-{
-"font-variant",
-"normal | small-caps | inherit",
-"normal",
-"",
-true,
-"",
-"visual"
-},
-
-
-{
-"font-weight",
-"normal | bold | bolder | lighter | 100 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900 | inherit",
-"normal",
-"",
-true,
-"",
-"visual"
-},
-
-
-{
-"font",
-"[ [ 'font-style' || 'font-variant' || 'font-weight' ]? 'font-size' [ / 'line-height' ]? 'font-family' ] | caption | icon | menu | message-box | small-caption | status-bar | inherit",
-"see individual properties",
-"",
-true,
-"see individual properties",
-"visual"
-},
-
-
-{
-"height",
-"<length> | <percentage> | auto | inherit",
-"auto",
-"all elements but non-replaced inline elements, table columns, and column groups",
-false,
-"see prose",
-"visual"
-},
-
-
-{
-"left",
-"<length> | <percentage> | auto | inherit",
-"auto",
-"positioned elements",
-false,
-"refer to width of containing block",
-"visual"
-},
-
-
-{
-"letter-spacing",
-"normal | <length> | inherit",
-"normal",
-"",
-true,
-"",
-"visual"
-},
-
-
-{
-"line-height",
-"normal | <number> | <length> | <percentage> | inherit",
-"normal",
-"",
-true,
-"refer to the font size of the element itself",
-"visual"
-},
-
-
-{
-"list-style-image",
-"<uri> | none | inherit",
-"none",
-"elements with 'display: list-item",
-true,
-"",
-"visual"
-},
-
-
-{
-"list-style-position",
-"inside | outside | inherit",
-"outside",
-"elements with 'display: list-item",
-true,
-"",
-"visual"
-},
-
-
-{
-"list-style-type",
-"disc | circle | square | decimal | decimal-leading-zero | lower-roman | upper-roman | lower-greek | lower-latin | upper-latin | armenian | georgian | none | inherit",
-"disc",
-"elements with 'display: list-item",
-true,
-"",
-"visual"
-},
-
-
-{
-"list-style",
-"[ 'list-style-type' || 'list-style-position' || 'list-style-image' ] | inherit",
-"see individual properties",
-"elements with 'display: list-item",
-true,
-"",
-"visual"
-},
-
-
-{
-"margin-right' 'margin-left",
-"<margin-width> | inherit",
-"0",
-"all elements except elements with table display types other than table and inline-table",
-false,
-"refer to width of containing block",
-"visual"
-},
-
-
-{
-"margin-top' 'margin-bottom",
-"<margin-width> | inherit",
-"0",
-"all elements except elements with table display types other than table and inline-table",
-false,
-"refer to width of containing block",
-"visual"
-},
-
-
-{
-"margin",
-"<margin-width>{1,4} | inherit",
-"see individual properties",
-"all elements except elements with table display types other than table and inline-table",
-false,
-"refer to width of containing block",
-"visual"
-},
-
-
-{
-"max-height",
-"<length> | <percentage> | none | inherit",
-"none",
-"all elements except non-replaced inline elements and table elements",
-false,
-"see prose",
-"visual"
-},
-
-
-{
-"max-width",
-"<length> | <percentage> | none | inherit",
-"none",
-"all elements except non-replaced inline elements and table elements",
-false,
-"refer to width of containing block",
-"visual"
-},
-
-
-{
-"min-height",
-"<length> | <percentage> | inherit",
-"0",
-"all elements except non-replaced inline elements and table elements",
-false,
-"see prose",
-"visual"
-},
-
-
-{
-"min-width",
-"<length> | <percentage> | inherit",
-"0",
-"all elements except non-replaced inline elements and table elements",
-false,
-"refer to width of containing block",
-"visual"
-},
-
-
-{
-"orphans",
-"<integer> | inherit",
-"2",
-"block-level elements",
-true,
-"",
-"visual, paged "
-},
-
-
-{
-"outline-color",
-"<color> | invert | inherit",
-"invert",
-"",
-false,
-"",
-"visual, interactive "
-},
-
-
-{
-"outline-style",
-"<border-style> | inherit",
-"none",
-"",
-false,
-"",
-"visual, interactive "
-},
-
-
-{
-"outline-width",
-"<border-width> | inherit",
-"medium",
-"",
-false,
-"",
-"visual, interactive "
-},
-
-
-{
-"outline",
-"[ 'outline-color' || 'outline-style' || 'outline-width' ] | inherit",
-"see individual properties",
-"",
-false,
-"",
-"visual, interactive "
-},
-
-
-{
-"overflow",
-"visible | hidden | scroll | auto | inherit",
-"visible",
-"block-level and replaced elements, table cells, inline blocks",
-false,
-"",
-"visual"
-},
-
-
-{
-"padding-top' 'padding-right' 'padding-bottom' 'padding-left",
-"<padding-width> | inherit",
-"0",
-"all elements except elements with table display types other than table, inline-table, and table-cell",
-false,
-"refer to width of containing block",
-"visual"
-},
-
-
-{
-"padding",
-"<padding-width>{1,4} | inherit",
-"see individual properties",
-"all elements except elements with table display types other than table, inline-table, and table-cell",
-false,
-"refer to width of containing block",
-"visual"
-},
-
-
-{
-"page-break-after",
-"auto | always | avoid | left | right | inherit",
-"auto",
-"block-level elements",
-false,
-"",
-"visual, paged "
-},
-
-
-{
-"page-break-before",
-"auto | always | avoid | left | right | inherit",
-"auto",
-"block-level elements",
-false,
-"",
-"visual, paged "
-},
-
-
-{
-"page-break-inside",
-"avoid | auto | inherit",
-"auto",
-"block-level elements",
-true,
-"",
-"visual, paged "
-},
-
-
-{
-"pause-after",
-"<time> | <percentage> | inherit",
-"0",
-"",
-false,
-"see prose",
-"aural"
-},
-
-
-{
-"pause-before",
-"<time> | <percentage> | inherit",
-"0",
-"",
-false,
-"see prose",
-"aural"
-},
-
-
-{
-"pause",
-"[ [<time> | <percentage>]{1,2} ] | inherit",
-"see individual properties",
-"",
-false,
-"see descriptions of 'pause-before' and 'pause-after",
-"aural"
-},
-
-
-{
-"pitch-range",
-"<number> | inherit",
-"50",
-"",
-true,
-"",
-"aural"
-},
-
-
-{
-"pitch",
-"<frequency> | x-low | low | medium | high | x-high | inherit",
-"medium",
-"",
-true,
-"",
-"aural"
-},
-
-
-{
-"play-during",
-"<uri> [ mix || repeat ]? | auto | none | inherit",
-"auto",
-"",
-false,
-"",
-"aural"
-},
-
-
-{
-"position",
-"static | relative | absolute | fixed | inherit",
-"static",
-"",
-false,
-"",
-"visual"
-},
-
-
-{
-"quotes",
-"[<string> <string>]+ | none | inherit",
-"depends on user agent",
-"",
-true,
-"",
-"visual"
-},
-
-
-{
-"richness",
-"<number> | inherit",
-"50",
-"",
-true,
-"",
-"aural"
-},
-
-
-{
-"right",
-"<length> | <percentage> | auto | inherit",
-"auto",
-"positioned elements",
-false,
-"refer to width of containing block",
-"visual"
-},
-
-
-{
-"speak-header",
-"once | always | inherit",
-"once",
-"elements that have table header information",
-true,
-"",
-"aural"
-},
-
-
-{
-"speak-numeral",
-"digits | continuous | inherit",
-"continuous",
-"",
-true,
-"",
-"aural"
-},
-
-
-{
-"speak-punctuation",
-"code | none | inherit",
-"none",
-"",
-true,
-"",
-"aural"
-},
-
-
-{
-"speak",
-"normal | none | spell-out | inherit",
-"normal",
-"",
-true,
-"",
-"aural"
-},
-
-
-{
-"speech-rate",
-"<number> | x-slow | slow | medium | fast | x-fast | faster | slower | inherit",
-"medium",
-"",
-true,
-"",
-"aural"
-},
-
-
-{
-"stress",
-"<number> | inherit",
-"50",
-"",
-true,
-"",
-"aural"
-},
-
-
-{
-"table-layout",
-"auto | fixed | inherit",
-"auto",
-"table' and 'inline-table' elements",
-false,
-"",
-"visual"
-},
-
-
-{
-"text-align",
-"left | right | center | justify | inherit",
-"left' if 'direction' is 'ltr'; 'right' if 'direction' is 'rtl",
-"block-level elements, table cells and inline blocks",
-true,
-"",
-"visual"
-},
-
-
-{
-"text-decoration",
-"none | [ underline || overline || line-through || blink ] | inherit",
-"none",
-"",
-"no (see prose)",
-"",
-"visual"
-},
-
-
-{
-"text-indent",
-"<length> | <percentage> | inherit",
-"0",
-"block-level elements, table cells and inline blocks",
-true,
-"refer to width of containing block",
-"visual"
-},
-
-
-{
-"text-transform",
-"capitalize | uppercase | lowercase | none | inherit",
-"none",
-"",
-true,
-"",
-"visual"
-},
-
-
-{
-"top",
-"<length> | <percentage> | auto | inherit",
-"auto",
-"positioned elements",
-false,
-"refer to height of containing block",
-"visual"
-},
-
-
-{
-"unicode-bidi",
-"normal | embed | bidi-override | inherit",
-"normal",
-"all elements, but see prose",
-false,
-"",
-"visual"
-},
-
-
-{
-"vertical-align",
-"baseline | sub | super | top | text-top | middle | bottom | text-bottom | <percentage> | <length> | inherit",
-"baseline",
-"inline-level and 'table-cell' elements",
-false,
-"refer to the 'line-height' of the element itself",
-"visual"
-},
-
-
-{
-"visibility",
-"visible | hidden | collapse | inherit",
-"visible",
-"",
-true,
-"",
-"visual"
-},
-
-
-{
-"voice-family",
-"[[<specific-voice> | <generic-voice> ],]* [<specific-voice> | <generic-voice> ] | inherit",
-"depends on user agent",
-"",
-true,
-"",
-"aural"
-},
-
-
-{
-"volume",
-"<number> | <percentage> | silent | x-soft | soft | medium | loud | x-loud | inherit",
-"medium",
-"",
-true,
-"refer to inherited value",
-"aural"
-},
-
-
-{
-"white-space",
-"normal | pre | nowrap | pre-wrap | pre-line | inherit",
-"normal",
-"",
-true,
-"",
-"visual"
-},
-
-
-{
-"widows",
-"<integer> | inherit",
-"2",
-"block-level elements",
-true,
-"",
-"visual, paged"
-},
-
-
-{
-"width",
-"<length> | <percentage> | auto | inherit",
-"auto",
-"all elements but non-replaced inline elements, table rows, and row groups",
-false,
-"refer to width of containing block",
-"visual"
-},
-
-
-{
-"word-spacing",
-"normal | <length> | inherit",
-"normal",
-"",
-true,
-"",
-"visual"
-},
-
-
-{
-"z-index",
-"auto | <integer> | inherit",
-"auto",
-"positioned elements",
-false,
-"",
-"visual"
-},
-
-{
-NULL,
-NULL,
-NULL,
-NULL,
-false,
-NULL,
-NULL
-}
-
-};
-
-
-
-
-static bool printTable()
-{
- for (CssProp *prop=cssProps; prop->name ; prop++)
- {
- printf("#### Prop: %s ####\n", prop->name);
- printf("values : %s\n", prop->values);
- printf("defaultValue: %s\n", prop->defaultValue);
- printf("appliesTo : %s\n", prop->appliesTo);
- printf("inherited : %s\n", ( prop->inherited ? "true" : "false" ));
- printf("percentages : %s\n", prop->percentages);
- printf("groups : %s\n", prop->mediaGroups);
- printf("\n");
- }
- return true;
-}
-
-
-int main(int /*argc*/, char **/*argv*/)
-{
- printTable();
- return 0;
-}
diff --git a/src/dom/prop-css2.cpp b/src/dom/prop-css2.cpp
deleted file mode 100644
index 192295d1c..000000000
--- a/src/dom/prop-css2.cpp
+++ /dev/null
@@ -1,1305 +0,0 @@
-/*
- * Phoebe DOM Implementation.
- *
- * This is a C++ approximation of the W3C DOM model, which follows
- * fairly closely the specifications in the various .idl files, copies of
- * which are provided for reference. Most important is this one:
- *
- * http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/idl-definitions.html
- *
- * Authors:
- * Bob Jamison
- *
- * Copyright (C) 2005-2008 Bob Jamison
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- */
-#include <stdio.h>
-#include <string.h>
-
-typedef struct CssProp_def CssProp;
-
-typedef bool (*parsefunc)(CssProp *prop, char *propName, char *propVal);
-
-
-struct CssProp_def
-{
- parsefunc func;
- const char *name;
- const char *values;
- const char *defaultValue;
- const char *appliesTo;
- bool inherited;
- const char *percentages;
- const char *mediaGroups;
-};
-
-
-bool parseDefault(CssProp */*prop*/, char *propName, char *propVal)
-{
- printf("######## '%s:%s'\n", propName, propVal);
- return true;
-}
-
-
-
-static CssProp cssProps[] =
-{
-
-{
-parseDefault,
-"azimuth",
-"<angle> | [[ left-side | far-left | left | center-left | center | center-right | right | far-right | right-side ] || behind ] | leftwards | rightwards | inherit",
-"center",
-"",
-true,
-"",
-"aural"
-},
-
-
-{
-parseDefault,
-"background-attachment",
-"scroll | fixed | inherit",
-"scroll",
-"",
-false,
-"",
-"visual"
-},
-
-
-{
-parseDefault,
-"background-color",
-"<color> | transparent | inherit",
-"transparent",
-"",
-false,
-"",
-"visual"
-},
-
-
-{
-parseDefault,
-"background-image",
-"<uri> | none | inherit",
-"none",
-"",
-false,
-"",
-"visual"
-},
-
-
-{
-parseDefault,
-"background-position",
-"[ [ <percentage> | <length> | left | center | right ] [ <percentage> | <length> | top | center | bottom ]? ] | [ [ left | center | right ] || [ top | center | bottom ] ] | inherit",
-"0% 0%",
-"",
-false,
-"refer to the size of the box itself",
-"visual"
-},
-
-
-{
-parseDefault,
-"background-repeat",
-"repeat | repeat-x | repeat-y | no-repeat | inherit",
-"repeat",
-"",
-false,
-"",
-"visual"
-},
-
-
-{
-parseDefault,
-"background",
-"['background-color' || 'background-image' || 'background-repeat' || 'background-attachment' || 'background-position'] | inherit",
-"see individual properties",
-"",
-false,
-"allowed on 'background-position",
-"visual"
-},
-
-
-{
-parseDefault,
-"border-collapse",
-"collapse | separate | inherit",
-"separate",
-"table' and 'inline-table' elements",
-true,
-"",
-"visual"
-},
-
-
-{
-parseDefault,
-"border-color",
-"[ <color> | transparent ]{1,4} | inherit",
-"see individual properties",
-"",
-false,
-"",
-"visual"
-},
-
-
-{
-parseDefault,
-"border-spacing",
-"<length> <length>? | inherit",
-"0",
-"table' and 'inline-table' elements",
-true,
-"",
-"visual"
-},
-
-
-{
-parseDefault,
-"border-style",
-"<border-style>{1,4} | inherit",
-"see individual properties",
-"",
-false,
-"",
-"visual"
-},
-
-
-{
-parseDefault,
-"border-top' 'border-right' 'border-bottom' 'border-left",
-"[ <border-width> || <border-style> || 'border-top-color' ] | inherit",
-"see individual properties",
-"",
-false,
-"",
-"visual"
-},
-
-
-{
-parseDefault,
-"border-top-color' 'border-right-color' 'border-bottom-color' 'border-left-color",
-"<color> | transparent | inherit",
-"the value of the 'color' property",
-"",
-false,
-"",
-"visual"
-},
-
-
-{
-parseDefault,
-"border-top-style' 'border-right-style' 'border-bottom-style' 'border-left-style",
-"<border-style> | inherit",
-"none",
-"",
-false,
-"",
-"visual"
-},
-
-
-{
-parseDefault,
-"border-top-width' 'border-right-width' 'border-bottom-width' 'border-left-width",
-"<border-width> | inherit",
-"medium",
-"",
-false,
-"",
-"visual"
-},
-
-
-{
-parseDefault,
-"border-width",
-"<border-width>{1,4} | inherit",
-"see individual properties",
-"",
-false,
-"",
-"visual"
-},
-
-
-{
-parseDefault,
-"border",
-"[ <border-width> || <border-style> || 'border-top-color' ] | inherit",
-"see individual properties",
-"",
-false,
-"",
-"visual"
-},
-
-
-{
-parseDefault,
-"bottom",
-"<length> | <percentage> | auto | inherit",
-"auto",
-"positioned elements",
-false,
-"refer to height of containing block",
-"visual"
-},
-
-
-{
-parseDefault,
-"caption-side",
-"top | bottom | inherit",
-"top",
-"table-caption' elements",
-true,
-"",
-"visual"
-},
-
-
-{
-parseDefault,
-"clear",
-"none | left | right | both | inherit",
-"none",
-"block-level elements",
-false,
-"",
-"visual"
-},
-
-
-{
-parseDefault,
-"clip",
-"<shape> | auto | inherit",
-"auto",
-"absolutely positioned elements",
-false,
-"",
-"visual"
-},
-
-
-{
-parseDefault,
-"color",
-"<color> | inherit",
-"depends on user agent",
-"",
-true,
-"",
-"visual"
-},
-
-
-{
-parseDefault,
-"content",
-"normal | [ <string> | <uri> | <counter> | attr(<identifier>) | open-quote | close-quote | no-open-quote | no-close-quote ]+ | inherit",
-"normal",
-":before and :after pseudo-elements",
-false,
-"",
-"all "
-},
-
-
-{
-parseDefault,
-"counter-increment",
-"[ <identifier> <integer>? ]+ | none | inherit",
-"none",
-"",
-false,
-"",
-"all "
-},
-
-
-{
-parseDefault,
-"counter-reset",
-"[ <identifier> <integer>? ]+ | none | inherit",
-"none",
-"",
-false,
-"",
-"all "
-},
-
-
-{
-parseDefault,
-"cue-after",
-"<uri> | none | inherit",
-"none",
-"",
-false,
-"",
-"aural"
-},
-
-
-{
-parseDefault,
-"cue-before",
-"<uri> | none | inherit",
-"none",
-"",
-false,
-"",
-"aural"
-},
-
-
-{
-parseDefault,
-"cue",
-"[ 'cue-before' || 'cue-after' ] | inherit",
-"see individual properties",
-"",
-false,
-"",
-"aural"
-},
-
-
-{
-parseDefault,
-"cursor",
-"[ [<uri> ,]* [ auto | crosshair | default | pointer | move | e-resize | ne-resize | nw-resize | n-resize | se-resize | sw-resize | s-resize | w-resize | text | wait | help | progress ] ] | inherit",
-"auto",
-"",
-true,
-"",
-"visual, interactive "
-},
-
-
-{
-parseDefault,
-"direction",
-"ltr | rtl | inherit",
-"ltr",
-"all elements, but see prose",
-true,
-"",
-"visual"
-},
-
-
-{
-parseDefault,
-"display",
-"inline | block | list-item | run-in | inline-block | table | inline-table | table-row-group | table-header-group | table-footer-group | table-row | table-column-group | table-column | table-cell | table-caption | none | inherit",
-"inline",
-"",
-false,
-"",
-"all "
-},
-
-
-{
-parseDefault,
-"elevation",
-"<angle> | below | level | above | higher | lower | inherit",
-"level",
-"",
-true,
-"",
-"aural"
-},
-
-
-{
-parseDefault,
-"empty-cells",
-"show | hide | inherit",
-"show",
-"table-cell' elements",
-true,
-"",
-"visual"
-},
-
-
-{
-parseDefault,
-"float",
-"left | right | none | inherit",
-"none",
-"all, but see 9.7",
-false,
-"",
-"visual"
-},
-
-
-{
-parseDefault,
-"font-family",
-"[[ <family-name> | <generic-family> ] [, <family-name>| <generic-family>]* ] | inherit",
-"depends on user agent",
-"",
-true,
-"",
-"visual"
-},
-
-
-{
-parseDefault,
-"font-size",
-"<absolute-size> | <relative-size> | <length> | <percentage> | inherit",
-"medium",
-"",
-true,
-"refer to parent element's font size",
-"visual"
-},
-
-
-{
-parseDefault,
-"font-style",
-"normal | italic | oblique | inherit",
-"normal",
-"",
-true,
-"",
-"visual"
-},
-
-
-{
-parseDefault,
-"font-variant",
-"normal | small-caps | inherit",
-"normal",
-"",
-true,
-"",
-"visual"
-},
-
-
-{
-parseDefault,
-"font-weight",
-"normal | bold | bolder | lighter | 100 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900 | inherit",
-"normal",
-"",
-true,
-"",
-"visual"
-},
-
-
-{
-parseDefault,
-"font",
-"[ [ 'font-style' || 'font-variant' || 'font-weight' ]? 'font-size' [ / 'line-height' ]? 'font-family' ] | caption | icon | menu | message-box | small-caption | status-bar | inherit",
-"see individual properties",
-"",
-true,
-"see individual properties",
-"visual"
-},
-
-
-{
-parseDefault,
-"height",
-"<length> | <percentage> | auto | inherit",
-"auto",
-"all elements but non-replaced inline elements, table columns, and column groups",
-false,
-"see prose",
-"visual"
-},
-
-
-{
-parseDefault,
-"left",
-"<length> | <percentage> | auto | inherit",
-"auto",
-"positioned elements",
-false,
-"refer to width of containing block",
-"visual"
-},
-
-
-{
-parseDefault,
-"letter-spacing",
-"normal | <length> | inherit",
-"normal",
-"",
-true,
-"",
-"visual"
-},
-
-
-{
-parseDefault,
-"line-height",
-"normal | <number> | <length> | <percentage> | inherit",
-"normal",
-"",
-true,
-"refer to the font size of the element itself",
-"visual"
-},
-
-
-{
-parseDefault,
-"list-style-image",
-"<uri> | none | inherit",
-"none",
-"elements with 'display: list-item",
-true,
-"",
-"visual"
-},
-
-
-{
-parseDefault,
-"list-style-position",
-"inside | outside | inherit",
-"outside",
-"elements with 'display: list-item",
-true,
-"",
-"visual"
-},
-
-
-{
-parseDefault,
-"list-style-type",
-"disc | circle | square | decimal | decimal-leading-zero | lower-roman | upper-roman | lower-greek | lower-latin | upper-latin | armenian | georgian | none | inherit",
-"disc",
-"elements with 'display: list-item",
-true,
-"",
-"visual"
-},
-
-
-{
-parseDefault,
-"list-style",
-"[ 'list-style-type' || 'list-style-position' || 'list-style-image' ] | inherit",
-"see individual properties",
-"elements with 'display: list-item",
-true,
-"",
-"visual"
-},
-
-
-{
-parseDefault,
-"margin-right' 'margin-left",
-"<margin-width> | inherit",
-"0",
-"all elements except elements with table display types other than table and inline-table",
-false,
-"refer to width of containing block",
-"visual"
-},
-
-
-{
-parseDefault,
-"margin-top' 'margin-bottom",
-"<margin-width> | inherit",
-"0",
-"all elements except elements with table display types other than table and inline-table",
-false,
-"refer to width of containing block",
-"visual"
-},
-
-
-{
-parseDefault,
-"margin",
-"<margin-width>{1,4} | inherit",
-"see individual properties",
-"all elements except elements with table display types other than table and inline-table",
-false,
-"refer to width of containing block",
-"visual"
-},
-
-
-{
-parseDefault,
-"max-height",
-"<length> | <percentage> | none | inherit",
-"none",
-"all elements except non-replaced inline elements and table elements",
-false,
-"see prose",
-"visual"
-},
-
-
-{
-parseDefault,
-"max-width",
-"<length> | <percentage> | none | inherit",
-"none",
-"all elements except non-replaced inline elements and table elements",
-false,
-"refer to width of containing block",
-"visual"
-},
-
-
-{
-parseDefault,
-"min-height",
-"<length> | <percentage> | inherit",
-"0",
-"all elements except non-replaced inline elements and table elements",
-false,
-"see prose",
-"visual"
-},
-
-
-{
-parseDefault,
-"min-width",
-"<length> | <percentage> | inherit",
-"0",
-"all elements except non-replaced inline elements and table elements",
-false,
-"refer to width of containing block",
-"visual"
-},
-
-
-{
-parseDefault,
-"orphans",
-"<integer> | inherit",
-"2",
-"block-level elements",
-true,
-"",
-"visual, paged "
-},
-
-
-{
-parseDefault,
-"outline-color",
-"<color> | invert | inherit",
-"invert",
-"",
-false,
-"",
-"visual, interactive "
-},
-
-
-{
-parseDefault,
-"outline-style",
-"<border-style> | inherit",
-"none",
-"",
-false,
-"",
-"visual, interactive "
-},
-
-
-{
-parseDefault,
-"outline-width",
-"<border-width> | inherit",
-"medium",
-"",
-false,
-"",
-"visual, interactive "
-},
-
-
-{
-parseDefault,
-"outline",
-"[ 'outline-color' || 'outline-style' || 'outline-width' ] | inherit",
-"see individual properties",
-"",
-false,
-"",
-"visual, interactive "
-},
-
-
-{
-parseDefault,
-"overflow",
-"visible | hidden | scroll | auto | inherit",
-"visible",
-"block-level and replaced elements, table cells, inline blocks",
-false,
-"",
-"visual"
-},
-
-
-{
-parseDefault,
-"padding-top' 'padding-right' 'padding-bottom' 'padding-left",
-"<padding-width> | inherit",
-"0",
-"all elements except elements with table display types other than table, inline-table, and table-cell",
-false,
-"refer to width of containing block",
-"visual"
-},
-
-
-{
-parseDefault,
-"padding",
-"<padding-width>{1,4} | inherit",
-"see individual properties",
-"all elements except elements with table display types other than table, inline-table, and table-cell",
-false,
-"refer to width of containing block",
-"visual"
-},
-
-
-{
-parseDefault,
-"page-break-after",
-"auto | always | avoid | left | right | inherit",
-"auto",
-"block-level elements",
-false,
-"",
-"visual, paged "
-},
-
-
-{
-parseDefault,
-"page-break-before",
-"auto | always | avoid | left | right | inherit",
-"auto",
-"block-level elements",
-false,
-"",
-"visual, paged "
-},
-
-
-{
-parseDefault,
-"page-break-inside",
-"avoid | auto | inherit",
-"auto",
-"block-level elements",
-true,
-"",
-"visual, paged "
-},
-
-
-{
-parseDefault,
-"pause-after",
-"<time> | <percentage> | inherit",
-"0",
-"",
-false,
-"see prose",
-"aural"
-},
-
-
-{
-parseDefault,
-"pause-before",
-"<time> | <percentage> | inherit",
-"0",
-"",
-false,
-"see prose",
-"aural"
-},
-
-
-{
-parseDefault,
-"pause",
-"[ [<time> | <percentage>]{1,2} ] | inherit",
-"see individual properties",
-"",
-false,
-"see descriptions of 'pause-before' and 'pause-after",
-"aural"
-},
-
-
-{
-parseDefault,
-"pitch-range",
-"<number> | inherit",
-"50",
-"",
-true,
-"",
-"aural"
-},
-
-
-{
-parseDefault,
-"pitch",
-"<frequency> | x-low | low | medium | high | x-high | inherit",
-"medium",
-"",
-true,
-"",
-"aural"
-},
-
-
-{
-parseDefault,
-"play-during",
-"<uri> [ mix || repeat ]? | auto | none | inherit",
-"auto",
-"",
-false,
-"",
-"aural"
-},
-
-
-{
-parseDefault,
-"position",
-"static | relative | absolute | fixed | inherit",
-"static",
-"",
-false,
-"",
-"visual"
-},
-
-
-{
-parseDefault,
-"quotes",
-"[<string> <string>]+ | none | inherit",
-"depends on user agent",
-"",
-true,
-"",
-"visual"
-},
-
-
-{
-parseDefault,
-"richness",
-"<number> | inherit",
-"50",
-"",
-true,
-"",
-"aural"
-},
-
-
-{
-parseDefault,
-"right",
-"<length> | <percentage> | auto | inherit",
-"auto",
-"positioned elements",
-false,
-"refer to width of containing block",
-"visual"
-},
-
-
-{
-parseDefault,
-"speak-header",
-"once | always | inherit",
-"once",
-"elements that have table header information",
-true,
-"",
-"aural"
-},
-
-
-{
-parseDefault,
-"speak-numeral",
-"digits | continuous | inherit",
-"continuous",
-"",
-true,
-"",
-"aural"
-},
-
-
-{
-parseDefault,
-"speak-punctuation",
-"code | none | inherit",
-"none",
-"",
-true,
-"",
-"aural"
-},
-
-
-{
-parseDefault,
-"speak",
-"normal | none | spell-out | inherit",
-"normal",
-"",
-true,
-"",
-"aural"
-},
-
-
-{
-parseDefault,
-"speech-rate",
-"<number> | x-slow | slow | medium | fast | x-fast | faster | slower | inherit",
-"medium",
-"",
-true,
-"",
-"aural"
-},
-
-
-{
-parseDefault,
-"stress",
-"<number> | inherit",
-"50",
-"",
-true,
-"",
-"aural"
-},
-
-
-{
-parseDefault,
-"table-layout",
-"auto | fixed | inherit",
-"auto",
-"table' and 'inline-table' elements",
-false,
-"",
-"visual"
-},
-
-
-{
-parseDefault,
-"text-align",
-"left | right | center | justify | inherit",
-"left' if 'direction' is 'ltr'; 'right' if 'direction' is 'rtl",
-"block-level elements, table cells and inline blocks",
-true,
-"",
-"visual"
-},
-
-
-{
-parseDefault,
-"text-decoration",
-"none | [ underline || overline || line-through || blink ] | inherit",
-"none",
-"",
-"no (see prose)",
-"",
-"visual"
-},
-
-
-{
-parseDefault,
-"text-indent",
-"<length> | <percentage> | inherit",
-"0",
-"block-level elements, table cells and inline blocks",
-true,
-"refer to width of containing block",
-"visual"
-},
-
-
-{
-parseDefault,
-"text-transform",
-"capitalize | uppercase | lowercase | none | inherit",
-"none",
-"",
-true,
-"",
-"visual"
-},
-
-
-{
-parseDefault,
-"top",
-"<length> | <percentage> | auto | inherit",
-"auto",
-"positioned elements",
-false,
-"refer to height of containing block",
-"visual"
-},
-
-
-{
-parseDefault,
-"unicode-bidi",
-"normal | embed | bidi-override | inherit",
-"normal",
-"all elements, but see prose",
-false,
-"",
-"visual"
-},
-
-
-{
-parseDefault,
-"vertical-align",
-"baseline | sub | super | top | text-top | middle | bottom | text-bottom | <percentage> | <length> | inherit",
-"baseline",
-"inline-level and 'table-cell' elements",
-false,
-"refer to the 'line-height' of the element itself",
-"visual"
-},
-
-
-{
-parseDefault,
-"visibility",
-"visible | hidden | collapse | inherit",
-"visible",
-"",
-true,
-"",
-"visual"
-},
-
-
-{
-parseDefault,
-"voice-family",
-"[[<specific-voice> | <generic-voice> ],]* [<specific-voice> | <generic-voice> ] | inherit",
-"depends on user agent",
-"",
-true,
-"",
-"aural"
-},
-
-
-{
-parseDefault,
-"volume",
-"<number> | <percentage> | silent | x-soft | soft | medium | loud | x-loud | inherit",
-"medium",
-"",
-true,
-"refer to inherited value",
-"aural"
-},
-
-
-{
-parseDefault,
-"white-space",
-"normal | pre | nowrap | pre-wrap | pre-line | inherit",
-"normal",
-"",
-true,
-"",
-"visual"
-},
-
-
-{
-parseDefault,
-"widows",
-"<integer> | inherit",
-"2",
-"block-level elements",
-true,
-"",
-"visual, paged"
-},
-
-
-{
-parseDefault,
-"width",
-"<length> | <percentage> | auto | inherit",
-"auto",
-"all elements but non-replaced inline elements, table rows, and row groups",
-false,
-"refer to width of containing block",
-"visual"
-},
-
-
-{
-parseDefault,
-"word-spacing",
-"normal | <length> | inherit",
-"normal",
-"",
-true,
-"",
-"visual"
-},
-
-
-{
-parseDefault,
-"z-index",
-"auto | <integer> | inherit",
-"auto",
-"positioned elements",
-false,
-"",
-"visual"
-},
-
-{
-NULL,
-NULL,
-NULL,
-NULL,
-NULL,
-false,
-NULL,
-NULL
-}
-
-};
-
-
-
-bool parseProperty(char *name, char *value)
-{
- for (CssProp *prop=cssProps; prop->name ; prop++)
- {
- if (strcmp(name, prop->name)==0)
- {
- parsefunc func = prop->func;
- if (func)
- {
- if (!(*func)(prop, name, value))
- {
- printf("...\n");
- return false;
- }
- else
- {
- return true;
- }
- }
- else
- {
- printf("null parsing function specified\n");
- return false;
- }
- }
- }
- printf("Property '%s' not found\n", name);
- return false;
-}
-
-
-/*
-static bool printTable()
-{
- for (CssProp *prop=cssProps; prop->name ; prop++)
- {
- printf("#### Prop: %s ####\n", prop->name);
- printf("values : %s\n", prop->values);
- printf("defaultValue: %s\n", prop->defaultValue);
- printf("appliesTo : %s\n", prop->appliesTo);
- printf("inherited : %s\n", ( prop->inherited ? "true" : "false" ));
- printf("percentages : %s\n", prop->percentages);
- printf("groups : %s\n", prop->mediaGroups);
- printf("\n");
- }
- return true;
-}
-*/
-
-int main(int /*argc*/, char **/*argv*/)
-{
- //printTable();
- parseProperty((char *)"visibility", (char *)"hidden");
- return 0;
-}
diff --git a/src/dom/prop-svg.cpp b/src/dom/prop-svg.cpp
deleted file mode 100644
index bcb8dffea..000000000
--- a/src/dom/prop-svg.cpp
+++ /dev/null
@@ -1,746 +0,0 @@
-/*
- * Phoebe DOM Implementation.
- *
- * This is a C++ approximation of the W3C DOM model, which follows
- * fairly closely the specifications in the various .idl files, copies of
- * which are provided for reference. Most important is this one:
- *
- * http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/idl-definitions.html
- *
- * Authors:
- * Bob Jamison
- *
- * Copyright (C) 2005 Bob Jamison
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- */
-#include <stdio.h>
-#include <stdlib.h>
-
-
-struct SvgProp_def
-{
- char const *name;
- char const *values;
- char const *defaultValue;
- char const *appliesTo;
- bool inherited;
- char const *percentages;
- char const *mediaGroups;
- bool animatable;
-};
-
-typedef struct SvgProp_def SvgProp;
-
-static SvgProp svgProps[] =
-{
-
-{
-"alignment-baseline",
-"auto | baseline | before-edge | text-before-edge | middle | central | after-edge | text-after-edge | ideographic | alphabetic | hanging | mathematical | inherit",
-"see property description",
-"'tspan', 'tref', 'altGlyph', 'textPath' elements",
-false,
-"",
-"visual",
-true
-},
-
-{
-"baseline-shift",
-"baseline | sub | super | <percentage> | <length> | inherit",
-"baseline",
-"tspan', 'tref', 'altGlyph', 'textPath' elements",
-false,
-"refers to the 'line-height' of the 'text' element, which in the case of SVG is defined to be equal to the 'font-size",
-"visual",
-"yes (non-additive, 'set' and 'animate' elements only)"
-},
-
-{
-"clip",
-"<shape> | auto | inherit",
-"auto",
-"elements which establish a new viewport, 'pattern' elements and 'marker' elements",
-false,
-"",
-"visual",
-true
-},
-
-{
-"clip-path",
-"<uri> | none | inherit",
-"none",
-"container elements and graphics elements",
-false,
-"",
-"visual",
-true
-},
-
-{
-"clip-rule",
-"nonzero | evenodd | inherit",
-"nonzero",
-"graphics elements within a 'clipPath' element",
-true,
-"",
-"visual",
-true
-},
-
-{
-"color",
-"<color> | inherit",
-"depends on user agent",
-"elements to which properties 'fill', 'stroke', 'stop-color', 'flood-color', 'lighting-color' apply",
-true,
-"",
-"visual",
-true
-},
-
-{
-"color-interpolation",
-"auto | sRGB | linearRGB | inherit",
-"sRGB",
-"container elements, graphics elements and 'animateColor",
-true,
-"",
-"visual",
-true
-},
-
-{
-"color-interpolation-filters",
-"auto | sRGB | linearRGB | inherit",
-"linearRGB",
-"filter primitives",
-true,
-"",
-"visual",
-true
-},
-
-{
-"color-profile",
-"auto | sRGB | <name> | <uri> | inherit",
-"auto",
-"'image' elements that refer to raster images",
-true,
-"",
-"visual",
-true
-},
-
-{
-"color-rendering",
-"auto | optimizeSpeed | optimizeQuality | inherit",
-"auto",
-"container elements, graphics elements and 'animateColor",
-true,
-"",
-"visual",
-true
-},
-
-{
-"cursor",
-"[ [<uri> ,]* [ auto | crosshair | default | pointer | move | e-resize | ne-resize | nw-resize | n-resize | se-resize | sw-resize | s-resize | w-resize| text | wait | help ] ] | inherit",
-"auto",
-"container elements and graphics elements",
-true,
-"",
-"visual, interactive",
-true
-},
-
-{
-"direction",
-"ltr | rtl | inherit",
-"ltr",
-"text content elements",
-true,
-"",
-"visual",
-false
-},
-
-{
-"display",
-"inline | block | list-item | run-in | compact | marker | table | inline-table | table-row-group | table-header-group | table-footer-group | table-row | table-column-group | table-column | table-cell | table-caption | none | inherit",
-"inline",
-"'svg', 'g', 'switch', 'a', 'foreignObject', graphics elements (including the 'text' element) and text sub-elements (i.e., 'tspan', 'tref', 'altGlyph', 'textPath')",
-false,
-"",
-"all",
-true
-},
-
-{
-"dominant-baseline",
-"auto | use-script | no-change | reset-size | ideographic | alphabetic | hanging | mathematical | central | middle | text-after-edge | text-before-edge | inherit",
-"auto",
-"text content elements",
-false,
-"",
-"visual",
-true
-},
-
-{
-"enable-background",
-"accumulate | new [ <x> <y> <width> <height> ] | inherit",
-"accumulate",
-"container elements",
-false,
-"",
-"visual",
-false
-},
-
-{
-"fill",
-"<paint> (See Specifying paint)",
-"black",
-"shapes and text content elements",
-true,
-"",
-"visual",
-true
-},
-
-{
-"fill-opacity",
-"<opacity-value> | inherit",
-"1",
-"shapes and text content elements",
-true,
-"",
-"visual",
-true
-},
-
-{
-"fill-rule",
-"nonzero | evenodd | inherit",
-"nonzero",
-"shapes and text content elements",
-true,
-"",
-"visual",
-true
-},
-
-{
-"filter",
-"<uri> | none | inherit",
-"none",
-"container elements and graphics elements",
-false,
-"",
-"visual",
-true
-},
-
-{
-"flood-color",
-"currentColor | <color> [icc-color(<name>[,<icccolorvalue>]*)] | inherit",
-"black",
-"'feFlood' elements",
-false,
-"",
-"visual",
-true
-},
-
-{
-"flood-opacity",
-"<opacity-value> | inherit",
-"1",
-"'feFlood' elements",
-false,
-"",
-"visual",
-true
-},
-
-{
-"font",
-"[ [ 'font-style' || 'font-variant' || 'font-weight' ]? 'font-size' [ / 'line-height' ]? 'font-family' ] | caption | icon | menu | message-box | small-caption | status-bar | inherit",
-"see individual properties",
-"text content elements",
-true,
-"allowed on 'font-size' and 'line-height' ('line-height' same as 'font-size' in SVG)",
-"visual",
-"yes (non-additive, 'set' and 'animate' elements only)"
-},
-
-{
-"font-family",
-"[[ <family-name> | <generic-family> ],]* [ <family-name> | <generic-family>] | inherit",
-"depends on user agent",
-"text content elements",
-true,
-"",
-"visual",
-true
-},
-
-{
-"font-size",
-"<absolute-size> | <relative-size> | <length> | <percentage> | inherit",
-"medium",
-"text content elements",
-"yes, the computed value is inherited",
-"refer to parent element's font size",
-"visual",
-true
-},
-
-{
-"font-size-adjust",
-"<number> | none | inherit",
-"none",
-"text content elements",
-true,
-"",
-"visual",
-true
-},
-
-{
-"font-stretch",
-"normal | wider | narrower | ultra-condensed | extra-condensed | condensed | semi-condensed | semi-expanded | expanded | extra-expanded | ultra-expanded | inherit",
-"normal",
-"text content elements",
-true,
-"",
-"visual",
-true
-},
-
-{
-"font-style",
-"normal | italic | oblique | inherit",
-"normal",
-"text content elements",
-true,
-"",
-"visual",
-true
-},
-
-{
-"font-variant",
-"normal | small-caps | inherit",
-"normal",
-"text content elements",
-true,
-"",
-"visual",
-true
-},
-
-{
-"font-weight",
-"normal | bold | bolder | lighter | 100 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900 | inherit",
-"normal",
-"text content elements",
-true,
-"",
-"visual",
-true
-},
-
-{
-"glyph-orientation-horizontal",
-"<angle> | inherit",
-"0deg",
-"text content elements",
-true,
-"",
-"visual",
-false
-},
-
-{
-"glyph-orientation-vertical",
-"auto | <angle> | inherit",
-"auto",
-"text content elements",
-true,
-"",
-"visual",
-false
-},
-
-{
-"image-rendering",
-"auto | optimizeSpeed | optimizeQuality | inherit",
-"auto",
-"images",
-true,
-"",
-"visual",
-true
-},
-
-{
-"kerning",
-"auto | <length> | inherit",
-"auto",
-"text content elements",
-true,
-"",
-"visual",
-true
-},
-
-{
-"letter-spacing",
-"normal | <length> | inherit",
-"normal",
-"text content elements",
-true,
-"",
-"visual",
-true
-},
-
-{
-"lighting-color",
-"currentColor | <color> [icc-color(<name>[,<icccolorvalue>]*)] | inherit",
-"white",
-"feDiffuseLighting' and 'feSpecularLighting' elements",
-false,
-"",
-"visual",
-true
-},
-
-{
-"marker",
-"see individual properties",
-"see individual properties",
-"path', 'line', 'polyline' and 'polygon' elements",
-true,
-"",
-"visual",
-true
-},
-
-{
-"marker-end' 'marker-mid' 'marker-start",
-"none | inherit | <uri>",
-"none",
-"path', 'line', 'polyline' and 'polygon' elements",
-true,
-"",
-"visual",
-true
-},
-
-{
-"mask",
-"<uri> | none | inherit",
-"none",
-"container elements and graphics elements",
-false,
-"",
-"visual",
-true
-},
-
-{
-"opacity",
-"<opacity-value> | inherit",
-"1",
-"container elements and graphics elements",
-false,
-"",
-"visual",
-true
-},
-
-{
-"overflow",
-"visible | hidden | scroll | auto | inherit",
-"see prose",
-"elements which establish a new viewport, 'pattern' elements and 'marker' elements",
-false,
-"",
-"visual",
-true
-},
-
-{
-"pointer-events",
-"visiblePainted | visibleFill | visibleStroke | visible | painted | fill | stroke | all | none | inherit",
-"visiblePainted",
-"graphics elements",
-true,
-"",
-"visual",
-true
-},
-
-{
-"shape-rendering",
-"auto | optimizeSpeed | crispEdges | geometricPrecision | inherit",
-"auto",
-"shapes",
-true,
-"",
-"visual",
-true
-},
-
-{
-"stop-color",
-"currentColor | <color> [icc-color(<name>[,<icccolorvalue>]*)] | inherit",
-"black",
-"stop' elements",
-false,
-"",
-"visual",
-true
-},
-
-{
-"stop-opacity",
-"<opacity-value> | inherit",
-"1",
-"stop' elements",
-false,
-"",
-"visual",
-true
-},
-
-{
-"stroke",
-"<paint> (See Specifying paint)",
-"none",
-"shapes and text content elements",
-true,
-"",
-"visual",
-true
-},
-
-{
-"stroke-dasharray",
-"none | <dasharray> | inherit",
-"none",
-"shapes and text content elements",
-true,
-"",
-"visual",
-""
-},
-
-{
-"stroke-dashoffset",
-"<length> | inherit",
-"0",
-"shapes and text content elements",
-true,
-"see prose",
-"visual",
-true
-},
-
-{
-"stroke-linecap",
-"butt | round | square | inherit",
-"butt",
-"shapes and text content elements",
-true,
-"",
-"visual",
-true
-},
-
-{
-"stroke-linejoin",
-"miter | round | bevel | inherit",
-"miter",
-"shapes and text content elements",
-true,
-"",
-"visual",
-true
-},
-
-{
-"stroke-miterlimit",
-"<miterlimit> | inherit",
-"4",
-"shapes and text content elements",
-true,
-"",
-"visual",
-true
-},
-
-{
-"stroke-opacity",
-"<opacity-value> | inherit",
-"1",
-"shapes and text content elements",
-true,
-"",
-"visual",
-true
-},
-
-{
-"stroke-width",
-"<length> | inherit",
-"1",
-"shapes and text content elements",
-true,
-"",
-"visual",
-true
-},
-
-{
-"text-anchor",
-"start | middle | end | inherit",
-"start",
-"text content elements",
-true,
-"",
-"visual",
-true
-},
-
-{
-"text-decoration",
-"none | [ underline || overline || line-through || blink ] | inherit",
-"none",
-"text content elements",
-"no (see prose)",
-"",
-"visual",
-true
-},
-
-{
-"text-rendering",
-"auto | optimizeSpeed | optimizeLegibility | geometricPrecision | inherit",
-"auto",
-"'text' elements",
-true,
-"",
-"visual",
-true
-},
-
-{
-"unicode-bidi",
-"normal | embed | bidi-override | inherit",
-"normal",
-"text content elements",
-false,
-"",
-"visual",
-false
-},
-
-{
-"visibility",
-"visible | hidden | collapse | inherit",
-"visible",
-"graphics elements (including the 'text' element) and text sub-elements (i.e., 'tspan', 'tref', 'altGlyph', 'textPath' and 'a')",
-true,
-"",
-"visual",
-true
-},
-
-{
-"word-spacing",
-"normal | <length> | inherit",
-"normal",
-"text content elements",
-true,
-"",
-"visual",
-true
-},
-
-{
-"writing-mode",
-"lr-tb | rl-tb | tb-rl | lr | rl | tb | inherit",
-"lr-tb",
-"'text' elements",
-true,
-"",
-"visual",
-false
-},
-
-{
-NULL,
-NULL,
-NULL,
-NULL,
-false,
-NULL,
-NULL,
-false
-}
-
-};
-
-
-static void
-printTable()
-{
- for (SvgProp const *prop = svgProps; prop->name; prop++) {
- printf("#### Prop: %s ####\n", prop->name);
- printf("values : %s\n", prop->values);
- printf("defaultValue: %s\n", prop->defaultValue);
- printf("appliesTo : %s\n", prop->appliesTo);
- printf("inherited : %s\n", ( prop->inherited ? "true" : "false" ));
- printf("percentages : %s\n", prop->percentages);
- printf("groups : %s\n", prop->mediaGroups);
- printf("animatable : %s\n", ( prop->animatable ? "true" : "false" ));
- printf("\n");
- }
-}
-
-
-int main(int /*argc*/, char **/*argv*/)
-{
- printTable();
- return ( ferror(stdout) ? EXIT_FAILURE : EXIT_SUCCESS );
-}
-
-
-/*
- Local Variables:
- mode:c++
- c-file-style:"stroustrup"
- c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +))
- indent-tabs-mode:nil
- fill-column:99
- End:
-*/
-// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 :
diff --git a/src/dom/smil.h b/src/dom/smil.h
deleted file mode 100644
index 14870a4e4..000000000
--- a/src/dom/smil.h
+++ /dev/null
@@ -1,2508 +0,0 @@
-#ifndef SEEN_SMIL_H
-#define SEEN_SMIL_H
-/**
- * @file
- * Phoebe DOM Implementation.
- *
- * This is a C++ approximation of the W3C DOM model, which follows
- * fairly closely the specifications in the various .idl files, copies of
- * which are provided for reference. Most important is this one:
- *
- * http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/idl-definitions.html
- */
-/*
- * Authors:
- * Bob Jamison
- *
- * Copyright (C) 2005-2008 Bob Jamison
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- *
- * ===========================================================================
- * NOTES
- *
- * This API and many of the comments come from this document:
- * http://www.w3.org/TR/smil-boston-dom
- *
- * ...which is a DRAFT. But it's the best we can find. Can someone
- * find a more finished, complete SMIL DOM document for us? Thanks.
- */
-
-
-#include "dom.h"
-#include "views.h"
-#include "events.h"
-
-#include <vector>
-
-namespace org
-{
-namespace w3c
-{
-namespace dom
-{
-namespace smil
-{
-
-
-
-
-//Local definitions
-typedef dom::DOMString DOMString;
-typedef dom::Element Element;
-typedef dom::NodeList NodeList;
-typedef dom::Document Document;
-
-//forward declarations
-//SMIL (non-DOM) types
-class ElementExclusiveTimeContainer;
-class ElementLayout;
-class ElementParallelTimeContainer;
-class ElementSequentialTimeContainer;
-class ElementSyncBehavior;
-class ElementTargetAttributes;
-class ElementTest;
-class ElementTime;
-class ElementTimeContainer;
-class ElementTimeControl;
-class ElementTimeManipulation;
-class Time;
-class TimeEvent;
-class TimeList;
-
-//SMIL Elements
-class SMILAnimateColorElement;
-typedef Ptr<SMILAnimateColorElement> SMILAnimateColorElementPtr;
-class SMILAnimateElement;
-typedef Ptr<SMILAnimateElement> SMILAnimateElementPtr;
-class SMILAnimateMotionElement;
-typedef Ptr<SMILAnimateMotionElement> SMILAnimateMotionElementPtr;
-class SMILAnimation;
-typedef Ptr<SMILAnimation> SMILAnimationPtr;
-class SMILDocument;
-typedef Ptr<SMILDocument> SMILDocumentPtr;
-class SMILElement;
-typedef Ptr<SMILElement> SMILElementPtr;
-class SMILLayoutElement;
-typedef Ptr<SMILLayoutElement> SMILLayoutElementPtr;
-class SMILMediaElement;
-typedef Ptr<SMILMediaElement> SMILMediaElementPtr;
-class SMILRefElement;
-typedef Ptr<SMILRefElement> SMILRefElementPtr;
-class SMILRegionElement;
-typedef Ptr<SMILRegionElement> SMILRegionElementPtr;
-class SMILRegionInterface;
-typedef Ptr<SMILRegionInterface> SMILRegionInterfacePtr;
-class SMILRootLayoutElement;
-typedef Ptr<SMILRootLayoutElement> SMILRootLayoutElementPtr;
-class SMILSetElement;
-typedef Ptr<SMILSetElement> SMILSetElementPtr;
-class SMILSwitchElement;
-typedef Ptr<SMILSwitchElement> SMILSwitchElementPtr;
-class SMILTopLayoutElement;
-typedef Ptr<SMILTopLayoutElement> SMILTopLayoutElementPtr;
-
-
-
-/*#########################################################################
-###########################################################################
-## D A T A T Y P E S
-###########################################################################
-#########################################################################*/
-
-
-
-/*#########################################################################
-## ElementLayout
-#########################################################################*/
-
-/**
- * This interface is used by SMIL elements root-layout, top-layout and region.
- */
-class ElementLayout
-{
-public:
-
-
- /**
- * Return the title of an item implementing this interface
- */
- virtual DOMString getTitle()
- { return title; }
-
- /**
- * Set the title of an item implementing this interface
- */
- virtual void setTitle(const DOMString &val) throw(dom::DOMException)
- { title = val; }
-
- /**
- * Return the background color of an item implementing this interface
- */
- virtual DOMString getBackgroundColor()
- { return backgroundColor; }
-
- /**
- * Set the background color of an item implementing this interface
- */
- virtual void setBackgroundColor(const DOMString &val) throw(dom::DOMException)
- { backgroundColor = val; }
-
- /**
- * Return the height of an item implementing this interface
- */
- virtual long getHeight()
- { return height; }
-
- /**
- * Set the height of an item implementing this interface
- */
- virtual void setHeight(long val) throw(dom::DOMException)
- { height = val; }
-
- /**
- * Return the width of an item implementing this interface
- */
- virtual long getWidth()
- { return width; }
-
- /**
- * Set the width of an item implementing this interface
- */
- virtual void setWidth(long val) throw(dom::DOMException)
- { width = val; }
-
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- ElementLayout() :
- title(),
- backgroundColor(),
- height(0),
- width(0)
- {}
-
- /**
- *
- */
- ElementLayout(const ElementLayout &other)
- {
- assign(other);
- }
-
- /**
- *
- */
- ElementLayout &operator=(const ElementLayout &other)
- {
- assign(other);
- return *this;
- }
-
- /**
- *
- */
- void assign(const ElementLayout &other)
- {
- title = other.title;
- backgroundColor = other.backgroundColor;
- height = other.height;
- width = other.width;
- }
-
- /**
- *
- */
- virtual ~ElementLayout() {}
-
-protected:
-
- DOMString title;
- DOMString backgroundColor;
- long height;
- long width;
-
-};
-
-
-/*#########################################################################
-## SMILRegionInterface
-#########################################################################*/
-
-/**
- * Declares rendering surface for an element. See the region attribute definition.
- */
-class SMILRegionInterface
-{
-public:
-
- /**
- * Gets an associated region element
- */
- virtual SMILRegionElementPtr getRegion()
- { return regionElement; }
-
- /**
- * Sets an associated region element
- */
- virtual void setRegion(const SMILRegionElementPtr val)
- { regionElement = val; }
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- SMILRegionInterface()
- { }
-
- /**
- *
- */
- SMILRegionInterface(const SMILRegionInterface &other) :
- regionElement (other.regionElement)
- {}
-
- /**
- *
- */
- SMILRegionInterface& operator=(const SMILRegionInterface &other)
- {
- regionElement = other.regionElement;
- return *this;
- }
-
- /**
- *
- */
- virtual ~SMILRegionInterface() {}
-
-protected:
-
- SMILRegionElementPtr regionElement;
-
-};
-
-
-/*#########################################################################
-## Time
-#########################################################################*/
-
-/**
- * The Time interface is a datatype that represents times within the timegraph.
- * A Time has a type, key values to describe the time, and a boolean to
- * indicate whether the values are currently unresolved.
- */
-class Time
-{
-public:
-
-
- /**
- * A boolean indicating whether the current Time has been fully resolved to the
- * document schedule. Note that for this to be true, the current Time must be
- * defined (not indefinite), the syncbase and all Time's that the syncbase
- * depends on must be defined (not indefinite), and the begin Time of all
- * ascendent time containers of this element and all Time elements that this
- * depends upon must be defined (not indefinite). If this Time is based upon an
- * event, this Time will only be resolved once the specified event has happened,
- * subject to the constraints of the time container. Note that this may change
- * from true to false when the parent time container ends its simple duration
- * (including when it repeats or restarts).
- */
- virtual bool getResolved()
- { return resolved; }
-
- /**
- * The clock value in seconds relative to the parent time container begin. This
- * indicates the resolved time relationship to the parent time container. This is
- * only valid if resolved is true.
- */
- virtual double getResolvedOffset()
- { return resolvedOffset; }
-
- /**
- * An integer indicating the type of this time value.
- */
- typedef enum
- {
- SMIL_TIME_INDEFINITE = 0,
- SMIL_TIME_OFFSET = 1,
- SMIL_TIME_SYNC_BASED = 2,
- SMIL_TIME_EVENT_BASED = 3,
- SMIL_TIME_WALLCLOCK = 4,
- SMIL_TIME_MEDIA_MARKER = 5
- } TimeType;
-
-
-
- /**
- * A code representing the type of the underlying object, as defined above.
- */
- virtual unsigned short getTimeType()
- { return timeType; }
-
-
- /**
- * The clock value in seconds relative to the syncbase or eventbase.
- * Default value is 0.
- */
- virtual double getOffset()
- { return offset; }
-
- /**
- * Set the value above
- */
- virtual void setOffset(double val) throw (dom::DOMException)
- { offset = val; }
-
- /**
- * Get the base element for a sync-based or event-based time.
- */
- virtual ElementPtr getBaseElement()
- { return baseElement; }
-
- /**
- * Set the base element for a sync-based or event-based time.
- */
- virtual void setBaseElement(const ElementPtr val) throw (dom::DOMException)
- { baseElement = val; }
-
- /**
- * If true, indicates that a sync-based time is relative to the begin of the
- * baseElement. If false, indicates that a sync-based time is relative to the
- * active end of the baseElement.
- */
- virtual bool getBaseBegin()
- { return baseBegin; }
-
- /**
- * Set the value above.
- */
- virtual void setBaseBegin(bool val) throw (dom::DOMException)
- { baseBegin = val; }
-
- /**
- * Get the name of the event for an event-based time. Default value is null.
- */
- virtual DOMString getEvent()
- { return eventStr; }
-
- /**
- * Set the name of the event for an event-based time. Default value is null.
- */
- virtual void setEvent(const DOMString &val) throw (dom::DOMException)
- { eventStr = val; }
-
- /**
- * Get the name of the marker from the media element, for media marker
- * times. Default value is null.
- */
- virtual DOMString getMarker()
- { return marker; }
-
- /**
- * Set the name of the marker from the media element, for media marker
- * times. Default value is null.
- */
- virtual void setMarker(const DOMString &val) throw (dom::DOMException)
- { marker = val; }
-
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- Time()
- {
- resolved = false;
- resolvedOffset = 0.0;
- timeType = SMIL_TIME_INDEFINITE;
- offset = 0.0;
- //baseElement = NULL; //not necessary
- baseBegin = false;
- eventStr = "";
- marker = "";
- }
-
- /**
- *
- */
- Time(const Time &other)
- {
- assign(other);
- }
-
- /**
- *
- */
- Time &operator=(const Time &other)
- {
- assign(other);
- return *this;
- }
-
- void assign(const Time &other)
- {
- resolved = other.resolved;
- resolvedOffset = other.resolvedOffset;
- timeType = other.timeType;
- offset = other.offset;
- baseElement = other.baseElement;
- baseBegin = other.baseBegin;
- eventStr = other.eventStr;
- marker = other.marker;
- }
-
- /**
- *
- */
- virtual ~Time() {}
-
-protected:
-
- bool resolved;
- double resolvedOffset;
- unsigned short timeType;
- double offset;
- ElementPtr baseElement;
- bool baseBegin;
- DOMString eventStr;
- DOMString marker;
-
-};
-
-
-/*#########################################################################
-## TimeList
-#########################################################################*/
-
-/**
- * The TimeList interface provides the abstraction of an ordered collection of
- * times, without defining or constraining how this collection is implemented.
- *
- * The items in the TimeList are accessible via an integral index, starting from 0.
- */
-class TimeList
-{
-public:
-
- /**
- * Returns the indexth item in the collection. If index is greater than or equal
- * to the number of times in the list, this returns null.
- */
- virtual Time item(unsigned long index)
- {
- if (index >=items.size())
- {
- Time tim;
- return tim;
- }
- return items[index];
- }
-
- /**
- * The number of times in the list. The range of valid child time
- * indices is 0 to length-1 inclusive.
- */
- virtual unsigned long getLength()
- {
- return items.size();
- }
-
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- TimeList() {}
-
- /**
- *
- */
- TimeList(const TimeList &other) :
- items (other.items)
- {
- }
-
- /**
- *
- */
- TimeList &operator=(const TimeList &other)
- {
- items = other.items;
- return *this;
- }
-
- /**
- *
- */
- virtual ~TimeList() {}
-
-protected:
-
- std::vector<Time>items;
-
-
-};
-
-
-/*#########################################################################
-## ElementTime
-#########################################################################*/
-
-/**
- * This interface defines the set of timing attributes that are common to
- * all timed elements.
- */
-class ElementTime
-{
-public:
-
-
- /**
- * Get the desired value (as a list of times) of the begin instant of this node.
- */
- virtual TimeList &getBegin()
- { return beginTime; }
-
- /**
- * Set the desired value (as a list of times) of the begin instant of this node.
- */
- virtual void setBegin(const TimeList &val) throw(dom::DOMException)
- { beginTime = val; }
-
- /**
- * Set the list of active ends for this node.
- */
- virtual TimeList &getEnd()
- { return endTime; }
-
- /**
- * Set the list of active ends for this node.
- */
- virtual void setEnd(const TimeList &val) throw(dom::DOMException)
- { endTime = val; }
-
- /**
- * Get the desired simple duration value of this node in seconds.
- * Negative value means "indefinite".
- */
- virtual double getDur()
- { return dur; }
-
- /**
- * Set the desired simple duration value of this node in seconds.
- * Negative value means "indefinite".
- */
- virtual void setDur(double val) throw(dom::DOMException)
- { dur = val; }
-
- /**
- * An integer indicating the value of the restart attribute.
- */
- typedef enum
- {
- RESTART_ALWAYS = 0,
- RESTART_NEVER = 1,
- RESTART_WHEN_NOT_ACTIVE = 2
- } RestartType;
-
- /**
- * Get code representing the value of the restart attribute,
- * as defined above. Default value is RESTART_ALWAYS.
- */
- virtual unsigned short getRestart()
- { return restart; }
-
- /**
- * Set code representing the value of the restart attribute,
- * as defined above. Default value is RESTART_ALWAYS.
- */
- virtual void setRestart(unsigned short val) throw (dom::DOMException)
- { restart = val; }
-
-
- /**
- * An integer indicating the value of the fill attribute.
- */
- typedef enum
- {
- FILL_REMOVE = 0,
- FILL_FREEZE = 1
- } FillType;
-
-
- /**
- * Get code representing the value of the fill attribute, as defined above.
- * Default value is FILL_REMOVE.
- */
- virtual unsigned short getFill()
- { return fill; }
-
- /**
- * Set code representing the value of the fill attribute, as defined above.
- */
- virtual void setFill(unsigned short val) throw (dom::DOMException)
- { fill = val; }
-
- /**
- * The repeatCount attribute causes the element to play repeatedly (loop) for the
- * specified number of times. A negative value repeat the element indefinitely.
- * Default value is 0 (unspecified).
- */
- virtual double getRepeatCount()
- { return repeatCount; }
-
- /**
- * Set the value above.
- */
- virtual void setRepeatCount(double val) throw (dom::DOMException)
- { repeatCount = val; }
-
- /**
- * The repeatDur causes the element to play repeatedly (loop) for the specified
- * duration in milliseconds. Negative means "indefinite".
- */
- virtual double getRepeatDur()
- { return repeatDur; }
-
- /**
- * Set the value above.
- */
- virtual void setRepeatDur(double val) throw (dom::DOMException)
- { repeatDur = val; }
-
- /**
- * Causes this element to begin the local timeline (subject to sync constraints).
- */
- virtual bool beginElement()
- {
- return true;
- }
-
- /**
- * Causes this element to end the local timeline (subject to sync constraints).
- */
- virtual bool endElement()
- {
- return true;
- }
-
- /**
- * Causes this element to pause the local timeline (subject to sync constraints).
- */
- virtual void pauseElement()
- {
- }
-
- /**
- * Causes this element to resume a paused local timeline.
- */
- virtual void resumeElement()
- {
- }
-
- /**
- * Seeks this element to the specified point on the local timeline (subject to
- * sync constraints). If this is a timeline, this must seek the entire timeline
- * (i.e. propagate to all timeChildren).
- */
- virtual void seekElement(double &/*seekTo*/)
- {
- }
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- ElementTime()
- {
- dur = 0.0;
- restart = RESTART_ALWAYS;
- fill = FILL_REMOVE;
- repeatCount = 0.0;
- repeatDur = 0.0;
- }
-
- /**
- *
- */
- ElementTime(const ElementTime &other)
- {
- assign(other);
- }
-
- /**
- *
- */
- ElementTime &operator=(const ElementTime &other)
- {
- assign(other);
- return *this;
- }
-
- /**
- *
- */
- void assign(const ElementTime &other)
- {
- beginTime = other.beginTime;
- endTime = other.endTime;
- dur = other.dur;
- restart = other.restart;
- fill = other.fill;
- repeatCount = other.repeatCount;
- repeatDur = other.repeatDur;
- }
-
- /**
- *
- */
- virtual ~ElementTime() {}
-
-
-protected:
-
- TimeList beginTime;
- TimeList endTime;
- double dur;
- unsigned short restart;
- unsigned short fill;
- double repeatCount;
- double repeatDur;
-
-
-};
-
-
-/*#########################################################################
-## ElementTimeManipulation
-#########################################################################*/
-
-/**
- * This interface support use-cases commonly associated with animation.
- */
-class ElementTimeManipulation
-{
-public:
-
- /**
- * Defines the playback speed of element time. The value is specified as a
- * multiple of normal (parent time container) play speed. Legal values are signed
- * floating point values. Zero values are not allowed. The default is 1.0 (no
- * modification of speed).
- */
- virtual double getSpeed()
- { return speed; }
-
- /**
- * Sets the value above.
- */
- virtual void setSpeed(double val) throw (dom::DOMException)
- { speed = val; }
-
- /**
- * The percentage value of the simple acceleration of time for the element.
- * Allowed values are from 0 to 100. Default value is 0 (no acceleration). The
- * sum of the values for accelerate and decelerate must not exceed 100. If it
- * does, the deceleration value will be reduced to make the sum legal.
- */
- virtual double getAccelerate()
- { return accelerate; }
-
- /**
- * Sets the value above.
- */
- virtual void setAccelerate(double val) throw (dom::DOMException)
- { accelerate = val; }
-
- /**
- * The percentage value of the simple decelerate of time for the element. Allowed
- * values are from 0 to 100. Default value is 0 (no deceleration). The sum of the
- * values for accelerate and decelerate must not exceed 100. If it does, the
- * deceleration value will be reduced to make the sum legal.
- */
- virtual double getDecelerate()
- { return decelerate; }
-
- /**
- * Sets the value above.
- */
- virtual void setDecelerate(double val) throw (dom::DOMException)
- { decelerate = val; }
-
- /**
- * The autoReverse attribute controls the "play forwards then backwards"
- * functionality. Default value is false.
- */
- virtual bool getAutoReverse()
- { return autoReverse; }
-
- /**
- * Sets the value above.
- */
- virtual void setAutoReverse(bool val) throw (dom::DOMException)
- { autoReverse = val; }
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- ElementTimeManipulation()
- {
- speed = 0.0;
- accelerate = 0.0;
- decelerate = 0.0;
- autoReverse = false;
- }
-
- /**
- *
- */
- ElementTimeManipulation(const ElementTimeManipulation &other)
- {
- assign(other);
- }
-
- /**
- *
- */
- ElementTimeManipulation &operator=(const ElementTimeManipulation &other)
- {
- assign(other);
- return *this;
- }
-
- /**
- *
- */
- void assign(const ElementTimeManipulation &other)
- {
- speed = other.speed;
- accelerate = other.accelerate;
- decelerate = other.decelerate;
- autoReverse = other.autoReverse;
- }
-
- /**
- *
- */
- virtual ~ElementTimeManipulation() {}
-
-
-protected:
-
- double speed;
- double accelerate;
- double decelerate;
- bool autoReverse;
-
-};
-
-
-/*#########################################################################
-## ElementTimeContainer
-#########################################################################*/
-
-/**
- * This is a placeholder - subject to change. This represents generic timelines.
- */
-class ElementTimeContainer : public ElementTime
-{
-public:
-
-
- /**
- * A NodeList that contains all timed childrens of this node. If there
- * are no timed children, the Nodelist is empty.
- */
- virtual NodeList getTimeChildren()
- {
- NodeList list;
- return list;
- }
-
- /**
- * Returns a list of child elements active at the specified invocation.
- */
- virtual NodeList getActiveChildrenAt(double /*instant_in_millis*/)
- {
- NodeList list;
- return list;
- }
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- ElementTimeContainer() {}
-
- /**
- *
- */
- ElementTimeContainer(const ElementTimeContainer &other) : ElementTime(other)
- {
- }
-
- /**
- *
- */
- ElementTimeContainer &operator=(const ElementTimeContainer &/*other*/)
- {
- return *this;
- }
-
- /**
- *
- */
- virtual ~ElementTimeContainer() {}
-
-protected:
-
-
-};
-
-
-/*#########################################################################
-## ElementSyncBehavior
-#########################################################################*/
-
-/**
- * The synchronization behavior extension.
- */
-class ElementSyncBehavior
-{
-public:
-
- /**
- * The runtime synchronization behavior for an element.
- */
- virtual DOMString getSyncBehavior()
- { return syncBehavior; }
-
- /**
- * The sync tolerance for the associated element. It has an effect only
- * if the element has syncBehavior="locked".
- */
- virtual double getSyncTolerance()
- { return syncTolerance; }
-
- /**
- * Defines the default value for the runtime synchronization behavior
- * for an element, and all descendents.
- */
- virtual DOMString getDefaultSyncBehavior()
- { return defaultSyncBehavior; }
-
- /**
- * Defines the default value for the sync tolerance for an element,
- * and all descendents.
- */
- virtual double getDefaultSyncTolerance()
- { return defaultSyncTolerance; }
-
- /**
- * If set to true, forces the time container playback to sync to this element.
- */
- virtual bool getSyncMaster()
- { return syncMaster; }
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- ElementSyncBehavior()
- {
- syncBehavior = "";
- syncTolerance = 0.0;
- defaultSyncBehavior = "";
- defaultSyncTolerance = 0.0;
- syncMaster = false;
- }
-
- /**
- *
- */
- ElementSyncBehavior(const ElementSyncBehavior &other)
- {
- assign(other);
- }
-
- /**
- *
- */
- ElementSyncBehavior &operator=(const ElementSyncBehavior &other)
- {
- assign(other);
- return *this;
- }
-
- /**
- *
- */
- void assign(const ElementSyncBehavior &other)
- {
- syncBehavior = other.syncBehavior;
- syncTolerance = other.syncTolerance;
- defaultSyncBehavior = other.defaultSyncBehavior;
- defaultSyncTolerance = other.defaultSyncTolerance;
- syncMaster = other.syncMaster;
- }
-
- /**
- *
- */
- virtual ~ElementSyncBehavior() {}
-
-protected:
-
- DOMString syncBehavior;
- double syncTolerance;
- DOMString defaultSyncBehavior;
- double defaultSyncTolerance;
- bool syncMaster;
-
-};
-
-
-/*#########################################################################
-## ElementParallelTimeContainer
-#########################################################################*/
-
-/**
- * A parallel container defines a simple parallel time grouping in which multiple
- * elements can play back at the same time.
- */
-class ElementParallelTimeContainer : public ElementTimeContainer
-{
-public:
-
- /**
- * Controls the end of the container.
- */
- virtual DOMString getEndSync()
- { return endSync; }
-
- /**
- * Controls the end of the container.
- */
- virtual void setEndSync(const DOMString &val) throw (dom::DOMException)
- { endSync = val; }
-
- /**
- * This method returns the implicit duration in seconds.
- */
- virtual double getImplicitDuration()
- { return implicitDuration; }
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- ElementParallelTimeContainer()
- {
- endSync = "";
- implicitDuration = 0.0;
- }
-
- /**
- *
- */
- ElementParallelTimeContainer(const ElementParallelTimeContainer &other)
- : ElementTimeContainer(other)
- {
- assign(other);
- }
-
- /**
- *
- */
- ElementParallelTimeContainer &operator=(const ElementParallelTimeContainer &other)
- {
- assign(other);
- return *this;
- }
-
- /**
- *
- */
- void assign(const ElementParallelTimeContainer &other)
- {
- endSync = other.endSync;
- implicitDuration = other.implicitDuration;
- }
-
- /**
- *
- */
- virtual ~ElementParallelTimeContainer() {}
-
-protected:
-
- DOMString endSync;
- double implicitDuration;
-
-};
-
-
-/*#########################################################################
-## ElementSequentialTimeContainer
-#########################################################################*/
-
-/**
- * A seq container defines a sequence of elements in which elements play
- * one after the other.
- */
-class ElementSequentialTimeContainer : public ElementTimeContainer
-{
-public:
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- ElementSequentialTimeContainer() {}
-
- /**
- *
- */
- ElementSequentialTimeContainer(const ElementSequentialTimeContainer &other)
- : ElementTimeContainer(other)
- {
- }
-
- /**
- *
- */
- virtual ~ElementSequentialTimeContainer() {}
-
-
-};
-
-
-/*#########################################################################
-## ElementExclusiveTimeContainer
-#########################################################################*/
-
-/**
- * This interface defines a time container with semantics based upon par, but
- * with the additional constraint that only one child element may play at a time.
- */
-class ElementExclusiveTimeContainer : public ElementTimeContainer
-{
-public:
-
- /**
- * Controls the end of the container.
- */
- virtual DOMString getEndSync()
- { return endSync; }
-
- /**
- * Controls the end of the container.
- */
- virtual void setEndSync(const DOMString &val) throw (dom::DOMException)
- { endSync = val; }
-
- /**
- * This should support another method to get the ordered collection of paused
- * elements (the paused stack) at a given point in time.
- */
- virtual NodeList getPausedElements()
- { return pausedElements; }
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- ElementExclusiveTimeContainer() {}
-
- /**
- *
- */
- ElementExclusiveTimeContainer(const ElementExclusiveTimeContainer &other)
- : ElementTimeContainer(other)
- {
- assign(other);
- }
-
- /**
- *
- */
- ElementExclusiveTimeContainer &operator=(const ElementExclusiveTimeContainer &other)
- {
- assign(other);
- return *this;
- }
-
- /**
- *
- */
- void assign(const ElementExclusiveTimeContainer &other)
- {
- endSync = other.endSync;
- pausedElements = other.pausedElements;
- }
-
- /**
- *
- */
- virtual ~ElementExclusiveTimeContainer() {}
-
-protected:
-
- DOMString endSync;
- NodeList pausedElements;
-
-
-};
-
-
-/*#########################################################################
-## ElementTimeControl
-#########################################################################*/
-
-/**
- * NOTE: need more info
- */
-class ElementTimeControl
-{
-public:
-
- /**
- * Causes this element to begin the local timeline (subject to sync constraints).
- */
- virtual bool beginElement() throw(dom::DOMException)
- {
- return true;
- }
-
- /**
- * Causes this element to begin the local timeline (subject to sync constraints),
- * at the passed offset from the current time when the method is called. If the
- * offset is >= 0, the semantics are equivalent to an event-base begin with the
- * specified offset. If the offset is < 0, the semantics are equivalent to
- * beginElement(), but the element active duration is evaluated as though the
- * element had begun at the passed (negative) offset from the current time when
- * the method is called.
- */
- virtual bool beginElementAt(double /*offset*/) throw(dom::DOMException)
- {
- return true;
- }
-
- /**
- * Causes this element to end the local timeline (subject to sync constraints).
- */
- virtual bool endElement() throw(dom::DOMException)
- {
- return true;
- }
-
- /**
- * Causes this element to end the local timeline (subject to sync constraints) at
- * the specified offset from the current time when the method is called.
- */
- virtual bool endElementAt(double /*offset*/) throw(dom::DOMException)
- {
- return true;
- }
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- ElementTimeControl() {}
-
- /**
- *
- */
- ElementTimeControl(const ElementTimeControl &/*other*/)
- {
- }
-
- /**
- *
- */
- ElementTimeControl &operator=(const ElementTimeControl &/*other*/)
- {
- return *this;
- }
-
- /**
- *
- */
- virtual ~ElementTimeControl() {}
-
-
-};
-
-
-/*#########################################################################
-## ElementTargetAttributes
-#########################################################################*/
-
-/**
- * This interface define the set of animation target extensions.
- */
-class ElementTargetAttributes
-{
-public:
-
-
- /**
- * Get the name of the target attribute.
- */
- virtual DOMString getAttributeName()
- { return attributeName; }
-
- /**
- * Set the name of the target attribute.
- */
- virtual void setAttributeName(const DOMString &val)
- { attributeName = val; }
-
- /**
- * A code representing the value of the attributeType attribute
- */
- typedef enum
- {
- ATTRIBUTE_TYPE_AUTO = 0,
- ATTRIBUTE_TYPE_CSS = 1,
- ATTRIBUTE_TYPE_XML = 2
- } AttributeType;
-
- /**
- * Get the attribute type, as defined above.
- */
- virtual unsigned short getAttributeType()
- { return attributeType; }
-
- /**
- * Set the attribute type, as defined above.
- */
- virtual void setAttributeType(unsigned short val)
- { attributeType = val; }
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- ElementTargetAttributes()
- {
- attributeName = "";
- attributeType = ATTRIBUTE_TYPE_AUTO;
- }
-
- /**
- *
- */
- ElementTargetAttributes(const ElementTargetAttributes &other)
- {
- assign(other);
- }
-
- /**
- *
- */
- ElementTargetAttributes &operator=(const ElementTargetAttributes &other)
- {
- assign(other);
- return *this;
- }
-
- /**
- *
- */
- void assign(const ElementTargetAttributes &other)
- {
- attributeName = other.attributeName;
- attributeType = other.attributeType;
- }
-
- /**
- *
- */
- virtual ~ElementTargetAttributes() {}
-
-protected:
-
- DOMString attributeName;
- unsigned short attributeType;
-
-};
-
-
-/*#########################################################################
-## ElementTest
-#########################################################################*/
-
-/**
- * Defines the test attributes interface. See the Test attributes definition.
- */
-class ElementTest
-{
-public:
-
-
- /**
- * Get the systemBitrate value.
- */
- virtual long getSystemBitrate()
- { return systemBitrate; }
-
- /**
- * Set the systemBitrate value.
- */
- virtual void setSystemBitrate(long val) throw (dom::DOMException)
- { systemBitrate = val; }
-
- /**
- * Get the systemCaptions value.
- */
- virtual bool getSystemCaptions()
- { return systemCaptions; }
-
- /**
- * Set the systemCaptions value.
- */
- virtual void setSystemCaptions(bool val) throw (dom::DOMException)
- { systemCaptions = val; }
-
- /**
- * Get the systemLanguage value.
- */
- virtual DOMString getSystemLanguage()
- { return systemLanguage; }
-
- /**
- * Set the systemLanguage value.
- */
- virtual void setSystemLanguage(const DOMString &val) throw (dom::DOMException)
- { systemLanguage = val; }
-
- /**
- * Get the systemRequired value.
- */
- virtual bool getSystemRequired()
- { return systemRequired; }
-
- /**
- * Get the systemScreenSize value.
- */
- virtual bool getSystemScreenSize()
- { return systemScreenSize; }
-
- /**
- * Get the systemScreenDepth value.
- */
- virtual bool getSystemScreenDepth()
- { return systemScreenDepth; }
-
- /**
- * Get the systemOverdubOrSubtitle value.
- */
- virtual DOMString getSystemOverdubOrSubtitle()
- { return systemOverdubOrSubtitle; }
-
- /**
- * Set the systemOverdubOrSubtitle value.
- */
- virtual void setSystemOverdubOrSubtitle(const DOMString &val) throw (dom::DOMException)
- { systemOverdubOrSubtitle = val; }
-
- /**
- * Get the systemAudioDesc value.
- */
- virtual bool getSystemAudioDesc()
- { return systemAudioDesc; }
-
- /**
- * Set the systemOverdubOrSubtitle value.
- */
- virtual void setSystemAudioDesc(bool val) throw (dom::DOMException)
- { systemAudioDesc = val; }
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- ElementTest() :
- systemBitrate (0),
- systemCaptions (false),
- systemLanguage (),
- systemRequired (false),
- systemScreenSize (false),
- systemScreenDepth (false),
- systemOverdubOrSubtitle (),
- systemAudioDesc (false)
- {
- }
-
- /**
- *
- */
- ElementTest(const ElementTest &other)
- {
- assign(other);
- }
-
- /**
- *
- */
- ElementTest &operator=(const ElementTest &other)
- {
- assign(other);
- return *this;
- }
-
- /**
- *
- */
- void assign(const ElementTest &other)
- {
- systemBitrate = other.systemBitrate;
- systemCaptions = other.systemCaptions;
- systemLanguage = other.systemLanguage;
- systemRequired = other.systemRequired;
- systemScreenSize = other.systemScreenSize;
- systemScreenDepth = other.systemScreenDepth;
- systemOverdubOrSubtitle = other.systemOverdubOrSubtitle;
- systemAudioDesc = other.systemAudioDesc;
- }
-
- /**
- *
- */
- virtual ~ElementTest() {}
-
-
-protected:
- long systemBitrate;
- bool systemCaptions;
- DOMString systemLanguage;
- bool systemRequired;
- bool systemScreenSize;
- bool systemScreenDepth;
- DOMString systemOverdubOrSubtitle;
- bool systemAudioDesc;
-};
-
-
-/*#########################################################################
-## TimeEvent
-#########################################################################*/
-
-/**
- * The TimeEvent interface provides specific contextual information associated
- * with Time events.
- */
-class TimeEvent : public events::Event
-{
-public:
-
- /**
- * The view attribute identifies the AbstractView from which the event
- * was generated.
- */
- virtual views::AbstractView &getView()
- { return view; }
-
- /**
- * Specifies some detail information about the Event, depending on
- * the type of event.
- */
- virtual long getDetail()
- { return detail; }
-
- /**
- * The initTimeEvent method is used to initialize the value of a TimeEvent
- * created through the DocumentEvent interface. This method may only be called
- * before the TimeEvent has been dispatched via the dispatchEvent method, though
- * it may be called multiple times during that phase if necessary. If called
- * multiple times, the final invocation takes precedence.
- */
- virtual void initTimeEvent(const DOMString &/*typeArg*/,
- const views::AbstractView */*viewArg*/,
- long /*detailArg*/)
- {
- }
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- TimeEvent()
- {
- detail = 0;
- }
-
- /**
- *
- */
- TimeEvent(const TimeEvent &other) : events::Event(other)
- {
- assign(other);
- }
-
- /**
- *
- */
- TimeEvent &operator=(const TimeEvent &other)
- {
- assign(other);
- return *this;
- }
-
- /**
- *
- */
- void assign(const TimeEvent &other)
- {
- view = other.view;
- detail = other.detail;
- }
-
- /**
- *
- */
- virtual ~TimeEvent() {}
-
-
-protected:
-
- views::AbstractView view;
- long detail;
-
-
-};
-
-
-
-
-/*#########################################################################
-###########################################################################
-## I N T E R F A C E T Y P E S
-###########################################################################
-#########################################################################*/
-
-
-
-
-/*#########################################################################
-## SMILDocument
-#########################################################################*/
-
-/**
- * A SMIL document is the root of the SMIL Hierarchy and holds the entire
- * content. Beside providing access to the hierarchy, it also provides some
- * convenience methods for accessing certain sets of information from the document.
- */
-class SMILDocument : virtual public Document,
- public ElementSequentialTimeContainer
-{
-public:
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SMILDocument() {}
-
-
-};
-
-
-/*#########################################################################
-## SMILElement
-#########################################################################*/
-
-/**
- * The SMILElement interface is the base for all SMIL element types. It follows
- * the model of the HTMLElement in the HTML DOM, extending the base Element class
- * to denote SMIL-specific elements.
- */
-class SMILElement : virtual public Element
-{
-public:
-
- /**
- * Get the unique ID
- */
- virtual DOMString getId() =0;
-
- /**
- * Set the unique ID
- */
- virtual void setId(const DOMString &val) throw (dom::DOMException) =0;
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SMILElement() {}
-
-
-};
-
-
-/*#########################################################################
-## SMILLayoutElement
-#########################################################################*/
-
-/**
- * Declares layout type for the document. See:
- * http://www.w3.org/TR/2000/WD-smil-boston-20000225/layout.html#LayoutModuleNS-TheLayoutElement
- */
-class SMILLayoutElement : virtual public SMILElement
-{
-public:
-
- /**
- * The mime type of the layout langage used in this layout element.The default
- * value of the type attribute is "text/smil-basic-layout".
- */
- virtual DOMString getType() =0;
-
- /**
- * true if the player can understand the mime type, false otherwise.
- */
- virtual bool getResolved() =0;
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SMILLayoutElement() {}
-
-
-};
-
-
-/*#########################################################################
-## SMILTopLayoutElement
-#########################################################################*/
-
-/**
- * Declares layout properties for the top-layout element. See:
- * http://www.w3.org/TR/2000/WD-smil-boston-20000225/layout.html#LayoutModuleNS-TheTopLayoutElement
- */
-class SMILTopLayoutElement : virtual public SMILElement,
- virtual public ElementLayout
-{
-public:
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SMILTopLayoutElement() {}
-
-
-};
-
-
-/*#########################################################################
-## SMILRootLayoutElement
-#########################################################################*/
-
-/**
- * Declares layout properties for the root-layout element. See:
- * http://www.w3.org/TR/2000/WD-smil-boston-20000225/layout.html#LayoutModuleNS-TheRootLayoutElement
- */
-class SMILRootLayoutElement : virtual public SMILElement,
- virtual public ElementLayout
-{
-public:
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SMILRootLayoutElement() {}
-
-
-};
-
-
-/*#########################################################################
-## SMILRegionElement
-#########################################################################*/
-
-/**
- * Controls the position, size and scaling of media object elements. See:
- * http://www.w3.org/TR/2000/WD-smil-boston-20000225/layout.html#LayoutModuleNS-TheRegionElement
- */
-class SMILRegionElement : virtual public SMILElement,
- virtual public ElementLayout
-{
-public:
-
-
- /**
- * Get the fit value
- */
- virtual DOMString getFit() =0;
-
- /**
- * Set the fit value
- */
- virtual void setFit(const DOMString &val) throw (dom::DOMException) =0;
-
- /**
- * Get the top value
- */
- virtual DOMString getTop() =0;
-
- /**
- * Set the top value
- */
- virtual void setTop(const DOMString &val) throw (dom::DOMException) =0;
-
- /**
- * Get the ZIndex value
- */
- virtual long getZIndex() =0;
-
- /**
- * Set the ZIndex value
- */
- virtual void setZIndex(long val) throw (dom::DOMException) =0;
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SMILRegionElement() {}
-
-
-};
-
-
-
-/*#########################################################################
-## SMILMediaElement
-#########################################################################*/
-
-/**
- * Declares media content.
- */
-class SMILMediaElement : virtual public ElementTime,
- virtual public SMILElement
-{
-public:
-
-
- /**
- * Get the "abstractAttr" value
- */
- virtual DOMString getAbstractAttr() =0;
-
- /**
- * Set the "abstractAttr" value
- */
- virtual void setAbstractAttr(const DOMString &val) throw (dom::DOMException) =0;
-
- /**
- * Get the "alt" value
- */
- virtual DOMString getAlt() =0;
-
- /**
- * Set the "alt" value
- */
- virtual void setAlt(const DOMString &val) throw (dom::DOMException) =0;
-
- /**
- * Get the "author" value
- */
- virtual DOMString getAuthor() =0;
-
- /**
- * Set the "author" value
- */
- virtual void setAuthor(const DOMString &val) throw (dom::DOMException) =0;
-
- /**
- * Get the "clipBegin" value
- */
- virtual DOMString getClipBegin() =0;
-
- /**
- * Set the "clipBegin" value
- */
- virtual void setClipBegin(const DOMString &val) throw (dom::DOMException) =0;
-
- /**
- * Get the "clipEnd" value
- */
- virtual DOMString getClipEnd() =0;
-
- /**
- * Set the "clipEnd" value
- */
- virtual void setClipEnd(const DOMString &val) throw (dom::DOMException) =0;
-
- /**
- * Get the "copyright" value
- */
- virtual DOMString getCopyright() =0;
-
- /**
- * Set the "copyright" value
- */
- virtual void setCopyright(const DOMString &val) throw (dom::DOMException) =0;
-
- /**
- * Get the "longdesc" value
- */
- virtual DOMString getLongdesc() =0;
-
- /**
- * Set the "longdesc" value
- */
- virtual void setLongdesc(const DOMString &val) throw (dom::DOMException) =0;
-
- /**
- * Get the "port" value
- */
- virtual DOMString getPort() =0;
-
- /**
- * Set the "port" value
- */
- virtual void setPort(const DOMString &val) throw (dom::DOMException) =0;
-
- /**
- * Get the "readIndex" value
- */
- virtual DOMString getReadIndex() =0;
-
- /**
- * Set the "readIndex" value
- */
- virtual void setReadIndex(const DOMString &val) throw (dom::DOMException) =0;
-
- /**
- * Get the "rtpFormat" value
- */
- virtual DOMString getRtpformat() =0;
-
- /**
- * Set the "readIndex" value
- */
- virtual void setRtpformat(const DOMString &val) throw (dom::DOMException) =0;
-
- /**
- * Get the "src" value
- */
- virtual DOMString getSrc() =0;
-
- /**
- * Set the "src" value
- */
- virtual void setSrc(const DOMString &val) throw (dom::DOMException) =0;
-
- /**
- * Get the "stripRepeat" value
- */
- virtual DOMString getStripRepeat() =0;
-
- /**
- * Set the "stripRepeat" value
- */
- virtual void setStripRepeat(const DOMString &val) throw (dom::DOMException) =0;
-
- /**
- * Get the "title" value
- */
- virtual DOMString getTitle() =0;
-
- /**
- * Set the "title" value
- */
- virtual void setTitle(const DOMString &val) throw (dom::DOMException) =0;
-
- /**
- * Get the "transport" value
- */
- virtual DOMString getTransport() =0;
-
- /**
- * Set the "transport" value
- */
- virtual void setTransport(const DOMString &val) throw (dom::DOMException) =0;
-
- /**
- * Get the "type" value
- */
- virtual DOMString getType() =0;
-
- /**
- * Set the "type" value
- */
- virtual void setType(const DOMString &val) throw (dom::DOMException) =0;
-
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SMILMediaElement() {}
-
-
-};
-
-
-/*#########################################################################
-## SMILRefElement
-#########################################################################*/
-
-/**
- * Audio, video, etc
- * NOTE: need more info
- */
-class SMILRefElement : virtual public SMILMediaElement
-{
-public:
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SMILRefElement() {}
-
-
-};
-
-
-/*#########################################################################
-## SMILAnimation
-#########################################################################*/
-
-/**
- * This interface defines the set of animation extensions for SMIL.
- */
-class SMILAnimation : virtual public SMILElement,
- virtual public ElementTargetAttributes,
- virtual public ElementTime,
- virtual public ElementTimeControl
-{
-public:
-
- /**
- * Codes for the "additive" attribute
- */
- typedef enum
- {
- ADDITIVE_REPLACE = 0,
- ADDITIVE_SUM = 1
- } AdditiveType;
-
-
- /**
- * A code representing the value of the additive attribute, as defined above.
- * Default value is ADDITIVE_REPLACE.
- */
- virtual unsigned short getAdditive() =0;
-
- /**
- * Set the value above.
- */
- virtual void setAdditive(unsigned short val) throw (dom::DOMException)=0;
-
- /**
- * Codes for the 'accumulate' attribute
- */
- typedef enum
- {
- ACCUMULATE_NONE = 0,
- ACCUMULATE_SUM = 1
- } AccumulateType;
-
-
- /**
- * A code representing the value of the accumulate attribute, as defined above.
- * Default value is ACCUMULATE_NONE.
- */
- virtual unsigned short getAccumulate() =0;
-
- /**
- * Set the value above
- */
- virtual void setAccumulate(unsigned short val) throw (dom::DOMException)=0;
-
- /**
- * Codes for the "calcmode" attribute
- */
- typedef enum
- {
- CALCMODE_DISCRETE = 0,
- CALCMODE_LINEAR = 1,
- CALCMODE_PACED = 2,
- CALCMODE_SPLINE = 3
- } CalcModeType;
-
-
- /**
- * A code representing the value of the calcMode attribute, as defined above.
- */
- virtual unsigned short getCalcMode() =0;
-
- /**
- * Set the value above.
- */
- virtual void setCalcMode(unsigned short val) throw (dom::DOMException)=0;
-
- /**
- * A DOMString representing the value of the keySplines attribute.
- */
- virtual DOMString getKeySplines() =0;
-
- /**
- * Set the value above.
- */
- virtual void setKeySplines(const DOMString &val) throw (dom::DOMException)=0;
-
- /**
- * Get a list of the time values of the keyTimes attribute.
- */
- virtual TimeList getKeyTimes() =0;
-
- /**
- * Set the list of the time value of the keyTimes attribute.
- */
- virtual void setKeyTimes(const TimeList &val) throw (dom::DOMException)=0;
-
- /**
- * Get a DOMString representing the value of the values attribute.
- */
- virtual DOMString getValues() =0;
-
- /**
- * Set the DOMString representing the value of the values attribute.
- */
- virtual void setValues(const DOMString &val) throw (dom::DOMException)=0;
-
- /**
- * Get a DOMString representing the value of the from attribute.
- */
- virtual DOMString getFrom() =0;
-
- /**
- * Set the DOMString representing the value of the from attribute.
- */
- virtual void setFrom(const DOMString &val) throw (dom::DOMException)=0;
-
- /**
- * Get a DOMString representing the value of the to attribute.
- */
- virtual DOMString getTo() =0;
-
- /**
- * Set the DOMString representing the value of the to attribute.
- */
- virtual void setTo(const DOMString &val) throw (dom::DOMException)=0;
-
- /**
- * Get a DOMString representing the value of the by attribute.
- */
- virtual DOMString getBy() =0;
-
- /**
- * Set the DOMString representing the value of the by attribute.
- */
- virtual void setBy(const DOMString &val) throw (dom::DOMException)=0;
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SMILAnimation() {}
-
-
-};
-
-
-/*#########################################################################
-## SMILAnimateElement
-#########################################################################*/
-
-/**
- * This interface represents the SMIL animate element.
- */
-class SMILAnimateElement : virtual public SMILAnimation
-{
-public:
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SMILAnimateElement() {}
-
-
-};
-
-
-/*#########################################################################
-## SMILSetElement
-#########################################################################*/
-
-/**
- * This interface represents the set element.
- */
-class SMILSetElement : virtual public ElementTimeControl,
- virtual public ElementTime,
- virtual public ElementTargetAttributes,
- virtual public SMILElement
-{
-public:
-
- /**
- * Specifies the value for the attribute during the duration of this element.
- */
- virtual DOMString getTo() =0;
-
- /**
- * Set the value above.
- */
- virtual void setTo(const DOMString &val) =0;
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SMILSetElement() {}
-
-
-};
-
-
-/*#########################################################################
-## SMILAnimateMotionElement
-#########################################################################*/
-
-/**
- * This interface present the animationMotion element in SMIL.
- */
-class SMILAnimateMotionElement : virtual public SMILAnimateElement
-{
-public:
-
- /**
- * Specifies the curve that describes the attribute value as a function of time.
- */
- virtual DOMString getPath() =0;
-
- /**
- * Specifies the curve that describes the attribute value as a function of time.
- */
- virtual void setPath(const DOMString &val) throw(dom::DOMException) =0;
-
- /**
- * Specifies the origin of motion for the animation.
- */
- virtual DOMString getOrigin() =0;
-
- /**
- * Specifies the origin of motion for the animation.
- */
- virtual void setOrigin(const DOMString &val) throw(dom::DOMException) =0;
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SMILAnimateMotionElement() {}
-
-
-};
-
-
-/*#########################################################################
-## SMILAnimateColorElement
-#########################################################################*/
-
-/**
- * This interface represents the SMIL animateColor element.
- */
-class SMILAnimateColorElement : virtual public SMILAnimation
-{
-public:
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SMILAnimateColorElement() {}
-
-
-};
-
-
-
-
-
-/*#########################################################################
-## SMILSwitchElement
-#########################################################################*/
-
-/**
- * Defines a block of content control. See:
- * http://www.w3.org/TR/2000/WD-smil-boston-20000225/content.html#ContentControlNS-SwitchElement
- */
-class SMILSwitchElement : virtual public SMILElement
-{
-public:
-
- /**
- * Returns the slected element at runtime. null if the selected element
- * is not yet available.
- */
- virtual ElementPtr getSelectedElement() =0;
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SMILSwitchElement() {}
-
-
-};
-
-
-
-
-
-} //namespace smil
-} //namespace dom
-} //namespace w3c
-} //namespace org
-
-#endif // SEEN_SMIL_H
-
-/*#########################################################################
-## E N D O F F I L E
-#########################################################################*/
-
diff --git a/src/dom/smilimpl.cpp b/src/dom/smilimpl.cpp
deleted file mode 100644
index 94726ee61..000000000
--- a/src/dom/smilimpl.cpp
+++ /dev/null
@@ -1,855 +0,0 @@
-/*
- * Phoebe DOM Implementation.
- *
- * This is a C++ approximation of the W3C DOM model, which follows
- * fairly closely the specifications in the various .idl files, copies of
- * which are provided for reference. Most important is this one:
- *
- * http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/idl-definitions.html
- *
- * Authors:
- * Bob Jamison
- *
- * Copyright (C) 2005-2008 Bob Jamison
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-
-#include "smilimpl.h"
-
-
-namespace org
-{
-namespace w3c
-{
-namespace dom
-{
-namespace smil
-{
-
-
-/*#########################################################################
-## SMILDocumentImpl
-#########################################################################*/
-
-
-//##################
-//# Non-API methods
-//##################
-
-/**
- *
- */
-SMILDocumentImpl::SMILDocumentImpl() : DocumentImpl(NULL, "", "", NULL)
-{
-}
-
-/**
- *
- */
-SMILDocumentImpl::~SMILDocumentImpl()
-{
-}
-
-
-
-
-/*#########################################################################
-## SMILElementImpl
-#########################################################################*/
-
-/**
- *
- */
-DOMString SMILElementImpl::getId()
-{
- return DOMString("");
-}
-
-/**
- *
- */
-void SMILElementImpl::setId(const DOMString &/*val*/) throw (dom::DOMException)
-{
-}
-
-
-//##################
-//# Non-API methods
-//##################
-
-/**
- *
- */
-SMILElementImpl::~SMILElementImpl()
-{
-}
-
-
-
-
-/*#########################################################################
-## SMILLayoutElementImpl
-#########################################################################*/
-
-/**
- *
- */
-DOMString SMILLayoutElementImpl::getType()
-{
- return DOMString("");
-}
-
-/**
- *
- */
-bool SMILLayoutElementImpl::getResolved()
-{
- return false;
-}
-
-//##################
-//# Non-API methods
-//##################
-
-/**
- *
- */
-SMILLayoutElementImpl::~SMILLayoutElementImpl()
-{
-}
-
-
-
-
-/*#########################################################################
-## SMILTopLayoutElementImpl
-#########################################################################*/
-
-
-//##################
-//# Non-API methods
-//##################
-
-/**
- *
- */
-SMILTopLayoutElementImpl::~SMILTopLayoutElementImpl()
-{
-}
-
-
-
-
-/*#########################################################################
-## SMILRootLayoutElementImpl
-#########################################################################*/
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-/**
- *
- */
-SMILRootLayoutElementImpl::~SMILRootLayoutElementImpl()
-{
-}
-
-
-
-
-/*#########################################################################
-## SMILRegionElementImpl
-#########################################################################*/
-
-/**
- *
- */
-DOMString SMILRegionElementImpl::getFit()
-{
- return DOMString("");
-}
-
-/**
- *
- */
-void SMILRegionElementImpl::setFit(const DOMString &/*val*/) throw (dom::DOMException)
-{
-}
-
-/**
- *
- */
-DOMString SMILRegionElementImpl::getTop()
-{
- return DOMString("");
-}
-
-/**
- *
- */
-void SMILRegionElementImpl::setTop(const DOMString &/*val*/) throw (dom::DOMException)
-{
-}
-
-/**
- *
- */
-long SMILRegionElementImpl::getZIndex()
-{
- return 0L;
-}
-
-/**
- *
- */
-void SMILRegionElementImpl::setZIndex(long /*val*/) throw (dom::DOMException)
-{
-}
-
-
-//##################
-//# Non-API methods
-//##################
-
-/**
- *
- */
-SMILRegionElementImpl::~SMILRegionElementImpl()
-{
-}
-
-
-
-
-/*#########################################################################
-## SMILMediaElementImpl
-#########################################################################*/
-
-/**
- *
- */
-DOMString SMILMediaElementImpl::getAbstractAttr()
-{
- return DOMString("");
-}
-
-/**
- *
- */
-void SMILMediaElementImpl::setAbstractAttr(const DOMString &/*val*/)
- throw (dom::DOMException)
-{
-}
-
-/**
- *
- */
-DOMString SMILMediaElementImpl::getAlt()
-{
- return DOMString("");
-}
-
-/**
- *
- */
-void SMILMediaElementImpl::setAlt(const DOMString &/*val*/)
- throw (dom::DOMException)
-{
-}
-
-/**
- *
- */
-DOMString SMILMediaElementImpl::getAuthor()
-{
- return DOMString("");
-}
-
-/**
- *
- */
-void SMILMediaElementImpl::setAuthor(const DOMString &/*val*/)
- throw (dom::DOMException)
-{
-}
-
-/**
- *
- */
-DOMString SMILMediaElementImpl::getClipBegin()
-{
- return DOMString("");
-}
-
-/**
- *
- */
-void SMILMediaElementImpl::setClipBegin(const DOMString &/*val*/)
- throw (dom::DOMException)
-{
-}
-
-/**
- *
- */
-DOMString SMILMediaElementImpl::getClipEnd()
-{
- return DOMString("");
-}
-
-/**
- *
- */
-void SMILMediaElementImpl::setClipEnd(const DOMString &/*val*/)
- throw (dom::DOMException)
-{
-}
-
-/**
- *
- */
-DOMString SMILMediaElementImpl::getCopyright()
-{
- return DOMString("");
-}
-
-/**
- *
- */
-void SMILMediaElementImpl::setCopyright(const DOMString &/*val*/)
- throw (dom::DOMException)
-{
-}
-
-/**
- *
- */
-DOMString SMILMediaElementImpl::getLongdesc()
-{
- return DOMString("");
-}
-
-/**
- *
- */
-void SMILMediaElementImpl::setLongdesc(const DOMString &/*val*/)
- throw (dom::DOMException)
-{
-}
-
-/**
- *
- */
-DOMString SMILMediaElementImpl::getPort()
-{
- return DOMString("");
-}
-
-/**
- *
- */
-void SMILMediaElementImpl::setPort(const DOMString &/*val*/)
- throw (dom::DOMException)
-{
-}
-
-/**
- *
- */
-DOMString SMILMediaElementImpl::getReadIndex()
-{
- return DOMString("");
-}
-
-/**
- *
- */
-void SMILMediaElementImpl::setReadIndex(const DOMString &/*val*/)
- throw (dom::DOMException)
-{
-}
-
-/**
- *
- */
-DOMString SMILMediaElementImpl::getRtpformat()
-{
- return DOMString("");
-}
-
-/**
- *
- */
-void SMILMediaElementImpl::setRtpformat(const DOMString &/*val*/)
- throw (dom::DOMException)
-{
-}
-
-/**
- *
- */
-DOMString SMILMediaElementImpl::getSrc()
-{
- return DOMString("");
-}
-
-/**
- *
- */
-void SMILMediaElementImpl::setSrc(const DOMString &/*val*/)
- throw (dom::DOMException)
-{
-}
-
-/**
- *
- */
-DOMString SMILMediaElementImpl::getStripRepeat()
-{
- return DOMString("");
-}
-
-/**
- *
- */
-void SMILMediaElementImpl::setStripRepeat(const DOMString &/*val*/)
- throw (dom::DOMException)
-{
-}
-
-/**
- *
- */
-DOMString SMILMediaElementImpl::getTitle()
-{
- return DOMString("");
-}
-
-/**
- *
- */
-void SMILMediaElementImpl::setTitle(const DOMString &/*val*/)
- throw (dom::DOMException)
-{
-}
-
-/**
- *
- */
-DOMString SMILMediaElementImpl::getTransport()
-{
- return DOMString("");
-}
-
-/**
- *
- */
-void SMILMediaElementImpl::setTransport(const DOMString &/*val*/)
- throw (dom::DOMException)
-{
-}
-
-/**
- *
- */
-DOMString SMILMediaElementImpl::getType()
-{
- return DOMString("");
-}
-
-/**
- *
- */
-void SMILMediaElementImpl::setType(const DOMString &/*val*/)
- throw (dom::DOMException)
-{
-}
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-/**
- *
- */
-SMILMediaElementImpl::~SMILMediaElementImpl()
-{
-}
-
-
-
-
-/*#########################################################################
-## SMILRefElementImpl
-#########################################################################*/
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-/**
- *
- */
-SMILRefElementImpl::~SMILRefElementImpl()
-{
-}
-
-
-
-
-/*#########################################################################
-## SMILAnimationImpl
-#########################################################################*/
-
-
-/**
- *
- */
-unsigned short SMILAnimationImpl::getAdditive()
-{
- return 0;
-}
-
-/**
- *
- */
-void SMILAnimationImpl::setAdditive(unsigned short /*val*/)
- throw (dom::DOMException)
-{
-}
-
-/**
- *
- */
-unsigned short SMILAnimationImpl::getAccumulate()
-{
- return 0;
-}
-
-/**
- *
- */
-void SMILAnimationImpl::setAccumulate(unsigned short /*val*/)
- throw (dom::DOMException)
-{
-}
-
-/**
- *
- */
-unsigned short SMILAnimationImpl::getCalcMode()
-{
- return 0;
-}
-
-/**
- *
- */
-void SMILAnimationImpl::setCalcMode(unsigned short /*val*/)
- throw (dom::DOMException)
-{
-}
-
-/**
- *
- */
-DOMString SMILAnimationImpl::getKeySplines()
-{
- return DOMString("");
-}
-
-/**
- *
- */
-void SMILAnimationImpl::setKeySplines(const DOMString &/*val*/)
- throw (dom::DOMException)
-{
-}
-
-/**
- *
- */
-TimeList SMILAnimationImpl::getKeyTimes()
-{
- return keyTimes;
-}
-
-/**
- *
- */
-void SMILAnimationImpl::setKeyTimes(const TimeList &val)
- throw (dom::DOMException)
-{
- keyTimes = val;
-}
-
-/**
- *
- */
-DOMString SMILAnimationImpl::getValues()
-{
- return DOMString("");
-}
-
-/**
- *
- */
-void SMILAnimationImpl::setValues(const DOMString &/*val*/)
- throw (dom::DOMException)
-{
-}
-
-/**
- *
- */
-DOMString SMILAnimationImpl::getFrom()
-{
- return DOMString("");
-}
-
-/**
- *
- */
-void SMILAnimationImpl::setFrom(const DOMString &/*val*/)
- throw (dom::DOMException)
-{
-}
-
-/**
- *
- */
-DOMString SMILAnimationImpl::getTo()
-{
- return DOMString("");
-}
-
-/**
- *
- */
-void SMILAnimationImpl::setTo(const DOMString &/*val*/)
- throw (dom::DOMException)
-{
-}
-
-/**
- *
- */
-DOMString SMILAnimationImpl::getBy()
-{
- return DOMString("");
-}
-
-/**
- *
- */
-void SMILAnimationImpl::setBy(const DOMString &/*val*/)
- throw (dom::DOMException)
-{
-}
-
-//##################
-//# Non-API methods
-//##################
-
-/**
- *
- */
-SMILAnimationImpl::~SMILAnimationImpl()
-{
-}
-
-
-
-
-/*#########################################################################
-## SMILAnimateElementImpl
-#########################################################################*/
-
-
-//##################
-//# Non-API methods
-//##################
-
-/**
- *
- */
-SMILAnimateElementImpl::~SMILAnimateElementImpl()
-{
-}
-
-
-
-
-/*#########################################################################
-## SMILSetElementImpl
-#########################################################################*/
-
-/**
- *
- */
-DOMString SMILSetElementImpl::getTo()
-{
- return DOMString("");
-}
-
-/**
- *
- */
-void SMILSetElementImpl::setTo(const DOMString &/*val*/)
-{
-}
-
-//##################
-//# Non-API methods
-//##################
-
-/**
- *
- */
-SMILSetElementImpl::~SMILSetElementImpl()
-{
-}
-
-
-
-
-/*#########################################################################
-## SMILAnimateMotionElementImpl
-#########################################################################*/
-
-/**
- *
- */
-DOMString SMILAnimateMotionElementImpl::getPath()
-{
- return DOMString("");
-}
-
-/**
- *
- */
-void SMILAnimateMotionElementImpl::setPath(const DOMString &/*val*/)
- throw(dom::DOMException)
-{
-}
-
-/**
- *
- */
-DOMString SMILAnimateMotionElementImpl::getOrigin()
-{
- return DOMString("");
-}
-
-/**
- *
- */
-void SMILAnimateMotionElementImpl::setOrigin(const DOMString &/*val*/)
- throw(dom::DOMException)
-{
-}
-
-
-//##################
-//# Non-API methods
-//##################
-
-/**
- *
- */
-SMILAnimateMotionElementImpl::~SMILAnimateMotionElementImpl()
-{
-}
-
-
-
-
-/*#########################################################################
-## SMILAnimateColorElementImpl
-#########################################################################*/
-
-
-//##################
-//# Non-API methods
-//##################
-
-/**
- *
- */
-SMILAnimateColorElementImpl::~SMILAnimateColorElementImpl()
-{
-}
-
-
-
-
-
-
-
-/*#########################################################################
-## SMILSwitchElementImpl
-#########################################################################*/
-
-
-/**
- *
- */
-ElementPtr SMILSwitchElementImpl::getSelectedElement()
-{
- ElementPtr ptr;
- return ptr;
-}
-
-//##################
-//# Non-API methods
-//##################
-
-/**
- *
- */
-SMILSwitchElementImpl::~SMILSwitchElementImpl()
-{
-}
-
-
-
-
-
-
-
-
-
-
-} //namespace smil
-} //namespace dom
-} //namespace w3c
-} //namespace org
-
-
-
-
-/*#########################################################################
-## E N D O F F I L E
-#########################################################################*/
-
diff --git a/src/dom/smilimpl.h b/src/dom/smilimpl.h
deleted file mode 100644
index d71df020a..000000000
--- a/src/dom/smilimpl.h
+++ /dev/null
@@ -1,766 +0,0 @@
-#ifndef SEEN_SMILIMPL_H
-#define SEEN_SMILIMPL_H
-/**
- * Phoebe DOM Implementation.
- *
- * This is a C++ approximation of the W3C DOM model, which follows
- * fairly closely the specifications in the various .idl files, copies of
- * which are provided for reference. Most important is this one:
- *
- * http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/idl-definitions.html
- */
-/*
- * Authors:
- * Bob Jamison
- *
- * Copyright (C) 2005-2008 Bob Jamison
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-
-#include "smil.h"
-#include "domimpl.h"
-#include "views.h"
-#include "events.h"
-
-
-namespace org
-{
-namespace w3c
-{
-namespace dom
-{
-namespace smil
-{
-
-
-/*#########################################################################
-## SMILDocumentImpl
-#########################################################################*/
-
-/**
- *
- */
-class SMILDocumentImpl : virtual public SMILDocument,
- virtual public DocumentImpl
-{
-public:
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- SMILDocumentImpl();
-
- /**
- *
- */
- virtual ~SMILDocumentImpl();
-
-
-};
-
-
-/*#########################################################################
-## SMILElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SMILElementImpl : virtual public SMILElement,
- public ElementImpl
-{
-public:
-
- /**
- *
- */
- virtual DOMString getId();
-
- /**
- *
- */
- virtual void setId(const DOMString &val) throw (dom::DOMException);
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SMILElementImpl();
-
-
-};
-
-
-/*#########################################################################
-## SMILLayoutElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SMILLayoutElementImpl : virtual public SMILLayoutElement,
- public SMILElementImpl
-{
-public:
-
- /**
- *
- */
- virtual DOMString getType();
-
- /**
- *
- */
- virtual bool getResolved();
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SMILLayoutElementImpl();
-
-
-};
-
-
-/*#########################################################################
-## SMILTopLayoutElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SMILTopLayoutElementImpl : virtual public SMILTopLayoutElement,
- public SMILElementImpl
-{
-public:
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SMILTopLayoutElementImpl();
-
-
-};
-
-
-/*#########################################################################
-## SMILRootLayoutElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SMILRootLayoutElementImpl : virtual public SMILRootLayoutElement,
- public SMILElementImpl
-{
-public:
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SMILRootLayoutElementImpl();
-
-
-};
-
-
-/*#########################################################################
-## SMILRegionElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SMILRegionElementImpl : virtual public SMILRegionElement,
- public SMILElementImpl
-{
-public:
-
-
- /**
- *
- */
- virtual DOMString getFit();
-
- /**
- *
- */
- virtual void setFit(const DOMString &val) throw (dom::DOMException);
-
- /**
- *
- */
- virtual DOMString getTop();
-
- /**
- *
- */
- virtual void setTop(const DOMString &val) throw (dom::DOMException);
-
- /**
- *
- */
- virtual long getZIndex();
-
- /**
- *
- */
- virtual void setZIndex(long val) throw (dom::DOMException);
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SMILRegionElementImpl();
-
-
-};
-
-
-
-
-
-/*#########################################################################
-## SMILMediaElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SMILMediaElementImpl : virtual public SMILMediaElement,
- public SMILElementImpl
-{
-public:
-
-
- /**
- *
- */
- virtual DOMString getAbstractAttr();
-
- /**
- *
- */
- virtual void setAbstractAttr(const DOMString &val) throw (dom::DOMException);
-
- /**
- *
- */
- virtual DOMString getAlt();
-
- /**
- *
- */
- virtual void setAlt(const DOMString &val) throw (dom::DOMException);
-
- /**
- *
- */
- virtual DOMString getAuthor();
-
- /**
- *
- */
- virtual void setAuthor(const DOMString &val) throw (dom::DOMException);
-
- /**
- *
- */
- virtual DOMString getClipBegin();
-
- /**
- *
- */
- virtual void setClipBegin(const DOMString &val) throw (dom::DOMException);
-
- /**
- *
- */
- virtual DOMString getClipEnd();
-
- /**
- *
- */
- virtual void setClipEnd(const DOMString &val) throw (dom::DOMException);
-
- /**
- *
- */
- virtual DOMString getCopyright();
-
- /**
- *
- */
- virtual void setCopyright(const DOMString &val) throw (dom::DOMException);
-
- /**
- *
- */
- virtual DOMString getLongdesc();
-
- /**
- *
- */
- virtual void setLongdesc(const DOMString &val) throw (dom::DOMException);
-
- /**
- *
- */
- virtual DOMString getPort();
-
- /**
- *
- */
- virtual void setPort(const DOMString &val) throw (dom::DOMException);
-
- /**
- *
- */
- virtual DOMString getReadIndex();
-
- /**
- *
- */
- virtual void setReadIndex(const DOMString &val) throw (dom::DOMException);
-
- /**
- *
- */
- virtual DOMString getRtpformat();
-
- /**
- *
- */
- virtual void setRtpformat(const DOMString &val) throw (dom::DOMException);
-
- /**
- *
- */
- virtual DOMString getSrc();
-
- /**
- *
- */
- virtual void setSrc(const DOMString &val) throw (dom::DOMException);
-
- /**
- *
- */
- virtual DOMString getStripRepeat();
-
- /**
- *
- */
- virtual void setStripRepeat(const DOMString &val) throw (dom::DOMException);
-
- /**
- *
- */
- virtual DOMString getTitle();
-
- /**
- *
- */
- virtual void setTitle(const DOMString &val) throw (dom::DOMException);
-
- /**
- *
- */
- virtual DOMString getTransport();
-
- /**
- *
- */
- virtual void setTransport(const DOMString &val) throw (dom::DOMException);
-
- /**
- *
- */
- virtual DOMString getType();
-
- /**
- *
- */
- virtual void setType(const DOMString &val) throw (dom::DOMException);
-
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SMILMediaElementImpl();
-
-
-};
-
-
-/*#########################################################################
-## SMILRefElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SMILRefElementImpl : virtual public SMILRefElement,
- public SMILMediaElementImpl
-{
-public:
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SMILRefElementImpl();
-
-
-};
-
-
-/*#########################################################################
-## SMILAnimationImpl
-#########################################################################*/
-
-/**
- *
- */
-class SMILAnimationImpl : virtual public SMILAnimation,
- public SMILElementImpl
-{
-public:
-
- /**
- *
- */
- virtual unsigned short getAdditive();
-
- /**
- *
- */
- virtual void setAdditive(unsigned short val) throw (dom::DOMException);
-
- /**
- *
- */
- virtual unsigned short getAccumulate();
-
- /**
- *
- */
- virtual void setAccumulate(unsigned short val) throw (dom::DOMException);
-
- /**
- *
- */
- virtual unsigned short getCalcMode();
-
- /**
- *
- */
- virtual void setCalcMode(unsigned short val) throw (dom::DOMException);
-
- /**
- *
- */
- virtual DOMString getKeySplines();
-
- /**
- *
- */
- virtual void setKeySplines(const DOMString &val) throw (dom::DOMException);
-
- /**
- *
- */
- virtual TimeList getKeyTimes();
-
- /**
- *
- */
- virtual void setKeyTimes(const TimeList &val) throw (dom::DOMException);
-
- /**
- *
- */
- virtual DOMString getValues();
-
- /**
- *
- */
- virtual void setValues(const DOMString &val) throw (dom::DOMException);
-
- /**
- *
- */
- virtual DOMString getFrom();
-
- /**
- *
- */
- virtual void setFrom(const DOMString &val) throw (dom::DOMException);
-
- /**
- *
- */
- virtual DOMString getTo();
-
- /**
- *
- */
- virtual void setTo(const DOMString &val) throw (dom::DOMException);
-
- /**
- *
- */
- virtual DOMString getBy();
-
- /**
- *
- */
- virtual void setBy(const DOMString &val) throw (dom::DOMException);
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SMILAnimationImpl();
-
-protected:
-
- TimeList keyTimes;
-
-
-};
-
-
-/*#########################################################################
-## SMILAnimateElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SMILAnimateElementImpl : virtual public SMILAnimateElement,
- public SMILAnimationImpl
-{
-public:
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SMILAnimateElementImpl();
-
-
-};
-
-
-/*#########################################################################
-## SMILSetElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SMILSetElementImpl : virtual public SMILSetElement,
- public SMILElementImpl
-{
-public:
-
- /**
- *
- */
- virtual DOMString getTo();
-
- /**
- *
- */
- virtual void setTo(const DOMString &val);
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SMILSetElementImpl();
-
-
-};
-
-
-/*#########################################################################
-## SMILAnimateMotionElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SMILAnimateMotionElementImpl : virtual public SMILAnimateMotionElement,
- public SMILAnimateElementImpl
-{
-public:
-
- /**
- *
- */
- virtual DOMString getPath();
-
- /**
- *
- */
- virtual void setPath(const DOMString &val) throw(dom::DOMException);
-
- /**
- *
- */
- virtual DOMString getOrigin();
-
- /**
- *
- */
- virtual void setOrigin(const DOMString &val) throw(dom::DOMException);
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SMILAnimateMotionElementImpl();
-
-
-};
-
-
-/*#########################################################################
-## SMILAnimateColorElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SMILAnimateColorElementImpl : virtual public SMILAnimateColorElement,
- public SMILAnimationImpl
-{
-public:
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SMILAnimateColorElementImpl();
-
-
-};
-
-
-
-
-
-/*#########################################################################
-## SMILSwitchElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SMILSwitchElementImpl : virtual public SMILSwitchElement,
- public SMILElementImpl
-{
-public:
-
- /**
- *
- */
- virtual ElementPtr getSelectedElement();
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SMILSwitchElementImpl();
-
-
-};
-
-
-
-
-
-} //namespace smil
-} //namespace dom
-} //namespace w3c
-} //namespace org
-
-#endif // SEEN_SMILIMPL_H
-
-/*#########################################################################
-## E N D O F F I L E
-#########################################################################*/
-
diff --git a/src/dom/stylesheets.h b/src/dom/stylesheets.h
deleted file mode 100644
index 2903b96d9..000000000
--- a/src/dom/stylesheets.h
+++ /dev/null
@@ -1,597 +0,0 @@
-#ifndef SEEN_STYLESHEETS_H
-#define SEEN_STYLESHEETS_H
-
-/**
- * @file
- * Phoebe DOM Implementation.
- *
- * This is a C++ approximation of the W3C DOM model, which follows
- * fairly closely the specifications in the various .idl files, copies of
- * which are provided for reference. Most important is this one:
- *
- * http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/idl-definitions.html
- */
-/*
- * Authors:
- * Bob Jamison
- *
- * Copyright (C) 2005-2008 Bob Jamison
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- *
- * =========================================================================
- * NOTES
- *
- * Views, Stylesheets and CSS are DOM Level 2 for the purposes of supporting
- * SVG. Be prepared in the future when they make Level 3 and SVG is likewise
- * updated. The API here and many of the comments come from this document:
- * http://www.w3.org/TR/DOM-Level-2-Style/stylesheets.html
- */
-
-
-#include "dom.h"
-
-#include <vector>
-
-
-namespace org
-{
-namespace w3c
-{
-namespace dom
-{
-namespace stylesheets
-{
-
-
-
-//Make local definitions
-typedef dom::DOMString DOMString;
-typedef dom::Node Node;
-
-
-
-/*#########################################################################
-## MediaList
-#########################################################################*/
-
-/**
- * The MediaList interface provides the abstraction of an ordered collection of
- * media, without defining or constraining how this collection is implemented. An
- * empty list is the same as a list that contains the medium "all".
- *
- * The items in the MediaList are accessible via an integral index, starting from
- * 0.
- */
-class MediaList
-{
-public:
-
- /**
- * The parsable textual representation of the media list. This is a
- * comma-separated list of media.
- */
- virtual DOMString getMediaText()
- {
- return mediaText;
- }
-
- /**
- * The parsable textual representation of the media list. This is a
- * comma-separated list of media.
- */
- virtual void setMediaText(const DOMString &val) throw (dom::DOMException)
- {
- mediaText = val;
- }
-
- /**
- * The number of media in the list. The range of valid media is 0 to
- * length-1 inclusive.
- */
- virtual unsigned long getLength()
- {
- return items.size();
- }
-
- /**
- * Returns the indexth in the list. If index is greater than or equal to
- * the number of media in the list, this returns null.
- */
- virtual DOMString item(unsigned long index)
- {
- if (index >= items.size())
- return "";
- return items[index];
- }
-
- /**
- * Deletes the medium indicated by oldMedium from the list.
- */
- virtual void deleteMedium(const DOMString& oldMedium)
- throw (dom::DOMException)
- {
- std::vector<DOMString>::iterator iter;
- for (iter=items.begin() ; iter!=items.end() ; ){
- if (*iter == oldMedium){
- iter = items.erase(iter);
- }
- else{
- ++iter;
- }
- }
- }
-
- /**
- * Adds the medium newMedium to the end of the list. If the newMedium
- * is already used, it is first removed.
- */
- virtual void appendMedium(const DOMString& newMedium)
- throw (dom::DOMException)
- {
- items.push_back(newMedium);
- }
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- MediaList() {}
-
-
- /**
- *
- */
- MediaList(const MediaList &other)
- {
- assign(other);
- }
-
- /**
- *
- */
- MediaList &operator=(const MediaList &other)
- {
- assign(other);
- return *this;
- }
-
- /**
- *
- */
- void assign(const MediaList &other)
- {
- mediaText = other.mediaText;
- items = other.items;
- }
-
- /**
- *
- */
- virtual ~MediaList() {}
-
-protected:
-
- DOMString mediaText;
-
- std::vector<DOMString>items;
-};
-
-
-
-/*#########################################################################
-## StyleSheet
-#########################################################################*/
-
-/**
- * The StyleSheet interface is the abstract base interface for any type of style
- * sheet. It represents a single style sheet associated with a structured
- * document. In HTML, the StyleSheet interface represents either an external
- * style sheet, included via the HTML LINK element, or an inline STYLE element.
- * In XML, this interface represents an external style sheet, included via a
- * style sheet processing instruction.
- */
-class StyleSheet
-{
-public:
-
- /**
- * This specifies the style sheet language for this style sheet. The style sheet
- * language is specified as a content type (e.g. "text/css"). The content type is
- * often specified in the ownerNode. Also see the type attribute definition for
- * the LINK element in HTML 4.0, and the type pseudo-attribute for the XML style
- * sheet processing instruction.
- */
- virtual DOMString getType()
- {
- return type;
- }
-
- /**
- * false if the style sheet is applied to the document. true if it is not.
- * Modifying this attribute may cause a new resolution of style for the document.
- * A stylesheet only applies if both an appropriate medium definition is present
- * and the disabled attribute is false. So, if the media doesn't apply to the
- * current user agent, the disabled attribute is ignored.
- */
- virtual bool getDisabled()
- {
- return disabled;
- }
-
- /**
- * Sets the value above.
- */
- virtual void setDisabled(bool val)
- {
- disabled = val;
- }
-
- /**
- * The node that associates this style sheet with the document. For HTML, this
- * may be the corresponding LINK or STYLE element. For XML, it may be the linking
- * processing instruction. For style sheets that are included by other style
- * sheets, the value of this attribute is null.
- */
- virtual NodePtr getOwnerNode()
- {
- return ownerNode;
- }
-
- /**
- * For style sheet languages that support the concept of style sheet inclusion,
- * this attribute represents the including style sheet, if one exists. If the
- * style sheet is a top-level style sheet, or the style sheet language does not
- * support inclusion, the value of this attribute is null.
- */
- virtual StyleSheet *getParentStyleSheet()
- {
- return parentStylesheet;
- }
-
- /**
- * If the style sheet is a linked style sheet, the value of its attribute is its
- * location. For inline style sheets, the value of this attribute is null. See
- * the href attribute definition for the LINK element in HTML 4.0, and the href
- * pseudo-attribute for the XML style sheet processing instruction.
- */
- virtual DOMString getHref()
- {
- return href;
- }
-
- /**
- * The advisory title. The title is often specified in the ownerNode. See the
- * title attribute definition for the LINK element in HTML 4.0, and the title
- * pseudo-attribute for the XML style sheet processing instruction.
- */
- virtual DOMString getTitle()
- {
- return title;
- }
-
- /**
- * The intended destination media for style information. The media is often
- * specified in the ownerNode. If no media has been specified, the MediaList will
- * be empty. See the media attribute definition for the LINK element in HTML 4.0,
- * and the media pseudo-attribute for the XML style sheet processing
- * instruction . Modifying the media list may cause a change to the attribute
- * disabled.
- */
- virtual MediaList &getMedia()
- {
- MediaList &mediaListRef = mediaList;
- return mediaListRef;
- }
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- StyleSheet()
- : type(""),
- disabled (false),
- ownerNode (NULL),
- parentStylesheet (NULL),
- href (""),
- title (""),
- mediaList ()
- {
- }
-
-
- /**
- *
- */
- StyleSheet(const StyleSheet &other)
- {
- assign(other);
- }
-
- /**
- *
- */
- StyleSheet &operator=(const StyleSheet &other)
- {
- assign(other);
- return *this;
- }
-
- /**
- *
- */
- void assign(const StyleSheet &other)
- {
- type = other.type;
- disabled = other.disabled;
- ownerNode = other.ownerNode;
- parentStylesheet = other.parentStylesheet;
- href = other.href;
- title = other.title;
- mediaList = other.mediaList;
- }
-
- /**
- *
- */
- virtual ~StyleSheet() {}
-
-protected:
-
- DOMString type;
-
- bool disabled;
-
- NodePtr ownerNode;
-
- StyleSheet *parentStylesheet;
-
- DOMString href;
-
- DOMString title;
-
- MediaList mediaList;
-};
-
-
-
-
-/*#########################################################################
-## StyleSheetList
-#########################################################################*/
-
-/**
- * The StyleSheetList interface provides the abstraction of an ordered collection
- * of style sheets.
- *
- * The items in the StyleSheetList are accessible via an integral index, starting
- * from 0.
- */
-class StyleSheetList
-{
-public:
-
- /**
- * The number of StyleSheets in the list. The range of valid child stylesheet
- * indices is 0 to length-1 inclusive.
- */
- virtual unsigned long getLength()
- {
- return sheets.size();
- }
-
- /**
- * Used to retrieve a style sheet by ordinal index. If index is greater than or
- * equal to the number of style sheets in the list, this returns null.
- */
- virtual StyleSheet *item(unsigned long index)
- {
- if (index >= sheets.size())
- return NULL;
- return sheets[index];
- }
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- StyleSheetList() {}
-
- /**
- *
- */
- StyleSheetList(const StyleSheetList &other)
- : sheets (other.sheets)
- {
- }
-
- /**
- *
- */
- StyleSheetList &operator=(const StyleSheetList &other)
- {
- sheets = other.sheets;
- return *this;
- }
-
- /**
- *
- */
- virtual ~StyleSheetList() {}
-
-protected:
-
- std::vector<StyleSheet *>sheets;
-
-};
-
-
-
-
-
-/*#########################################################################
-## LinkStyle
-#########################################################################*/
-
-/**
- * The LinkStyle interface provides a mechanism by which a style sheet can be
- * retrieved from the node responsible for linking it into a document. An
- * instance of the LinkStyle interface can be obtained using binding-specific
- * casting methods on an instance of a linking node (HTMLLinkElement,
- * HTMLStyleElement or ProcessingInstruction in DOM Level 2).
- */
-class LinkStyle
-{
-public:
-
- /**
- * The style sheet.
- */
- virtual StyleSheet &getSheet()
- {
- StyleSheet &sheetRef = sheet;
- return sheetRef;
- }
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- LinkStyle()
- {
- }
-
- /**
- *
- */
- LinkStyle(const LinkStyle &other)
- : sheet (other.sheet)
- {
- }
-
- /**
- *
- */
- LinkStyle &operator=(const LinkStyle &other)
- {
- sheet = other.sheet;
- return *this;
- }
-
- /**
- *
- */
- virtual ~LinkStyle() {}
-
-protected:
-
- StyleSheet sheet;
-
-};
-
-
-
-
-/*#########################################################################
-## DocumentStyle
-#########################################################################*/
-
-/**
- * The DocumentStyle interface provides a mechanism by which the style sheets
- * embedded in a document can be retrieved. The expectation is that an instance
- * of the DocumentStyle interface can be obtained by using binding-specific
- * casting methods on an instance of the Document interface.
- */
-class DocumentStyle
-{
-public:
-
- /**
- * A list containing all the style sheets explicitly linked into or embedded in a
- * document. For HTML documents, this includes external style sheets, included
- * via the HTML LINK element, and inline STYLE elements. In XML, this includes
- * external style sheets, included via style sheet processing instructions (see
- * [XML-StyleSheet]).
- */
- virtual StyleSheetList &getStyleSheets()
- {
- StyleSheetList &listRef = styleSheets;
- return listRef;
- }
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- DocumentStyle() {}
-
- /**
- *
- */
- DocumentStyle(const DocumentStyle &other)
- : styleSheets (other.styleSheets)
- {
- }
-
- /**
- *
- */
- DocumentStyle &operator=(const DocumentStyle &other)
- {
- styleSheets = other.styleSheets;
- return *this;
- }
-
- /**
- *
- */
- virtual ~DocumentStyle() {}
-
-protected:
-
- StyleSheetList styleSheets;
-};
-
-
-
-
-
-} //namespace stylesheets
-} //namespace dom
-} //namespace w3c
-} //namespace org
-
-
-#endif // SEEN_STYLESHEETS_H
-/*#########################################################################
-## E N D O F F I L E
-#########################################################################*/
-
diff --git a/src/dom/svg.h b/src/dom/svg.h
deleted file mode 100644
index 09754055d..000000000
--- a/src/dom/svg.h
+++ /dev/null
@@ -1,4758 +0,0 @@
-#ifndef SEEN_SVG_H
-#define SEEN_SVG_H
-
-/**
- * @file
- * Phoebe DOM Implementation.
- *
- * This is a C++ approximation of the W3C DOM model, which follows
- * fairly closely the specifications in the various .idl files, copies of
- * which are provided for reference. Most important is this one:
- *
- * http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/idl-definitions.html
- */
-/*
- * Authors:
- * Bob Jamison
- *
- * Copyright (C) 2005-2008 Bob Jamison
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- *
- * =======================================================================
- * NOTES
- *
- * This API follows:
- * http://www.w3.org/TR/SVG11/svgdom.html
- *
- * This file defines the main SVG-DOM Node types. Other non-Node types are
- * defined in svgtypes.h.
- *
- */
-
-
-// For access to DOM2 core
-#include "dom/dom.h"
-
-// For access to DOM2 events
-#include "dom/events.h"
-
-// For access to those parts from DOM2 CSS OM used by SVG DOM.
-#include "dom/css.h"
-
-// For access to those parts from DOM2 Views OM used by SVG DOM.
-#include "dom/views.h"
-
-// For access to the SMIL OM used by SVG DOM.
-#include "dom/smil.h"
-
-
-
-#include "svgtypes.h"
-
-#include <math.h>
-
-#define SVG_NAMESPACE "http://www.w3.org/2000/svg"
-
-
-namespace org
-{
-namespace w3c
-{
-namespace dom
-{
-namespace svg
-{
-
-
-//local definitions
-typedef dom::DOMString DOMString;
-typedef dom::DOMException DOMException;
-typedef dom::Element Element;
-typedef dom::ElementPtr ElementPtr;
-typedef dom::Document Document;
-typedef dom::DocumentPtr DocumentPtr;
-typedef dom::NodeList NodeList;
-
-
-
-
-class SVGElement;
-typedef Ptr<SVGElement> SVGElementPtr;
-class SVGSVGElement;
-typedef Ptr<SVGSVGElement> SVGSVGElementPtr;
-class SVGDocument;
-typedef Ptr<SVGDocument> SVGDocumentPtr;
-
-
-/*#########################################################################
-## SVGElement
-#########################################################################*/
-
-/**
- * All of the SVG DOM interfaces that correspond directly to elements in the SVG
- * language (e.g., the SVGPathElement interface corresponds directly to the
- * 'path' element in the language) are derivative from base class SVGElement.
- */
-class SVGElement : virtual public Element
-{
-public:
-
- /**
- * Get the value of the id attribute on the given element.
- */
- virtual DOMString getId() =0;
-
- /**
- * Set the value of the id attribute on the given element.
- */
- virtual void setId(const DOMString &val)
- throw (DOMException) =0;
-
- /**
- * Corresponds to attribute xml:base on the given element.
- */
- virtual DOMString getXmlBase() = 0;
-
- /**
- * Corresponds to attribute xml:base on the given element.
- */
- virtual void setXmlBase(const DOMString &val)
- throw (DOMException) = 0;
-
- /**
- * The nearest ancestor 'svg' element. Null if the given element is the
- * outermost 'svg' element.
- */
- virtual SVGSVGElementPtr getOwnerSVGElement() = 0;
-
- /**
- * The element which established the current viewport. Often, the nearest
- * ancestor 'svg' element. Null if the given element is the outermost 'svg'
- * element.
- */
- virtual SVGElementPtr getViewportElement() = 0;
-
-
- //##################
- //# Non-API methods
- //##################
-
-
- /**
- *
- */
- virtual ~SVGElement() {}
-
-
-};
-
-
-
-/*#########################################################################
-## SVGDocument
-#########################################################################*/
-
-/**
- * When an 'svg' element is embedded inline as a component of a document from
- * another namespace, such as when an 'svg' element is embedded inline within an
- * XHTML document [XHTML], then an SVGDocument object will not exist; instead,
- * the root object in the document object hierarchy will be a Document object of
- * a different type, such as an HTMLDocument object.
- *
- * However, an SVGDocument object will indeed exist when the root element of the
- * XML document hierarchy is an 'svg' element, such as when viewing a stand-alone
- * SVG file (i.e., a file with MIME type "image/svg+xml"). In this case, the
- * SVGDocument object will be the root object of the document object model
- * hierarchy.
- *
- * In the case where an SVG document is embedded by reference, such as when an
- * XHTML document has an 'object' element whose href attribute references an SVG
- * document (i.e., a document whose MIME type is "image/svg+xml" and whose root
- * element is thus an 'svg' element), there will exist two distinct DOM
- * hierarchies. The first DOM hierarchy will be for the referencing document
- * (e.g., an XHTML document). The second DOM hierarchy will be for the referenced
- * SVG document. In this second DOM hierarchy, the root object of the document
- * object model hierarchy is an SVGDocument object.
- */
-class SVGDocument : virtual public Document,
- virtual public events::DocumentEvent
-{
-public:
-
-
- /**
- * The title of a document as specified by the title sub-element of the 'svg'
- * root element (i.e., <svg><title>Here is the title</title>...</svg>)
- */
- virtual DOMString getTitle() =0;
-
- /**
- * Returns the URI of the page that linked to this page. The value is an empty
- * string if the user navigated to the page directly (not through a link, but,
- * for example, via a bookmark).
- */
- virtual DOMString getReferrer() =0;
-
- /**
- * The domain name of the server that served the document, or a null string if
- * the server cannot be identified by a domain name.
- */
- virtual DOMString getDomain() =0;
-
- /**
- * The complete URI of the document.
- */
- virtual DOMString getURL() =0;
-
- /**
- * The root 'svg' element in the document hierarchy.
- */
- virtual SVGSVGElementPtr getRootElement() =0;
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGDocument() {}
-
-};
-
-
-
-/*#########################################################################
-## SVGSVGElement
-#########################################################################*/
-
-/**
- * A key interface definition is the SVGSVGElement interface, which is the
- * interface that corresponds to the 'svg' element. This interface contains
- * various miscellaneous commonly-used utility methods, such as matrix operations
- * and the ability to control the time of redraw on visual rendering devices.
- *
- * SVGSVGElement extends ViewCSS and DocumentCSS to provide access to the
- * computed values of properties and the override style sheet as described in DOM2.
- */
-class SVGSVGElement : virtual public SVGElement,
- public SVGTests,
- public SVGLangSpace,
- public SVGExternalResourcesRequired,
- public SVGStylable,
- public SVGLocatable,
- public SVGFitToViewBox,
- public SVGZoomAndPan,
- public events::EventTarget,
- public events::DocumentEvent,
- public css::ViewCSS,
- public css::DocumentCSS
-{
-public:
-
- /**
- * Corresponds to attribute x on the given 'svg' element.
- */
- virtual SVGAnimatedLength getX() =0;
-
- /**
- * Corresponds to attribute y on the given 'svg' element.
- */
- virtual SVGAnimatedLength getY() =0;
-
- /**
- * Corresponds to attribute width on the given 'svg' element.
- */
- virtual SVGAnimatedLength getWidth() =0;
-
- /**
- * Corresponds to attribute height on the given 'svg' element.
- */
- virtual SVGAnimatedLength getHeight() =0;
-
- /**
- * Get the attribute contentScriptType on the given 'svg' element.
- */
- virtual DOMString getContentScriptType() =0;
-
- /**
- * Set the attribute contentScriptType on the given 'svg' element.
- */
- virtual void setContentScriptType(const DOMString &val)
- throw (DOMException) =0;
-
-
- /**
- * Get the attribute contentStyleType on the given 'svg' element.
- */
- virtual DOMString getContentStyleType() =0;
-
- /**
- * Set the attribute contentStyleType on the given 'svg' element.
- */
- virtual void setContentStyleType(const DOMString &val)
- throw (DOMException) =0;
-
- /**
- * The position and size of the viewport (implicit or explicit) that corresponds
- * to this 'svg' element. When the user agent is actually rendering the content,
- * then the position and size values represent the actual values when rendering.
- * The position and size values are unitless values in the coordinate system of
- * the parent element. If no parent element exists (i.e., 'svg' element
- * represents the root of the document tree), if this SVG document is embedded as
- * part of another document (e.g., via the HTML 'object' element), then the
- * position and size are unitless values in the coordinate system of the parent
- * document. (If the parent uses CSS or XSL layout, then unitless values
- * represent pixel units for the current CSS or XSL viewport, as described in the
- * CSS2 specification.) If the parent element does not have a coordinate system,
- * then the user agent should provide reasonable default values for this attribute.
- * */
- virtual SVGRect getViewport() =0;
-
- /**
- * Size of a pixel units (as defined by CSS2) along the x-axis of the viewport,
- * which represents a unit somewhere in the range of 70dpi to 120dpi, and, on
- * systems that support this, might actually match the characteristics of the
- * target medium. On systems where it is impossible to know the size of a pixel,
- * a suitable default pixel size is provided.
- */
- virtual double getPixelUnitToMillimeterX() =0;
-
- /**
- * Corresponding size of a pixel unit along the y-axis of the viewport.
- */
- virtual double getPixelUnitToMillimeterY() =0;
-
- /**
- * User interface (UI) events in DOM Level 2 indicate the screen positions at
- * which the given UI event occurred. When the user agent actually knows the
- * physical size of a "screen unit", this attribute will express that information;
- * otherwise, user agents will provide a suitable default value such as .28mm.
- */
- virtual double getScreenPixelToMillimeterX() =0;
-
- /**
- * Corresponding size of a screen pixel along the y-axis of the viewport.
- */
- virtual double getScreenPixelToMillimeterY() =0;
-
-
- /**
- * The initial view (i.e., before magnification and panning) of the current
- * innermost SVG document fragment can be either the "standard" view (i.e., based
- * on attributes on the 'svg' element such as fitBoxToViewport) or to a "custom"
- * view (i.e., a hyperlink into a particular 'view' or other element - see
- * Linking into SVG content: URI fragments and SVG views). If the initial view is
- * the "standard" view, then this attribute is false. If the initial view is a
- * "custom" view, then this attribute is true.
- */
- virtual bool getUseCurrentView() =0;
-
- /**
- * Set the value above
- */
- virtual void setUseCurrentView(bool val) throw (DOMException) =0;
-
- /**
- * The definition of the initial view (i.e., before magnification and panning) of
- * the current innermost SVG document fragment. The meaning depends on the
- * situation:
- *
- * * If the initial view was a "standard" view, then:
- * o the values for viewBox, preserveAspectRatio and zoomAndPan within
- * currentView will match the values for the corresponding DOM attributes that
- * are on SVGSVGElement directly
- * o the values for transform and viewTarget within currentView will be null
- * * If the initial view was a link into a 'view' element, then:
- * o the values for viewBox, preserveAspectRatio and zoomAndPan within
- * currentView will correspond to the corresponding attributes for the given
- * 'view' element
- * o the values for transform and viewTarget within currentView will be null
- * * If the initial view was a link into another element (i.e., other than a
- * 'view'), then:
- * o the values for viewBox, preserveAspectRatio and zoomAndPan within
- * currentView will match the values for the corresponding DOM attributes that
- * are on SVGSVGElement directly for the closest ancestor 'svg' element
- * o the values for transform within currentView will be null
- * o the viewTarget within currentView will represent the target of the link
- * * If the initial view was a link into the SVG document fragment using an SVG
- * view specification fragment identifier (i.e., #svgView(...)), then:
- * o the values for viewBox, preserveAspectRatio, zoomAndPan, transform and
- * viewTarget within currentView will correspond to the values from the SVG view
- * specification fragment identifier
- *
- */
- virtual SVGViewSpec getCurrentView() =0;
-
-
- /**
- * This attribute indicates the current scale factor relative to the initial view
- * to take into account user magnification and panning operations, as described
- * under Magnification and panning. DOM attributes currentScale and
- * currentTranslate are equivalent to the 2x3 matrix [a b c d e f] =
- * [currentScale 0 0 currentScale currentTranslate.x currentTranslate.y]. If
- * "magnification" is enabled (i.e., zoomAndPan="magnify"), then the effect is as
- * if an extra transformation were placed at the outermost level on the SVG
- * document fragment (i.e., outside the outermost 'svg' element).
- */
- virtual double getCurrentScale() =0;
-
- /**
- * Set the value above.
- */
- virtual void setCurrentScale(double val)
- throw (DOMException) =0;
-
-
- /**
- * The corresponding translation factor that takes into account
- * user "magnification".
- */
- virtual SVGPoint getCurrentTranslate() =0;
-
-
- /**
- * Takes a time-out value which indicates that redraw shall not occur until: (a)
- * the corresponding unsuspendRedraw(suspend_handle_id) call has been made, (b)
- * an unsuspendRedrawAll() call has been made, or (c) its timer has timed out. In
- * environments that do not support interactivity (e.g., print media), then
- * redraw shall not be suspended. suspend_handle_id =
- * suspendRedraw(max_wait_milliseconds) and unsuspendRedraw(suspend_handle_id)
- * must be packaged as balanced pairs. When you want to suspend redraw actions as
- * a collection of SVG DOM changes occur, then precede the changes to the SVG DOM
- * with a method call similar to suspend_handle_id =
- * suspendRedraw(max_wait_milliseconds) and follow the changes with a method call
- * similar to unsuspendRedraw(suspend_handle_id). Note that multiple
- * suspendRedraw calls can be used at once and that each such method call is
- * treated independently of the other suspendRedraw method calls.
- */
- virtual unsigned long suspendRedraw (unsigned long max_wait_milliseconds ) =0;
-
- /**
- * Cancels a specified suspendRedraw() by providing a unique suspend_handle_id.
- */
- virtual void unsuspendRedraw (unsigned long suspend_handle_id )
- throw( DOMException ) =0;
-
- /**
- * Cancels all currently active suspendRedraw() method calls. This method is most
- * useful at the very end of a set of SVG DOM calls to ensure that all pending
- * suspendRedraw() method calls have been cancelled.
- */
- virtual void unsuspendRedrawAll ( ) =0;
-
- /**
- * In rendering environments supporting interactivity, forces the user agent to
- * immediately redraw all regions of the viewport that require updating.
- */
- virtual void forceRedraw ( ) =0;
-
- /**
- * Suspends (i.e., pauses) all currently running animations that are defined
- * within the SVG document fragment corresponding to this 'svg' element, causing
- * the animation clock corresponding to this document fragment to stand still
- * until it is unpaused.
- */
- virtual void pauseAnimations ( ) =0;
-
- /**
- * Unsuspends (i.e., unpauses) currently running animations that are defined
- * within the SVG document fragment, causing the animation clock to continue from
- * the time at which it was suspended.
- */
- virtual void unpauseAnimations ( ) =0;
-
- /**
- * Returns true if this SVG document fragment is in a paused state.
- */
- virtual bool animationsPaused ( ) =0;
-
- /**
- * Returns the current time in seconds relative to the start time for
- * the current SVG document fragment.
- */
- virtual double getCurrentTime ( ) =0;
-
- /**
- * Adjusts the clock for this SVG document fragment, establishing
- * a new current time.
- */
- virtual void setCurrentTime (double seconds ) =0;
-
- /**
- * Returns the list of graphics elements whose rendered content intersects the
- * supplied rectangle, honoring the 'pointer-events' property value on each
- * candidate graphics element.
- */
- virtual NodeList getIntersectionList(const SVGRect &rect,
- const SVGElementPtr referenceElement ) =0;
-
- /**
- * Returns the list of graphics elements whose rendered content is entirely
- * contained within the supplied rectangle, honoring the 'pointer-events'
- * property value on each candidate graphics element.
- */
- virtual NodeList getEnclosureList (const SVGRect &rect,
- const SVGElementPtr referenceElement ) =0;
-
- /**
- * Returns true if the rendered content of the given element intersects the
- * supplied rectangle, honoring the 'pointer-events' property value on each
- * candidate graphics element.
- */
- virtual bool checkIntersection (const SVGElementPtr element, const SVGRect &rect ) =0;
-
- /**
- * Returns true if the rendered content of the given element is entirely
- * contained within the supplied rectangle, honoring the 'pointer-events'
- * property value on each candidate graphics element.
- */
- virtual bool checkEnclosure (const SVGElementPtr element, const SVGRect &rect ) =0;
-
- /**
- * Unselects any selected objects, including any selections of text
- * strings and type-in bars.
- */
- virtual void deselectAll ( ) =0;
-
- /**
- * Creates an SVGNumber object outside of any document trees. The object
- * is initialized to a value of zero.
- */
- virtual SVGNumber createSVGNumber ( ) =0;
-
- /**
- * Creates an SVGLength object outside of any document trees. The object
- * is initialized to the value of 0 user units.
- */
- virtual SVGLength createSVGLength ( ) =0;
-
- /**
- * Creates an SVGAngle object outside of any document trees. The object
- * is initialized to the value 0 degrees (unitless).
- */
- virtual SVGAngle createSVGAngle ( ) =0;
-
- /**
- * Creates an SVGPoint object outside of any document trees. The object
- * is initialized to the point (0,0) in the user coordinate system.
- */
- virtual SVGPoint createSVGPoint ( ) =0;
-
- /**
- * Creates an SVGMatrix object outside of any document trees. The object
- * is initialized to the identity matrix.
- */
- virtual SVGMatrix createSVGMatrix ( ) =0;
-
- /**
- * Creates an SVGRect object outside of any document trees. The object
- * is initialized such that all values are set to 0 user units.
- */
- virtual SVGRect createSVGRect ( ) =0;
-
- /**
- * Creates an SVGTransform object outside of any document trees.
- * The object is initialized to an identity matrix transform
- * (SVG_TRANSFORM_MATRIX).
- */
- virtual SVGTransform createSVGTransform ( ) =0;
-
- /**
- * Creates an SVGTransform object outside of any document trees.
- * The object is initialized to the given matrix transform
- * (i.e., SVG_TRANSFORM_MATRIX).
- */
- virtual SVGTransform createSVGTransformFromMatrix(const SVGMatrix &matrix ) =0;
-
- /**
- * Searches this SVG document fragment (i.e., the search is restricted to a
- * subset of the document tree) for an Element whose id is given by elementId. If
- * an Element is found, that Element is returned. If no such element exists,
- * returns null. Behavior is not defined if more than one element has this id.
- */
- virtual ElementPtr getElementById (const DOMString& elementId ) =0;
-
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGSVGElement() {}
-
-};
-
-
-
-/*#########################################################################
-## SVGGElement
-#########################################################################*/
-
-/**
- * The SVGGElement interface corresponds to the 'g' element.
- */
-class SVGGElement : virtual public SVGElement,
- public SVGTests,
- public SVGLangSpace,
- public SVGExternalResourcesRequired,
- public SVGStylable,
- public SVGTransformable,
- public events::EventTarget
-{
-public:
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGGElement() {}
-
-};
-
-
-
-
-/*#########################################################################
-## SVGDefsElement
-#########################################################################*/
-
-/**
- * The SVGDefsElement interface corresponds to the 'defs' element.
- */
-class SVGDefsElement :
- virtual public SVGElement,
- public SVGTests,
- public SVGLangSpace,
- public SVGExternalResourcesRequired,
- public SVGStylable,
- public SVGTransformable,
- public events::EventTarget
-{
-public:
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGDefsElement() {}
-
-};
-
-
-
-
-/*#########################################################################
-## SVGDescElement
-#########################################################################*/
-
-/**
- * The SVGDescElement interface corresponds to the 'desc' element.
- */
-class SVGDescElement :
- virtual public SVGElement,
- public SVGLangSpace,
- public SVGStylable
-{
-public:
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGDescElement() {}
-
-};
-
-
-
-
-/*#########################################################################
-## SVGTitleElement
-#########################################################################*/
-
-/**
- * The SVGTitleElement interface corresponds to the 'title' element.
- */
-class SVGTitleElement :
- virtual public SVGElement,
- public SVGLangSpace,
- public SVGStylable
-{
-public:
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGTitleElement() {}
-
-};
-
-
-
-
-/*#########################################################################
-## SVGSymbolElement
-#########################################################################*/
-
-/**
- * The SVGSymbolElement interface corresponds to the 'symbol' element.
- */
-class SVGSymbolElement :
- virtual public SVGElement,
- public SVGLangSpace,
- public SVGExternalResourcesRequired,
- public SVGStylable,
- public SVGFitToViewBox,
- public events::EventTarget
-{
-public:
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGSymbolElement() {}
-
-};
-
-
-
-
-/*#########################################################################
-## SVGUseElement
-#########################################################################*/
-
-/**
- * The SVGUseElement interface corresponds to the 'use' element.
- */
-class SVGUseElement :
- virtual public SVGElement,
- public SVGURIReference,
- public SVGTests,
- public SVGLangSpace,
- public SVGExternalResourcesRequired,
- public SVGStylable,
- public SVGTransformable,
- public events::EventTarget
-{
-public:
-
-
-
-
- /**
- * Corresponds to attribute x on the given 'use' element.
- */
- virtual SVGAnimatedLength getX() =0;
-
- /**
- * Corresponds to attribute y on the given 'use' element.
- */
- virtual SVGAnimatedLength getY() =0;
-
- /**
- * Corresponds to attribute width on the given 'use' element.
- */
- virtual SVGAnimatedLength getWidth() =0;
-
- /**
- * Corresponds to attribute height on the given 'use' element.
- */
- virtual SVGAnimatedLength getHeight() =0;
-
- /**
- * The root of the "instance tree". See description of SVGElementInstance for
- * a discussion on the instance tree.
- * */
- virtual SVGElementInstance getInstanceRoot() =0;
-
- /**
- * If the 'href' attribute is being animated, contains the current animated root
- * of the "instance tree". If the 'href' attribute is not currently being
- * animated, contains the same value as 'instanceRoot'. The root of the "instance
- * tree". See description of SVGElementInstance for a discussion on the instance
- * tree.
- */
- virtual SVGElementInstance getAnimatedInstanceRoot() =0;
-
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGUseElement() {}
-
-};
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGImageElement
-#########################################################################*/
-
-/**
- * The SVGImageElement interface corresponds to the 'image' element.
- */
-class SVGImageElement :
- virtual public SVGElement,
- public SVGURIReference,
- public SVGTests,
- public SVGLangSpace,
- public SVGExternalResourcesRequired,
- public SVGStylable,
- public SVGTransformable,
- public events::EventTarget
-{
-public:
-
-
- /**
- * Corresponds to attribute x on the given 'image' element.
- */
- virtual SVGAnimatedLength getX() =0;
-
- /**
- * Corresponds to attribute y on the given 'image' element.
- */
- virtual SVGAnimatedLength getY() =0;
-
- /**
- * Corresponds to attribute width on the given 'image' element.
- */
- virtual SVGAnimatedLength getWidth() =0;
-
- /**
- * Corresponds to attribute height on the given 'image' element.
- */
- virtual SVGAnimatedLength getHeight() =0;
-
-
- /**
- * Corresponds to attribute preserveAspectRatio on the given element.
- */
- virtual SVGAnimatedPreserveAspectRatio getPreserveAspectRatio() =0;
-
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGImageElement() {}
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGSwitchElement
-#########################################################################*/
-
-/**
- * The SVGSwitchElement interface corresponds to the 'switch' element.
- */
-class SVGSwitchElement :
- virtual public SVGElement,
- public SVGTests,
- public SVGLangSpace,
- public SVGExternalResourcesRequired,
- public SVGStylable,
- public SVGTransformable,
- public events::EventTarget
-{
-public:
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGSwitchElement() {}
-
-};
-
-
-
-
-/*#########################################################################
-## GetSVGDocument
-#########################################################################*/
-
-/**
- * In the case where an SVG document is embedded by reference, such as when an
- * XHTML document has an 'object' element whose href (or equivalent) attribute
- * references an SVG document (i.e., a document whose MIME type is
- * "image/svg+xml" and whose root element is thus an 'svg' element), the SVG user
- * agent is required to implement the GetSVGDocument interface for the element
- * which references the SVG document (e.g., the HTML 'object' or comparable
- * referencing elements).
- */
-class GetSVGDocument
-{
-public:
-
- /**
- * Returns the SVGDocument object for the referenced SVG document.
- */
- virtual SVGDocumentPtr getSVGDocument ( )
- throw( DOMException ) =0;
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~GetSVGDocument() {}
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGStyleElement
-#########################################################################*/
-
-/**
- * The SVGStyleElement interface corresponds to the 'style' element.
- */
-class SVGStyleElement : virtual public SVGElement
-{
-public:
-
- /**
- * Get the attribute xml:space on the given element.
- */
- virtual DOMString getXmlspace() = 0;
-
- /**
- * Set the attribute xml:space on the given element.
- */
- virtual void setXmlspace(const DOMString &val)
- throw (DOMException) =0;
-
- /**
- * Get the attribute type on the given 'style' element.
- */
- virtual DOMString getType() = 0;
-
- /**
- * Set the attribute type on the given 'style' element.
- */
- virtual void setType(const DOMString &val)
- throw (DOMException) =0;
-
- /**
- * Get the attribute media on the given 'style' element.
- */
- virtual DOMString getMedia() = 0;
-
- /**
- * Set the attribute media on the given 'style' element.
- */
- virtual void setMedia(const DOMString &val)
- throw (DOMException) =0;
-
- /**
- * Get the attribute title on the given 'style' element.
- */
- virtual DOMString getTitle() = 0;
-
- /**
- * Set the attribute title on the given 'style' element.
- */
- virtual void setTitle(const DOMString &val)
- throw (DOMException) =0;
-
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGStyleElement() {}
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGPathElement
-#########################################################################*/
-
-/**
- * The SVGPathElement interface corresponds to the 'path' element.
- */
-class SVGPathElement :
- virtual public SVGElement,
- public SVGTests,
- public SVGLangSpace,
- public SVGExternalResourcesRequired,
- public SVGStylable,
- public SVGTransformable,
- public events::EventTarget,
- public SVGAnimatedPathData
-{
-
-public:
-
- /**
- * Corresponds to attribute pathLength on the given 'path' element.
- */
- virtual SVGAnimatedNumber getPathLength() =0;
-
- /**
- * Returns the user agent's computed value for the total length of the path using
- * the user agent's distance-along-a-path algorithm, as a distance in the current
- * user coordinate system.
- */
- virtual double getTotalLength ( ) =0;
-
- /**
- * Returns the (x,y) coordinate in user space which is distance units along the
- * path, utilizing the user agent's distance-along-a-path algorithm.
- */
- virtual SVGPoint getPointAtLength (double distance ) =0;
-
- /**
- * Returns the index into pathSegList which is distance units along the path,
- * utilizing the user agent's distance-along-a-path algorithm.
- */
- virtual unsigned long getPathSegAtLength (double distance ) =0;
-
- /**
- * Returns a stand-alone, parentless SVGPathSegClosePath object.
- */
- virtual SVGPathSegClosePath
- createSVGPathSegClosePath ( ) =0;
-
- /**
- * Returns a stand-alone, parentless SVGPathSegMovetoAbs object.
- */
- virtual SVGPathSegMovetoAbs
- createSVGPathSegMovetoAbs (double x, double y ) =0;
-
- /**
- * Returns a stand-alone, parentless SVGPathSegMovetoRel object.
- */
- virtual SVGPathSegMovetoRel
- createSVGPathSegMovetoRel (double x, double y ) =0;
-
- /**
- * Returns a stand-alone, parentless SVGPathSegLinetoAbs object.
- */
- virtual SVGPathSegLinetoAbs
- createSVGPathSegLinetoAbs (double x, double y ) =0;
-
- /**
- * Returns a stand-alone, parentless SVGPathSegLinetoRel object.
- */
- virtual SVGPathSegLinetoRel
- createSVGPathSegLinetoRel (double x, double y ) =0;
-
- /**
- * Returns a stand-alone, parentless SVGPathSegCurvetoCubicAbs object.
- */
- virtual SVGPathSegCurvetoCubicAbs
- createSVGPathSegCurvetoCubicAbs (double x, double y,
- double x1, double y1, double x2, double y2 ) =0;
-
- /**
- * Returns a stand-alone, parentless SVGPathSegCurvetoCubicRel object.
- */
- virtual SVGPathSegCurvetoCubicRel
- createSVGPathSegCurvetoCubicRel (double x, double y,
- double x1, double y1, double x2, double y2 ) =0;
-
- /**
- * Returns a stand-alone, parentless SVGPathSegCurvetoQuadraticAbs object.
- */
- virtual SVGPathSegCurvetoQuadraticAbs
- createSVGPathSegCurvetoQuadraticAbs (double x, double y,
- double x1, double y1 ) =0;
-
- /**
- * Returns a stand-alone, parentless SVGPathSegCurvetoQuadraticRel object.
- */
- virtual SVGPathSegCurvetoQuadraticRel
- createSVGPathSegCurvetoQuadraticRel (double x, double y,
- double x1, double y1 ) =0;
-
- /**
- * Returns a stand-alone, parentless SVGPathSegArcAbs object.
- */
- virtual SVGPathSegArcAbs
- createSVGPathSegArcAbs (double x, double y,
- double r1, double r2, double angle,
- bool largeArcFlag, bool sweepFlag ) =0;
-
- /**
- * Returns a stand-alone, parentless SVGPathSegArcRel object.
- */
- virtual SVGPathSegArcRel
- createSVGPathSegArcRel (double x, double y, double r1,
- double r2, double angle, bool largeArcFlag,
- bool sweepFlag ) =0;
-
- /**
- * Returns a stand-alone, parentless SVGPathSegLinetoHorizontalAbs object.
- */
- virtual SVGPathSegLinetoHorizontalAbs
- createSVGPathSegLinetoHorizontalAbs (double x ) =0;
-
- /**
- * Returns a stand-alone, parentless SVGPathSegLinetoHorizontalRel object.
- */
- virtual SVGPathSegLinetoHorizontalRel
- createSVGPathSegLinetoHorizontalRel (double x ) =0;
-
- /**
- * Returns a stand-alone, parentless SVGPathSegLinetoVerticalAbs object.
- */
- virtual SVGPathSegLinetoVerticalAbs
- createSVGPathSegLinetoVerticalAbs (double y ) =0;
-
- /**
- * Returns a stand-alone, parentless SVGPathSegLinetoVerticalRel object.
- */
- virtual SVGPathSegLinetoVerticalRel
- createSVGPathSegLinetoVerticalRel (double y ) =0;
-
- /**
- * Returns a stand-alone, parentless SVGPathSegCurvetoCubicSmoothAbs object.
- */
- virtual SVGPathSegCurvetoCubicSmoothAbs
- createSVGPathSegCurvetoCubicSmoothAbs (double x, double y,
- double x2, double y2 ) =0;
-
- /**
- * Returns a stand-alone, parentless SVGPathSegCurvetoCubicSmoothRel object.
- */
- virtual SVGPathSegCurvetoCubicSmoothRel
- createSVGPathSegCurvetoCubicSmoothRel (double x, double y,
- double x2, double y2 ) =0;
-
- /**
- * Returns a stand-alone, parentless SVGPathSegCurvetoQuadraticSmoothAbs
- * object.
- */
- virtual SVGPathSegCurvetoQuadraticSmoothAbs
- createSVGPathSegCurvetoQuadraticSmoothAbs (double x, double y ) =0;
-
- /**
- * Returns a stand-alone, parentless SVGPathSegCurvetoQuadraticSmoothRel
- * object.
- */
- virtual SVGPathSegCurvetoQuadraticSmoothRel
- createSVGPathSegCurvetoQuadraticSmoothRel (double x, double y ) =0;
-
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGPathElement() {}
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGRectElement
-#########################################################################*/
-
-/**
- * The SVGRectElement interface corresponds to the 'rect' element.
- */
-class SVGRectElement :
- virtual public SVGElement,
- public SVGTests,
- public SVGLangSpace,
- public SVGExternalResourcesRequired,
- public SVGStylable,
- public SVGTransformable,
- public events::EventTarget
-{
-public:
-
- /**
- * Corresponds to attribute x on the given 'rect' element.
- */
- virtual SVGAnimatedLength getX() =0;
-
- /**
- * Corresponds to attribute y on the given 'rect' element.
- */
- virtual SVGAnimatedLength getY() =0;
-
- /**
- * Corresponds to attribute width on the given 'rect' element.
- */
- virtual SVGAnimatedLength getWidth() =0;
-
- /**
- * Corresponds to attribute height on the given 'rect' element.
- */
- virtual SVGAnimatedLength getHeight() =0;
-
-
- /**
- * Corresponds to attribute rx on the given 'rect' element.
- */
- virtual SVGAnimatedLength getRx() =0;
-
- /**
- * Corresponds to attribute ry on the given 'rect' element.
- */
- virtual SVGAnimatedLength getRy() =0;
-
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGRectElement() {}
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGCircleElement
-#########################################################################*/
-
-/**
- * The SVGCircleElement interface corresponds to the 'circle' element.
- */
-class SVGCircleElement :
- virtual public SVGElement,
- public SVGTests,
- public SVGLangSpace,
- public SVGExternalResourcesRequired,
- public SVGStylable,
- public SVGTransformable,
- public events::EventTarget
-{
-public:
-
- /**
- * Corresponds to attribute cx on the given 'circle' element.
- */
- virtual SVGAnimatedLength getCx() =0;
-
- /**
- * Corresponds to attribute cy on the given 'circle' element.
- */
- virtual SVGAnimatedLength getCy() =0;
-
- /**
- * Corresponds to attribute r on the given 'circle' element.
- */
- virtual SVGAnimatedLength getR() =0;
-
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGCircleElement() {}
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGEllipseElement
-#########################################################################*/
-
-/**
- * The SVGEllipseElement interface corresponds to the 'ellipse' element.
- */
-class SVGEllipseElement :
- virtual public SVGElement,
- public SVGTests,
- public SVGLangSpace,
- public SVGExternalResourcesRequired,
- public SVGStylable,
- public SVGTransformable,
- public events::EventTarget
-{
-public:
-
- /**
- * Corresponds to attribute cx on the given 'ellipse' element.
- */
- virtual SVGAnimatedLength getCx() =0;
-
- /**
- * Corresponds to attribute cy on the given 'ellipse' element.
- */
- virtual SVGAnimatedLength getCy() =0;
-
- /**
- * Corresponds to attribute rx on the given 'ellipse' element.
- */
- virtual SVGAnimatedLength getRx() =0;
-
- /**
- * Corresponds to attribute ry on the given 'ellipse' element.
- */
- virtual SVGAnimatedLength getRy() =0;
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGEllipseElement() {}
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGLineElement
-#########################################################################*/
-
-/**
- * The SVGLineElement interface corresponds to the 'line' element.
- */
-class SVGLineElement :
- virtual public SVGElement,
- public SVGTests,
- public SVGLangSpace,
- public SVGExternalResourcesRequired,
- public SVGStylable,
- public SVGTransformable,
- public events::EventTarget
-{
-public:
-
- /**
- * Corresponds to attribute x1 on the given 'line' element.
- */
- virtual SVGAnimatedLength getX1() =0;
-
- /**
- * Corresponds to attribute y1 on the given 'line' element.
- */
- virtual SVGAnimatedLength getY1() =0;
-
- /**
- * Corresponds to attribute x2 on the given 'line' element.
- */
- virtual SVGAnimatedLength getX2() =0;
-
- /**
- * Corresponds to attribute y2 on the given 'line' element.
- */
- virtual SVGAnimatedLength getY2() =0;
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGLineElement() {}
-
-};
-
-
-
-
-/*#########################################################################
-## SVGPolylineElement
-#########################################################################*/
-
-/**
- * The SVGPolylineElement interface corresponds to the 'polyline' element.
- */
-class SVGPolylineElement :
- virtual public SVGElement,
- public SVGTests,
- public SVGLangSpace,
- public SVGExternalResourcesRequired,
- public SVGStylable,
- public SVGTransformable,
- public events::EventTarget,
- public SVGAnimatedPoints
-{
-
-public:
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGPolylineElement() {}
-
-};
-
-
-
-
-/*#########################################################################
-## SVGPolygonElement
-#########################################################################*/
-
-/**
- * The SVGPolygonElement interface corresponds to the 'polygon' element.
- */
-class SVGPolygonElement :
- virtual public SVGElement,
- public SVGTests,
- public SVGLangSpace,
- public SVGExternalResourcesRequired,
- public SVGStylable,
- public SVGTransformable,
- public events::EventTarget,
- public SVGAnimatedPoints
-{
-public:
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGPolygonElement() {}
-
-};
-
-
-
-
-/*#########################################################################
-## SVGTextContentElement
-#########################################################################*/
-
-/**
- * The SVGTextContentElement interface is inherited by various text-related
- * interfaces, such as SVGTextElement, SVGTSpanElement, SVGTRefElement,
- * SVGAltGlyphElement and SVGTextPathElement.
- */
-class SVGTextContentElement :
- virtual public SVGElement,
- public SVGTests,
- public SVGLangSpace,
- public SVGExternalResourcesRequired,
- public SVGStylable,
- public events::EventTarget
-{
-
-public:
-
- /**
- * lengthAdjust Types
- */
- typedef enum
- {
- LENGTHADJUST_UNKNOWN = 0,
- LENGTHADJUST_SPACING = 1,
- LENGTHADJUST_SPACINGANDGLYPHS = 2
- } LengthAdjustType;
-
-
- /**
- * Corresponds to attribute textLength on the given element.
- */
- virtual SVGAnimatedLength getTextLength() =0;
-
-
- /**
- * Corresponds to attribute lengthAdjust on the given element. The value must be
- * one of the length adjust constants specified above.
- */
- virtual SVGAnimatedEnumeration getLengthAdjust() =0;
-
-
- /**
- * Returns the total number of characters to be rendered within the current
- * element. Includes characters which are included via a 'tref' reference.
- */
- virtual long getNumberOfChars ( ) =0;
-
- /**
- * The total sum of all of the advance values from rendering all of the
- * characters within this element, including the advance value on the glyphs
- * (horizontal or vertical), the effect of properties 'kerning', 'letter-spacing'
- * and 'word-spacing' and adjustments due to attributes dx and dy on 'tspan'
- * elements. For non-rendering environments, the user agent shall make reasonable
- * assumptions about glyph metrics.
- */
- virtual double getComputedTextLength ( ) =0;
-
- /**
- * The total sum of all of the advance values from rendering the specified
- * substring of the characters, including the advance value on the glyphs
- * (horizontal or vertical), the effect of properties 'kerning', 'letter-spacing'
- * and 'word-spacing' and adjustments due to attributes dx and dy on 'tspan'
- * elements. For non-rendering environments, the user agent shall make reasonable
- * assumptions about glyph metrics.
- */
- virtual double getSubStringLength (unsigned long charnum, unsigned long nchars )
- throw( DOMException ) =0;
-
- /**
- * Returns the current text position before rendering the character in the user
- * coordinate system for rendering the glyph(s) that correspond to the specified
- * character. The current text position has already taken into account the
- * effects of any inter-character adjustments due to properties 'kerning',
- * 'letter-spacing' and 'word-spacing' and adjustments due to attributes x, y, dx
- * and dy. If multiple consecutive characters are rendered inseparably (e.g., as
- * a single glyph or a sequence of glyphs), then each of the inseparable
- * characters will return the start position for the first glyph.
- */
- virtual SVGPoint getStartPositionOfChar (unsigned long charnum )
- throw( DOMException ) =0;
-
- /**
- * Returns the current text position after rendering the character in the user
- * coordinate system for rendering the glyph(s) that correspond to the specified
- * character. This current text position does not take into account the effects
- * of any inter-character adjustments to prepare for the next character, such as
- * properties 'kerning', 'letter-spacing' and 'word-spacing' and adjustments due
- * to attributes x, y, dx and dy. If multiple consecutive characters are rendered
- * inseparably (e.g., as a single glyph or a sequence of glyphs), then each of
- * the inseparable characters will return the end position for the last glyph.
- */
- virtual SVGPoint getEndPositionOfChar (unsigned long charnum )
- throw( DOMException ) =0;
-
- /**
- * Returns a tightest rectangle which defines the minimum and maximum X and Y
- * values in the user coordinate system for rendering the glyph(s) that
- * correspond to the specified character. The calculations assume that all glyphs
- * occupy the full standard glyph cell for the font. If multiple consecutive
- * characters are rendered inseparably (e.g., as a single glyph or a sequence of
- * glyphs), then each of the inseparable characters will return the same extent.
- */
- virtual SVGRect getExtentOfChar (unsigned long charnum )
- throw( DOMException ) =0;
-
- /**
- * Returns the rotation value relative to the current user coordinate system used
- * to render the glyph(s) corresponding to the specified character. If multiple
- * glyph(s) are used to render the given character and the glyphs each have
- * different rotations (e.g., due to text-on-a-path), the user agent shall return
- * an average value (e.g., the rotation angle at the midpoint along the path for
- * all glyphs used to render this character). The rotation value represents the
- * rotation that is supplemental to any rotation due to properties
- * 'glyph-orientation-horizontal' and 'glyph-orientation-vertical'; thus, any
- * glyph rotations due to these properties are not included into the returned
- * rotation value. If multiple consecutive characters are rendered inseparably
- * (e.g., as a single glyph or a sequence of glyphs), then each of the
- * inseparable characters will return the same rotation value.
- */
- virtual double getRotationOfChar (unsigned long charnum )
- throw( DOMException ) =0;
-
- /**
- * Returns the index of the character whose corresponding glyph cell bounding box
- * contains the specified point. The calculations assume that all glyphs occupy
- * the full standard glyph cell for the font. If no such character exists, a
- * value of -1 is returned. If multiple such characters exist, the character
- * within the element whose glyphs were rendered last (i.e., take into account
- * any reordering such as for bidirectional text) is used. If multiple
- * consecutive characters are rendered inseparably (e.g., as a single glyph or a
- * sequence of glyphs), then the user agent shall allocate an equal percentage of
- * the text advance amount to each of the contributing characters in determining
- * which of the characters is chosen.
- */
- virtual long getCharNumAtPosition (const SVGPoint &point ) =0;
-
- /**
- * Causes the specified substring to be selected just as if the user
- * selected the substring interactively.
- */
- virtual void selectSubString (unsigned long charnum, unsigned long nchars )
- throw( DOMException ) =0;
-
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGTextContentElement() {}
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGTextPositioningElement
-#########################################################################*/
-
-/**
- * The SVGTextPositioningElement interface is inherited by text-related
- * interfaces: SVGTextElement, SVGTSpanElement, SVGTRefElement and
- * SVGAltGlyphElement.
- */
-class SVGTextPositioningElement : virtual public SVGTextContentElement
-{
-public:
-
- /**
- * Corresponds to attribute x on the given element.
- */
- virtual SVGAnimatedLength getX() =0;
-
- /**
- * Corresponds to attribute y on the given element.
- */
- virtual SVGAnimatedLength getY() =0;
-
- /**
- * Corresponds to attribute dx on the given element.
- */
- virtual SVGAnimatedLength getDx() =0;
-
- /**
- * Corresponds to attribute dy on the given element.
- */
- virtual SVGAnimatedLength getDy() =0;
-
-
- /**
- * Corresponds to attribute rotate on the given element.
- */
- virtual SVGAnimatedNumberList getRotate() =0;
-
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGTextPositioningElement() {}
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGTextElement
-#########################################################################*/
-
-/**
- * The SVGTextElement interface corresponds to the 'text' element.
- */
-class SVGTextElement : virtual public SVGTextPositioningElement,
- public SVGTransformable
-{
-public:
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGTextElement() {}
-
-};
-
-
-
-
-/*#########################################################################
-## SVGTSpanElement
-#########################################################################*/
-
-/**
- * The SVGTSpanElement interface corresponds to the 'tspan' element.
- */
-class SVGTSpanElement : virtual public SVGTextPositioningElement
-{
-public:
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGTSpanElement() {}
-
-};
-
-
-
-
-/*#########################################################################
-## SVGTRefElement
-#########################################################################*/
-
-/**
- * The SVGTRefElement interface corresponds to the 'tref' element.
- */
-class SVGTRefElement :
- virtual public SVGTextPositioningElement,
- public SVGURIReference
-{
-public:
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGTRefElement() {}
-
-};
-
-
-
-
-/*#########################################################################
-## SVGTextPathElement
-#########################################################################*/
-
-/**
- * The SVGTextPathElement interface corresponds to the 'textPath' element.
- */
-class SVGTextPathElement :
- virtual public SVGTextContentElement,
- public SVGURIReference
-{
-public:
-
-
-
- /**
- * textPath Method Types
- */
- typedef enum
- {
- TEXTPATH_METHODTYPE_UNKNOWN = 0,
- TEXTPATH_METHODTYPE_ALIGN = 1,
- TEXTPATH_METHODTYPE_STRETCH = 2
- } TextPathMethodType;
-
- /**
- * textPath Spacing Types
- */
- typedef enum
- {
- TEXTPATH_SPACINGTYPE_UNKNOWN = 0,
- TEXTPATH_SPACINGTYPE_AUTO = 1,
- TEXTPATH_SPACINGTYPE_EXACT = 2
- } TextPathSpacingType;
-
-
- /**
- * Corresponds to attribute startOffset on the given 'textPath' element.
- */
- virtual SVGAnimatedLength getStartOffset() =0;
-
- /**
- * Corresponds to attribute method on the given 'textPath' element. The value
- * must be one of the method type constants specified above.
- */
- virtual SVGAnimatedEnumeration getMethod() =0;
-
- /**
- * Corresponds to attribute spacing on the given 'textPath' element.
- * The value must be one of the spacing type constants specified above.
- */
- virtual SVGAnimatedEnumeration getSpacing() =0;
-
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGTextPathElement() {}
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGAltGlyphElement
-#########################################################################*/
-
-/**
- * The SVGAltGlyphElement interface corresponds to the 'altGlyph' element.
- */
-class SVGAltGlyphElement :
- virtual public SVGTextPositioningElement,
- public SVGURIReference
-{
-public:
-
- /**
- * Get the attribute glyphRef on the given element.
- */
- virtual DOMString getGlyphRef() =0;
-
- /**
- * Set the attribute glyphRef on the given element.
- */
- virtual void setGlyphRef(const DOMString &val)
- throw (DOMException) =0;
-
- /**
- * Get the attribute format on the given element.
- */
- virtual DOMString getFormat() =0;
-
- /**
- * Set the attribute format on the given element.
- */
- virtual void setFormat(const DOMString &val)
- throw (DOMException) =0;
-
-
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGAltGlyphElement() {}
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGAltGlyphDefElement
-#########################################################################*/
-
-/**
- * The SVGAltGlyphDefElement interface corresponds to the 'altGlyphDef' element.
- */
-class SVGAltGlyphDefElement : virtual public SVGElement
-{
-public:
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGAltGlyphDefElement() {}
-
-};
-
-
-
-
-/*#########################################################################
-## SVGAltGlyphItemElement
-#########################################################################*/
-
-/**
- * The SVGAltGlyphItemElement interface corresponds to the
- * 'altGlyphItem' element.
- */
-class SVGAltGlyphItemElement : virtual public SVGElement
-{
-public:
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGAltGlyphItemElement() {}
-
-};
-
-
-
-
-/*#########################################################################
-## SVGGlyphRefElement
-#########################################################################*/
-
-/**
- * The SVGGlyphRefElement interface corresponds to the 'glyphRef' element.
- */
-class SVGGlyphRefElement : virtual public SVGElement,
- public SVGURIReference,
- public SVGStylable
-{
-public:
-
- /**
- * Get the attribute glyphRef on the given element.
- */
- virtual DOMString getGlyphRef() =0;
-
- /**
- * Set the attribute glyphRef on the given element.
- */
- virtual void setGlyphRef(const DOMString &val)
- throw (DOMException) =0;
-
- /**
- * Get the attribute format on the given element.
- */
- virtual DOMString getFormat() =0;
-
- /**
- * Set the attribute format on the given element.
- */
- virtual void setFormat(const DOMString &val)
- throw (DOMException) =0;
-
- /**
- * Get the attribute x on the given element.
- */
- virtual double getX() = 0;
-
- /**
- * Set the attribute x on the given element.
- */
- virtual void setX(double val) throw (DOMException) =0;
-
- /**
- * Get the attribute y on the given element.
- */
- virtual double getY() = 0;
-
- /**
- * Set the attribute y on the given element.
- */
- virtual void setY(double val) throw (DOMException) =0;
-
- /**
- * Get the attribute dx on the given element.
- */
- virtual double getDx() = 0;
-
- /**
- * Set the attribute dx on the given element.
- */
- virtual void setDx(double val) throw (DOMException) =0;
-
- /**
- * Get the attribute dy on the given element.
- */
- virtual double getDy() = 0;
-
- /**
- * Set the attribute dy on the given element.
- */
- virtual void setDy(double val) throw (DOMException) =0;
-
-
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGGlyphRefElement() {}
-
-};
-
-
-
-
-
-/*#########################################################################
-## SVGMarkerElement
-#########################################################################*/
-
-/**
- * The SVGMarkerElement interface corresponds to the 'marker' element.
- */
-class SVGMarkerElement :
- virtual public SVGElement,
- public SVGLangSpace,
- public SVGExternalResourcesRequired,
- public SVGStylable,
- public SVGFitToViewBox
-{
-public:
-
-
-
- /**
- * Marker Unit Types
- */
- typedef enum
- {
- SVG_MARKERUNITS_UNKNOWN = 0,
- SVG_MARKERUNITS_USERSPACEONUSE = 1,
- SVG_MARKERUNITS_STROKEWIDTH = 2
- } MarkerUnitType;
-
- /**
- * Marker Orientation Types
- */
- typedef enum
- {
- SVG_MARKER_ORIENT_UNKNOWN = 0,
- SVG_MARKER_ORIENT_AUTO = 1,
- SVG_MARKER_ORIENT_ANGLE = 2
- } MarkerOrientationType;
-
-
- /**
- * Corresponds to attribute refX on the given 'marker' element.
- */
- virtual SVGAnimatedLength getRefX() =0;
-
- /**
- * Corresponds to attribute refY on the given 'marker' element.
- */
- virtual SVGAnimatedLength getRefY() =0;
-
- /**
- * Corresponds to attribute markerUnits on the given 'marker' element.
- * One of the Marker Units Types defined above.
- */
- virtual SVGAnimatedEnumeration getMarkerUnits() =0;
-
- /**
- * Corresponds to attribute markerWidth on the given 'marker' element.
- */
- virtual SVGAnimatedLength getMarkerWidth() =0;
-
- /**
- * Corresponds to attribute markerHeight on the given 'marker' element.
- */
- virtual SVGAnimatedLength getMarkerHeight() =0;
-
- /**
- * Corresponds to attribute orient on the given 'marker' element.
- * One of the Marker Orientation Types defined above.
- */
- virtual SVGAnimatedEnumeration getOrientType() =0;
-
- /**
- * Corresponds to attribute orient on the given 'marker' element.
- * If markerUnits is SVG_MARKER_ORIENT_ANGLE, the angle value for
- * attribute orient; otherwise, it will be set to zero.
- */
- virtual SVGAnimatedAngle getOrientAngle() =0;
-
-
- /**
- * Sets the value of attribute orient to 'auto'.
- */
- virtual void setOrientToAuto ( ) =0;
-
- /**
- * Sets the value of attribute orient to the given angle.
- */
- virtual void setOrientToAngle (const SVGAngle &angle) =0;
-
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGMarkerElement() {}
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGColorProfileElement
-#########################################################################*/
-
-/**
- * The SVGColorProfileElement interface corresponds to the
- * 'color-profile' element.
- */
-class SVGColorProfileElement :
- virtual public SVGElement,
- public SVGURIReference,
- public SVGRenderingIntent
-{
-public:
-
- /**
- * Get the attribute local on the given element.
- */
- virtual DOMString getLocal() =0;
-
- /**
- * Set the attribute local on the given element.
- */
- virtual void setLocal(const DOMString &val)
- throw (DOMException) =0;
-
- /**
- * Get the attribute name on the given element.
- */
- virtual DOMString getName() =0;
-
- /**
- * Set the attribute name on the given element.
- */
- virtual void setName(const DOMString &val)
- throw (DOMException) =0;
-
- /**
- * Set the attribute rendering-intent on the given element.
- * The type of rendering intent, identified by one of the
- * SVGRenderingIntent constants.
- */
- virtual unsigned short getRenderingIntent() =0;
-
- /**
- * Get the attribute rendering-intent on the given element.
- */
- virtual void setRenderingIntent(unsigned short val)
- throw (DOMException) =0;
-
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGColorProfileElement() {}
-
-};
-
-
-
-
-/*#########################################################################
-## SVGGradientElement
-#########################################################################*/
-
-/**
- * The SVGGradientElement interface is a base interface used by
- * SVGLinearGradientElement and SVGRadialGradientElement.
- */
-class SVGGradientElement :
- virtual public SVGElement,
- public SVGURIReference,
- public SVGExternalResourcesRequired,
- public SVGStylable,
- public SVGUnitTypes
-{
-
-public:
-
- /**
- * Spread Method Types
- */
- typedef enum
- {
- SVG_SPREADMETHOD_UNKNOWN = 0,
- SVG_SPREADMETHOD_PAD = 1,
- SVG_SPREADMETHOD_REFLECT = 2,
- SVG_SPREADMETHOD_REPEAT = 3
- } SpreadMethodType;
-
-
- /**
- * Corresponds to attribute gradientUnits on the given element.
- * Takes one of the constants defined in SVGUnitTypes.
- */
- virtual SVGAnimatedEnumeration getGradientUnits() =0;
-
- /**
- * Corresponds to attribute gradientTransform on the given element.
- */
- virtual SVGAnimatedTransformList getGradientTransform() =0;
-
- /**
- * Corresponds to attribute spreadMethod on the given element.
- * One of the Spread Method Types.
- */
- virtual SVGAnimatedEnumeration getSpreadMethod() =0;
-
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGGradientElement() {}
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGLinearGradientElement
-#########################################################################*/
-
-/**
- * The SVGLinearGradientElement interface corresponds to the
- * 'linearGradient' element.
- */
-class SVGLinearGradientElement : virtual public SVGGradientElement
-{
-public:
-
-
- /**
- * Corresponds to attribute x1 on the given 'linearGradient' element.
- */
- virtual SVGAnimatedLength getX1() =0;
-
- /**
- * Corresponds to attribute y1 on the given 'linearGradient' element.
- */
- virtual SVGAnimatedLength getY1() =0;
-
- /**
- * Corresponds to attribute x2 on the given 'linearGradient' element.
- */
- virtual SVGAnimatedLength getX2() =0;
-
- /**
- * Corresponds to attribute y2 on the given 'linearGradient' element.
- */
- virtual SVGAnimatedLength getY2() =0;
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGLinearGradientElement() {}
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGRadialGradientElement
-#########################################################################*/
-
-/**
- * The SVGRadialGradientElement interface corresponds to the
- * 'radialGradient' element.
- */
-class SVGRadialGradientElement : virtual public SVGGradientElement
-{
-
-public:
-
- /**
- * Corresponds to attribute cx on the given 'radialGradient' element.
- */
- virtual SVGAnimatedLength getCx() =0;
-
-
- /**
- * Corresponds to attribute cy on the given 'radialGradient' element.
- */
- virtual SVGAnimatedLength getCy() =0;
-
-
- /**
- * Corresponds to attribute r on the given 'radialGradient' element.
- */
- virtual SVGAnimatedLength getR() =0;
-
-
- /**
- * Corresponds to attribute fx on the given 'radialGradient' element.
- */
- virtual SVGAnimatedLength getFx() =0;
-
-
- /**
- * Corresponds to attribute fy on the given 'radialGradient' element.
- */
- virtual SVGAnimatedLength getFy() =0;
-
-
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGRadialGradientElement() {}
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGStopElement
-#########################################################################*/
-
-/**
- * The SVGStopElement interface corresponds to the 'stop' element.
- */
-class SVGStopElement :
- virtual public SVGElement,
- public SVGStylable
-{
-public:
-
- /**
- * Corresponds to attribute offset on the given 'stop' element.
- */
- virtual SVGAnimatedNumber getOffset() =0;
-
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGStopElement() {}
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGPatternElement
-#########################################################################*/
-
-/**
- * The SVGPatternElement interface corresponds to the 'pattern' element.
- */
-class SVGPatternElement :
- virtual public SVGElement,
- public SVGURIReference,
- public SVGTests,
- public SVGLangSpace,
- public SVGExternalResourcesRequired,
- public SVGStylable,
- public SVGFitToViewBox,
- public SVGUnitTypes
-{
-
-public:
-
- /**
- * Corresponds to attribute patternUnits on the given 'pattern' element. Takes
- * one of the constants defined in SVGUnitTypes.
- */
- virtual SVGAnimatedEnumeration getPatternUnits() =0;
-
- /**
- * Corresponds to attribute patternContentUnits on the given 'pattern'
- * element. Takes one of the constants defined in SVGUnitTypes.
- */
- virtual SVGAnimatedEnumeration getPatternContentUnits() =0;
-
- /**
- * Corresponds to attribute patternTransform on the given 'pattern' element.
- */
- virtual SVGAnimatedTransformList getPatternTransform() =0;
-
- /**
- * Corresponds to attribute x on the given 'pattern' element.
- */
- virtual SVGAnimatedLength getX() =0;
-
- /**
- *
- */
- virtual SVGAnimatedLength getY() =0;
-
- /**
- * Corresponds to attribute width on the given 'pattern' element.
- */
- virtual SVGAnimatedLength getWidth() =0;
-
- /**
- * Corresponds to attribute height on the given 'pattern' element.
- */
- virtual SVGAnimatedLength getHeight() =0;
-
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGPatternElement() {}
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGClipPathElement
-#########################################################################*/
-
-/**
- * The SVGClipPathElement interface corresponds to the 'clipPath' element.
- */
-class SVGClipPathElement :
- virtual public SVGElement,
- public SVGTests,
- public SVGLangSpace,
- public SVGExternalResourcesRequired,
- public SVGStylable,
- public SVGTransformable,
- public SVGUnitTypes
-{
-
-public:
-
- /**
- * Corresponds to attribute clipPathUnits on the given 'clipPath' element.
- * Takes one of the constants defined in SVGUnitTypes.
- */
- virtual SVGAnimatedEnumeration getClipPathUnits() =0;
-
-
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGClipPathElement() {}
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGMaskElement
-#########################################################################*/
-
-/**
- * The SVGMaskElement interface corresponds to the 'mask' element.
- */
-class SVGMaskElement :
- virtual public SVGElement,
- public SVGTests,
- public SVGLangSpace,
- public SVGExternalResourcesRequired,
- public SVGStylable,
- public SVGUnitTypes
-{
-public:
-
-
-
- /**
- * Corresponds to attribute maskUnits on the given 'mask' element. Takes one of
- * the constants defined in SVGUnitTypes.
- */
- virtual SVGAnimatedEnumeration getMaskUnits() =0;
-
- /**
- * Corresponds to attribute maskContentUnits on the given 'mask' element. Takes
- * one of the constants defined in SVGUnitTypes.
- */
- virtual SVGAnimatedEnumeration getMaskContentUnits() =0;
-
- /**
- * Corresponds to attribute x on the given 'mask' element.
- */
- virtual SVGAnimatedLength getX() =0;
-
- /**
- * Corresponds to attribute y on the given 'mask' element.
- */
- virtual SVGAnimatedLength getY() =0;
-
- /**
- * Corresponds to attribute width on the given 'mask' element.
- */
- virtual SVGAnimatedLength getWidth() =0;
-
- /**
- * Corresponds to attribute height on the given 'mask' element.
- */
- virtual SVGAnimatedLength getHeight() =0;
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGMaskElement() {}
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGFilterElement
-#########################################################################*/
-
-/**
- * The SVGFilterElement interface corresponds to the 'filter' element.
- */
-class SVGFilterElement :
- virtual public SVGElement,
- public SVGURIReference,
- public SVGLangSpace,
- public SVGExternalResourcesRequired,
- public SVGStylable,
- public SVGUnitTypes
-{
-
-public:
-
- /**
- * Corresponds to attribute filterUnits on the given 'filter' element. Takes one
- * of the constants defined in SVGUnitTypes.
- */
- virtual SVGAnimatedEnumeration getFilterUnits() =0;
-
- /**
- * Corresponds to attribute primitiveUnits on the given 'filter' element. Takes
- * one of the constants defined in SVGUnitTypes.
- */
- virtual SVGAnimatedEnumeration getPrimitiveUnits() =0;
-
- /**
- *
- */
- virtual SVGAnimatedLength getX() =0;
-
- /**
- * Corresponds to attribute x on the given 'filter' element.
- */
- virtual SVGAnimatedLength getY() =0;
-
- /**
- * Corresponds to attribute y on the given 'filter' element.
- */
- virtual SVGAnimatedLength getWidth() =0;
-
- /**
- * Corresponds to attribute height on the given 'filter' element.
- */
- virtual SVGAnimatedLength getHeight() =0;
-
-
- /**
- * Corresponds to attribute filterRes on the given 'filter' element.
- * Contains the X component of attribute filterRes.
- */
- virtual SVGAnimatedInteger getFilterResX() =0;
-
- /**
- * Corresponds to attribute filterRes on the given 'filter' element.
- * Contains the Y component (possibly computed automatically)
- * of attribute filterRes.
- */
- virtual SVGAnimatedInteger getFilterResY() =0;
-
- /**
- * Sets the values for attribute filterRes.
- */
- virtual void setFilterRes (unsigned long filterResX,
- unsigned long filterResY ) =0;
-
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGFilterElement() {}
-
-};
-
-
-
-
-
-/*#########################################################################
-## SVGFEBlendElement
-#########################################################################*/
-
-/**
- * The SVGFEBlendElement interface corresponds to the 'feBlend' element.
- */
-class SVGFEBlendElement :
- virtual public SVGElement,
- public SVGFilterPrimitiveStandardAttributes
-{
-public:
-
-
- /**
- * Blend Mode Types
- */
- typedef enum
- {
- SVG_FEBLEND_MODE_UNKNOWN = 0,
- SVG_FEBLEND_MODE_NORMAL = 1,
- SVG_FEBLEND_MODE_MULTIPLY = 2,
- SVG_FEBLEND_MODE_SCREEN = 3,
- SVG_FEBLEND_MODE_DARKEN = 4,
- SVG_FEBLEND_MODE_LIGHTEN = 5
- } BlendModeType;
-
- /**
- * Corresponds to attribute in on the given 'feBlend' element.
- */
- virtual SVGAnimatedString getIn1() =0;
-
- /**
- * Corresponds to attribute in2 on the given 'feBlend' element.
- */
- virtual SVGAnimatedString getIn2() =0;
-
- /**
- * Corresponds to attribute mode on the given 'feBlend' element.
- * Takes one of the Blend Mode Types.
- */
- virtual SVGAnimatedEnumeration getMode() =0;
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGFEBlendElement() {}
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGFEColorMatrixElement
-#########################################################################*/
-
-/**
- * The SVGFEColorMatrixElement interface corresponds to the
- * 'feColorMatrix' element.
- */
-class SVGFEColorMatrixElement :
- virtual public SVGElement,
- public SVGFilterPrimitiveStandardAttributes
-{
-
-public:
-
- /**
- * Color Matrix Types
- */
- typedef enum
- {
- SVG_FECOLORMATRIX_TYPE_UNKNOWN = 0,
- SVG_FECOLORMATRIX_TYPE_MATRIX = 1,
- SVG_FECOLORMATRIX_TYPE_SATURATE = 2,
- SVG_FECOLORMATRIX_TYPE_HUEROTATE = 3,
- SVG_FECOLORMATRIX_TYPE_LUMINANCETOALPHA = 4
- } ColorMatrixType;
-
-
- /**
- * Corresponds to attribute in on the given 'feColorMatrix' element.
- */
- virtual SVGAnimatedString getIn1() =0;
-
- /**
- * Corresponds to attribute type on the given 'feColorMatrix' element.
- * Takes one of the Color Matrix Types.
- */
- virtual SVGAnimatedEnumeration getType() =0;
-
- /**
- * Corresponds to attribute values on the given 'feColorMatrix' element.
- * Provides access to the contents of the values attribute.
- */
- virtual SVGAnimatedNumberList getValues() =0;
-
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGFEColorMatrixElement() {}
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGFEComponentTransferElement
-#########################################################################*/
-
-/**
- * The SVGFEComponentTransferElement interface corresponds to
- * the 'feComponentTransfer' element.
- */
-class SVGFEComponentTransferElement :
- virtual public SVGElement,
- public SVGFilterPrimitiveStandardAttributes
-{
-public:
-
- /**
- * Corresponds to attribute in on the given 'feComponentTransfer' element.
- */
- virtual SVGAnimatedString getIn1() =0;
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGFEComponentTransferElement() {}
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGComponentTransferFunctionElement
-#########################################################################*/
-
-/**
- * This interface defines a base interface used by the component
- * transfer function interfaces.
- */
-class SVGComponentTransferFunctionElement : virtual public SVGElement
-{
-public:
-
-
- /**
- * Component Transfer Types
- */
- typedef enum
- {
- SVG_FECOMPONENTTRANSFER_TYPE_UNKNOWN = 0,
- SVG_FECOMPONENTTRANSFER_TYPE_IDENTITY = 1,
- SVG_FECOMPONENTTRANSFER_TYPE_TABLE = 2,
- SVG_FECOMPONENTTRANSFER_TYPE_DISCRETE = 3,
- SVG_FECOMPONENTTRANSFER_TYPE_LINEAR = 4,
- SVG_FECOMPONENTTRANSFER_TYPE_GAMMA = 5
- } ComponentTransferType;
-
-
- /**
- * Corresponds to attribute type on the given element. Takes one\
- * of the Component Transfer Types.
- */
- virtual SVGAnimatedEnumeration getType() =0;
-
- /**
- * Corresponds to attribute tableValues on the given element.
- */
- virtual SVGAnimatedNumberList getTableValues() =0;
-
- /**
- * Corresponds to attribute slope on the given element.
- */
- virtual SVGAnimatedNumber getSlope() =0;
-
- /**
- * Corresponds to attribute intercept on the given element.
- */
- virtual SVGAnimatedNumber getIntercept() =0;
-
- /**
- * Corresponds to attribute amplitude on the given element.
- */
- virtual SVGAnimatedNumber getAmplitude() =0;
-
- /**
- * Corresponds to attribute exponent on the given element.
- */
- virtual SVGAnimatedNumber getExponent() =0;
-
- /**
- * Corresponds to attribute offset on the given element.
- */
- virtual SVGAnimatedNumber getOffset() =0;
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGComponentTransferFunctionElement() {}
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGFEFuncRElement
-#########################################################################*/
-
-/**
- * The SVGFEFuncRElement interface corresponds to the 'feFuncR' element.
- */
-class SVGFEFuncRElement : virtual public SVGComponentTransferFunctionElement
-{
-public:
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGFEFuncRElement() {}
-
-};
-
-
-
-
-/*#########################################################################
-## SVGFEFuncGElement
-#########################################################################*/
-
-/**
- * The SVGFEFuncGElement interface corresponds to the 'feFuncG' element.
- */
-class SVGFEFuncGElement : public virtual SVGComponentTransferFunctionElement
-{
-public:
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGFEFuncGElement() {}
-
-};
-
-
-
-
-/*#########################################################################
-## SVGFEFuncBElement
-#########################################################################*/
-
-/**
- * The SVGFEFuncBElement interface corresponds to the 'feFuncB' element.
- */
-class SVGFEFuncBElement : virtual public SVGComponentTransferFunctionElement
-{
-public:
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGFEFuncBElement() {}
-
-};
-
-
-
-
-/*#########################################################################
-## SVGFEFuncAElement
-#########################################################################*/
-
-/**
- * The SVGFEFuncAElement interface corresponds to the 'feFuncA' element.
- */
-class SVGFEFuncAElement : virtual public SVGComponentTransferFunctionElement
-{
-public:
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGFEFuncAElement() {}
-
-};
-
-
-
-
-/*#########################################################################
-## SVGFECompositeElement
-#########################################################################*/
-
-/**
- * The SVGFECompositeElement interface corresponds to the 'feComposite' element.
- */
-class SVGFECompositeElement :
- virtual public SVGElement,
- public SVGFilterPrimitiveStandardAttributes
-{
-public:
-
-
-
- /**
- * Composite Operators
- */
- typedef enum
- {
- SVG_FECOMPOSITE_OPERATOR_UNKNOWN = 0,
- SVG_FECOMPOSITE_OPERATOR_OVER = 1,
- SVG_FECOMPOSITE_OPERATOR_IN = 2,
- SVG_FECOMPOSITE_OPERATOR_OUT = 3,
- SVG_FECOMPOSITE_OPERATOR_ATOP = 4,
- SVG_FECOMPOSITE_OPERATOR_XOR = 5,
- SVG_FECOMPOSITE_OPERATOR_ARITHMETIC = 6
- } CompositeOperatorType;
-
- /**
- * Corresponds to attribute in on the given 'feComposite' element.
- */
- virtual SVGAnimatedString getIn1() =0;
-
- /**
- * Corresponds to attribute in2 on the given 'feComposite' element.
- */
- virtual SVGAnimatedString getIn2() =0;
-
- /**
- * Corresponds to attribute operator on the given 'feComposite' element.
- * Takes one of the Composite Operators.
- */
- virtual SVGAnimatedEnumeration getOperator() =0;
-
- /**
- * Corresponds to attribute k1 on the given 'feComposite' element.
- */
- virtual SVGAnimatedNumber getK1() =0;
-
- /**
- * Corresponds to attribute k2 on the given 'feComposite' element.
- */
- virtual SVGAnimatedNumber getK2() =0;
-
- /**
- * Corresponds to attribute k3 on the given 'feComposite' element.
- */
- virtual SVGAnimatedNumber getK3() =0;
-
- /**
- * Corresponds to attribute k4 on the given 'feComposite' element.
- */
- virtual SVGAnimatedNumber getK4() =0;
-
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGFECompositeElement() {}
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGFEConvolveMatrixElement
-#########################################################################*/
-
-/**
- * The SVGFEConvolveMatrixElement interface corresponds to
- * the 'feConvolveMatrix' element.
- */
-class SVGFEConvolveMatrixElement :
- virtual public SVGElement,
- public SVGFilterPrimitiveStandardAttributes
-{
-
-public:
-
- /**
- * Edge Mode Values
- */
- typedef enum
- {
- SVG_EDGEMODE_UNKNOWN = 0,
- SVG_EDGEMODE_DUPLICATE = 1,
- SVG_EDGEMODE_WRAP = 2,
- SVG_EDGEMODE_NONE = 3
- } EdgeModeType;
-
-
- /**
- * Corresponds to attribute order on the given 'feConvolveMatrix' element.
- */
- virtual SVGAnimatedInteger getOrderX() =0;
-
- /**
- * Corresponds to attribute order on the given 'feConvolveMatrix' element.
- */
- virtual SVGAnimatedInteger getOrderY() =0;
-
- /**
- * Corresponds to attribute kernelMatrix on the given element.
- */
- virtual SVGAnimatedNumberList getKernelMatrix() =0;
-
- /**
- * Corresponds to attribute divisor on the given 'feConvolveMatrix' element.
- */
- virtual SVGAnimatedNumber getDivisor() =0;
-
- /**
- * Corresponds to attribute bias on the given 'feConvolveMatrix' element.
- */
- virtual SVGAnimatedNumber getBias() =0;
-
- /**
- * Corresponds to attribute targetX on the given 'feConvolveMatrix' element.
- */
- virtual SVGAnimatedInteger getTargetX() =0;
-
- /**
- * Corresponds to attribute targetY on the given 'feConvolveMatrix' element.
- */
- virtual SVGAnimatedInteger getTargetY() =0;
-
- /**
- * Corresponds to attribute edgeMode on the given 'feConvolveMatrix'
- * element. Takes one of the Edge Mode Types.
- */
- virtual SVGAnimatedEnumeration getEdgeMode() =0;
-
- /**
- * Corresponds to attribute kernelUnitLength on the
- * given 'feConvolveMatrix' element.
- */
- virtual SVGAnimatedLength getKernelUnitLengthX() =0;
-
- /**
- * Corresponds to attribute kernelUnitLength on the given
- * 'feConvolveMatrix' element.
- */
- virtual SVGAnimatedLength getKernelUnitLengthY() =0;
-
- /**
- * Corresponds to attribute preserveAlpha on the
- * given 'feConvolveMatrix' element.
- */
- virtual SVGAnimatedBoolean getPreserveAlpha() =0;
-
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGFEConvolveMatrixElement() {}
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGFEDiffuseLightingElement
-#########################################################################*/
-
-/**
- * The SVGFEDiffuseLightingElement interface corresponds to the
- * 'feDiffuseLighting' element.
- */
-class SVGFEDiffuseLightingElement :
- virtual public SVGElement,
- public SVGFilterPrimitiveStandardAttributes
-{
-public:
-
- /**
- * Corresponds to attribute in on the given 'feDiffuseLighting' element.
- */
- virtual SVGAnimatedString getIn1() =0;
-
- /**
- * Corresponds to attribute surfaceScale on the given
- * 'feDiffuseLighting' element.
- */
- virtual SVGAnimatedNumber getSurfaceScale() =0;
-
- /**
- * Corresponds to attribute diffuseConstant on the given
- * 'feDiffuseLighting' element.
- */
- virtual SVGAnimatedNumber getDiffuseConstant() =0;
-
- /**
- * Corresponds to attribute kernelUnitLength on the given
- * 'feDiffuseLighting' element.
- */
- virtual SVGAnimatedNumber getKernelUnitLengthX() =0;
-
- /**
- * Corresponds to attribute kernelUnitLength on the given
- * 'feDiffuseLighting' element.
- */
- virtual SVGAnimatedNumber getKernelUnitLengthY() =0;
-
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGFEDiffuseLightingElement() {}
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGFEDistantLightElement
-#########################################################################*/
-
-/**
- * The SVGFEDistantLightElement interface corresponds to the
- * 'feDistantLight' element.
- */
-class SVGFEDistantLightElement : virtual public SVGElement
-{
-public:
-
- /**
- * Corresponds to attribute azimuth on the given 'feDistantLight' element.
- */
- virtual SVGAnimatedNumber getAzimuth() =0;
-
-
- /**
- * Corresponds to attribute elevation on the given 'feDistantLight'
- * element
- */
- virtual SVGAnimatedNumber getElevation() =0;
-
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGFEDistantLightElement() {}
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGFEPointLightElement
-#########################################################################*/
-
-/**
- * The SVGFEPointLightElement interface corresponds to the 'fePointLight' element.
- */
-class SVGFEPointLightElement : virtual public SVGElement
-{
-public:
-
- /**
- * Corresponds to attribute x on the given 'fePointLight' element.
- */
- virtual SVGAnimatedNumber getX() =0;
-
- /**
- * Corresponds to attribute y on the given 'fePointLight' element.
- */
- virtual SVGAnimatedNumber getY() =0;
-
- /**
- * Corresponds to attribute z on the given 'fePointLight' element.
- */
- virtual SVGAnimatedNumber getZ() =0;
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGFEPointLightElement() {}
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGFESpotLightElement
-#########################################################################*/
-
-/**
- * The SVGFESpotLightElement interface corresponds to the 'feSpotLight' element.
- */
-class SVGFESpotLightElement : virtual public SVGElement
-{
-public:
-
- /**
- * Corresponds to attribute x on the given 'feSpotLight' element.
- */
- virtual SVGAnimatedNumber getX() =0;
-
- /**
- * Corresponds to attribute y on the given 'feSpotLight' element.
- */
- virtual SVGAnimatedNumber getY() =0;
-
- /**
- * Corresponds to attribute z on the given 'feSpotLight' element.
- */
- virtual SVGAnimatedNumber getZ() =0;
-
- /**
- * Corresponds to attribute pointsAtX on the given 'feSpotLight' element.
- */
- virtual SVGAnimatedNumber getPointsAtX() =0;
-
- /**
- * Corresponds to attribute pointsAtY on the given 'feSpotLight' element.
- */
- virtual SVGAnimatedNumber getPointsAtY() =0;
-
- /**
- * Corresponds to attribute pointsAtZ on the given 'feSpotLight' element.
- */
- virtual SVGAnimatedNumber getPointsAtZ() =0;
-
- /**
- * Corresponds to attribute specularExponent on the
- * given 'feSpotLight' element.
- */
- virtual SVGAnimatedNumber getSpecularExponent() =0;
-
- /**
- * Corresponds to attribute limitingConeAngle on the
- * given 'feSpotLight' element.
- */
- virtual SVGAnimatedNumber getLimitingConeAngle() =0;
-
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGFESpotLightElement() {}
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGFEDisplacementMapElement
-#########################################################################*/
-
-/**
- *
- */
-class SVGFEDisplacementMapElement :
- virtual public SVGElement,
- public SVGFilterPrimitiveStandardAttributes
-{
-public:
-
-
-
- /**
- * Channel Selectors
- */
- typedef enum
- {
- SVG_CHANNEL_UNKNOWN = 0,
- SVG_CHANNEL_R = 1,
- SVG_CHANNEL_G = 2,
- SVG_CHANNEL_B = 3,
- SVG_CHANNEL_A = 4
- } ChannelSelector;
-
- /**
- *
- */
- virtual SVGAnimatedString getIn1() =0;
-
- /**
- *
- */
- virtual SVGAnimatedString getIn2() =0;
-
-
- /**
- *
- */
- virtual SVGAnimatedNumber getScale() =0;
-
- /**
- *
- */
- virtual SVGAnimatedEnumeration getXChannelSelector() =0;
-
- /**
- *
- */
- virtual SVGAnimatedEnumeration getYChannelSelector() =0;
-
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGFEDisplacementMapElement() {}
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGFEFloodElement
-#########################################################################*/
-
-/**
- *
- */
-class SVGFEFloodElement :
- virtual public SVGElement,
- public SVGFilterPrimitiveStandardAttributes
-{
-public:
- /**
- *
- */
- virtual SVGAnimatedString getIn1() =0;
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGFEFloodElement() {}
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGFEGaussianBlurElement
-#########################################################################*/
-
-/**
- *
- */
-class SVGFEGaussianBlurElement :
- virtual public SVGElement,
- public SVGFilterPrimitiveStandardAttributes
-{
-public:
- /**
- *
- */
- virtual SVGAnimatedString getIn1() =0;
-
-
- /**
- *
- */
- virtual SVGAnimatedNumber getStdDeviationX() =0;
-
- /**
- *
- */
- virtual SVGAnimatedNumber getStdDeviationY() =0;
-
-
- /**
- *
- */
- virtual void setStdDeviation (double stdDeviationX, double stdDeviationY ) =0;
-
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGFEGaussianBlurElement() {}
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGFEImageElement
-#########################################################################*/
-
-/**
- *
- */
-class SVGFEImageElement :
- virtual public SVGElement,
- public SVGURIReference,
- public SVGLangSpace,
- public SVGExternalResourcesRequired,
- public SVGFilterPrimitiveStandardAttributes
-{
-public:
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGFEImageElement() {}
-
-};
-
-
-
-
-/*#########################################################################
-## SVGFEMergeElement
-#########################################################################*/
-
-/**
- *
- */
-class SVGFEMergeElement :
- virtual public SVGElement,
- public SVGFilterPrimitiveStandardAttributes
-{
-public:
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGFEMergeElement() {}
-
-};
-
-
-
-
-/*#########################################################################
-## SVGFEMergeNodeElement
-#########################################################################*/
-
-/**
- *
- */
-class SVGFEMergeNodeElement : virtual public SVGElement
-{
-public:
- /**
- *
- */
- virtual SVGAnimatedString getIn1() =0;
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGFEMergeNodeElement() {}
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGFEMorphologyElement
-#########################################################################*/
-
-/**
- *
- */
-class SVGFEMorphologyElement :
- virtual public SVGElement,
- public SVGFilterPrimitiveStandardAttributes
-{
-public:
-
-
-
- /**
- * Morphology Operators
- */
- typedef enum
- {
- SVG_MORPHOLOGY_OPERATOR_UNKNOWN = 0,
- SVG_MORPHOLOGY_OPERATOR_ERODE = 1,
- SVG_MORPHOLOGY_OPERATOR_DILATE = 2
- } MorphologyOperatorType;
-
-
- /**
- *
- */
- virtual SVGAnimatedString getIn1() =0;
-
-
- /**
- *
- */
- virtual SVGAnimatedEnumeration getOperator() =0;
-
- /**
- *
- */
- virtual SVGAnimatedLength getRadiusX() =0;
-
- /**
- *
- */
- virtual SVGAnimatedLength getRadiusY() =0;
-
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGFEMorphologyElement() {}
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGFEOffsetElement
-#########################################################################*/
-
-/**
- *
- */
-class SVGFEOffsetElement :
- virtual public SVGElement,
- public SVGFilterPrimitiveStandardAttributes
-{
-public:
-
-
-
- /**
- *
- */
- virtual SVGAnimatedString getIn1() =0;
-
- /**
- *
- */
- virtual SVGAnimatedLength getDx() =0;
-
- /**
- *
- */
- virtual SVGAnimatedLength getDy() =0;
-
-
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGFEOffsetElement() {}
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGFESpecularLightingElement
-#########################################################################*/
-
-/**
- *
- */
-class SVGFESpecularLightingElement :
- virtual public SVGElement,
- public SVGFilterPrimitiveStandardAttributes
-{
-public:
-
- /**
- *
- */
- virtual SVGAnimatedString getIn1() =0;
-
- /**
- *
- */
- virtual SVGAnimatedNumber getSurfaceScale() =0;
-
- /**
- *
- */
- virtual SVGAnimatedNumber getSpecularConstant() =0;
-
- /**
- *
- */
- virtual SVGAnimatedNumber getSpecularExponent() =0;
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGFESpecularLightingElement() {}
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGFETileElement
-#########################################################################*/
-
-/**
- *
- */
-class SVGFETileElement :
- virtual public SVGElement,
- public SVGFilterPrimitiveStandardAttributes
-{
-public:
-
-
- /**
- *
- */
- virtual SVGAnimatedString getIn1() =0;
-
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGFETileElement() {}
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGFETurbulenceElement
-#########################################################################*/
-
-/**
- *
- */
-class SVGFETurbulenceElement :
- virtual public SVGElement,
- public SVGFilterPrimitiveStandardAttributes
-{
-public:
-
-
-
- /**
- * Turbulence Types
- */
- typedef enum
- {
- SVG_TURBULENCE_TYPE_UNKNOWN = 0,
- SVG_TURBULENCE_TYPE_FRACTALNOISE = 1,
- SVG_TURBULENCE_TYPE_TURBULENCE = 2
- } TurbulenceType;
-
- /**
- * Stitch Options
- */
- typedef enum
- {
- SVG_STITCHTYPE_UNKNOWN = 0,
- SVG_STITCHTYPE_STITCH = 1,
- SVG_STITCHTYPE_NOSTITCH = 2
- } StitchOption;
-
-
-
- /**
- *
- */
- virtual SVGAnimatedNumber getBaseFrequencyX() =0;
-
- /**
- *
- */
- virtual SVGAnimatedNumber getBaseFrequencyY() =0;
-
- /**
- *
- */
- virtual SVGAnimatedInteger getNumOctaves() =0;
-
- /**
- *
- */
- virtual SVGAnimatedNumber getSeed() =0;
-
- /**
- *
- */
- virtual SVGAnimatedEnumeration getStitchTiles() =0;
-
- /**
- *
- */
- virtual SVGAnimatedEnumeration getType() =0;
-
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGFETurbulenceElement() {}
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGCursorElement
-#########################################################################*/
-
-/**
- *
- */
-class SVGCursorElement :
- virtual public SVGElement,
- public SVGURIReference,
- public SVGTests,
- public SVGExternalResourcesRequired
-{
-public:
- /**
- *
- */
- virtual SVGAnimatedLength getX() =0;
-
- /**
- *
- */
- virtual SVGAnimatedLength getY() =0;
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGCursorElement() {}
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGAElement
-#########################################################################*/
-
-/**
- *
- */
-class SVGAElement : virtual public SVGElement,
- public SVGURIReference,
- public SVGTests,
- public SVGLangSpace,
- public SVGExternalResourcesRequired,
- public SVGStylable,
- public SVGTransformable,
- public events::EventTarget
-{
-public:
-
- /**
- *
- */
- virtual SVGAnimatedString getTarget() =0;
-
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGAElement() {}
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGViewElement
-#########################################################################*/
-
-/**
- *
- */
-class SVGViewElement : virtual public SVGElement,
- public SVGExternalResourcesRequired,
- public SVGFitToViewBox,
- public SVGZoomAndPan
-{
-public:
-
- /**
- *
- */
- virtual SVGStringList getViewTarget() =0;
-
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGViewElement() {}
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGScriptElement
-#########################################################################*/
-
-/**
- *
- */
-class SVGScriptElement :
- virtual public SVGElement,
- public SVGURIReference,
- public SVGExternalResourcesRequired
-{
-public:
-
- /**
- *
- */
- virtual DOMString getType() =0;
-
- /**
- *
- */
- virtual void setType(const DOMString &val)
- throw (DOMException) =0;
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGScriptElement() {}
-
-};
-
-
-
-
-
-/*#########################################################################
-## SVGAnimationElement
-#########################################################################*/
-
-/**
- *
- */
-class SVGAnimationElement :
- virtual public SVGElement,
- public SVGTests,
- public SVGExternalResourcesRequired,
- public smil::ElementTimeControl,
- public events::EventTarget
-{
-public:
-
-
- /**
- *
- */
- virtual SVGElementPtr getTargetElement() =0;
-
-
- /**
- *
- */
- virtual double getStartTime ( ) =0;
-
- /**
- *
- */
- virtual double getCurrentTime ( ) =0;
-
- /**
- *
- */
- virtual double getSimpleDuration ( )
- throw( DOMException ) =0;
-;
-
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGAnimationElement() {}
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGAnimateElement
-#########################################################################*/
-
-/**
- *
- */
-class SVGAnimateElement : virtual public SVGAnimationElement
-{
-public:
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGAnimateElement() {}
-
-};
-
-
-
-
-/*#########################################################################
-## SVGSetElement
-#########################################################################*/
-
-/**
- *
- */
-class SVGSetElement : virtual public SVGAnimationElement
-{
-public:
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGSetElement() {}
-
-};
-
-
-
-
-/*#########################################################################
-## SVGAnimateMotionElement
-#########################################################################*/
-
-/**
- *
- */
-class SVGAnimateMotionElement : virtual public SVGAnimationElement
-{
-public:
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGAnimateMotionElement() {}
-
-};
-
-
-
-
-/*#########################################################################
-## SVGMPathElement
-#########################################################################*/
-
-/**
- *
- */
-class SVGMPathElement :
- virtual public SVGElement,
- public SVGURIReference,
- public SVGExternalResourcesRequired
-{
-public:
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGMPathElement() {}
-
-};
-
-
-
-
-/*#########################################################################
-## SVGAnimateColorElement
-#########################################################################*/
-
-/**
- *
- */
-class SVGAnimateColorElement : virtual public SVGAnimationElement
-{
-public:
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGAnimateColorElement() {}
-
-};
-
-
-
-
-/*#########################################################################
-## SVGAnimateTransformElement
-#########################################################################*/
-
-/**
- *
- */
-class SVGAnimateTransformElement : virtual public SVGAnimationElement
-{
-public:
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGAnimateTransformElement() {}
-
-};
-
-
-
-
-/*#########################################################################
-## SVGFontElement
-#########################################################################*/
-
-/**
- *
- */
-class SVGFontElement : virtual public SVGElement,
- public SVGExternalResourcesRequired,
- public SVGStylable
-{
-public:
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGFontElement() {}
-
-};
-
-
-
-
-/*#########################################################################
-## SVGGlyphElement
-#########################################################################*/
-
-/**
- *
- */
-class SVGGlyphElement : virtual public SVGElement,
- public SVGStylable
-{
-public:
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGGlyphElement() {}
-
-};
-
-
-
-
-/*#########################################################################
-## SVGMissingGlyphElement
-#########################################################################*/
-
-/**
- *
- */
-class SVGMissingGlyphElement :
- virtual public SVGElement,
- public SVGStylable
-{
-public:
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGMissingGlyphElement() {}
-
-};
-
-
-
-
-/*#########################################################################
-## SVGHKernElement
-#########################################################################*/
-
-/**
- *
- */
-class SVGHKernElement : virtual public SVGElement
-{
-public:
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGHKernElement() {}
-
-};
-
-
-
-
-/*#########################################################################
-## SVGVKernElement
-#########################################################################*/
-
-/**
- *
- */
-class SVGVKernElement : public virtual SVGElement
-{
-public:
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGVKernElement() {}
-
-};
-
-
-
-
-/*#########################################################################
-## SVGFontFaceElement
-#########################################################################*/
-
-/**
- *
- */
-class SVGFontFaceElement : virtual public SVGElement
-{
-public:
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGFontFaceElement() {}
-
-};
-
-
-
-
-/*#########################################################################
-## SVGFontFaceSrcElement
-#########################################################################*/
-
-/**
- *
- */
-class SVGFontFaceSrcElement : virtual public SVGElement
-{
-public:
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGFontFaceSrcElement() {}
-
-};
-
-
-
-
-/*#########################################################################
-## SVGFontFaceUriElement
-#########################################################################*/
-
-/**
- *
- */
-class SVGFontFaceUriElement : virtual public SVGElement
-{
-public:
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGFontFaceUriElement() {}
-
-};
-
-
-
-
-/*#########################################################################
-## SVGFontFaceFormatElement
-#########################################################################*/
-
-/**
- *
- */
-class SVGFontFaceFormatElement : virtual public SVGElement
-{
-public:
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGFontFaceFormatElement() {}
-
-};
-
-
-
-
-/*#########################################################################
-## SVGFontFaceNameElement
-#########################################################################*/
-
-/**
- *
- */
-class SVGFontFaceNameElement : virtual public SVGElement
-{
-public:
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGFontFaceNameElement() {}
-
-};
-
-
-
-
-/*#########################################################################
-## SVGDefinitionSrcElement
-#########################################################################*/
-
-/**
- *
- */
-class SVGDefinitionSrcElement : virtual public SVGElement
-{
-public:
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGDefinitionSrcElement() {}
-
-};
-
-
-
-
-/*#########################################################################
-## SVGMetadataElement
-#########################################################################*/
-
-/**
- *
- */
-class SVGMetadataElement : virtual public SVGElement
-{
-public:
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGMetadataElement() {}
-
-};
-
-
-
-/*#########################################################################
-## SVGForeignObjectElement
-#########################################################################*/
-
-/**
- *
- */
-class SVGForeignObjectElement :
- virtual public SVGElement,
- public SVGTests,
- public SVGLangSpace,
- public SVGExternalResourcesRequired,
- public SVGStylable,
- public SVGTransformable,
- public events::EventTarget
-{
-public:
-
-
- /**
- *
- */
- virtual SVGAnimatedLength getX() =0;
-
- /**
- *
- */
- virtual SVGAnimatedLength getY() =0;
-
- /**
- *
- */
- virtual SVGAnimatedLength getWidth() =0;
-
- /**
- *
- */
- virtual SVGAnimatedLength getHeight() =0;
-
-
-
- //##################
- //# Non-API methods
- //##################
-
-
- /**
- *
- */
- virtual ~SVGForeignObjectElement() {}
-
-};
-
-
-
-
-
-} //namespace svg
-} //namespace dom
-} //namespace w3c
-} //namespace org
-
-#endif // SEEN_SVG_H
-/*#########################################################################
-## E N D O F F I L E
-#########################################################################*/
-
diff --git a/src/dom/svgimpl.cpp b/src/dom/svgimpl.cpp
deleted file mode 100644
index 0f420dc87..000000000
--- a/src/dom/svgimpl.cpp
+++ /dev/null
@@ -1,2563 +0,0 @@
-/*
- * Phoebe DOM Implementation.
- *
- * This is a C++ approximation of the W3C DOM model, which follows
- * fairly closely the specifications in the various .idl files, copies of
- * which are provided for reference. Most important is this one:
- *
- * http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/idl-definitions.html
- *
- * Authors:
- * Bob Jamison
- *
- * Copyright (C) 2005-2008 Bob Jamison
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#include "svgimpl.h"
-#include <cstring>
-using std::strcmp;
-
-/**
- * This is the .cpp side of the SVG implementations classes. Note that many
- * of the sections for each of the classes is empty. This is because that class
- * has been implemented totally in svgimpl.h
- */
-
-namespace org
-{
-namespace w3c
-{
-namespace dom
-{
-namespace svg
-{
-
-
-/*#########################################################################
-## U T I L I T Y
-#########################################################################*/
-
-static DOMString d2s(double d)
-{
- char buf[40];
- snprintf(buf, 40, "%f", d);
- DOMString s(buf);
- return s;
-}
-
-static double s2d(const DOMString &s)
-{
- const char *begin = s.c_str();
- char *end;
- double val = strtod(begin, &end);
- if (end <= begin)
- return 0.0;
- return val;
-}
-
-
-/*#########################################################################
-## Element type lookup table
-#########################################################################*/
-
-/**
- * Used for mapping name->enum and enum->name.
- * For SVG element and interface types.
- */
-typedef struct
-{
- const char *name;
- unsigned int type;
-} SVGTableEntry;
-
-
-
-SVGTableEntry interfaceTable[] =
-{
- { "SVGAngle", SVG_ANGLE },
- { "SVGAnimatedAngle", SVG_ANIMATED_ANGLE },
- { "SVGAnimatedBoolean", SVG_ANIMATED_BOOLEAN },
- { "SVGAnimatedEnumeration", SVG_ANIMATED_ENUMERATION },
- { "SVGAnimatedInteger", SVG_ANIMATED_INTEGER },
- { "SVGAnimatedLength", SVG_ANIMATED_LENGTH },
- { "SVGAnimatedLengthList", SVG_ANIMATED_LENGTH_LIST },
- { "SVGAnimatedNumber", SVG_ANIMATED_NUMBER },
- { "SVGAnimatedNumberList", SVG_ANIMATED_NUMBER_LIST },
- { "SVGAnimatedRect", SVG_ANIMATED_RECT },
- { "SVGAnimatedString", SVG_ANIMATED_STRING },
- { "SVGColor", SVG_COLOR },
- { "SVGCSSRule", SVG_CSS_RULE },
- { "SVGExternalResourcesRequired", SVG_EXTERNAL_RESOURCES_REQUIRED },
- { "SVGFitToViewBox", SVG_FIT_TO_VIEWBOX },
- { "SVGICCColor", SVG_ICCCOLOR },
- { "SVGLangSpace", SVG_LANG_SPACE },
- { "SVGLength", SVG_LENGTH },
- { "SVGLengthList", SVG_LENGTH_LIST },
- { "SVGLocatable", SVG_LOCATABLE },
- { "SVGNumber", SVG_NUMBER },
- { "SVGNumberList", SVG_NUMBER_LIST },
- { "SVGRect", SVG_RECT },
- { "SVGRenderingIntent", SVG_RENDERING_INTENT },
- { "SVGStringList", SVG_STRING_LIST },
- { "SVGStylable", SVG_STYLABLE },
- { "SVGTests", SVG_TESTS },
- { "SVGTransformable", SVG_TRANSFORMABLE },
- { "SVGUnitTypes", SVG_UNIT_TYPES },
- { "SVGURIReference", SVG_URI_REFERENCE },
- { "SVGViewSpec", SVG_VIEW_SPEC },
- { "SVGZoomAndPan", SVG_ZOOM_AND_PAN }
-};
-
-
-SVGTableEntry elementTable[] =
-{
- { "a", SVG_A_ELEMENT },
- { "altGlyph", SVG_ALTGLYPH_ELEMENT },
- { "altGlyphDef", SVG_ALTGLYPHDEF_ELEMENT },
- { "altGlyphItem", SVG_ALTGLYPHITEM_ELEMENT },
- { "animate", SVG_ANIMATE_ELEMENT },
- { "animateColor", SVG_ANIMATECOLOR_ELEMENT },
- { "animateMotion", SVG_ANIMATEMOTION_ELEMENT },
- { "animateTransform", SVG_ANIMATETRANSFORM_ELEMENT },
- { "circle", SVG_CIRCLE_ELEMENT },
- { "clipPath", SVG_CLIPPATH_ELEMENT },
- { "color-profile", SVG_COLOR_PROFILE_ELEMENT },
- { "cursor", SVG_CURSOR_ELEMENT },
- { "definition-src", SVG_DEFINITION_SRC_ELEMENT },
- { "defs", SVG_DEFS_ELEMENT },
- { "desc", SVG_DESC_ELEMENT },
- { "ellipse", SVG_ELLIPSE_ELEMENT },
- { "feBlend", SVG_FEBLEND_ELEMENT },
- { "feColorMatrix", SVG_FECOLORMATRIX_ELEMENT },
- { "feComponentTransfer", SVG_FECOMPONENTTRANSFER_ELEMENT },
- { "feComposite", SVG_FECOMPOSITE_ELEMENT },
- { "feConvolveMatrix", SVG_FECONVOLVEMATRIX_ELEMENT },
- { "feDiffuseLighting", SVG_FEDIFFUSELIGHTING_ELEMENT },
- { "feDisplacementMap", SVG_FEDISPLACEMENTMAP_ELEMENT },
- { "feDistantLight", SVG_FEDISTANTLIGHT_ELEMENT },
- { "feFlood", SVG_FEFLOOD_ELEMENT },
- { "feFuncA", SVG_FEFUNCA_ELEMENT },
- { "feFuncB", SVG_FEFUNCB_ELEMENT },
- { "feFuncG", SVG_FEFUNCG_ELEMENT },
- { "feFuncR", SVG_FEFUNCR_ELEMENT },
- { "feGaussianBlur", SVG_FEGAUSSIANBLUR_ELEMENT },
- { "feImage", SVG_FEIMAGE_ELEMENT },
- { "feMerge", SVG_FEMERGE_ELEMENT },
- { "feMergeNode", SVG_FEMERGENODE_ELEMENT },
- { "feMorphology", SVG_FEMORPHOLOGY_ELEMENT },
- { "feOffset", SVG_FEOFFSET_ELEMENT },
- { "fePointLight", SVG_FEPOINTLIGHT_ELEMENT },
- { "feSpecularLighting", SVG_FESPECULARLIGHTING_ELEMENT },
- { "feSpotLight", SVG_FESPOTLIGHT_ELEMENT },
- { "feTile", SVG_FETILE_ELEMENT },
- { "feTurbulence", SVG_FETURBULENCE_ELEMENT },
- { "filter", SVG_FILTER_ELEMENT },
- { "font", SVG_FONT_ELEMENT },
- { "font-face", SVG_FONT_FACE_ELEMENT },
- { "font-face-format", SVG_FONT_FACE_FORMAT_ELEMENT },
- { "font-face-name", SVG_FONT_FACE_NAME_ELEMENT },
- { "font-face-src", SVG_FONT_FACE_SRC_ELEMENT },
- { "font-face-uri", SVG_FONT_FACE_URI_ELEMENT },
- { "foreignObject", SVG_FOREIGNOBJECT_ELEMENT },
- { "g", SVG_G_ELEMENT },
- { "glyph", SVG_GLYPH_ELEMENT },
- { "glyphRef", SVG_GLYPHREF_ELEMENT },
- { "hkern", SVG_HKERN_ELEMENT },
- { "image", SVG_IMAGE_ELEMENT },
- { "line", SVG_LINE_ELEMENT },
- { "linearGradient", SVG_LINEARGRADIENT_ELEMENT },
- { "marker", SVG_MARKER_ELEMENT },
- { "mask", SVG_MASK_ELEMENT },
- { "metadata", SVG_METADATA_ELEMENT },
- { "missing-glyph", SVG_MISSING_GLYPH_ELEMENT },
- { "mpath", SVG_MPATH_ELEMENT },
- { "path", SVG_PATH_ELEMENT },
- { "pattern", SVG_PATTERN_ELEMENT },
- { "polygon", SVG_POLYGON_ELEMENT },
- { "polyline", SVG_POLYLINE_ELEMENT },
- { "radialGradient", SVG_RADIALGRADIENT_ELEMENT },
- { "rect", SVG_RECT_ELEMENT },
- { "script", SVG_SCRIPT_ELEMENT },
- { "set", SVG_SET_ELEMENT },
- { "stop", SVG_STOP_ELEMENT },
- { "style", SVG_STYLE_ELEMENT },
- { "svg", SVG_SVG_ELEMENT },
- { "switch", SVG_SWITCH_ELEMENT },
- { "symbol", SVG_SYMBOL_ELEMENT },
- { "text", SVG_TEXT_ELEMENT },
- { "textPath", SVG_TEXTPATH_ELEMENT },
- { "title", SVG_TITLE_ELEMENT },
- { "tref", SVG_TREF_ELEMENT },
- { "tspan", SVG_TSPAN_ELEMENT },
- { "use", SVG_USE_ELEMENT },
- { "view", SVG_VIEW_ELEMENT },
- { "vkern", SVG_VKERN_ELEMENT }
-};
-
-
-static int _entryComparison(const void *vkey, const void *ventry)
-{
- const char *key = (const char *)vkey;
- const SVGTableEntry *entry = (const SVGTableEntry *)ventry;
- return strcmp(key, entry->name);
-}
-
-/**
- * Look up the SVG Element type enum for a given string
- * Return -1 if not found
- */
-int svgElementStrToEnum(const char *str)
-{
- if (!str)
- return -1;
- SVGTableEntry *entry =
- (SVGTableEntry *)bsearch(str, elementTable,
- SVG_MAX_ELEMENT, sizeof(SVGTableEntry), _entryComparison);
- if (!entry)
- return -1;
- return entry->type;
-}
-
-
-/**
- * Return the string corresponding to a given SVG element type enum
- * Return "unknown" if not found
- */
-const char *svgElementEnumToStr(int type)
-{
- if (type < 0 || type >= SVG_MAX_ELEMENT)
- return "unknown";
- return elementTable[type].name;
-}
-
-
-/**
- * Look up the SVG Interface type enum for a given string
- * Return -1 if not found
- */
-int svgInterfaceStrToEnum(const char *str)
-{
- if (!str)
- return -1;
- SVGTableEntry *entry =
- (SVGTableEntry *)bsearch(str, interfaceTable,
- SVG_NR_INTERFACES, sizeof(SVGTableEntry), _entryComparison);
- if (!entry)
- return -1;
- return entry->type;
-}
-
-
-/**
- * Return the string corresponding to a given SVG element type enum
- * Return "unknown" if not found
- */
-const char *svgInterfaceEnumToStr(unsigned int type)
-{
- if (type < 1 || type > SVG_ZOOM_AND_PAN)
- return "unknown";
- SVGTableEntry *entry = interfaceTable;
- for (int i = 0 ; i < SVG_NR_INTERFACES ; i++)
- {
- if (entry->type == type)
- return entry->name;
- entry++;
- }
- return "unknown";
-}
-
-
-/*#########################################################################
-## SVGElementImpl
-#########################################################################*/
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-/*#########################################################################
-## SVGDocumentImpl
-#########################################################################*/
-
-
-
-//####################################################
-//# Overload some createXXX() methods from DocumentImpl,
-//# To create our SVG-DOM types
-//####################################################
-
-/**
- *
- */
-ElementPtr SVGDocumentImpl::createElement(const DOMString& tagName)
- throw(DOMException)
-{
- ElementPtr elem;
- int elementType = svgElementStrToEnum(tagName.c_str());
- switch (elementType)
- {
- case SVG_A_ELEMENT:
- {
- elem = new SVGAElementImpl();
- break;
- }
- case SVG_ALTGLYPH_ELEMENT:
- {
- elem = new SVGAltGlyphElementImpl();
- break;
- }
- case SVG_ALTGLYPHDEF_ELEMENT:
- {
- elem = new SVGAltGlyphDefElementImpl();
- break;
- }
- case SVG_ALTGLYPHITEM_ELEMENT:
- {
- elem = new SVGAltGlyphItemElementImpl();
- break;
- }
- case SVG_ANIMATE_ELEMENT:
- {
- elem = new SVGAnimateElementImpl();
- break;
- }
- case SVG_ANIMATECOLOR_ELEMENT:
- {
- elem = new SVGAnimateColorElementImpl();
- break;
- }
- case SVG_ANIMATEMOTION_ELEMENT:
- {
- elem = new SVGAnimateMotionElementImpl();
- break;
- }
- case SVG_ANIMATETRANSFORM_ELEMENT:
- {
- elem = new SVGAnimateTransformElementImpl();
- break;
- }
- case SVG_CIRCLE_ELEMENT:
- {
- elem = new SVGCircleElementImpl();
- break;
- }
- case SVG_CLIPPATH_ELEMENT:
- {
- elem = new SVGClipPathElementImpl();
- break;
- }
- case SVG_COLOR_PROFILE_ELEMENT:
- {
- elem = new SVGColorProfileElementImpl();
- break;
- }
- case SVG_CURSOR_ELEMENT:
- {
- elem = new SVGCursorElementImpl();
- break;
- }
- case SVG_DEFINITION_SRC_ELEMENT:
- {
- elem = new SVGDefinitionSrcElementImpl();
- break;
- }
- case SVG_DEFS_ELEMENT:
- {
- elem = new SVGDefsElementImpl();
- break;
- }
- case SVG_DESC_ELEMENT:
- {
- elem = new SVGDescElementImpl();
- break;
- }
- case SVG_ELLIPSE_ELEMENT:
- {
- elem = new SVGEllipseElementImpl();
- break;
- }
- case SVG_FEBLEND_ELEMENT:
- {
- elem = new SVGFEBlendElementImpl();
- break;
- }
- case SVG_FECOLORMATRIX_ELEMENT:
- {
- elem = new SVGFEColorMatrixElementImpl();
- break;
- }
- case SVG_FECOMPONENTTRANSFER_ELEMENT:
- {
- elem = new SVGFEComponentTransferElementImpl();
- break;
- }
- case SVG_FECOMPOSITE_ELEMENT:
- {
- elem = new SVGFECompositeElementImpl();
- break;
- }
- case SVG_FECONVOLVEMATRIX_ELEMENT:
- {
- elem = new SVGFEConvolveMatrixElementImpl();
- break;
- }
- case SVG_FEDIFFUSELIGHTING_ELEMENT:
- {
- elem = new SVGFEDiffuseLightingElementImpl();
- break;
- }
- case SVG_FEDISPLACEMENTMAP_ELEMENT:
- {
- elem = new SVGFEDisplacementMapElementImpl();
- break;
- }
- case SVG_FEDISTANTLIGHT_ELEMENT:
- {
- elem = new SVGFEDistantLightElementImpl();
- break;
- }
- case SVG_FEFLOOD_ELEMENT:
- {
- elem = new SVGFEFloodElementImpl();
- break;
- }
- case SVG_FEFUNCA_ELEMENT:
- {
- elem = new SVGFEFuncAElementImpl();
- break;
- }
- case SVG_FEFUNCB_ELEMENT:
- {
- elem = new SVGFEFuncBElementImpl();
- break;
- }
- case SVG_FEFUNCG_ELEMENT:
- {
- elem = new SVGFEFuncGElementImpl();
- break;
- }
- case SVG_FEFUNCR_ELEMENT:
- {
- elem = new SVGFEFuncRElementImpl();
- break;
- }
- case SVG_FEGAUSSIANBLUR_ELEMENT:
- {
- elem = new SVGFEGaussianBlurElementImpl();
- break;
- }
- case SVG_FEIMAGE_ELEMENT:
- {
- elem = new SVGFEImageElementImpl();
- break;
- }
- case SVG_FEMERGE_ELEMENT:
- {
- elem = new SVGFEMergeElementImpl();
- break;
- }
- case SVG_FEMERGENODE_ELEMENT:
- {
- elem = new SVGFEMergeNodeElementImpl();
- break;
- }
- case SVG_FEMORPHOLOGY_ELEMENT:
- {
- elem = new SVGFEMorphologyElementImpl();
- break;
- }
- case SVG_FEOFFSET_ELEMENT:
- {
- elem = new SVGFEOffsetElementImpl();
- break;
- }
- case SVG_FEPOINTLIGHT_ELEMENT:
- {
- elem = new SVGFEPointLightElementImpl();
- break;
- }
- case SVG_FESPECULARLIGHTING_ELEMENT:
- {
- elem = new SVGFESpecularLightingElementImpl();
- break;
- }
- case SVG_FESPOTLIGHT_ELEMENT:
- {
- elem = new SVGFESpotLightElementImpl();
- break;
- }
- case SVG_FETILE_ELEMENT:
- {
- elem = new SVGFETileElementImpl();
- break;
- }
- case SVG_FETURBULENCE_ELEMENT:
- {
- elem = new SVGFETurbulenceElementImpl();
- break;
- }
- case SVG_FILTER_ELEMENT:
- {
- elem = new SVGFilterElementImpl();
- break;
- }
- case SVG_FONT_ELEMENT:
- {
- elem = new SVGAElementImpl();
- break;
- }
- case SVG_FONT_FACE_ELEMENT:
- {
- elem = new SVGFontElementImpl();
- break;
- }
- case SVG_FONT_FACE_FORMAT_ELEMENT:
- {
- elem = new SVGFontFaceFormatElementImpl();
- break;
- }
- case SVG_FONT_FACE_NAME_ELEMENT:
- {
- elem = new SVGFontFaceNameElementImpl();
- break;
- }
- case SVG_FONT_FACE_SRC_ELEMENT:
- {
- elem = new SVGFontFaceSrcElementImpl();
- break;
- }
- case SVG_FONT_FACE_URI_ELEMENT:
- {
- elem = new SVGFontFaceUriElementImpl();
- break;
- }
- case SVG_FOREIGNOBJECT_ELEMENT:
- {
- elem = new SVGForeignObjectElementImpl();
- break;
- }
- case SVG_G_ELEMENT:
- {
- elem = new SVGGElementImpl();
- break;
- }
- case SVG_GLYPH_ELEMENT:
- {
- elem = new SVGGlyphElementImpl();
- break;
- }
- case SVG_GLYPHREF_ELEMENT:
- {
- elem = new SVGGlyphRefElementImpl();
- break;
- }
- case SVG_HKERN_ELEMENT:
- {
- elem = new SVGHKernElementImpl();
- break;
- }
- case SVG_IMAGE_ELEMENT:
- {
- elem = new SVGImageElementImpl();
- break;
- }
- case SVG_LINE_ELEMENT:
- {
- elem = new SVGLineElementImpl();
- break;
- }
- case SVG_LINEARGRADIENT_ELEMENT:
- {
- elem = new SVGLinearGradientElementImpl();
- break;
- }
- case SVG_MARKER_ELEMENT:
- {
- elem = new SVGMarkerElementImpl();
- break;
- }
- case SVG_MASK_ELEMENT:
- {
- elem = new SVGMaskElementImpl();
- break;
- }
- case SVG_METADATA_ELEMENT:
- {
- elem = new SVGMetadataElementImpl();
- break;
- }
- case SVG_MISSING_GLYPH_ELEMENT:
- {
- elem = new SVGMissingGlyphElementImpl();
- break;
- }
- case SVG_MPATH_ELEMENT:
- {
- elem = new SVGMPathElementImpl();
- break;
- }
- case SVG_PATH_ELEMENT:
- {
- elem = new SVGPathElementImpl();
- break;
- }
- case SVG_PATTERN_ELEMENT:
- {
- elem = new SVGPatternElementImpl();
- break;
- }
- case SVG_POLYGON_ELEMENT:
- {
- elem = new SVGPolygonElementImpl();
- break;
- }
- case SVG_POLYLINE_ELEMENT:
- {
- elem = new SVGPolylineElementImpl();
- break;
- }
- case SVG_RADIALGRADIENT_ELEMENT:
- {
- elem = new SVGRadialGradientElementImpl();
- break;
- }
- case SVG_RECT_ELEMENT:
- {
- elem = new SVGRectElementImpl();
- break;
- }
- case SVG_SCRIPT_ELEMENT:
- {
- elem = new SVGScriptElementImpl();
- break;
- }
- case SVG_SET_ELEMENT:
- {
- elem = new SVGSetElementImpl();
- break;
- }
- case SVG_STOP_ELEMENT:
- {
- elem = new SVGStopElementImpl();
- break;
- }
- case SVG_STYLE_ELEMENT:
- {
- elem = new SVGStyleElementImpl();
- break;
- }
- case SVG_SVG_ELEMENT:
- {
- elem = new SVGSVGElementImpl();
- break;
- }
- case SVG_SWITCH_ELEMENT:
- {
- elem = new SVGSwitchElementImpl();
- break;
- }
- case SVG_SYMBOL_ELEMENT:
- {
- elem = new SVGSymbolElementImpl();
- break;
- }
- case SVG_TEXT_ELEMENT:
- {
- elem = new SVGTextElementImpl();
- break;
- }
- case SVG_TEXTPATH_ELEMENT:
- {
- elem = new SVGTextPathElementImpl();
- break;
- }
- case SVG_TITLE_ELEMENT:
- {
- elem = new SVGTitleElementImpl();
- break;
- }
- case SVG_TREF_ELEMENT:
- {
- elem = new SVGTRefElementImpl();
- break;
- }
- case SVG_TSPAN_ELEMENT:
- {
- elem = new SVGTSpanElementImpl();
- break;
- }
- case SVG_USE_ELEMENT:
- {
- elem = new SVGUseElementImpl();
- break;
- }
- case SVG_VIEW_ELEMENT:
- {
- elem = new SVGViewElementImpl();
- break;
- }
- case SVG_VKERN_ELEMENT:
- {
- elem = new SVGVKernElementImpl();
- break;
- }
- default:
- {
- }
- }
- return elem;
-}
-
-
-/**
- *
- */
-ElementPtr SVGDocumentImpl::createElementNS(const DOMString& namespaceURI,
- const DOMString& qualifiedName)
- throw(DOMException)
-{
- ElementPtr elem;
- if (namespaceURI == SVG_NAMESPACE)
- elem = createElement(qualifiedName);
- else
- elem = new SVGElementImpl(this, namespaceURI, qualifiedName);
- return elem;
-}
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-void SVGDocumentImpl::init()
-{
- title = "";
- referrer = "";
- domain = "";
- rootElement = new SVGSVGElementImpl();
-}
-
-
-
-
-
-
-/*#########################################################################
-## SVGSVGElementImpl
-#########################################################################*/
-
-
-/**
- * Retrieves an attribute value by name.
- */
-DOMString SVGSVGElementImpl::getAttribute(const DOMString& name)
-{
- DOMString s;
- if (name == "x")
- s = d2s(x.getAnimVal().getValue());
- else if (name == "y")
- s = d2s(y.getAnimVal().getValue());
- else
- s = SVGElementImpl::getAttribute(name);
- return s;
-}
-
-/**
- * Sets an attribute value
- */
-void SVGSVGElementImpl::setAttribute(const DOMString& name,
- const DOMString& value)
- throw(DOMException)
-{
- if (name == "x")
- x.getAnimVal().setValue(s2d(value));
- else if (name == "y")
- y.getAnimVal().setValue(s2d(value));
- SVGElementImpl::setAttribute(name, value);
-}
-
-
-/**
- *
- */
-unsigned long SVGSVGElementImpl::suspendRedraw(unsigned long /*max_wait_milliseconds*/ )
-{
- return 0L;
-}
-
-/**
- *
- */
-void SVGSVGElementImpl::unsuspendRedraw(unsigned long /*suspend_handle_id*/ )
- throw ( DOMException )
-{
-}
-
-
-/**
- *
- */
-void SVGSVGElementImpl::unsuspendRedrawAll( )
-{
-}
-
-/**
- *
- */
-void SVGSVGElementImpl::forceRedraw( )
-{
-}
-
-/**
- *
- */
-void SVGSVGElementImpl::pauseAnimations( )
-{
-}
-
-/**
- *
- */
-void SVGSVGElementImpl::unpauseAnimations( )
-{
-}
-
-/**
- *
- */
-bool SVGSVGElementImpl::animationsPaused( )
-{
- return false;
-}
-
-
-/**
- *
- */
-NodeList SVGSVGElementImpl::getIntersectionList(const SVGRect &/*rect*/,
- const SVGElementPtr /*referenceElement*/ )
-{
- NodeList list;
- return list;
-}
-
-/**
- *
- */
-NodeList SVGSVGElementImpl::getEnclosureList(const SVGRect &/*rect*/,
- const SVGElementPtr /*referenceElement*/ )
-{
- NodeList list;
- return list;
-}
-
-/**
- *
- */
-bool SVGSVGElementImpl::checkIntersection(const SVGElementPtr /*element*/,
- const SVGRect &/*rect*/ )
-{
- return false;
-}
-
-/**
- *
- */
-bool SVGSVGElementImpl::checkEnclosure(const SVGElementPtr /*element*/,
- const SVGRect &/*rect*/ )
-{
- return false;
-}
-
-/**
- *
- */
-void SVGSVGElementImpl::deselectAll( )
-{
-}
-
-/**
- *
- */
-ElementPtr SVGSVGElementImpl::getElementById(const DOMString& /*elementId*/ )
-{
- return NULL;
-}
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-/*#########################################################################
-## SVGGElementImpl
-#########################################################################*/
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-/*#########################################################################
-## SVGDefsElementImpl
-#########################################################################*/
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-/*#########################################################################
-## SVGDescElementImpl
-#########################################################################*/
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-/*#########################################################################
-## SVGTitleElementImpl
-#########################################################################*/
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-/*#########################################################################
-## SVGSymbolElementImpl
-#########################################################################*/
-
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-/*#########################################################################
-## SVGUseElementImpl
-#########################################################################*/
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGImageElementImpl
-#########################################################################*/
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGSwitchElementImpl
-#########################################################################*/
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-/*#########################################################################
-## GetSVGDocumentImpl
-#########################################################################*/
-
-/**
- *
- */
-SVGDocumentPtr GetSVGDocumentImpl::getSVGDocument( )
- throw ( DOMException )
-{
- return NULL;
-}
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGStyleElementImpl
-#########################################################################*/
-
-
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-/*#########################################################################
-## SVGPathElementImpl
-#########################################################################*/
-
-/**
- *
- */
-SVGAnimatedNumber SVGPathElementImpl::getPathLength()
-{
- SVGAnimatedNumber ret;
- return ret;
-}
-
-/**
- *
- */
-double SVGPathElementImpl::getTotalLength( )
-{
- return 0.0;
-}
-
-/**
- *
- */
-SVGPoint SVGPathElementImpl::getPointAtLength(double /*distance*/ )
-{
- SVGPoint ret;
- return ret;
-}
-
-/**
- *
- */
-unsigned long SVGPathElementImpl::getPathSegAtLength(double /*distance*/ )
-{
- return 0L;
-}
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGRectElementImpl
-#########################################################################*/
-
-
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGCircleElementImpl
-#########################################################################*/
-
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGEllipseElementImpl
-#########################################################################*/
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGLineElementImpl
-#########################################################################*/
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGPolylineElementImpl
-#########################################################################*/
-
-
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-/*#########################################################################
-## SVGPolygonElementImpl
-#########################################################################*/
-
-
-
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGTextContentElementImpl
-#########################################################################*/
-
-/**
- *
- */
-SVGAnimatedLength SVGTextContentElementImpl::getTextLength()
-{
- SVGAnimatedLength ret;
- return ret;
-}
-
-
-/**
- *
- */
-SVGAnimatedEnumeration SVGTextContentElementImpl::getLengthAdjust()
-{
- SVGAnimatedEnumeration ret;
- return ret;
-}
-
-
-/**
- *
- */
-long SVGTextContentElementImpl::getNumberOfChars( )
-{
- return 0L;
-}
-
-/**
- *
- */
-double SVGTextContentElementImpl::getComputedTextLength( )
-{
- return 0.0;
-}
-
-/**
- *
- */
-double SVGTextContentElementImpl::getSubStringLength(unsigned long /*charnum*/, unsigned long /*nchars*/ )
- throw ( DOMException )
-{
- return 0.0;
-}
-
-/**
- *
- */
-SVGPoint SVGTextContentElementImpl::getStartPositionOfChar(unsigned long /*charnum*/ )
- throw ( DOMException )
-{
- SVGPoint ret;
- return ret;
-}
-
-/**
- *
- */
-SVGPoint SVGTextContentElementImpl::getEndPositionOfChar(unsigned long /*charnum*/ )
- throw ( DOMException )
-{
- SVGPoint ret;
- return ret;
-}
-
-/**
- *
- */
-SVGRect SVGTextContentElementImpl::getExtentOfChar(unsigned long /*charnum*/ )
- throw ( DOMException )
-{
- SVGRect ret;
- return ret;
-}
-
-/**
- *
- */
-double SVGTextContentElementImpl::getRotationOfChar(unsigned long /*charnum*/ )
- throw ( DOMException )
-{
- return 0.0;
-}
-
-/**
- *
- */
-long SVGTextContentElementImpl::getCharNumAtPosition(const SVGPoint &/*point*/ )
-{
- return 0L;
-}
-
-/**
- *
- */
-void SVGTextContentElementImpl::selectSubString(unsigned long /*charnum*/,
- unsigned long /*nchars*/ )
- throw ( DOMException )
-{
-}
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGTextPositioningElementImpl
-#########################################################################*/
-
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGTextElementImpl
-#########################################################################*/
-
-
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGTSpanElementImpl
-#########################################################################*/
-
-
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-/*#########################################################################
-## SVGTRefElementImpl
-#########################################################################*/
-
-
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGTextPathElementImpl
-#########################################################################*/
-
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGAltGlyphElementImpl
-#########################################################################*/
-
-
-
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGAltGlyphDefElementImpl
-#########################################################################*/
-
-
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGAltGlyphItemElementImpl
-#########################################################################*/
-
-
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGGlyphRefElementImpl
-#########################################################################*/
-
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGMarkerElementImpl
-#########################################################################*/
-
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGColorProfileElementImpl
-#########################################################################*/
-
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGGradientElementImpl
-#########################################################################*/
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGLinearGradientElementImpl
-#########################################################################*/
-
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGRadialGradientElementImpl
-#########################################################################*/
-
-
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGStopElementImpl
-#########################################################################*/
-
-
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGPatternElementImpl
-#########################################################################*/
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGClipPathElementImpl
-#########################################################################*/
-
-
-
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGMaskElementImpl
-#########################################################################*/
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGFilterElementImpl
-#########################################################################*/
-
-
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGFEBlendElementImpl
-#########################################################################*/
-
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGFEColorMatrixElementImpl
-#########################################################################*/
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGFEComponentTransferElementImpl
-#########################################################################*/
-
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGComponentTransferFunctionElementImpl
-#########################################################################*/
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGFEFuncRElementImpl
-#########################################################################*/
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGFEFuncGElementImpl
-#########################################################################*/
-
-
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGFEFuncBElementImpl
-#########################################################################*/
-
-
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGFEFuncAElementImpl
-#########################################################################*/
-
-
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGFECompositeElementImpl
-#########################################################################*/
-
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGFEConvolveMatrixElementImpl
-#########################################################################*/
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGFEDiffuseLightingElementImpl
-#########################################################################*/
-
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-/*#########################################################################
-## SVGFEDistantLightElementImpl
-#########################################################################*/
-
-
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGFEPointLightElementImpl
-#########################################################################*/
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGFESpotLightElementImpl
-#########################################################################*/
-
-
-
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGFEDisplacementMapElementImpl
-#########################################################################*/
-
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGFEFloodElementImpl
-#########################################################################*/
-
-
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGFEGaussianBlurElementImpl
-#########################################################################*/
-
-
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGFEImageElementImpl
-#########################################################################*/
-
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGFEMergeElementImpl
-#########################################################################*/
-
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGFEMergeNodeElementImpl
-#########################################################################*/
-
-
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGFEMorphologyElementImpl
-#########################################################################*/
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGFEOffsetElementImpl
-#########################################################################*/
-
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-/*#########################################################################
-## SVGFESpecularLightingElementImpl
-#########################################################################*/
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGFETileElementImpl
-#########################################################################*/
-
-
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGFETurbulenceElementImpl
-#########################################################################*/
-
-
-
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGCursorElementImpl
-#########################################################################*/
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGAElementImpl
-#########################################################################*/
-
-
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGViewElementImpl
-#########################################################################*/
-
-
-
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGScriptElementImpl
-#########################################################################*/
-
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGAnimationElementImpl
-#########################################################################*/
-
-
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGAnimateElementImpl
-#########################################################################*/
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGSetElementImpl
-#########################################################################*/
-
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGAnimateMotionElementImpl
-#########################################################################*/
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGMPathElementImpl
-#########################################################################*/
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGAnimateColorElementImpl
-#########################################################################*/
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGAnimateTransformElementImpl
-#########################################################################*/
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGFontElementImpl
-#########################################################################*/
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGGlyphElementImpl
-#########################################################################*/
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGMissingGlyphElementImpl
-#########################################################################*/
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGHKernElementImpl
-#########################################################################*/
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGVKernElementImpl
-#########################################################################*/
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGFontFaceElementImpl
-#########################################################################*/
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGFontFaceSrcElementImpl
-#########################################################################*/
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGFontFaceUriElementImpl
-#########################################################################*/
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-/*#########################################################################
-## SVGFontFaceFormatElementImpl
-#########################################################################*/
-
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-/*#########################################################################
-## SVGFontFaceNameElementImpl
-#########################################################################*/
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGDefinitionSrcElementImpl
-#########################################################################*/
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGMetadataElementImpl
-#########################################################################*/
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-/*#########################################################################
-## SVGForeignObjectElementImpl
-#########################################################################*/
-
-
-
-//##################
-//# Non-API methods
-//##################
-
-
-
-
-
-
-
-
-
-
-
-
-} //namespace svg
-} //namespace dom
-} //namespace w3c
-} //namespace org
-
-
-/*#########################################################################
-## E N D O F F I L E
-#########################################################################*/
-
diff --git a/src/dom/svgimpl.h b/src/dom/svgimpl.h
deleted file mode 100644
index 2ee5c8bc7..000000000
--- a/src/dom/svgimpl.h
+++ /dev/null
@@ -1,5543 +0,0 @@
-#ifndef SEEN_SVGIMPL_H
-#define SEEN_SVGIMPL_H
-
-/**
- * @file
- * Phoebe DOM Implementation.
- *
- * This is a C++ approximation of the W3C DOM model, which follows
- * fairly closely the specifications in the various .idl files, copies of
- * which are provided for reference. Most important is this one:
- *
- * http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/idl-definitions.html
- */
-/*
- * Authors:
- * Bob Jamison
- *
- * Copyright (C) 2006-2008 Bob Jamison
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-
-#include "svg.h"
-#include "dom/domimpl.h"
-#include "dom/smilimpl.h"
-
-#include <math.h>
-
-
-
-namespace org
-{
-namespace w3c
-{
-namespace dom
-{
-namespace svg
-{
-
-
-//local definitions
-typedef dom::DOMString DOMString;
-typedef dom::DOMException DOMException;
-typedef dom::Element Element;
-typedef dom::Document Document;
-typedef dom::NodeList NodeList;
-
-
-
-class SVGSVGElementImpl;
-typedef Ptr<SVGSVGElementImpl> SVGSVGElementImplPtr;
-class SVGElementImpl;
-typedef Ptr<SVGElementImpl> SVGElementImplPtr;
-class SVGDocumentImpl;
-typedef Ptr<SVGDocumentImpl> SVGDocumentImplPtr;
-
-/*#########################################################################
-## Types
-#########################################################################*/
-/**
- * Bitmasks for has_an interface for SVGElement
- */
-#define SVG_ANGLE 0x00000001
-#define SVG_ANIMATED_ANGLE 0x00000002
-#define SVG_ANIMATED_BOOLEAN 0x00000004
-#define SVG_ANIMATED_ENUMERATION 0x00000008
-#define SVG_ANIMATED_INTEGER 0x00000010
-#define SVG_ANIMATED_LENGTH 0x00000020
-#define SVG_ANIMATED_LENGTH_LIST 0x00000040
-#define SVG_ANIMATED_NUMBER 0x00000080
-#define SVG_ANIMATED_NUMBER_LIST 0x00000100
-#define SVG_ANIMATED_RECT 0x00000200
-#define SVG_ANIMATED_STRING 0x00000400
-#define SVG_COLOR 0x00000800
-#define SVG_CSS_RULE 0x00001000
-#define SVG_EXTERNAL_RESOURCES_REQUIRED 0x00002000
-#define SVG_FIT_TO_VIEWBOX 0x00004000
-#define SVG_ICCCOLOR 0x00008000
-#define SVG_LANG_SPACE 0x00010000
-#define SVG_LENGTH 0x00020000
-#define SVG_LENGTH_LIST 0x00040000
-#define SVG_LOCATABLE 0x00080000
-#define SVG_NUMBER 0x00100000
-#define SVG_NUMBER_LIST 0x00200000
-#define SVG_RECT 0x00400000
-#define SVG_RENDERING_INTENT 0x00800000
-#define SVG_STRING_LIST 0x01000000
-#define SVG_STYLABLE 0x02000000
-#define SVG_TESTS 0x04000000
-#define SVG_TRANSFORMABLE 0x08000000
-#define SVG_UNIT_TYPES 0x10000000
-#define SVG_URI_REFERENCE 0x20000000
-#define SVG_VIEW_SPEC 0x40000000
-#define SVG_ZOOM_AND_PAN 0x80000000
-
-/**
- * How many above? Quite handy
- */
-#define SVG_NR_INTERFACES 32
-
-
-/**
- * Enumerations for SVGElement types
- */
-typedef enum
-{
-/**
- * Defines a hyperlink
- */
-SVG_A_ELEMENT = 0,
-/**
- * Allows control over glyphs used to render particular character
- * data (e.g. for music symbols or Asian text)
- */
-SVG_ALTGLYPH_ELEMENT,
-/**
- * Defines a set of glyph substitutions (e.g. for music symbols or Asian text)
- */
-SVG_ALTGLYPHDEF_ELEMENT,
-/**
- * Defines a candidate set of glyph substitutions (e.g. for music symbols
- * or Asian text)
- */
-SVG_ALTGLYPHITEM_ELEMENT,
-/**
- * Animates an attribute or property over time
- */
-SVG_ANIMATE_ELEMENT,
-/**
- * Specifies a color transformation over time
- */
-SVG_ANIMATECOLOR_ELEMENT,
-/**
- * Causes an element to move along a motion path
- */
-SVG_ANIMATEMOTION_ELEMENT,
-/**
- * Animates a transformation attribute on an element
- */
-SVG_ANIMATETRANSFORM_ELEMENT,
-/**
- * Defines a circle
- */
-SVG_CIRCLE_ELEMENT,
-/**
- *
- */
-SVG_CLIPPATH_ELEMENT,
-/**
- * Specifies a color profile description
- */
-SVG_COLOR_PROFILE_ELEMENT,
-/**
- * Defines a platform-independent cursor
- */
-SVG_CURSOR_ELEMENT,
-/**
- * Defines a separate font definition resource
- */
-SVG_DEFINITION_SRC_ELEMENT,
-/**
- * A container for referenced elements
- */
-SVG_DEFS_ELEMENT,
-/**
- * A text-only description for elements in SVG - not displayed as part
- * of the graphics. User agents may display the text as a tooltip
- */
-SVG_DESC_ELEMENT,
-/**
- * Defines an ellipse
- */
-SVG_ELLIPSE_ELEMENT,
-/**
- * SVG filter. Composites two objects together using different blending modes
- */
-SVG_FEBLEND_ELEMENT,
-/**
- * SVG filter. Applies a matrix transformation
- */
-SVG_FECOLORMATRIX_ELEMENT,
-/**
- * SVG filter. Performs component-wise remapping of data
- */
-SVG_FECOMPONENTTRANSFER_ELEMENT,
-/**
- * SVG filter.
- */
-SVG_FECOMPOSITE_ELEMENT,
-/**
- * SVG filter.
- */
-SVG_FECONVOLVEMATRIX_ELEMENT,
-/**
- * SVG filter.
- */
-SVG_FEDIFFUSELIGHTING_ELEMENT,
-/**
- * SVG filter.
- */
-SVG_FEDISPLACEMENTMAP_ELEMENT,
-/**
- * SVG filter. Defines a light source
- */
-SVG_FEDISTANTLIGHT_ELEMENT,
-/**
- * SVG filter.
- */
-SVG_FEFLOOD_ELEMENT,
-/**
- * SVG filter. Sub-element to feComponentTransfer
- */
-SVG_FEFUNCA_ELEMENT,
-/**
- * SVG filter. Sub-element to feComponentTransfer
- */
-SVG_FEFUNCB_ELEMENT,
-/**
- * SVG filter. Sub-element to feComponentTransfer
- */
-SVG_FEFUNCG_ELEMENT,
-/**
- * SVG filter. Sub-element to feComponentTransfer
- */
-SVG_FEFUNCR_ELEMENT,
-/**
- * SVG filter. Performs a Gaussian blur on the image
- */
-SVG_FEGAUSSIANBLUR_ELEMENT,
-/**
- * SVG filter.
- */
-SVG_FEIMAGE_ELEMENT,
-/**
- * SVG filter. Creates image layers on top of each other
- */
-SVG_FEMERGE_ELEMENT,
-/**
- * SVG filter. Sub-element to feMerge
- */
-SVG_FEMERGENODE_ELEMENT,
-/**
- * SVG filter. Performs a "fattening" or "thinning" on a source graphic
- */
-SVG_FEMORPHOLOGY_ELEMENT,
-/**
- * SVG filter. Moves an image relative to its current position
- */
-SVG_FEOFFSET_ELEMENT,
-/**
- * SVG filter.
- */
-SVG_FEPOINTLIGHT_ELEMENT,
-/**
- * SVG filter.
- */
-SVG_FESPECULARLIGHTING_ELEMENT,
-/**
- * SVG filter.
- */
-SVG_FESPOTLIGHT_ELEMENT,
-/**
- * SVG filter.
- */
-SVG_FETILE_ELEMENT,
-/**
- * SVG filter.
- */
-SVG_FETURBULENCE_ELEMENT,
-/**
- * Container for filter effects
- */
-SVG_FILTER_ELEMENT,
-/**
- * Defines a font
- */
-SVG_FONT_ELEMENT,
-/**
- * Describes the characteristics of a font
- */
-SVG_FONT_FACE_ELEMENT,
-/**
- *
- */
-SVG_FONT_FACE_FORMAT_ELEMENT,
-/**
- *
- */
-SVG_FONT_FACE_NAME_ELEMENT,
-/**
- *
- */
-SVG_FONT_FACE_SRC_ELEMENT,
-/**
- *
- */
-SVG_FONT_FACE_URI_ELEMENT,
-/**
- *
- */
-SVG_FOREIGNOBJECT_ELEMENT,
-/**
- * A container element for grouping together related elements
- */
-SVG_G_ELEMENT,
-/**
- * Defines the graphics for a given glyph
- */
-SVG_GLYPH_ELEMENT,
-/**
- * Defines a possible glyph to use
- */
-SVG_GLYPHREF_ELEMENT,
-/**
- *
- */
-SVG_HKERN_ELEMENT,
-/**
- *
- */
-SVG_IMAGE_ELEMENT,
-/**
- * Defines a line
- */
-SVG_LINE_ELEMENT,
-/**
- * Defines a linear gradient
- */
-SVG_LINEARGRADIENT_ELEMENT,
-/**
- *
- */
-SVG_MARKER_ELEMENT,
-/**
- *
- */
-SVG_MASK_ELEMENT,
-/**
- * Specifies metadata
- */
-SVG_METADATA_ELEMENT,
-/**
- *
- */
-SVG_MISSING_GLYPH_ELEMENT,
-/**
- *
- */
-SVG_MPATH_ELEMENT,
-/**
- * Defines a path
- */
-SVG_PATH_ELEMENT,
-/**
- *
- */
-SVG_PATTERN_ELEMENT,
-/**
- * Defines a closed shape that consists of a set of connected straight lines
- */
-SVG_POLYGON_ELEMENT,
-/**
- * Defines a set of connected straight lines
- */
-SVG_POLYLINE_ELEMENT,
-/**
- * Defines a radial gradient
- */
-SVG_RADIALGRADIENT_ELEMENT,
-/**
- * Defines a rectangle
- */
-SVG_RECT_ELEMENT,
-/**
- * Container for scripts (e.g., ECMAScript)
- */
-SVG_SCRIPT_ELEMENT,
-/**
- * Sets the value of an attribute for a specified duration
- */
-SVG_SET_ELEMENT,
-/**
- *
- */
-SVG_STOP_ELEMENT,
-/**
- * Allows style sheets to be embedded directly within SVG content
- */
-SVG_STYLE_ELEMENT,
-/**
- * Defines an SVG document fragment
- */
-SVG_SVG_ELEMENT,
-/**
- *
- */
-SVG_SWITCH_ELEMENT,
-/**
- *
- */
-SVG_SYMBOL_ELEMENT,
-/**
- *
- */
-SVG_TEXT_ELEMENT,
-/**
- *
- */
-SVG_TEXTPATH_ELEMENT,
-/**
- * A text-only description for elements in SVG - not displayed as part of
- * the graphics. User agents may display the text as a tooltip
- */
-SVG_TITLE_ELEMENT,
-/**
- *
- */
-SVG_TREF_ELEMENT,
-/**
- *
- */
-SVG_TSPAN_ELEMENT,
-/**
- *
- */
-SVG_USE_ELEMENT,
-/**
- *
- */
-SVG_VIEW_ELEMENT,
-/**
- *
- */
-SVG_VKERN_ELEMENT,
-/**
- *
- */
-SVG_MAX_ELEMENT
-
-} SVGElementType;
-
-
-
-
-/**
- * Look up the SVG Element type enum for a given string
- * Return -1 if not found
- */
-int svgElementStrToEnum(const char *str);
-
-
-/**
- * Return the string corresponding to a given SVG element type enum
- * Return "unknown" if not found
- */
-const char *svgElementEnumToStr(int type);
-
-
-/*#########################################################################
-## SVGDocumentImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGDocumentImpl : virtual public SVGDocument, public DocumentImpl
-{
-public:
-
-
- /**
- *
- */
- virtual DOMString getTitle()
- { return title; }
-
- /**
- *
- */
- virtual DOMString getReferrer()
- { return referrer; }
-
- /**
- *
- */
- virtual DOMString getDomain()
- { return domain; }
-
- /**
- *
- */
- virtual DOMString getURL()
- { return url; }
-
- /**
- *
- */
- virtual SVGSVGElementPtr getRootElement()
- { return rootElement; }
-
-
- //####################################################
- //# Overload some createXXX() methods from DocumentImpl,
- //# To create our SVG-DOM types (in .cpp)
- //####################################################
-
- /**
- *
- */
- virtual ElementPtr createElement(const DOMString& tagName)
- throw(DOMException);
-
-
- /**
- *
- */
- virtual ElementPtr createElementNS(const DOMString& namespaceURI,
- const DOMString& qualifiedName)
- throw(DOMException);
-
- //##################
- //# Non-API methods
- //##################
-
- SVGDocumentImpl(const DOMImplementation *domImpl,
- const DOMString &namespaceURI,
- const DOMString &qualifiedName,
- const DocumentTypePtr doctype)
- : DocumentImpl(domImpl, namespaceURI,
- qualifiedName, doctype)
- {
- init();
- }
-
-
- /**
- *
- */
- virtual ~SVGDocumentImpl()
- {
- }
-
-protected:
-
-friend class SvgParser;
-
- void init();
-
- DOMString title;
- DOMString referrer;
- DOMString domain;
- DOMString url;
- SVGSVGElementImplPtr rootElement;
-};
-
-
-
-/*#########################################################################
-## SVGElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGElementImpl : virtual public SVGElement,
- public ElementImpl
-{
-public:
-
- /**
- *
- */
- virtual DOMString getId()
- { return id; }
-
- /**
- *
- */
- virtual void setId(const DOMString &val)
- throw (DOMException)
- { id = val; }
-
- /**
- *
- */
- virtual DOMString getXmlBase()
- { return xmlBase; }
-
- /**
- *
- */
- virtual void setXmlBase(const DOMString &val)
- throw (DOMException)
- { xmlBase = val; }
-
- /**
- *
- */
- virtual SVGSVGElementPtr getOwnerSVGElement()
- { return ownerSvgElement; }
-
- /**
- *
- */
- virtual SVGElementPtr getViewportElement()
- { return viewportElement; }
-
-
- //##################
- //# Non-API methods
- //##################
-
-
- /**
- *
- */
- SVGElementImpl()
- {}
-
- /**
- *
- */
- SVGElementImpl(SVGDocumentImplPtr owner, const DOMString &tagName)
- : ElementImpl(owner, tagName)
- { init(); }
-
- /**
- *
- */
- SVGElementImpl(SVGDocumentImplPtr owner,
- const DOMString &namespaceURI,
- const DOMString &tagName)
- : ElementImpl(owner, namespaceURI, tagName)
- { init(); }
-
-
- /**
- *
- */
- virtual ~SVGElementImpl()
- {}
-
-protected:
-
- void init()
- {
- id = "";
- xmlBase = "";
- ownerSvgElement = NULL;
- viewportElement = NULL;
- }
-
- DOMString id;
- DOMString xmlBase;
- SVGSVGElementPtr ownerSvgElement;
- SVGElementPtr viewportElement;
-
-};
-
-
-
-/*#########################################################################
-## SVGSVGElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGSVGElementImpl : virtual public SVGSVGElement,
- public SVGElementImpl
-{
-public:
-
- /**
- * Retrieves an attribute value by name.
- */
- virtual DOMString getAttribute(const DOMString& name);
-
- /**
- * Sets an attribute value
- */
- virtual void setAttribute(const DOMString& name,
- const DOMString& value)
- throw(DOMException);
-
- /**
- *
- */
- virtual SVGAnimatedLength getX()
- { return x; }
-
- /**
- *
- */
- virtual SVGAnimatedLength getY()
- { return y; }
-
- /**
- *
- */
- virtual SVGAnimatedLength getWidth()
- { return width; }
-
- /**
- *
- */
- virtual SVGAnimatedLength getHeight()
- { return height; }
-
- /**
- *
- */
- virtual DOMString getContentScriptType()
- { return contentScriptType; }
-
- /**
- *
- */
- virtual void setContentScriptType(const DOMString &val)
- throw (DOMException)
- { contentScriptType = val; }
-
-
- /**
- *
- */
- virtual DOMString getContentStyleType()
- { return contentStyleType; }
-
- /**
- *
- */
- virtual void setContentStyleType(const DOMString &val)
- throw (DOMException)
- { contentStyleType = val; }
-
- /**
- *
- */
- virtual SVGRect getViewport()
- { return viewport; }
-
- /**
- *
- */
- virtual double getPixelUnitToMillimeterX()
- { return pixelUnitToMillimeterX; }
-
- /**
- *
- */
- virtual double getPixelUnitToMillimeterY()
- { return pixelUnitToMillimeterY; }
-
- /**
- *
- */
- virtual double getScreenPixelToMillimeterX()
- { return screenPixelToMillimeterX; }
-
- /**
- *
- */
- virtual double getScreenPixelToMillimeterY()
- { return screenPixelToMillimeterY; }
-
-
- /**
- *
- */
- virtual bool getUseCurrentView()
- { return useCurrentView; }
-
- /**
- *
- */
- virtual void setUseCurrentView(bool val) throw (DOMException)
- { useCurrentView = val; }
-
- /**
- *
- */
- virtual SVGViewSpec getCurrentView()
- { return currentView; }
-
-
- /**
- *
- */
- virtual double getCurrentScale()
- { return currentScale; }
-
- /**
- *
- */
- virtual void setCurrentScale(double val) throw (DOMException)
- { currentScale = val; }
-
-
- /**
- *
- */
- virtual SVGPoint getCurrentTranslate()
- { return currentTranslate; }
-
-
- /**
- *
- */
- virtual unsigned long suspendRedraw (unsigned long max_wait_milliseconds );
-
- /**
- *
- */
- virtual void unsuspendRedraw (unsigned long suspend_handle_id )
- throw( DOMException );
-
- /**
- *
- */
- virtual void unsuspendRedrawAll ( );
-
- /**
- *
- */
- virtual void forceRedraw ( );
-
- /**
- *
- */
- virtual void pauseAnimations ( );
-
- /**
- *
- */
- virtual void unpauseAnimations ( );
-
- /**
- *
- */
- virtual bool animationsPaused ( );
-
- /**
- *
- */
- virtual double getCurrentTime ( )
- { return currentTime; }
-
- /**
- *
- */
- virtual void setCurrentTime (double seconds )
- { currentTime = seconds; }
-
- /**
- *
- */
- virtual NodeList getIntersectionList (const SVGRect &rect,
- const SVGElementPtr referenceElement );
-
- /**
- *
- */
- virtual NodeList getEnclosureList (const SVGRect &rect,
- const SVGElementPtr referenceElement );
-
- /**
- *
- */
- virtual bool checkIntersection (const SVGElementPtr element, const SVGRect &rect );
-
- /**
- *
- */
- virtual bool checkEnclosure (const SVGElementPtr element, const SVGRect &rect );
-
- /**
- *
- */
- virtual void deselectAll ( );
-
- /**
- *
- */
- virtual SVGNumber createSVGNumber ( )
- {
- SVGNumber ret;
- return ret;
- }
-
- /**
- *
- */
- virtual SVGLength createSVGLength ( )
- {
- SVGLength ret;
- return ret;
- }
-
- /**
- *
- */
- virtual SVGAngle createSVGAngle ( )
- {
- SVGAngle ret;
- return ret;
- }
-
- /**
- *
- */
- virtual SVGPoint createSVGPoint ( )
- {
- SVGPoint ret;
- return ret;
- }
-
- /**
- *
- */
- virtual SVGMatrix createSVGMatrix ( )
- {
- SVGMatrix ret;
- return ret;
- }
-
- /**
- *
- */
- virtual SVGRect createSVGRect ( )
- {
- SVGRect ret;
- return ret;
- }
-
- /**
- *
- */
- virtual SVGTransform createSVGTransform ( )
- {
- SVGTransform ret;
- return ret;
- }
-
- /**
- *
- */
- virtual SVGTransform createSVGTransformFromMatrix(const SVGMatrix &matrix )
- {
- SVGTransform ret;
- ret.setMatrix(matrix);
- return ret;
- }
-
-
- /**
- *
- */
- virtual ElementPtr getElementById (const DOMString& elementId );
-
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- SVGSVGElementImpl() : SVGElementImpl(),
- pixelUnitToMillimeterX(0),
- pixelUnitToMillimeterY(0),
- screenPixelToMillimeterX(0),
- screenPixelToMillimeterY(0),
- useCurrentView(false),
- currentScale(0),
- currentTime(0)
- {}
-
-
-
- /**
- *
- */
- virtual ~SVGSVGElementImpl() {}
-
-protected:
-
- SVGAnimatedLength x;
- SVGAnimatedLength y;
- SVGAnimatedLength width;
- SVGAnimatedLength height;
- DOMString contentScriptType;
- DOMString contentStyleType;
- SVGRect viewport;
- double pixelUnitToMillimeterX;
- double pixelUnitToMillimeterY;
- double screenPixelToMillimeterX;
- double screenPixelToMillimeterY;
- bool useCurrentView;
- SVGViewSpec currentView;
- double currentScale;
- SVGPoint currentTranslate;
-
- double currentTime;
-
-};
-
-
-
-/*#########################################################################
-## SVGGElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGGElementImpl : virtual public SVGGElement, public SVGElementImpl
-{
-public:
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- SVGGElementImpl() {}
-
- /**
- *
- */
- virtual ~SVGGElementImpl() {}
-
-protected:
-
-
-};
-
-
-
-
-/*#########################################################################
-## SVGDefsElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGDefsElementImpl : virtual public SVGDefsElement,
- public SVGElementImpl
-{
-public:
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- SVGDefsElementImpl() {}
-
- /**
- *
- */
- virtual ~SVGDefsElementImpl() {}
-
-protected:
-
-
-};
-
-
-
-
-
-/*#########################################################################
-## SVGDescElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGDescElementImpl : virtual public SVGDescElement,
- public SVGElementImpl
-{
-public:
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- SVGDescElementImpl() {}
-
- /**
- *
- */
- virtual ~SVGDescElementImpl() {}
-
-protected:
-
-
-};
-
-
-
-
-
-/*#########################################################################
-## SVGTitleElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGTitleElementImpl : virtual public SVGTitleElement,
- public SVGElementImpl
-{
-public:
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- SVGTitleElementImpl() {}
-
- /**
- *
- */
- virtual ~SVGTitleElementImpl() {}
-
-protected:
-
-
-};
-
-
-
-
-
-/*#########################################################################
-## SVGSymbolElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGSymbolElementImpl : virtual public SVGSymbolElement,
- public SVGElementImpl
-{
-public:
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- SVGSymbolElementImpl() {}
-
- /**
- *
- */
- virtual ~SVGSymbolElementImpl() {}
-
-protected:
-
-
-};
-
-
-
-
-
-/*#########################################################################
-## SVGUseElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGUseElementImpl : public SVGElementImpl
-{
-public:
-
-
- /**
- *
- */
- virtual SVGAnimatedLength getX()
- { return x; }
-
- /**
- *
- */
- virtual SVGAnimatedLength getY()
- { return y; }
-
- /**
- *
- */
- virtual SVGAnimatedLength getWidth()
- { return width; }
-
- /**
- *
- */
- virtual SVGAnimatedLength getHeight()
- { return height; }
-
- /**
- *
- */
- virtual SVGElementInstance getInstanceRoot()
- { return instanceRoot; }
-
- /**
- *
- */
- virtual SVGElementInstance getAnimatedInstanceRoot()
- { return animatedInstanceRoot; }
-
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- SVGUseElementImpl() {}
-
- /**
- *
- */
- virtual ~SVGUseElementImpl() {}
-
-protected:
-
- SVGAnimatedLength x;
- SVGAnimatedLength y;
- SVGAnimatedLength width;
- SVGAnimatedLength height;
- SVGElementInstance instanceRoot;
- SVGElementInstance animatedInstanceRoot;
-};
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGImageElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGImageElementImpl : virtual public SVGImageElement,
- public SVGElementImpl
-{
-public:
-
-
- /**
- *
- */
- virtual SVGAnimatedLength getX()
- { return x; }
-
- /**
- *
- */
- virtual SVGAnimatedLength getY()
- { return y; }
-
- /**
- *
- */
- virtual SVGAnimatedLength getWidth()
- { return width; }
-
- /**
- *
- */
- virtual SVGAnimatedLength getHeight()
- { return height; }
-
-
- /**
- *
- */
- virtual SVGAnimatedPreserveAspectRatio getPreserveAspectRatio()
- { return preserveAspectRatio; }
-
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- SVGImageElementImpl() {}
-
- /**
- *
- */
- virtual ~SVGImageElementImpl() {}
-
-protected:
-
- SVGAnimatedLength x;
- SVGAnimatedLength y;
- SVGAnimatedLength width;
- SVGAnimatedLength height;
- SVGAnimatedPreserveAspectRatio preserveAspectRatio;
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGSwitchElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGSwitchElementImpl : virtual public SVGSwitchElement,
- public SVGElementImpl
-{
-public:
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- SVGSwitchElementImpl() {}
-
- /**
- *
- */
- virtual ~SVGSwitchElementImpl() {}
-
-protected:
-
-
-};
-
-
-
-
-
-/*#########################################################################
-## GetSVGDocumentImpl
-#########################################################################*/
-
-/**
- *
- */
-class GetSVGDocumentImpl : public virtual GetSVGDocument
-{
-public:
-
- /**
- *
- */
- virtual SVGDocumentPtr getSVGDocument ( )
- throw( DOMException );
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- GetSVGDocumentImpl() {}
-
- /**
- *
- */
- virtual ~GetSVGDocumentImpl() {}
-
-protected:
-
-
-};
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGStyleElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGStyleElementImpl : virtual public SVGStyleElement,
- public SVGElementImpl
-{
-public:
-
- /**
- *
- */
- virtual DOMString getXmlspace()
- { return xmlSpace; }
-
- /**
- *
- */
- virtual void setXmlspace(const DOMString &val)
- throw (DOMException)
- { xmlSpace = val; }
-
- /**
- *
- */
- virtual DOMString getType()
- { return type; }
-
- /**
- *
- */
- virtual void setType(const DOMString &val)
- throw (DOMException)
- { type = val; }
-
- /**
- *
- */
- virtual DOMString getMedia()
- { return media; }
-
- /**
- *
- */
- virtual void setMedia(const DOMString &val)
- throw (DOMException)
- { media = val; }
-
- /**
- *
- */
- virtual DOMString getTitle()
- { return title; }
-
- /**
- *
- */
- virtual void setTitle(const DOMString &val)
- throw (DOMException)
- { title = val; }
-
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- SVGStyleElementImpl() {}
-
- /**
- *
- */
- virtual ~SVGStyleElementImpl() {}
-
-protected:
-
- DOMString xmlSpace;
- DOMString type;
- DOMString media;
- DOMString title;
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGPathElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGPathElementImpl : virtual public SVGPathElement,
- public SVGElementImpl
-{
-public:
-
- /**
- *
- */
- virtual SVGAnimatedNumber getPathLength();
-
- /**
- *
- */
- virtual double getTotalLength ( );
-
- /**
- *
- */
- virtual SVGPoint getPointAtLength (double distance );
-
- /**
- *
- */
- virtual unsigned long getPathSegAtLength (double distance );
-
- /**
- *
- */
- virtual SVGPathSegClosePath
- createSVGPathSegClosePath ( )
- {
- SVGPathSegClosePath ret;
- return ret;
- }
-
- /**
- *
- */
- virtual SVGPathSegMovetoAbs
- createSVGPathSegMovetoAbs (double x, double y )
- {
- SVGPathSegMovetoAbs ret(x, y);
- return ret;
- }
-
- /**
- *
- */
- virtual SVGPathSegMovetoRel
- createSVGPathSegMovetoRel (double x, double y )
- {
- SVGPathSegMovetoRel ret(x, y);
- return ret;
- }
-
- /**
- *
- */
- virtual SVGPathSegLinetoAbs
- createSVGPathSegLinetoAbs (double x, double y )
- {
- SVGPathSegLinetoAbs ret(x, y);
- return ret;
- }
-
- /**
- *
- */
- virtual SVGPathSegLinetoRel
- createSVGPathSegLinetoRel (double x, double y )
- {
- SVGPathSegLinetoRel ret(x, y);
- return ret;
- }
-
- /**
- *
- */
- virtual SVGPathSegCurvetoCubicAbs
- createSVGPathSegCurvetoCubicAbs (double x, double y,
- double x1, double y1, double x2, double y2 )
- {
- SVGPathSegCurvetoCubicAbs ret(x, y, x1, y1, x2, y2);
- return ret;
- }
-
- /**
- *
- */
- virtual SVGPathSegCurvetoCubicRel
- createSVGPathSegCurvetoCubicRel (double x, double y,
- double x1, double y1, double x2, double y2 )
- {
- SVGPathSegCurvetoCubicRel ret(x, y, x1, y1, x2, y2);
- return ret;
- }
-
- /**
- *
- */
- virtual SVGPathSegCurvetoQuadraticAbs
- createSVGPathSegCurvetoQuadraticAbs (double x, double y,
- double x1, double y1 )
- {
- SVGPathSegCurvetoQuadraticAbs ret(x, y, x1, y1);
- return ret;
- }
-
- /**
- *
- */
- virtual SVGPathSegCurvetoQuadraticRel
- createSVGPathSegCurvetoQuadraticRel (double x, double y,
- double x1, double y1 )
- {
- SVGPathSegCurvetoQuadraticRel ret(x, y, x1, y1);
- return ret;
- }
-
- /**
- *
- */
- virtual SVGPathSegArcAbs
- createSVGPathSegArcAbs (double x, double y,
- double r1, double r2, double angle,
- bool largeArcFlag, bool sweepFlag )
- {
- SVGPathSegArcAbs ret(x, y, r1, r2, angle, largeArcFlag, sweepFlag);
- return ret;
- }
-
- /**
- *
- */
- virtual SVGPathSegArcRel
- createSVGPathSegArcRel (double x, double y, double r1,
- double r2, double angle, bool largeArcFlag,
- bool sweepFlag )
- {
- SVGPathSegArcRel ret(x, y, r1, r2, angle, largeArcFlag, sweepFlag);
- return ret;
- }
-
- /**
- *
- */
- virtual SVGPathSegLinetoHorizontalAbs
- createSVGPathSegLinetoHorizontalAbs (double x )
- {
- SVGPathSegLinetoHorizontalAbs ret(x);
- return ret;
- }
-
- /**
- *
- */
- virtual SVGPathSegLinetoHorizontalRel
- createSVGPathSegLinetoHorizontalRel (double x )
- {
- SVGPathSegLinetoHorizontalRel ret(x);
- return ret;
- }
-
- /**
- *
- */
- virtual SVGPathSegLinetoVerticalAbs
- createSVGPathSegLinetoVerticalAbs (double y )
- {
- SVGPathSegLinetoVerticalAbs ret(y);
- return ret;
- }
-
- /**
- *
- */
- virtual SVGPathSegLinetoVerticalRel
- createSVGPathSegLinetoVerticalRel (double y )
- {
- SVGPathSegLinetoVerticalRel ret(y);
- return ret;
- }
-
- /**
- *
- */
- virtual SVGPathSegCurvetoCubicSmoothAbs
- createSVGPathSegCurvetoCubicSmoothAbs (double x, double y,
- double x2, double y2 )
- {
- SVGPathSegCurvetoCubicSmoothAbs ret(x, y, x2, y2);
- return ret;
- }
-
- /**
- *
- */
- virtual SVGPathSegCurvetoCubicSmoothRel
- createSVGPathSegCurvetoCubicSmoothRel (double x, double y,
- double x2, double y2 )
- {
- SVGPathSegCurvetoCubicSmoothRel ret(x, y, x2, y2);
- return ret;
- }
-
- /**
- *
- */
- virtual SVGPathSegCurvetoQuadraticSmoothAbs
- createSVGPathSegCurvetoQuadraticSmoothAbs (double x, double y )
- {
- SVGPathSegCurvetoQuadraticSmoothAbs ret(x, y);
- return ret;
- }
-
- /**
- *
- */
- virtual SVGPathSegCurvetoQuadraticSmoothRel
- createSVGPathSegCurvetoQuadraticSmoothRel (double x, double y )
- {
- SVGPathSegCurvetoQuadraticSmoothRel ret(x, y);
- return ret;
- }
-
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- SVGPathElementImpl() {}
-
-
- /**
- *
- */
- virtual ~SVGPathElementImpl() {}
-
-protected:
-
-
-};
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGRectElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGRectElementImpl : virtual public SVGRectElement,
- public SVGElementImpl
-{
-public:
-
- /**
- *
- */
- virtual SVGAnimatedLength getX()
- { return x; }
-
- /**
- *
- */
- virtual SVGAnimatedLength getY()
- { return y; }
-
- /**
- *
- */
- virtual SVGAnimatedLength getWidth()
- { return width; }
-
- /**
- *
- */
- virtual SVGAnimatedLength getHeight()
- { return height; }
-
-
- /**
- *
- */
- virtual SVGAnimatedLength getRx()
- { return rx; }
-
- /**
- *
- */
- virtual SVGAnimatedLength getRy()
- { return ry; }
-
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- SVGRectElementImpl() {}
-
- /**
- *
- */
- virtual ~SVGRectElementImpl() {}
-
-protected:
-
- SVGAnimatedLength x;
- SVGAnimatedLength y;
- SVGAnimatedLength width;
- SVGAnimatedLength height;
- SVGAnimatedLength rx;
- SVGAnimatedLength ry;
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGCircleElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGCircleElementImpl : virtual public SVGCircleElement,
- public SVGElementImpl
-{
-public:
-
- /**
- *
- */
- virtual SVGAnimatedLength getCx()
- { return cx; }
-
- /**
- *
- */
- virtual SVGAnimatedLength getCy()
- { return cy; }
-
- /**
- *
- */
- virtual SVGAnimatedLength getR()
- { return r; }
-
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- SVGCircleElementImpl() {}
-
- /**
- *
- */
- virtual ~SVGCircleElementImpl() {}
-
-protected:
-
- SVGAnimatedLength cx;
- SVGAnimatedLength cy;
- SVGAnimatedLength r;
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGEllipseElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGEllipseElementImpl : virtual public SVGEllipseElement,
- public SVGElementImpl
-{
-public:
-
- /**
- *
- */
- virtual SVGAnimatedLength getCx()
- { return cx; }
-
- /**
- *
- */
- virtual SVGAnimatedLength getCy()
- { return cy; }
-
- /**
- *
- */
- virtual SVGAnimatedLength getRx()
- { return rx; }
-
- /**
- *
- */
- virtual SVGAnimatedLength getRy()
- { return ry; }
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- SVGEllipseElementImpl() {}
-
- /**
- *
- */
- virtual ~SVGEllipseElementImpl() {}
-
-protected:
-
- SVGAnimatedLength cx;
- SVGAnimatedLength cy;
- SVGAnimatedLength rx;
- SVGAnimatedLength ry;
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGLineElement
-#########################################################################*/
-
-/**
- *
- */
-class SVGLineElementImpl : virtual public SVGLineElement,
- public SVGElementImpl
-{
-public:
-
- /**
- *
- */
- virtual SVGAnimatedLength getX1()
- { return x1; }
-
- /**
- *
- */
- virtual SVGAnimatedLength getY1()
- { return y1; }
-
- /**
- *
- */
- virtual SVGAnimatedLength getX2()
- { return x2; }
-
- /**
- *
- */
- virtual SVGAnimatedLength getY2()
- { return y2; }
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGLineElementImpl() {}
-
-protected:
-
- SVGAnimatedLength x1;
- SVGAnimatedLength x2;
- SVGAnimatedLength y1;
- SVGAnimatedLength y2;
-};
-
-
-
-
-/*#########################################################################
-## SVGPolylineElement
-#########################################################################*/
-
-/**
- *
- */
-class SVGPolylineElementImpl : virtual public SVGPolylineElement,
- public SVGElementImpl
-{
-public:
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGPolylineElementImpl() {}
-
-protected:
-
-
-};
-
-
-
-
-
-/*#########################################################################
-## SVGPolygonElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGPolygonElementImpl : virtual public SVGPolygonElement,
- public SVGElementImpl
-{
-public:
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGPolygonElementImpl() {}
-
-protected:
-
-
-};
-
-
-
-
-
-/*#########################################################################
-## SVGTextContentElement
-#########################################################################*/
-
-/**
- *
- */
-class SVGTextContentElementImpl : virtual public SVGTextContentElement,
- public SVGElementImpl
-{
-public:
-
- /**
- *
- */
- virtual SVGAnimatedLength getTextLength();
-
-
- /**
- *
- */
- virtual SVGAnimatedEnumeration getLengthAdjust();
-
-
- /**
- *
- */
- virtual long getNumberOfChars( );
-
- /**
- *
- */
- virtual double getComputedTextLength( );
-
- /**
- *
- */
- virtual double getSubStringLength(unsigned long charnum,
- unsigned long nchars )
- throw( DOMException );
-
- /**
- *
- */
- virtual SVGPoint getStartPositionOfChar(unsigned long charnum )
- throw( DOMException );
-
- /**
- *
- */
- virtual SVGPoint getEndPositionOfChar(unsigned long charnum )
- throw( DOMException );
-
- /**
- *
- */
- virtual SVGRect getExtentOfChar(unsigned long charnum )
- throw( DOMException );
-
- /**
- *
- */
- virtual double getRotationOfChar(unsigned long charnum )
- throw( DOMException );
-
- /**
- *
- */
- virtual long getCharNumAtPosition(const SVGPoint &point );
-
- /**
- *
- */
- virtual void selectSubString(unsigned long charnum, unsigned long nchars )
- throw( DOMException );
-
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGTextContentElementImpl() {}
-
-protected:
-
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGTextPositioningElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGTextPositioningElementImpl : virtual public SVGTextPositioningElement,
- public SVGTextContentElementImpl
-{
-public:
-
-
-
- /**
- *
- */
- virtual SVGAnimatedLength getX()
- { return x; }
-
- /**
- *
- */
- virtual SVGAnimatedLength getY()
- { return y; }
-
- /**
- *
- */
- virtual SVGAnimatedLength getDx()
- { return dx; }
-
- /**
- *
- */
- virtual SVGAnimatedLength getDy()
- { return dy; }
-
-
- /**
- *
- */
- virtual SVGAnimatedNumberList getRotate()
- { return rotate; }
-
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGTextPositioningElementImpl() {}
-
-protected:
-
- SVGAnimatedLength x;
- SVGAnimatedLength y;
- SVGAnimatedLength dx;
- SVGAnimatedLength dy;
- SVGAnimatedNumberList rotate;
-
-};
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGTextElement
-#########################################################################*/
-
-/**
- *
- */
-class SVGTextElementImpl : virtual public SVGTextElement,
- public SVGTextPositioningElementImpl
-{
-public:
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGTextElementImpl() {}
-
-protected:
-
-
-};
-
-
-
-
-
-/*#########################################################################
-## SVGTSpanElement
-#########################################################################*/
-
-/**
- *
- */
-class SVGTSpanElementImpl : virtual public SVGTSpanElement,
- public SVGTextPositioningElementImpl
-{
-public:
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGTSpanElementImpl() {}
-
-protected:
-
-
-};
-
-
-
-
-
-/*#########################################################################
-## SVGTRefElement
-#########################################################################*/
-
-/**
- *
- */
-class SVGTRefElementImpl : virtual public SVGTRefElement,
- public SVGTextPositioningElementImpl
-{
-public:
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGTRefElementImpl() {}
-
-protected:
-
-
-};
-
-
-
-
-
-/*#########################################################################
-## SVGTextPathElement
-#########################################################################*/
-
-/**
- *
- */
-class SVGTextPathElementImpl : virtual public SVGTextPathElement,
- public SVGTextContentElementImpl
-{
-public:
-
- /**
- *
- */
- virtual SVGAnimatedLength getStartOffset()
- { return startOffset; }
-
- /**
- *
- */
- virtual SVGAnimatedEnumeration getMethod()
- { return method; }
-
- /**
- *
- */
- virtual SVGAnimatedEnumeration getSpacing()
- { return spacing; }
-
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGTextPathElementImpl() {}
-
-protected:
-
- SVGAnimatedLength startOffset;
- SVGAnimatedEnumeration method;
- SVGAnimatedEnumeration spacing;
-};
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGAltGlyphElement
-#########################################################################*/
-
-/**
- *
- */
-class SVGAltGlyphElementImpl : virtual public SVGAltGlyphElement,
- public SVGTextPositioningElementImpl
-{
-public:
-
- /**
- *
- */
- virtual DOMString getGlyphRef()
- { return glyphRef; }
-
- /**
- *
- */
- virtual void setGlyphRef(const DOMString &val)
- throw (DOMException)
- { glyphRef = val; }
-
- /**
- *
- */
- virtual DOMString getFormat()
- { return format; }
-
- /**
- *
- */
- virtual void setFormat(const DOMString &val)
- throw (DOMException)
- { format = val; }
-
-
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGAltGlyphElementImpl() {}
-
-protected:
-
- DOMString glyphRef;
- DOMString format;
-
-};
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGAltGlyphDefElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGAltGlyphDefElementImpl : virtual public SVGAltGlyphDefElement,
- public SVGElementImpl
-{
-public:
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGAltGlyphDefElementImpl() {}
-
-protected:
-
-
-};
-
-
-
-
-
-/*#########################################################################
-## SVGAltGlyphItemElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGAltGlyphItemElementImpl : virtual public SVGAltGlyphItemElement,
- public SVGElementImpl
-{
-public:
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGAltGlyphItemElementImpl() {}
-
-protected:
-
-
-};
-
-
-
-
-
-/*#########################################################################
-## SVGGlyphRefElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGGlyphRefElementImpl : virtual public SVGGlyphRefElement,
- public SVGElementImpl
-{
-public:
- /**
- *
- */
- virtual DOMString getGlyphRef()
- { return glyphRef; }
-
- /**
- *
- */
- virtual void setGlyphRef(const DOMString &val) throw (DOMException)
- { glyphRef = val; }
-
- /**
- *
- */
- virtual DOMString getFormat()
- { return format; }
-
- /**
- *
- */
- virtual void setFormat(const DOMString &val) throw (DOMException)
- { format = val; }
-
- /**
- *
- */
- virtual double getX()
- { return x; }
-
- /**
- *
- */
- virtual void setX(double val) throw (DOMException)
- { x = val; }
-
- /**
- *
- */
- virtual double getY()
- { return y; }
-
- /**
- *
- */
- virtual void setY(double val) throw (DOMException)
- { y = val; }
-
- /**
- *
- */
- virtual double getDx()
- { return dx; }
-
- /**
- *
- */
- virtual void setDx(double val) throw (DOMException)
- { dx = val; }
-
- /**
- *
- */
- virtual double getDy()
- { return dy; }
-
- /**
- *
- */
- virtual void setDy(double val) throw (DOMException)
- { dy = val; }
-
-
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGGlyphRefElementImpl() {}
-
-protected:
-
- DOMString glyphRef;
- DOMString format;
- double x, y, dx, dy;
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGMarkerElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGMarkerElementImpl : virtual public SVGMarkerElement,
- public SVGElementImpl
-{
-public:
-
- /**
- *
- */
- virtual SVGAnimatedLength getRefX()
- { return refX; }
-
- /**
- *
- */
- virtual SVGAnimatedLength getRefY()
- { return refY; }
-
- /**
- *
- */
- virtual SVGAnimatedEnumeration getMarkerUnits()
- { return markerUnits; }
-
- /**
- *
- */
- virtual SVGAnimatedLength getMarkerWidth()
- { return markerWidth; }
-
- /**
- *
- */
- virtual SVGAnimatedLength getMarkerHeight()
- { return markerHeight; }
-
- /**
- *
- */
- virtual SVGAnimatedEnumeration getOrientType()
- { return orientType; }
-
- /**
- *
- */
- virtual SVGAnimatedAngle getOrientAngle()
- { return orientAngle; }
-
-
- /**
- *
- */
- virtual void setOrientToAuto ( )
- { orientAuto = true; }
-
- /**
- *
- */
- virtual void setOrientToAngle (const SVGAngle &angle)
- {
- orientAuto = false;
- orientAngle = SVGAnimatedAngle(angle);
- }
-
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGMarkerElementImpl() {}
-
-protected:
-
- SVGAnimatedLength refX;
- SVGAnimatedLength refY;
- SVGAnimatedEnumeration markerUnits;
- SVGAnimatedLength markerWidth;
- SVGAnimatedLength markerHeight;
- SVGAnimatedEnumeration orientType;
- SVGAnimatedAngle orientAngle;
- bool orientAuto;
-
-
-};
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGColorProfileElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGColorProfileElementImpl : virtual public SVGColorProfileElement,
- public SVGElementImpl
-{
-public:
- /**
- *
- */
- virtual DOMString getLocal()
- { return local; }
-
- /**
- *
- */
- virtual void setLocal(const DOMString &val) throw (DOMException)
- { local = val; }
-
- /**
- *
- */
- virtual DOMString getName()
- { return name; }
-
- /**
- *
- */
- virtual void setName(const DOMString &val) throw (DOMException)
- { name = val; }
-
- /**
- *
- */
- virtual unsigned short getRenderingIntent()
- { return renderingIntent; }
-
- /**
- *
- */
- virtual void setRenderingIntent(unsigned short val) throw (DOMException)
- { renderingIntent = val; }
-
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGColorProfileElementImpl() {}
-
-protected:
-
- DOMString local;
- DOMString name;
- unsigned short renderingIntent;
-
-};
-
-
-
-
-
-/*#########################################################################
-## SVGGradientElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGGradientElementImpl : virtual public SVGGradientElement,
- public SVGElementImpl
-{
-public:
-
- /**
- *
- */
- virtual SVGAnimatedEnumeration getGradientUnits()
- { return gradientUnits; }
-
- /**
- *
- */
- virtual SVGAnimatedTransformList getGradientTransform()
- { return gradientTransform; }
-
- /**
- *
- */
- virtual SVGAnimatedEnumeration getSpreadMethod()
- { return spreadMethod; }
-
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGGradientElementImpl() {}
-
-protected:
-
-
- SVGAnimatedEnumeration gradientUnits;
- SVGAnimatedTransformList gradientTransform;
- SVGAnimatedEnumeration spreadMethod;
-};
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGLinearGradientElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGLinearGradientElementImpl : virtual public SVGLinearGradientElement,
- public SVGGradientElementImpl
-{
-public:
-
-
- /**
- *
- */
- virtual SVGAnimatedLength getX1()
- { return x1; }
-
- /**
- *
- */
- virtual SVGAnimatedLength getY1()
- { return y1; }
-
- /**
- *
- */
- virtual SVGAnimatedLength getX2()
- { return x2; }
-
- /**
- *
- */
- virtual SVGAnimatedLength getY2()
- { return y2; }
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGLinearGradientElementImpl() {}
-
-protected:
-
- SVGAnimatedLength x1, x2, y1, y2;
-
-};
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGRadialGradientElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGRadialGradientElementImpl : virtual public SVGRadialGradientElement,
- public SVGGradientElementImpl
-{
-public:
-
-
- /**
- *
- */
- virtual SVGAnimatedLength getCx()
- { return cx; }
-
-
- /**
- *
- */
- virtual SVGAnimatedLength getCy()
- { return cy; }
-
-
- /**
- *
- */
- virtual SVGAnimatedLength getR()
- { return r; }
-
-
- /**
- *
- */
- virtual SVGAnimatedLength getFx()
- { return fx; }
-
-
- /**
- *
- */
- virtual SVGAnimatedLength getFy()
- { return fy; }
-
-
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGRadialGradientElementImpl() {}
-
-protected:
-
- SVGAnimatedLength cx, cy, r, fx, fy;
-
-};
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGStopElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGStopElementImpl : virtual public SVGStopElement,
- public SVGElementImpl
-{
-public:
-
- /**
- *
- */
- virtual SVGAnimatedNumber getOffset()
- { return offset; }
-
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGStopElementImpl() {}
-
-protected:
-
- SVGAnimatedNumber offset;
-
-};
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGPatternElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGPatternElementImpl : virtual public SVGPatternElement,
- public SVGElementImpl
-{
-public:
-
- /**
- *
- */
- virtual SVGAnimatedEnumeration getPatternUnits()
- { return patternUnits; }
-
- /**
- *
- */
- virtual SVGAnimatedEnumeration getPatternContentUnits()
- { return patternContentUnits; }
-
- /**
- *
- */
- virtual SVGAnimatedTransformList getPatternTransform()
- { return patternTransform; }
-
- /**
- *
- */
- virtual SVGAnimatedLength getX()
- { return x; }
-
- /**
- *
- */
- virtual SVGAnimatedLength getY()
- { return y; }
-
- /**
- *
- */
- virtual SVGAnimatedLength getWidth()
- { return width; }
-
- /**
- *
- */
- virtual SVGAnimatedLength getHeight()
- { return height; }
-
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGPatternElementImpl() {}
-
-protected:
-
-
- SVGAnimatedEnumeration patternUnits;
- SVGAnimatedEnumeration patternContentUnits;
- SVGAnimatedTransformList patternTransform;
- SVGAnimatedLength x;
- SVGAnimatedLength y;
- SVGAnimatedLength width;
- SVGAnimatedLength height;
-};
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGClipPathElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGClipPathElementImpl : virtual public SVGClipPathElement,
- public SVGElementImpl
-{
-public:
-
- /**
- *
- */
- virtual SVGAnimatedEnumeration getClipPathUnits()
- { return clipPathUnits; }
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGClipPathElementImpl() {}
-
-protected:
-
- SVGAnimatedEnumeration clipPathUnits;
-
-};
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGMaskElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGMaskElementImpl : virtual public SVGMaskElement,
- public SVGElementImpl
-{
-public:
-
- /**
- *
- */
- virtual SVGAnimatedEnumeration getMaskUnits()
- { return maskUnits; }
-
- /**
- *
- */
- virtual SVGAnimatedEnumeration getMaskContentUnits()
- { return maskContentUnits; }
-
- /**
- *
- */
- virtual SVGAnimatedLength getX()
- { return x; }
-
- /**
- *
- */
- virtual SVGAnimatedLength getY()
- { return y; }
-
- /**
- *
- */
- virtual SVGAnimatedLength getWidth()
- { return width; }
-
- /**
- *
- */
- virtual SVGAnimatedLength getHeight()
- { return height; }
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGMaskElementImpl() {}
-
-protected:
-
-
- SVGAnimatedEnumeration maskUnits;
- SVGAnimatedEnumeration maskContentUnits;
- SVGAnimatedLength x;
- SVGAnimatedLength y;
- SVGAnimatedLength width;
- SVGAnimatedLength height;
-};
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGFilterElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGFilterElementImpl : virtual public SVGFilterElement,
- public SVGElementImpl
-{
-public:
-
- /**
- *
- */
- virtual SVGAnimatedEnumeration getFilterUnits()
- { return filterUnits; }
-
- /**
- *
- */
- virtual SVGAnimatedEnumeration getPrimitiveUnits()
- { return filterUnits; }
-
- /**
- *
- */
- virtual SVGAnimatedLength getX()
- { return x; }
-
- /**
- *
- */
- virtual SVGAnimatedLength getY()
- { return y; }
-
- /**
- *
- */
- virtual SVGAnimatedLength getWidth()
- { return width; }
-
- /**
- *
- */
- virtual SVGAnimatedLength getHeight()
- { return height; }
-
- /**
- *
- */
- virtual SVGAnimatedInteger getFilterResX()
- { return filterResX; }
-
- /**
- *
- */
- virtual SVGAnimatedInteger getFilterResY()
- { return filterResY; }
-
- /**
- *
- */
- virtual void setFilterRes (unsigned long filterResXArg,
- unsigned long filterResYArg )
- {
- filterResX = filterResXArg;
- filterResY = filterResYArg;
- }
-
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGFilterElementImpl() {}
-
-protected:
-
- SVGAnimatedEnumeration filterUnits;
- SVGAnimatedEnumeration primitiveUnits;
- SVGAnimatedLength x;
- SVGAnimatedLength y;
- SVGAnimatedLength width;
- SVGAnimatedLength height;
- SVGAnimatedInteger filterResX;
- SVGAnimatedInteger filterResY;
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGFEBlendElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGFEBlendElementImpl : virtual public SVGFEBlendElement,
- public SVGElementImpl
-{
-public:
-
- /**
- *
- */
- virtual SVGAnimatedString getIn1()
- { return in1; }
-
- /**
- *
- */
- virtual SVGAnimatedString getIn2()
- { return in2; }
-
- /**
- *
- */
- virtual SVGAnimatedEnumeration getMode()
- { return mode; }
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGFEBlendElementImpl() {}
-
-protected:
-
- SVGAnimatedString in1, in2;
- SVGAnimatedEnumeration mode;
-};
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGFEColorMatrixElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGFEColorMatrixElementImpl : virtual public SVGFEColorMatrixElement,
- public SVGElementImpl
-{
-public:
-
- /**
- *
- */
- virtual SVGAnimatedString getIn1()
- { return in1; }
-
- /**
- *
- */
- virtual SVGAnimatedEnumeration getType()
- { return type; }
-
- /**
- *
- */
- virtual SVGAnimatedNumberList getValues()
- { return values; }
-
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGFEColorMatrixElementImpl() {}
-
-protected:
-
- SVGAnimatedString in1;
- SVGAnimatedEnumeration type;
- SVGAnimatedNumberList values;
-
-};
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGFEComponentTransferElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGFEComponentTransferElementImpl :
- virtual public SVGFEComponentTransferElement,
- public SVGElementImpl
-{
-public:
- /**
- *
- */
- virtual SVGAnimatedString getIn1()
- { return in1; }
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGFEComponentTransferElementImpl() {}
-
-protected:
-
- SVGAnimatedString in1;
-
-};
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGComponentTransferFunctionElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGComponentTransferFunctionElementImpl :
- virtual public SVGComponentTransferFunctionElement,
- public SVGElementImpl
-{
-public:
-
- /**
- *
- */
- virtual SVGAnimatedEnumeration getType()
- { return type; }
-
- /**
- *
- */
- virtual SVGAnimatedNumberList getTableValues()
- { return tableValues; }
-
- /**
- *
- */
- virtual SVGAnimatedNumber getSlope()
- { return slope; }
-
- /**
- *
- */
- virtual SVGAnimatedNumber getIntercept()
- { return intercept; }
-
- /**
- *
- */
- virtual SVGAnimatedNumber getAmplitude()
- { return amplitude; }
-
- /**
- *
- */
- virtual SVGAnimatedNumber getExponent()
- { return exponent; }
-
- /**
- *
- */
- virtual SVGAnimatedNumber getOffset()
- { return offset; }
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGComponentTransferFunctionElementImpl() {}
-
-protected:
-
- SVGAnimatedEnumeration type;
- SVGAnimatedNumberList tableValues;
- SVGAnimatedNumber slope;
- SVGAnimatedNumber intercept;
- SVGAnimatedNumber amplitude;
- SVGAnimatedNumber exponent;
- SVGAnimatedNumber offset;
-
-};
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGFEFuncRElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGFEFuncRElementImpl :
- virtual public SVGFEFuncRElement,
- public SVGComponentTransferFunctionElementImpl
-{
-public:
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGFEFuncRElementImpl() {}
-
-protected:
-
-
-};
-
-
-
-
-
-/*#########################################################################
-## SVGFEFuncGElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGFEFuncGElementImpl : virtual public SVGFEFuncGElement,
- public SVGComponentTransferFunctionElementImpl
-{
-public:
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGFEFuncGElementImpl() {}
-
-protected:
-
-
-};
-
-
-
-
-
-/*#########################################################################
-## SVGFEFuncBElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGFEFuncBElementImpl : virtual public SVGFEFuncBElement,
- public SVGComponentTransferFunctionElementImpl
-{
-public:
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGFEFuncBElementImpl() {}
-
-protected:
-
-
-};
-
-
-
-
-
-/*#########################################################################
-## SVGFEFuncAElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGFEFuncAElementImpl : virtual public SVGFEFuncAElement,
- public SVGComponentTransferFunctionElementImpl
-{
-public:
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGFEFuncAElementImpl() {}
-
-protected:
-
-
-};
-
-
-
-
-
-/*#########################################################################
-## SVGFECompositeElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGFECompositeElementImpl : virtual public SVGFECompositeElement,
- public SVGElementImpl
-{
-public:
-
-
- /**
- *
- */
- virtual SVGAnimatedString getIn1()
- { return in1; }
-
- /**
- *
- */
- virtual SVGAnimatedString getIn2()
- { return in2; }
-
- /**
- *
- */
- virtual SVGAnimatedEnumeration getOperator()
- { return ae_operator; }
-
- /**
- *
- */
- virtual SVGAnimatedNumber getK1()
- { return k1; }
-
- /**
- *
- */
- virtual SVGAnimatedNumber getK2()
- { return k2; }
-
- /**
- *
- */
- virtual SVGAnimatedNumber getK3()
- { return k3; }
-
- /**
- *
- */
- virtual SVGAnimatedNumber getK4()
- { return k4; }
-
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGFECompositeElementImpl() {}
-
-protected:
-
-
- SVGAnimatedString in1;
- SVGAnimatedString in2;
- SVGAnimatedEnumeration ae_operator;
- SVGAnimatedNumber k1;
- SVGAnimatedNumber k2;
- SVGAnimatedNumber k3;
- SVGAnimatedNumber k4;
-
-};
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGFEConvolveMatrixElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGFEConvolveMatrixElementImpl : virtual public SVGFEConvolveMatrixElement,
- public SVGElementImpl
-{
-public:
-
- /**
- *
- */
- virtual SVGAnimatedInteger getOrderX()
- { return orderX; }
-
- /**
- *
- */
- virtual SVGAnimatedInteger getOrderY()
- { return orderY; }
-
- /**
- *
- */
- virtual SVGAnimatedNumberList getKernelMatrix()
- { return kernelMatrix; }
-
- /**
- *
- */
- virtual SVGAnimatedNumber getDivisor()
- { return divisor; }
-
- /**
- *
- */
- virtual SVGAnimatedNumber getBias()
- { return bias; }
-
- /**
- *
- */
- virtual SVGAnimatedInteger getTargetX()
- { return targetX; }
-
- /**
- *
- */
- virtual SVGAnimatedInteger getTargetY()
- { return targetY; }
-
- /**
- *
- */
- virtual SVGAnimatedEnumeration getEdgeMode()
- { return edgeMode; }
-
- /**
- *
- */
- virtual SVGAnimatedLength getKernelUnitLengthX()
- { return kernelUnitLengthX; }
-
- /**
- *
- */
- virtual SVGAnimatedLength getKernelUnitLengthY()
- { return kernelUnitLengthY; }
-
- /**
- *
- */
- virtual SVGAnimatedBoolean getPreserveAlpha()
- { return preserveAlpha; }
-
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGFEConvolveMatrixElementImpl() {}
-
-protected:
-
- SVGAnimatedInteger orderX;
- SVGAnimatedInteger orderY;
- SVGAnimatedNumberList kernelMatrix;
- SVGAnimatedNumber divisor;
- SVGAnimatedNumber bias;
- SVGAnimatedInteger targetX;
- SVGAnimatedInteger targetY;
- SVGAnimatedEnumeration edgeMode;
- SVGAnimatedLength kernelUnitLengthX;
- SVGAnimatedLength kernelUnitLengthY;
- SVGAnimatedBoolean preserveAlpha;
-
-};
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGFEDiffuseLightingElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGFEDiffuseLightingElementImpl : virtual public SVGFEDiffuseLightingElement,
- public SVGElementImpl
-{
-public:
-
- /**
- *
- */
- virtual SVGAnimatedString getIn1()
- { return in1; }
-
- /**
- *
- */
- virtual SVGAnimatedNumber getSurfaceScale()
- { return surfaceScale; }
-
- /**
- *
- */
- virtual SVGAnimatedNumber getDiffuseConstant()
- { return diffuseConstant; }
-
- /**
- *
- */
- virtual SVGAnimatedNumber getKernelUnitLengthX()
- { return kernelUnitLengthX; }
-
- /**
- *
- */
- virtual SVGAnimatedNumber getKernelUnitLengthY()
- { return kernelUnitLengthY; }
-
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGFEDiffuseLightingElementImpl() {}
-
-protected:
-
- SVGAnimatedString in1;
- SVGAnimatedNumber surfaceScale;
- SVGAnimatedNumber diffuseConstant;
- SVGAnimatedNumber kernelUnitLengthX;
- SVGAnimatedNumber kernelUnitLengthY;
-
-};
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGFEDistantLightElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGFEDistantLightElementImpl : virtual public SVGFEDistantLightElement,
- public SVGElementImpl
-{
-public:
-
- /**
- *
- */
- virtual SVGAnimatedNumber getAzimuth()
- { return azimuth; }
-
-
- /**
- *
- */
- virtual SVGAnimatedNumber getElevation()
- { return elevation; }
-
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGFEDistantLightElementImpl() {}
-
-protected:
-
- SVGAnimatedNumber azimuth;
- SVGAnimatedNumber elevation;
-
-};
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGFEPointLightElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGFEPointLightElementImpl : public virtual SVGFEPointLightElement,
- public SVGElementImpl
-{
-public:
-
- /**
- *
- */
- virtual SVGAnimatedNumber getX()
- { return x; }
-
-
- /**
- *
- */
- virtual SVGAnimatedNumber getY()
- { return y; }
-
- /**
- *
- */
- virtual SVGAnimatedNumber getZ()
- { return z; }
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGFEPointLightElementImpl() {}
-
-protected:
-
- SVGAnimatedNumber x, y, z;
-
-};
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGFESpotLightElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGFESpotLightElementImpl : virtual public SVGFESpotLightElement,
- public SVGElementImpl
-{
-public:
-
- /**
- *
- */
- virtual SVGAnimatedNumber getX()
- { return x; }
-
-
- /**
- *
- */
- virtual SVGAnimatedNumber getY()
- { return y; }
-
- /**
- *
- */
- virtual SVGAnimatedNumber getZ()
- { return z; }
-
- /**
- *
- */
- virtual SVGAnimatedNumber getPointsAtX()
- { return pointsAtX; }
-
- /**
- *
- */
- virtual SVGAnimatedNumber getPointsAtY()
- { return pointsAtY; }
-
- /**
- *
- */
- virtual SVGAnimatedNumber getPointsAtZ()
- { return pointsAtZ; }
-
- /**
- *
- */
- virtual SVGAnimatedNumber getSpecularExponent()
- { return specularExponent; }
-
- /**
- *
- */
- virtual SVGAnimatedNumber getLimitingConeAngle()
- { return limitingConeAngle; }
-
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGFESpotLightElementImpl() {}
-
-protected:
-
- SVGAnimatedNumber x, y, z;
- SVGAnimatedNumber pointsAtX, pointsAtY, pointsAtZ;
- SVGAnimatedNumber specularExponent;
- SVGAnimatedNumber limitingConeAngle;
-};
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGFEDisplacementMapElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGFEDisplacementMapElementImpl : virtual public SVGFEDisplacementMapElement,
- public SVGElementImpl
-{
-public:
-
- /**
- *
- */
- virtual SVGAnimatedString getIn1()
- { return in1; }
-
- /**
- *
- */
- virtual SVGAnimatedString getIn2()
- { return in2; }
-
-
- /**
- *
- */
- virtual SVGAnimatedNumber getScale()
- { return scale; }
-
- /**
- *
- */
- virtual SVGAnimatedEnumeration getXChannelSelector()
- { return xChannelSelector; }
-
- /**
- *
- */
- virtual SVGAnimatedEnumeration getYChannelSelector()
- { return yChannelSelector; }
-
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGFEDisplacementMapElementImpl() {}
-
-protected:
-
- SVGAnimatedString in1;
- SVGAnimatedString in2;
- SVGAnimatedNumber scale;
- SVGAnimatedEnumeration xChannelSelector;
- SVGAnimatedEnumeration yChannelSelector;
-
-};
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGFEFloodElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGFEFloodElementImpl : virtual public SVGFEFloodElement,
- public SVGElementImpl
-{
-public:
- /**
- *
- */
- virtual SVGAnimatedString getIn1()
- { return in1; }
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGFEFloodElementImpl() {}
-
-protected:
-
- SVGAnimatedString in1;
-
-};
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGFEGaussianBlurElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGFEGaussianBlurElementImpl : virtual public SVGFEGaussianBlurElement,
- public SVGElementImpl
-{
-public:
- /**
- *
- */
- virtual SVGAnimatedString getIn1()
- { return in1; }
-
-
- /**
- *
- */
- virtual SVGAnimatedNumber getStdDeviationX()
- { return stdDeviationX; }
-
- /**
- *
- */
- virtual SVGAnimatedNumber getStdDeviationY()
- { return stdDeviationY; }
-
-
- /**
- *
- */
- virtual void setStdDeviation (double stdDeviationXArg, double stdDeviationYArg )
- {
- stdDeviationX = stdDeviationXArg;
- stdDeviationY = stdDeviationYArg;
- }
-
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGFEGaussianBlurElementImpl() {}
-
-protected:
-
- SVGAnimatedString in1;
- SVGAnimatedNumber stdDeviationX, stdDeviationY;
-
-};
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGFEImageElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGFEImageElementImpl : virtual public SVGFEImageElement,
- public SVGElementImpl
-{
-public:
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGFEImageElementImpl() {}
-
-protected:
-
-
-};
-
-
-
-
-
-/*#########################################################################
-## SVGFEMergeElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGFEMergeElementImpl : virtual public SVGFEMergeElement,
- public SVGElementImpl
-{
-public:
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGFEMergeElementImpl() {}
-
-protected:
-
-
-};
-
-
-
-
-
-/*#########################################################################
-## SVGFEMergeNodeElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGFEMergeNodeElementImpl : virtual public SVGFEMergeNodeElement,
- public SVGElementImpl
-{
-public:
- /**
- *
- */
- virtual SVGAnimatedString getIn1()
- { return in1; }
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGFEMergeNodeElementImpl() {}
-
-protected:
-
- SVGAnimatedString in1;
-
-};
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGFEMorphologyElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGFEMorphologyElementImpl : virtual public SVGFEMorphologyElement,
- public SVGElementImpl
-{
-public:
-
- /**
- *
- */
- virtual SVGAnimatedString getIn1()
- { return in1; }
-
-
- /**
- *
- */
- virtual SVGAnimatedEnumeration getOperator()
- { return me_operator; }
-
- /**
- *
- */
- virtual SVGAnimatedLength getRadiusX()
- { return radiusX; }
-
- /**
- *
- */
- virtual SVGAnimatedLength getRadiusY()
- { return radiusY; }
-
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGFEMorphologyElementImpl() {}
-
-protected:
-
- SVGAnimatedString in1;
- SVGAnimatedEnumeration me_operator;
- SVGAnimatedLength radiusX;
- SVGAnimatedLength radiusY;
-
-};
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGFEOffsetElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGFEOffsetElementImpl : virtual public SVGFEOffsetElement,
- public SVGElementImpl
-{
-public:
-
-
-
- /**
- *
- */
- virtual SVGAnimatedString getIn1()
- { return in1; }
-
- /**
- *
- */
- virtual SVGAnimatedLength getDx()
- { return dx; }
-
- /**
- *
- */
- virtual SVGAnimatedLength getDy()
- { return dy; }
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGFEOffsetElementImpl() {}
-
-protected:
-
- SVGAnimatedString in1;
- SVGAnimatedLength dx, dy;
-
-};
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGFESpecularLightingElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGFESpecularLightingElementImpl :
- virtual public SVGFESpecularLightingElement,
- public SVGElementImpl
-{
-public:
-
- /**
- *
- */
- virtual SVGAnimatedString getIn1()
- { return in1; }
-
- /**
- *
- */
- virtual SVGAnimatedNumber getSurfaceScale()
- { return surfaceScale; }
-
- /**
- *
- */
- virtual SVGAnimatedNumber getSpecularConstant()
- { return specularConstant; }
-
- /**
- *
- */
- virtual SVGAnimatedNumber getSpecularExponent()
- { return specularExponent; }
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGFESpecularLightingElementImpl() {}
-
-protected:
-
- SVGAnimatedString in1;
- SVGAnimatedNumber surfaceScale;
- SVGAnimatedNumber specularConstant;
- SVGAnimatedNumber specularExponent;
-};
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGFETileElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGFETileElementImpl : virtual public SVGFETileElement,
- public SVGElementImpl
-{
-public:
-
-
- /**
- *
- */
- virtual SVGAnimatedString getIn1()
- { return in1; }
-
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGFETileElementImpl() {}
-
-protected:
-
- SVGAnimatedString in1;
-
-};
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGFETurbulenceElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGFETurbulenceElementImpl : virtual public SVGFETurbulenceElement,
- public SVGElementImpl
-{
-public:
-
- /**
- *
- */
- virtual SVGAnimatedNumber getBaseFrequencyX()
- { return baseFrequencyX; }
-
- /**
- *
- */
- virtual SVGAnimatedNumber getBaseFrequencyY()
- { return baseFrequencyY; }
-
- /**
- *
- */
- virtual SVGAnimatedInteger getNumOctaves()
- { return numOctaves; }
-
- /**
- *
- */
- virtual SVGAnimatedNumber getSeed()
- { return seed; }
-
- /**
- *
- */
- virtual SVGAnimatedEnumeration getStitchTiles()
- { return stitchTiles; }
-
- /**
- *
- */
- virtual SVGAnimatedEnumeration getType()
- { return type; }
-
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGFETurbulenceElementImpl() {}
-
-protected:
-
- SVGAnimatedNumber baseFrequencyX;
- SVGAnimatedNumber baseFrequencyY;
- SVGAnimatedInteger numOctaves;
- SVGAnimatedNumber seed;
- SVGAnimatedEnumeration stitchTiles;
- SVGAnimatedEnumeration type;
-
-};
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGCursorElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGCursorElementImpl : virtual public SVGCursorElement,
- public SVGElementImpl
-{
-public:
-
- /**
- *
- */
- virtual SVGAnimatedLength getX()
- { return x; }
-
- /**
- *
- */
- virtual SVGAnimatedLength getY()
- { return x; }
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGCursorElementImpl() {}
-
-protected:
-
- SVGAnimatedLength x, y;
-};
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGAElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGAElementImpl : virtual public SVGAElement,
- public SVGElementImpl
-{
-public:
-
- /**
- *
- */
- virtual SVGAnimatedString getTarget()
- { return target; }
-
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGAElementImpl() {}
-
-protected:
-
- SVGAnimatedString target;
-};
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGViewElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGViewElementImpl : virtual public SVGViewElement,
- public SVGElementImpl
-{
-public:
-
- /**
- *
- */
- virtual SVGStringList getViewTarget()
- { return viewTarget; }
-
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGViewElementImpl() {}
-
-protected:
-
- SVGStringList viewTarget;
-};
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGScriptElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGScriptElementImpl : virtual public SVGScriptElement,
- public SVGElementImpl
-{
-public:
-
- /**
- *
- */
- virtual DOMString getType()
- { return type; }
-
- /**
- *
- */
- virtual void setType(const DOMString &val) throw (DOMException)
- { type = val; }
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGScriptElementImpl() {}
-
-protected:
-
- DOMString type;
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGAnimationElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGAnimationElementImpl : virtual public SVGAnimationElement,
- public SVGElementImpl
-{
-public:
-
-
- /**
- *
- */
- virtual SVGElementPtr getTargetElement()
- { return targetElement; }
-
-
- /**
- *
- */
- virtual double getStartTime ( )
- { return startTime; }
-
- /**
- *
- */
- virtual double getCurrentTime ( )
- { return currentTime; }
-
- /**
- *
- */
- virtual double getSimpleDuration ( ) throw( DOMException )
- { return simpleDuration; }
-
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGAnimationElementImpl() {}
-
-protected:
-
- SVGElementPtr targetElement;
- double startTime, currentTime, simpleDuration;
-};
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGAnimateElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGAnimateElementImpl : virtual public SVGAnimateElement,
- public SVGAnimationElementImpl
-{
-public:
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGAnimateElementImpl() {}
-
-protected:
-
-
-};
-
-
-
-
-
-/*#########################################################################
-## SVGSetElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGSetElementImpl : virtual public SVGSetElement,
- public SVGAnimationElementImpl
-{
-public:
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGSetElementImpl() {}
-
-protected:
-
-
-};
-
-
-
-
-
-/*#########################################################################
-## SVGAnimateMotionElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGAnimateMotionElementImpl : virtual public SVGAnimateMotionElement,
- public SVGAnimationElementImpl
-{
-public:
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGAnimateMotionElementImpl() {}
-
-protected:
-
-
-};
-
-
-
-
-
-/*#########################################################################
-## SVGMPathElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGMPathElementImpl : virtual public SVGMPathElement,
- public SVGElementImpl
-{
-public:
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGMPathElementImpl() {}
-
-protected:
-
-
-};
-
-
-
-
-
-/*#########################################################################
-## SVGAnimateColorElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGAnimateColorElementImpl : virtual public SVGAnimateColorElement,
- public SVGAnimationElementImpl
-{
-public:
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGAnimateColorElementImpl() {}
-
-protected:
-
-
-};
-
-
-
-
-
-/*#########################################################################
-## SVGAnimateTransformElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGAnimateTransformElementImpl : virtual public SVGAnimateTransformElement,
- public SVGAnimationElementImpl
-{
-public:
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGAnimateTransformElementImpl() {}
-
-protected:
-
-
-};
-
-
-
-
-
-/*#########################################################################
-## SVGFontElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGFontElementImpl : virtual public SVGFontElement,
- public SVGElementImpl
-{
-public:
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGFontElementImpl() {}
-
-protected:
-
-
-};
-
-
-
-
-
-/*#########################################################################
-## SVGGlyphElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGGlyphElementImpl : virtual public SVGGlyphElement,
- public SVGElementImpl
-{
-public:
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGGlyphElementImpl() {}
-
-protected:
-
-
-};
-
-
-
-
-
-/*#########################################################################
-## SVGMissingGlyphElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGMissingGlyphElementImpl : virtual public SVGMissingGlyphElement,
- public SVGElementImpl
-{
-public:
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGMissingGlyphElementImpl() {}
-
-protected:
-
-
-};
-
-
-
-
-
-/*#########################################################################
-## SVGHKernElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGHKernElementImpl : virtual public SVGHKernElement,
- public SVGElementImpl
-{
-public:
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGHKernElementImpl() {}
-
-protected:
-
-
-};
-
-
-
-
-
-/*#########################################################################
-## SVGVKernElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGVKernElementImpl : virtual public SVGVKernElement,
- public SVGElementImpl
-{
-public:
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGVKernElementImpl() {}
-
-protected:
-
-
-};
-
-
-
-
-
-/*#########################################################################
-## SVGFontFaceElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGFontFaceElementImpl : virtual public SVGFontFaceElement,
- public SVGElementImpl
-{
-public:
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGFontFaceElementImpl() {}
-
-protected:
-
-
-};
-
-
-
-
-
-/*#########################################################################
-## SVGFontFaceSrcElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGFontFaceSrcElementImpl : virtual public SVGFontFaceSrcElement,
- public SVGElementImpl
-{
-public:
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGFontFaceSrcElementImpl() {}
-
-protected:
-
-
-};
-
-
-
-
-
-/*#########################################################################
-## SVGFontFaceUriElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGFontFaceUriElementImpl : virtual public SVGFontFaceUriElement,
- public SVGElementImpl
-{
-public:
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGFontFaceUriElementImpl() {}
-
-protected:
-
-
-};
-
-
-
-
-
-/*#########################################################################
-## SVGFontFaceFormatElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGFontFaceFormatElementImpl : virtual public SVGFontFaceFormatElement,
- public SVGElementImpl
-{
-public:
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGFontFaceFormatElementImpl() {}
-
-protected:
-
-
-};
-
-
-
-
-
-/*#########################################################################
-## SVGFontFaceNameElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGFontFaceNameElementImpl : virtual public SVGFontFaceNameElement,
- public SVGElementImpl
-{
-public:
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGFontFaceNameElementImpl() {}
-
-protected:
-
-
-};
-
-
-
-
-
-/*#########################################################################
-## SVGDefinitionSrcElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGDefinitionSrcElementImpl : virtual public SVGDefinitionSrcElement,
- public SVGElementImpl
-{
-public:
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGDefinitionSrcElementImpl() {}
-
-protected:
-
-
-};
-
-
-
-
-
-/*#########################################################################
-## SVGMetadataElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGMetadataElementImpl : virtual public SVGMetadataElement,
- public SVGElementImpl
-{
-public:
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- virtual ~SVGMetadataElementImpl() {}
-
-protected:
-
-
-};
-
-
-
-
-/*#########################################################################
-## SVGForeignObjectElementImpl
-#########################################################################*/
-
-/**
- *
- */
-class SVGForeignObjectElementImpl : virtual public SVGForeignObjectElement,
- public SVGElementImpl
-{
-public:
-
-
- /**
- *
- */
- virtual SVGAnimatedLength getX()
- { return x; }
-
- /**
- *
- */
- virtual SVGAnimatedLength getY()
- { return y; }
-
- /**
- *
- */
- virtual SVGAnimatedLength getWidth()
- { return width; }
-
- /**
- *
- */
- virtual SVGAnimatedLength getHeight()
- { return height; }
-
-
-
- //##################
- //# Non-API methods
- //##################
-
-
- /**
- *
- */
- virtual ~SVGForeignObjectElementImpl() {}
-
-protected:
-
- SVGAnimatedLength x, y, width, height;
-};
-
-
-
-
-
-
-} //namespace svg
-} //namespace dom
-} //namespace w3c
-} //namespace org
-
-#endif // SEEN_SVGIMPL_H
-/*#########################################################################
-## E N D O F F I L E
-#########################################################################*/
-
diff --git a/src/dom/svgreader.cpp b/src/dom/svgreader.cpp
deleted file mode 100644
index 932fcec58..000000000
--- a/src/dom/svgreader.cpp
+++ /dev/null
@@ -1,750 +0,0 @@
-/*
- * Phoebe DOM Implementation.
- *
- * This is a C++ approximation of the W3C DOM model, which follows
- * fairly closely the specifications in the various .idl files, copies of
- * which are provided for reference. Most important is this one:
- *
- * http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/idl-definitions.html
- *
- * Authors:
- * Bob Jamison
- *
- * Copyright (C) 2005-2008 Bob Jamison
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- *
- * =======================================================================
- * NOTES
- *
- *
- */
-
-
-#include "svgreader.h"
-#include "dom/cssreader.h"
-#include "dom/ucd.h"
-#include "xmlreader.h"
-
-#include <cstdio>
-#include <stdarg.h>
-
-
-namespace org
-{
-namespace w3c
-{
-namespace dom
-{
-namespace svg
-{
-
-
-//#########################################################################
-//# M E S S A G E S
-//#########################################################################
-
-
-/**
- *
- */
-void SVGReader::error(char const *fmt, ...)
-{
- va_list args;
- fprintf(stderr, "SVGReader:error: ");
- va_start(args, fmt);
- vfprintf(stderr, fmt, args);
- va_end(args) ;
- fprintf(stderr, "\n");
-}
-
-
-/**
- *
- */
-void SVGReader::trace(char const *fmt, ...)
-{
- va_list args;
- fprintf(stdout, "SVGReader: ");
- va_start(args, fmt);
- vfprintf(stdout, fmt, args);
- va_end(args) ;
- fprintf(stdout, "\n");
-}
-
-
-
-//#########################################################################
-//# P A R S I N G
-//#########################################################################
-
-
-
-/**
- * Get the character at the position and record the fact
- */
-XMLCh SVGReader::get(int p)
-{
- if (p >= parselen)
- return 0;
- XMLCh ch = parsebuf[p];
- //printf("%c", ch);
- lastPosition = p;
- return ch;
-}
-
-
-
-/**
- * Test if the given substring exists at the given position
- * in parsebuf. Use get() in case of out-of-bounds
- */
-bool SVGReader::match(int pos, char const *str)
-{
- while (*str)
- {
- if (get(pos++) != (XMLCh) *str++)
- return false;
- }
- return true;
-}
-
-/**
- *
- */
-int SVGReader::skipwhite(int p)
-{
- while (p < parselen)
- {
- //# XML COMMENT
- if (match(p, "<!--"))
- {
- p+=4;
- bool done=false;
- while (p<parselen)
- {
- if (match(p, "-->"))
- {
- p+=3;
- done=true;
- break;
- }
- p++;
- }
- lastPosition = p;
- if (!done)
- {
- error("unterminated <!-- .. --> comment");
- return -1;
- }
- }
- //# C comment
- else if (match(p, "/*"))
- {
- p+=2;
- bool done=false;
- while (p<parselen)
- {
- if (match(p, "*/"))
- {
- p+=2;
- done=true;
- break;
- }
- p++;
- }
- lastPosition = p;
- if (!done)
- {
- error("unterminated /* .. */ comment");
- return -1;
- }
- }
- else if (!uni_is_space(get(p)))
- break;
- else
- p++;
- }
- lastPosition = p;
- return p;
-}
-
-/**
- * get a word from the buffer
- */
-int SVGReader::getWord(int p, DOMString &result)
-{
- XMLCh ch = get(p);
- if (!uni_is_letter(ch))
- return p;
- DOMString str;
- str.push_back(ch);
- p++;
-
- while (p < parselen)
- {
- ch = get(p);
- if (uni_is_letter_or_digit(ch) || ch=='-' || ch=='_')
- {
- str.push_back(ch);
- p++;
- }
- else if (ch == '\\')
- {
- p+=2;
- }
- else
- break;
- }
- result = str;
- return p;
-}
-
-
-# if 0
-/**
- * get a word from the buffer
- */
-int SVGReader::getNumber(int p0, double &result)
-{
- int p=p0;
-
- DOMString str;
-
- //allow sign
- if (get(p) == '-')
- {
- p++;
- }
-
- while (p < parselen)
- {
- XMLCh ch = get(p);
- if (ch<'0' || ch>'9')
- break;
- str.push_back(ch);
- p++;
- }
- if (get(p) == '.' && get(p+1)>='0' && get(p+1)<='9')
- {
- p++;
- str.push_back('.');
- while (p < parselen)
- {
- XMLCh ch = get(p);
- if (ch<'0' || ch>'9')
- break;
- str.push_back(ch);
- p++;
- }
- }
- if (p>p0)
- {
- char *start = (char *)str.c_str();
- char *end = NULL;
- double val = strtod(start, &end);
- if (end > start)
- {
- result = val;
- return p;
- }
- }
-
- //not a number
- return p0;
-}
-#endif
-
-
-/**
- * get a word from the buffer
- */
-int SVGReader::getNumber(int p0, double &result)
-{
- int p=p0;
-
- char buf[64];
-
- int i;
- for (i=0 ; i<63 && p<parselen ; i++)
- {
- buf[i] = (char) get(p++);
- }
- buf[i] = '\0';
-
- char *start = buf;
- char *end = NULL;
- double val = strtod(start, &end);
- if (end > start)
- {
- result = val;
- int count = (int)(end - start);
- p = p0 + count;
- return p;
- }
-
- //not a number
- return p0;
-}
-
-
-bool SVGReader::parseTransform(const DOMString &str)
-{
- parsebuf = str;
- parselen = str.size();
-
- //printf("transform:%s\n", str.c_str());
-
- SVGTransformList transformList;
-
- int p = 0;
-
- while (p < parselen)
- {
- p = skipwhite(p);
- DOMString name;
- int p2 = getWord(p, name);
- if (p2<0)
- return false;
- if (p2<=p)
- {
- error("transform: need transform name");
- //return false;
- break;
- }
- p = p2;
- //printf("transform name:%s\n", name.c_str());
-
- //######### MATRIX
- if (name == "matrix")
- {
- p = skipwhite(p);
- if (get(p++) != '(')
- {
- error("matrix transform needs opening '('");
- return false;
- }
- int nrVals = 0;
- double vals[6];
- bool seenBrace = false;
- while (p < parselen && nrVals < 6)
- {
- p = skipwhite(p);
- double val = 0.0;
- p2 = getNumber(p, val);
- if (p2<0)
- return false;
- if (p2<=p)
- {
- error("matrix() expected number");
- return false;
- }
- vals[nrVals++] = val;
- p = skipwhite(p2);
- XMLCh ch = get(p);
- if (ch == ',')
- {
- p++;
- p = skipwhite(p);
- ch = get(p);
- }
- if (ch == ')')
- {
- seenBrace = true;
- p++;
- break;
- }
- }
- if (!seenBrace)
- {
- error("matrix() needs closing brace");
- return false;
- }
- if (nrVals != 6)
- {
- error("matrix() requires exactly 6 arguments");
- return false;
- }
- //We got our arguments
- //printf("translate: %f %f %f %f %f %f\n",
- // vals[0], vals[1], vals[2], vals[3], vals[4], vals[5]);
- SVGMatrix matrix(vals[0], vals[1], vals[2],
- vals[3], vals[4], vals[5]);
- SVGTransform transform;
- transform.setMatrix(matrix);
- transformList.appendItem(transform);
- }
-
- //######### TRANSLATE
- else if (name == "translate")
- {
- p = skipwhite(p);
- if (get(p++) != '(')
- {
- error("matrix transform needs opening '('");
- return false;
- }
- p = skipwhite(p);
- double x = 0.0;
- p2 = getNumber(p, x);
- if (p2<0)
- return false;
- if (p2<=p)
- {
- error("translate() expected 'x' value");
- return false;
- }
- p = skipwhite(p2);
- if (get(p) == ',')
- {
- p++;
- p = skipwhite(p);
- }
- double y = 0.0;
- p2 = getNumber(p, y);
- if (p2<0)
- return false;
- if (p2<=p) //no y specified. use default
- y = 0.0;
- p = skipwhite(p2);
- if (get(p++) != ')')
- {
- error("translate() needs closing ')'");
- return false;
- }
- //printf("translate: %f %f\n", x, y);
- SVGTransform transform;
- transform.setTranslate(x, y);
- transformList.appendItem(transform);
- }
-
- //######### SCALE
- else if (name == "scale")
- {
- p = skipwhite(p);
- if (get(p++) != '(')
- {
- error("scale transform needs opening '('");
- return false;
- }
- p = skipwhite(p);
- double x = 0.0;
- p2 = getNumber(p, x);
- if (p2<0)
- return false;
- if (p2<=p)
- {
- error("scale() expected 'x' value");
- return false;
- }
- p = skipwhite(p2);
- if (get(p) == ',')
- {
- p++;
- p = skipwhite(p);
- }
- double y = 0.0;
- p2 = getNumber(p, y);
- if (p2<0)
- return false;
- if (p2<=p) //no y specified. use default
- y = x; // y is same as x. uniform scaling
- p = skipwhite(p2);
- if (get(p++) != ')')
- {
- error("scale() needs closing ')'");
- return false;
- }
- //printf("scale: %f %f\n", x, y);
- SVGTransform transform;
- transform.setScale(x, y);
- transformList.appendItem(transform);
- }
-
- //######### ROTATE
- else if (name == "rotate")
- {
- p = skipwhite(p);
- if (get(p++) != '(')
- {
- error("rotate transform needs opening '('");
- return false;
- }
- p = skipwhite(p);
- double angle = 0.0;
- p2 = getNumber(p, angle);
- if (p2<0)
- return false;
- if (p2<=p)
- {
- error("rotate() expected 'angle' value");
- return false;
- }
- p = skipwhite(p2);
- if (get(p) == ',')
- {
- p++;
- p = skipwhite(p);
- }
- double cx = 0.0;
- double cy = 0.0;
- p2 = getNumber(p, cx);
- if (p2>p)
- {
- p = skipwhite(p2);
- if (get(p) == ',')
- {
- p++;
- p = skipwhite(p);
- }
- p2 = getNumber(p, cy);
- if (p2<0)
- return false;
- if (p2<=p)
- {
- error("rotate() arguments should be either rotate(angle) or rotate(angle, cx, cy)");
- return false;
- }
- p = skipwhite(p2);
- }
- if (get(p++) != ')')
- {
- error("rotate() needs closing ')'");
- return false;
- }
- //printf("rotate: %f %f %f\n", angle, cx, cy);
- SVGTransform transform;
- transform.setRotate(angle, cx, cy);
- transformList.appendItem(transform);
- }
-
- //######### SKEWX
- else if (name == "skewX")
- {
- p = skipwhite(p);
- if (get(p++) != '(')
- {
- error("skewX transform needs opening '('");
- return false;
- }
- p = skipwhite(p);
- double x = 0.0;
- p2 = getNumber(p, x);
- if (p2<0)
- return false;
- if (p2<=p)
- {
- error("skewX() expected 'x' value");
- return false;
- }
- p = skipwhite(p2);
- if (get(p++) != ')')
- {
- error("skewX() needs closing ')'");
- return false;
- }
- //printf("skewX: %f\n", x);
- SVGTransform transform;
- transform.setSkewX(x);
- transformList.appendItem(transform);
- }
-
- //######### SKEWY
- else if (name == "skewY")
- {
- p = skipwhite(p);
- if (get(p++) != '(')
- {
- error("skewY transform needs opening '('");
- return false;
- }
- p = skipwhite(p);
- double y = 0.0;
- p2 = getNumber(p, y);
- if (p2<0)
- return false;
- if (p2<=p)
- {
- error("skewY() expected 'y' value");
- return false;
- }
- p = skipwhite(p2);
- if (get(p++) != ')')
- {
- error("skewY() needs closing ')'");
- return false;
- }
- //printf("skewY: %f\n", y);
- SVGTransform transform;
- transform.setSkewY(y);
- transformList.appendItem(transform);
- }
-
- //### NONE OF THE ABOVE
- else
- {
- error("unknown transform type:'%s'", name.c_str());
- }
-
- p = skipwhite(p);
- XMLCh ch = get(p);
- if (ch == ',')
- {
- p++;
- p = skipwhite(p);
- }
-
- }//WHILE p<parselen
-
- return true;
-}
-
-
-/**
- *
- */
-bool SVGReader::parseElement(SVGElementImplPtr parent,
- ElementImplPtr sourceElem)
-{
- if (!parent)
- {
- error("NULL dest element");
- return false;
- }
- if (!sourceElem)
- {
- error("NULL source element");
- return false;
- }
-
- DOMString namespaceURI = sourceElem->getNamespaceURI();
- //printf("namespaceURI:%s\n", namespaceURI.c_str());
- DOMString tagName = sourceElem->getTagName();
- printf("tag name:%s\n", tagName.c_str());
- ElementPtr newElement = doc->createElementNS(namespaceURI, tagName);
- if (!newElement)
- {
- return false;
- }
- NamedNodeMap &attrs = sourceElem->getAttributes();
- for (unsigned int i=0 ; i<attrs.getLength() ; i++)
- {
- NodePtr n = attrs.item(i);
- newElement->setAttribute(n->getNodeName(), n->getNodeValue());//should be exception here
- }
- parent->appendChild(newElement);
-
-
- NodeList children = sourceElem->getChildNodes();
- int nodeCount = children.getLength();
- for (int i=0 ; i<nodeCount ; i++)
- {
- NodePtr child = children.item(i);
- int typ = child->getNodeType();
- if (typ == Node::TEXT_NODE)
- {
- NodePtr newNode = doc->createTextNode(child->getNodeValue());
- parent->appendChild(newNode);
- }
- else if (typ == Node::CDATA_SECTION_NODE)
- {
- NodePtr newNode = doc->createCDATASection(child->getNodeValue());
- parent->appendChild(newNode);
- }
- else if (newElement.get() && typ == Node::ELEMENT_NODE)
- {
- //ElementImplPtr childElement = dynamic_cast<ElementImpl *>(child.get());
- //parseElement(newElement, childElement);
- }
- }
- return true;
-}
-
-
-/**
- *
- */
-SVGDocumentPtr SVGReader::parse(const DocumentPtr src)
-{
- if (!src)
- {
- error("NULL source document");
- return NULL;
- }
-
- DOMImplementationImpl impl;
- doc = new SVGDocumentImpl(&impl, SVG_NAMESPACE, "svg" , NULL);
-
- SVGElementImplPtr destElem = dynamic_pointer_cast<SVGElementImpl, SVGElement>(doc->getRootElement());
- ElementImplPtr srcElem = dynamic_pointer_cast<ElementImpl, Element>(src->getDocumentElement());
- if (!parseElement(destElem, srcElem))
- {
- return NULL;
- }
-
- return doc;
-}
-
-
-
-/**
- *
- */
-SVGDocumentPtr SVGReader::parse(const DOMString &buf)
-{
- /* remember, smartptrs are null-testable*/
- SVGDocumentPtr svgdoc;
- XmlReader parser;
- DocumentPtr doc = parser.parse(buf);
- if (!doc)
- {
- return svgdoc;
- }
- svgdoc = parse(doc);
- return svgdoc;
-}
-
-
-
-/**
- *
- */
-SVGDocumentPtr SVGReader::parseFile(const DOMString &fileName)
-{
- /* remember, smartptrs are null-testable*/
- SVGDocumentPtr svgdoc;
- XmlReader parser;
- DocumentPtr doc = parser.parseFile(fileName);
- if (!doc)
- {
- error("Could not load xml doc");
- return svgdoc;
- }
- svgdoc = parse(doc);
- return svgdoc;
-}
-
-
-
-
-} //namespace svg
-} //namespace dom
-} //namespace w3c
-} //namespace org
-
-/*#########################################################################
-## E N D O F F I L E
-#########################################################################*/
-
diff --git a/src/dom/svgreader.h b/src/dom/svgreader.h
deleted file mode 100644
index 3178293fd..000000000
--- a/src/dom/svgreader.h
+++ /dev/null
@@ -1,187 +0,0 @@
-#ifndef SEEN_SVGREADER_H
-#define SEEN_SVGREADER_H
-
-/**
- * @file
- * Phoebe DOM Implementation.
- *
- * This is a C++ approximation of the W3C DOM model, which follows
- * fairly closely the specifications in the various .idl files, copies of
- * which are provided for reference. Most important is this one:
- *
- * http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/idl-definitions.html
- */
-/*
- * Authors:
- * Bob Jamison
- *
- * Copyright (C) 2005-2008 Bob Jamison
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- *
- * =======================================================================
- * NOTES
- *
- * This parser takes an XML document, as a file, string, or DOM Document,
- * and attempts to parse it as an SVG-DOM SVGDocument.
- *
- * Look in svg.h and svgtypes.h for the classes which are the target of this
- * parser.
- *
- * They loosely follow the specification:
- * http://www.w3.org/TR/SVG11/svgdom.html
- *
- */
-
-
-#include "svgimpl.h"
-
-namespace org
-{
-namespace w3c
-{
-namespace dom
-{
-namespace svg
-{
-
-
-class SVGReader
-{
-public:
-
- /**
- *
- */
- SVGReader() :
- parsebuf(),
- parselen(0),
- lastPosition(0),
- doc(0)
- {
- }
-
- /**
- *
- */
- virtual ~SVGReader()
- {
- }
-
- /**
- *
- */
- SVGDocumentPtr parse(const DocumentPtr /*sourceDoc*/);
-
- /**
- *
- */
- SVGDocumentPtr parse(const DOMString &/*buffer*/);
-
- /**
- *
- */
- SVGDocumentPtr parseFile(const DOMString &/*fileName*/);
-
-
-
-
-private:
-
- /**
- * Get the next character in the parse buf, 0 if out
- * of range
- */
- XMLCh get(int p);
-
- /**
- * Test if the given substring exists at the given position
- * in parsebuf. Use get() in case of out-of-bounds
- */
- bool match(int pos, char const *str);
-
- /**
- *
- */
- int skipwhite(int p);
-
- /**
- * get a word from the buffer
- */
- int getWord(int p, DOMString &result);
-
- /**
- * get a word from the buffer
- */
- int getNumber(int p0, double &result);
-
-
- /**
- *
- */
- bool parseTransform(const DOMString &str);
-
-
- /**
- *
- */
- bool parseElement(SVGElementImplPtr destElem,
- ElementImplPtr sourceElem);
-
-
- /**
- *
- */
- void error(char const *format, ...)
- #ifdef G_GNUC_PRINTF
- G_GNUC_PRINTF(2, 3)
- #endif
- ;
-
- /**
- *
- */
- void trace(char const *format, ...)
- #ifdef G_GNUC_PRINTF
- G_GNUC_PRINTF(2, 3)
- #endif
- ;
-
-
-
- DOMString parsebuf;
- int parselen;
- int lastPosition;
-
- SVGDocumentImplPtr doc;
-
-};
-
-
-
-
-
-} //namespace svg
-} //namespace dom
-} //namespace w3c
-} //namespace org
-
-#endif // SEEN_SVGREADER_H
-/*#########################################################################
-## E N D O F F I L E
-#########################################################################*/
-
-
-
diff --git a/src/dom/svgtypes.h b/src/dom/svgtypes.h
deleted file mode 100644
index bb828571f..000000000
--- a/src/dom/svgtypes.h
+++ /dev/null
@@ -1,6900 +0,0 @@
-#ifndef SEEN_SVGTYPES_H
-#define SEEN_SVGTYPES_H
-
-/**
- * @file
- * Phoebe DOM Implementation.
- *
- * This is a C++ approximation of the W3C DOM model, which follows
- * fairly closely the specifications in the various .idl files, copies of
- * which are provided for reference. Most important is this one:
- *
- * http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/idl-definitions.html
- */
-/*
- * Authors:
- * Bob Jamison
- *
- * Copyright (C) 2006-2008 Bob Jamison
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- *
- * =======================================================================
- * NOTES
- *
- * This API follows:
- * http://www.w3.org/TR/SVG11/svgdom.html
- *
- * This file contains the definitions of the non-Node SVG classes. DOM Nodes
- * for SVG are defined in svg.h.
- *
- */
-
-
-// For access to DOM2 core
-#include "dom/dom.h"
-
-// For access to DOM2 events
-#include "dom/events.h"
-
-// For access to those parts from DOM2 CSS OM used by SVG DOM.
-#include "dom/css.h"
-
-// For access to those parts from DOM2 Views OM used by SVG DOM.
-#include "dom/views.h"
-
-// For access to the SMIL OM used by SVG DOM.
-#include "dom/smil.h"
-
-
-#include <cstdio>
-#include <math.h>
-
-
-
-namespace org {
-namespace w3c {
-namespace dom {
-namespace svg {
-
-
-
-
-//local definitions
-typedef dom::DOMString DOMString;
-
-class SVGElement;
-typedef Ptr<SVGElement> SVGElementPtr;
-class SVGUseElement;
-typedef Ptr<SVGUseElement> SVGUseElementPtr;
-class SVGAnimatedPreserveAspectRatio;
-
-
-/*#########################################################################
-## SVGException
-#########################################################################*/
-
-/**
- *
- */
-class SVGException
-{
-public:
- // unsigned short code; //inherited
-};
-
- /**
- * SVGExceptionCode
- */
- typedef enum
- {
- SVG_WRONG_TYPE_ERR = 0,
- SVG_INVALID_VALUE_ERR = 1,
- SVG_MATRIX_NOT_INVERTABLE = 2
- } SVGExceptionCode;
-
-
-
-
-
-/*#########################################################################
-## SVGMatrix
-#########################################################################*/
-
-/**
- * In SVG, a Matrix is defined like this:
- *
- * | a c e |
- * | b d f |
- * | 0 0 1 |
- *
- */
-class SVGMatrix
-{
-public:
-
-
- /**
- *
- */
- virtual double getA()
- { return a; }
-
- /**
- *
- */
- virtual void setA(double val) throw (DOMException)
- { a = val; }
-
- /**
- *
- */
- virtual double getB()
- { return b; }
-
- /**
- *
- */
- virtual void setB(double val) throw (DOMException)
- { b = val; }
-
- /**
- *
- */
- virtual double getC()
- { return c; }
-
- /**
- *
- */
- virtual void setC(double val) throw (DOMException)
- { c = val; }
-
- /**
- *
- */
- virtual double getD()
- { return d; }
-
- /**
- *
- */
- virtual void setD(double val) throw (DOMException)
- { d = val; }
- /**
- *
- */
- virtual double getE()
- { return e; }
-
- /**
- *
- */
- virtual void setE(double val) throw (DOMException)
- { e = val; }
- /**
- *
- */
- virtual double getF()
- { return f; }
-
- /**
- *
- */
- virtual void setF(double val) throw (DOMException)
- { f = val; }
-
-
- /**
- * Return the result of postmultiplying this matrix with another.
- */
- virtual SVGMatrix multiply(const SVGMatrix &other)
- {
- SVGMatrix result;
- result.a = a * other.a + c * other.b;
- result.b = b * other.a + d * other.b;
- result.c = a * other.c + c * other.d;
- result.d = b * other.c + d * other.d;
- result.e = a * other.e + c * other.f + e;
- result.f = b * other.e + d * other.f + f;
- return result;
- }
-
- /**
- * Calculate the inverse of this matrix
- *
- */
- virtual SVGMatrix inverse( ) throw( SVGException )
- {
- /*###########################################
- The determinant of a 3x3 matrix E
- (let's use our own notation for a bit)
-
- A B C
- D E F
- G H I
- is
- AEI - AFH - BDI + BFG + CDH - CEG
-
- Since in our affine transforms, G and H==0 and I==1,
- this reduces to:
- AE - BD
- In SVG's naming scheme, that is: a * d - c * b . SIMPLE!
-
- In a similar method of attack, SVG's adjunct matrix is:
-
- d -c cf-ed
- -b a eb-af
- 0 0 ad-cb
-
- To get the inverse matrix, we divide the adjunct matrix by
- the determinant. Notice that (ad-cb)/(ad-cb)==1. Very cool.
- So what we end up with is this:
-
- a = d/(ad-cb) c = -c/(ad-cb) e = (cf-ed)/(ad-cb)
- b = -b/(ad-cb) d = a/(ad-cb) f = (eb-af)/(ad-cb)
-
- (Since this would be in all SVG-DOM implementations,
- somebody needed to document this! ^^ )
- #############################################*/
-
- SVGMatrix result;
- double determinant = a * d - c * b;
- if (determinant < 1.0e-18)//invertible?
- {
- result.identity();//cop out
- return result;
- }
-
- double idet = 1.0 / determinant;
- result.a = d * idet;
- result.b = -b * idet;
- result.c = -c * idet;
- result.d = a * idet;
- result.e = (c*f - e*d) * idet;
- result.f = (e*b - a*f) * idet;
- return result;
- }
-
- /**
- * Equivalent to multiplying by:
- * | 1 0 x |
- * | 0 1 y |
- * | 0 0 1 |
- *
- */
- virtual SVGMatrix translate(double x, double y )
- {
- SVGMatrix result;
- result.a = a;
- result.b = b;
- result.c = c;
- result.d = d;
- result.e = a * x + c * y + e;
- result.f = b * x + d * y + f;
- return result;
- }
-
- /**
- * Equivalent to multiplying by:
- * | scale 0 0 |
- * | 0 scale 0 |
- * | 0 0 1 |
- *
- */
- virtual SVGMatrix scale(double scale)
- {
- SVGMatrix result;
- result.a = a * scale;
- result.b = b * scale;
- result.c = c * scale;
- result.d = d * scale;
- result.e = e;
- result.f = f;
- return result;
- }
-
- /**
- * Equivalent to multiplying by:
- * | scaleX 0 0 |
- * | 0 scaleY 0 |
- * | 0 0 1 |
- *
- */
- virtual SVGMatrix scaleNonUniform(double scaleX,
- double scaleY )
- {
- SVGMatrix result;
- result.a = a * scaleX;
- result.b = b * scaleX;
- result.c = c * scaleY;
- result.d = d * scaleY;
- result.e = e;
- result.f = f;
- return result;
- }
-
- /**
- * Equivalent to multiplying by:
- * | cos(a) -sin(a) 0 |
- * | sin(a) cos(a) 0 |
- * | 0 0 1 |
- *
- */
- virtual SVGMatrix rotate (double angle)
- {
- double sina = sin(angle);
- double msina = -sina;
- double cosa = cos(angle);
- SVGMatrix result;
- result.a = a * cosa + c * sina;
- result.b = b * cosa + d + sina;
- result.c = a * msina + c * cosa;
- result.d = b * msina + d * cosa;
- result.e = e;
- result.f = f;
- return result;
- }
-
- /**
- * Equivalent to multiplying by:
- * | cos(a) -sin(a) 0 |
- * | sin(a) cos(a) 0 |
- * | 0 0 1 |
- * In this case, angle 'a' is computed as the artangent
- * of the slope y/x . It is negative if the slope is negative.
- */
- virtual SVGMatrix rotateFromVector(double x, double y)
- throw( SVGException )
- {
- double angle = atan(y / x);
- if (y < 0.0)
- angle = -angle;
- SVGMatrix result;
- double sina = sin(angle);
- double msina = -sina;
- double cosa = cos(angle);
- result.a = a * cosa + c * sina;
- result.b = b * cosa + d + sina;
- result.c = a * msina + c * cosa;
- result.d = b * msina + d * cosa;
- result.e = e;
- result.f = f;
- return result;
- }
-
- /**
- * Equivalent to multiplying by:
- * | -1 0 0 |
- * | 0 1 0 |
- * | 0 0 1 |
- *
- */
- virtual SVGMatrix flipX( )
- {
- SVGMatrix result;
- result.a = -a;
- result.b = -b;
- result.c = c;
- result.d = d;
- result.e = e;
- result.f = f;
- return result;
- }
-
- /**
- * Equivalent to multiplying by:
- * | 1 0 0 |
- * | 0 -1 0 |
- * | 0 0 1 |
- *
- */
- virtual SVGMatrix flipY( )
- {
- SVGMatrix result;
- result.a = a;
- result.b = b;
- result.c = -c;
- result.d = -d;
- result.e = e;
- result.f = f;
- return result;
- }
-
- /**
- * | 1 tan(a) 0 |
- * | 0 1 0 |
- * | 0 0 1 |
- *
- */
- virtual SVGMatrix skewX(double angle)
- {
- double tana = tan(angle);
- SVGMatrix result;
- result.a = a;
- result.b = b;
- result.c = a * tana + c;
- result.d = b * tana + d;
- result.e = e;
- result.f = f;
- return result;
- }
-
- /**
- * Equivalent to multiplying by:
- * | 1 0 0 |
- * | tan(a) 1 0 |
- * | 0 0 1 |
- *
- */
- virtual SVGMatrix skewY(double angle)
- {
- double tana = tan(angle);
- SVGMatrix result;
- result.a = a + c * tana;
- result.b = b + d * tana;
- result.c = c;
- result.d = d;
- result.e = e;
- result.f = f;
- return result;
- }
-
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- SVGMatrix()
- {
- identity();
- }
-
- /**
- *
- */
- SVGMatrix(double aArg, double bArg, double cArg,
- double dArg, double eArg, double fArg )
- {
- a = aArg; b = bArg; c = cArg;
- d = dArg; e = eArg; f = fArg;
- }
-
- /**
- * Copy constructor
- */
- SVGMatrix(const SVGMatrix &other)
- {
- a = other.a;
- b = other.b;
- c = other.c;
- d = other.d;
- e = other.e;
- f = other.f;
- }
-
-
-
- /**
- *
- */
- virtual ~SVGMatrix() {}
-
-protected:
-
-friend class SVGTransform;
-
- /*
- * Set to the identify matrix
- */
- void identity()
- {
- a = 1.0;
- b = 0.0;
- c = 0.0;
- d = 1.0;
- e = 0.0;
- f = 0.0;
- }
-
- double a, b, c, d, e, f;
-
-};
-
-
-/*#########################################################################
-## SVGTransform
-#########################################################################*/
-
-/**
- *
- */
-class SVGTransform
-{
-public:
-
- /**
- * Transform Types
- */
- typedef enum
- {
- SVG_TRANSFORM_UNKNOWN = 0,
- SVG_TRANSFORM_MATRIX = 1,
- SVG_TRANSFORM_TRANSLATE = 2,
- SVG_TRANSFORM_SCALE = 3,
- SVG_TRANSFORM_ROTATE = 4,
- SVG_TRANSFORM_SKEWX = 5,
- SVG_TRANSFORM_SKEWY = 6,
- } TransformType;
-
- /**
- *
- */
- virtual unsigned short getType()
- { return type; }
-
-
- /**
- *
- */
- virtual SVGMatrix getMatrix()
- {
- return matrix;
- }
-
- /**
- *
- */
- virtual double getAngle()
- {
- return angle;
- }
-
-
- /**
- *
- */
- virtual void setMatrix(const SVGMatrix &matrixArg)
- {
- type = SVG_TRANSFORM_MATRIX;
- matrix = matrixArg;
- }
-
- /**
- *
- */
- virtual void setTranslate (double tx, double ty )
- {
- type = SVG_TRANSFORM_TRANSLATE;
- matrix.setA(1.0);
- matrix.setB(0.0);
- matrix.setC(0.0);
- matrix.setD(1.0);
- matrix.setE(tx);
- matrix.setF(ty);
- }
-
- /**
- *
- */
- virtual void setScale (double sx, double sy )
- {
- type = SVG_TRANSFORM_SCALE;
- matrix.setA(sx);
- matrix.setB(0.0);
- matrix.setC(0.0);
- matrix.setD(sy);
- matrix.setE(0.0);
- matrix.setF(0.0);
- }
-
- /**
- *
- */
- virtual void setRotate (double angleArg, double cx, double cy)
- {
- angle = angleArg;
- setTranslate(cx, cy);
- type = SVG_TRANSFORM_ROTATE;
- matrix.rotate(angle);
- }
-
- /**
- *
- */
- virtual void setSkewX (double angleArg)
- {
- angle = angleArg;
- type = SVG_TRANSFORM_SKEWX;
- matrix.identity();
- matrix.skewX(angle);
- }
-
- /**
- *
- */
- virtual void setSkewY (double angleArg)
- {
- angle = angleArg;
- type = SVG_TRANSFORM_SKEWY;
- matrix.identity();
- matrix.skewY(angle);
- }
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- SVGTransform() :
- type (SVG_TRANSFORM_UNKNOWN),
- angle (0.0)
- {
- }
-
- /**
- *
- */
- SVGTransform(const SVGTransform &other) :
- type (other.type),
- angle (other.angle),
- matrix (other.matrix)
- {
- }
-
- /**
- *
- */
- virtual ~SVGTransform()
- {}
-
-protected:
-
- int type;
- double angle;
-
- SVGMatrix matrix;
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGTransformList
-#########################################################################*/
-
-/**
- *
- */
-class SVGTransformList
-{
-public:
-
-
- /**
- *
- */
- virtual unsigned long getNumberOfItems()
- { return items.size(); }
-
-
- /**
- *
- */
- virtual void clear( ) throw( DOMException )
- { items.clear(); }
-
- /**
- *
- */
- virtual SVGTransform initialize (const SVGTransform &newItem)
- throw( DOMException, SVGException )
- {
- items.clear();
- items.push_back(newItem);
- return newItem;
- }
-
- /**
- *
- */
- virtual SVGTransform getItem (unsigned long index )
- throw( DOMException )
- {
- if (index>=items.size())
- {
- SVGTransform transform;
- return transform;
- }
- return items[index];
- }
-
- /**
- *
- */
- virtual SVGTransform insertItemBefore (const SVGTransform &newItem,
- unsigned long index )
- throw( DOMException, SVGException )
- {
- if (index > items.size())
- items.push_back(newItem);
- else
- {
- std::vector<SVGTransform>::iterator iter = items.begin() + index;
- items.insert(iter, newItem);
- }
- return newItem;
- }
-
- /**
- *
- */
- virtual SVGTransform replaceItem (const SVGTransform &newItem,
- unsigned long index )
- throw( DOMException, SVGException )
- {
- if (index>=items.size())
- {
- SVGTransform transform;
- return transform;
- }
- else
- {
- std::vector<SVGTransform>::iterator iter = items.begin() + index;
- *iter = newItem;
- }
- return newItem;
- }
-
- /**
- *
- */
- virtual SVGTransform removeItem (unsigned long index )
- throw( DOMException )
- {
- if (index>=items.size())
- {
- SVGTransform transform;
- return transform;
- }
- std::vector<SVGTransform>::iterator iter = items.begin() + index;
- SVGTransform oldItem = *iter;
- items.erase(iter);
- return oldItem;
- }
-
- /**
- *
- */
- virtual SVGTransform appendItem (const SVGTransform &newItem)
- throw( DOMException, SVGException )
- {
- items.push_back(newItem);
- return newItem;
- }
-
- /**
- *
- */
- virtual SVGTransform createSVGTransformFromMatrix(const SVGMatrix &matrix)
- {
- SVGTransform transform;
- transform.setMatrix(matrix);
- return transform;
- }
-
- /**
- *
- */
- virtual SVGTransform consolidate()
- {
- SVGMatrix matrix;
- for (unsigned int i=0 ; i<items.size() ; i++)
- matrix = matrix.multiply(items[i].getMatrix());
- SVGTransform transform;
- transform.setMatrix(matrix);
- items.clear();
- items.push_back(transform);
- return transform;
- }
-
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- SVGTransformList()
- {}
-
- /**
- *
- */
- SVGTransformList(const SVGTransformList &other) :
- items (other.items)
- {
- }
-
- /**
- *
- */
- virtual ~SVGTransformList() {}
-
-protected:
-
- std::vector<SVGTransform> items;
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGAnimatedTransformList
-#########################################################################*/
-
-/**
- *
- */
-class SVGAnimatedTransformList
-{
-public:
-
- /**
- *
- */
- virtual SVGTransformList getBaseVal()
- { return baseVal; }
-
- /**
- *
- */
- virtual SVGTransformList getAnimVal()
- { return animVal; }
-
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- SVGAnimatedTransformList()
- {}
-
- /**
- *
- */
- SVGAnimatedTransformList(const SVGAnimatedTransformList &other) :
- baseVal (other.baseVal),
- animVal (other.animVal)
- {
- }
-
- /**
- *
- */
- virtual ~SVGAnimatedTransformList() {}
-
-protected:
-
- SVGTransformList baseVal;
- SVGTransformList animVal;
-
-};
-
-
-
-
-/*#########################################################################
-## SVGAnimatedBoolean
-#########################################################################*/
-
-/**
- *
- */
-class SVGAnimatedBoolean
-{
-public:
-
- /**
- *
- */
- virtual bool getBaseVal()
- {
- return baseVal;
- }
-
- /**
- *
- */
- virtual void setBaseVal(bool val) throw (DOMException)
- {
- baseVal = val;
- }
-
- /**
- *
- */
- virtual bool getAnimVal()
- {
- return animVal;
- }
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- SVGAnimatedBoolean()
- {
- baseVal = animVal = false;
- }
-
- /**
- *
- */
- SVGAnimatedBoolean(const SVGAnimatedBoolean &other)
- {
- baseVal = other.baseVal;
- animVal = other.animVal;
- }
-
- /**
- *
- */
- virtual ~SVGAnimatedBoolean() {}
-
-protected:
-
- bool baseVal, animVal;
-
-};
-
-
-
-
-/*#########################################################################
-## SVGAnimatedString
-#########################################################################*/
-
-/**
- *
- */
-class SVGAnimatedString
-{
-public:
-
- /**
- *
- */
- virtual DOMString getBaseVal()
- {
- return baseVal;
- }
-
- /**
- *
- */
- virtual void setBaseVal(const DOMString &val)
- throw (DOMException)
- {
- baseVal = val;
- }
-
- /**
- *
- */
- virtual DOMString getAnimVal()
- {
- return animVal;
- }
-
-
- //##################
- //# Non-API methods
- //##################
-
-
- /**
- *
- */
- SVGAnimatedString()
- {
- baseVal = "";
- animVal = "";
- }
-
- /**
- *
- */
- SVGAnimatedString(const SVGAnimatedString &other)
- {
- baseVal = other.baseVal;
- animVal = other.animVal;
- }
-
- /**
- *
- */
- virtual ~SVGAnimatedString() {}
-
-protected:
-
- DOMString baseVal, animVal;
-
-};
-
-
-
-
-
-/*#########################################################################
-## SVGStringList
-#########################################################################*/
-
-/**
- *
- */
-class SVGStringList
-{
-public:
-
-
- /**
- *
- */
- virtual unsigned long getNumberOfItems()
- {
- return items.size();
- }
-
- /**
- *
- */
- virtual void clear () throw( DOMException )
- {
- items.clear();
- }
-
- /**
- *
- */
- virtual DOMString initialize ( const DOMString& newItem )
- throw( DOMException, SVGException )
- {
- items.clear();
- items.push_back(newItem);
- return newItem;
- }
-
- /**
- *
- */
- virtual DOMString getItem ( unsigned long index )
- throw( DOMException )
- {
- if (index >= items.size())
- return "";
- return items[index];
- }
-
- /**
- *
- */
- virtual DOMString insertItemBefore ( const DOMString& newItem,
- unsigned long index )
- throw( DOMException, SVGException )
- {
- if (index>=items.size())
- {
- items.push_back(newItem);
- }
- else
- {
- std::vector<DOMString>::iterator iter = items.begin() + index;
- items.insert(iter, newItem);
- }
- return newItem;
- }
-
- /**
- *
- */
- virtual DOMString replaceItem ( const DOMString& newItem,
- unsigned long index )
- throw( DOMException, SVGException )
- {
- if (index>=items.size())
- return "";
- std::vector<DOMString>::iterator iter = items.begin() + index;
- *iter = newItem;
- return newItem;
- }
-
- /**
- *
- */
- virtual DOMString removeItem ( unsigned long index )
- throw( DOMException )
- {
- if (index>=items.size())
- return "";
- std::vector<DOMString>::iterator iter = items.begin() + index;
- DOMString oldstr = *iter;
- items.erase(iter);
- return oldstr;
- }
-
- /**
- *
- */
- virtual DOMString appendItem ( const DOMString& newItem )
- throw( DOMException, SVGException )
- {
- items.push_back(newItem);
- return newItem;
- }
-
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- SVGStringList() {}
-
- /**
- *
- */
- SVGStringList(const SVGStringList &other) :
- items (other.items)
- {
- }
-
- /**
- *
- */
- virtual ~SVGStringList() {}
-
-protected:
-
- std::vector<DOMString>items;
-
-};
-
-
-
-
-
-/*#########################################################################
-## SVGAnimatedEnumeration
-#########################################################################*/
-
-/**
- *
- */
-class SVGAnimatedEnumeration
-{
-public:
-
- /**
- *
- */
- virtual unsigned short getBaseVal()
- {
- return baseVal;
- }
-
- /**
- *
- */
- virtual void setBaseVal(unsigned short val)
- throw (DOMException)
- {
- baseVal = val;
- }
-
- /**
- *
- */
- virtual unsigned short getAnimVal()
- {
- return animVal;
- }
-
-
-
- //##################
- //# Non-API methods
- //##################
-
-
- /**
- *
- */
- SVGAnimatedEnumeration()
- {
- baseVal = animVal = 0;
- }
-
- /**
- *
- */
- SVGAnimatedEnumeration(const SVGAnimatedEnumeration &other)
- {
- baseVal = other.baseVal;
- animVal = other.animVal;
- }
-
- /**
- *
- */
- virtual ~SVGAnimatedEnumeration() {}
-
-protected:
-
- int baseVal, animVal;
-
-};
-
-
-
-
-
-/*#########################################################################
-## SVGAnimatedInteger
-#########################################################################*/
-
-/**
- *
- */
-class SVGAnimatedInteger
-{
-public:
-
-
- /**
- *
- */
- virtual long getBaseVal()
- {
- return baseVal;
- }
-
- /**
- *
- */
- virtual void setBaseVal(long val) throw (DOMException)
- {
- baseVal = val;
- }
-
- /**
- *
- */
- virtual long getAnimVal()
- {
- return animVal;
- }
-
-
-
- //##################
- //# Non-API methods
- //##################
-
-
- /**
- *
- */
- SVGAnimatedInteger()
- { baseVal = animVal = 0L;}
-
-
- /**
- *
- */
- SVGAnimatedInteger(long value)
- {
- baseVal = value;
- animVal = 0L;
- }
-
- /**
- *
- */
- SVGAnimatedInteger(long baseValArg, long animValArg)
- {
- baseVal = baseValArg;
- animVal = animValArg;
- }
-
-
- /**
- *
- */
- SVGAnimatedInteger(const SVGAnimatedInteger &other)
- {
- baseVal = other.baseVal;
- animVal = other.animVal;
- }
-
- /**
- *
- */
- virtual ~SVGAnimatedInteger() {}
-
-protected:
-
- long baseVal, animVal;
-
-};
-
-
-
-
-
-/*#########################################################################
-## SVGNumber
-#########################################################################*/
-
-/**
- *
- */
-class SVGNumber
-{
-public:
-
-
- /**
- *
- */
- virtual double getValue()
- {
- return value;
- }
-
- /**
- *
- */
- virtual void setValue(double val) throw (DOMException)
- {
- value = val;
- }
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- SVGNumber()
- {
- value = 0.0;
- }
-
- /**
- *
- */
- SVGNumber(const SVGNumber &other)
- {
- value = other.value;
- }
-
- /**
- *
- */
- virtual ~SVGNumber() {}
-
-protected:
-
- double value;
-
-};
-
-
-
-
-
-/*#########################################################################
-## SVGAnimatedNumber
-#########################################################################*/
-
-/**
- *
- */
-class SVGAnimatedNumber
-{
-public:
-
-
-
- /**
- *
- */
- virtual double getBaseVal()
- {
- return baseVal;
- }
-
- /**
- *
- */
- virtual void setBaseVal(double val) throw (DOMException)
- {
- baseVal = val;
- }
-
- /**
- *
- */
- virtual double getAnimVal()
- {
- return animVal;
- }
-
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- SVGAnimatedNumber()
- {
- baseVal = animVal = 0.0;
- }
-
-
- /**
- *
- */
- SVGAnimatedNumber(double val)
- {
- baseVal = val;
- animVal = 0.0;
- }
-
-
- /**
- *
- */
- SVGAnimatedNumber(double baseValArg, double animValArg)
- {
- baseVal = baseValArg;
- animVal = animValArg;
- }
-
- /**
- *
- */
- SVGAnimatedNumber(const SVGAnimatedNumber &other)
- {
- baseVal = other.baseVal;
- animVal = other.animVal;
- }
-
- /**
- *
- */
- virtual ~SVGAnimatedNumber() {}
-
-protected:
-
- double baseVal, animVal;
-
-};
-
-
-
-
-
-/*#########################################################################
-## SVGNumberList
-#########################################################################*/
-
-/**
- *
- */
-class SVGNumberList
-{
-public:
-
- /**
- *
- */
- virtual unsigned long getNumberOfItems()
- {
- return items.size();
- }
-
-
- /**
- *
- */
- virtual void clear() throw( DOMException )
- {
- items.clear();
- }
-
- /**
- *
- */
- virtual SVGNumber initialize (const SVGNumber &newItem)
- throw( DOMException, SVGException )
- {
- items.clear();
- items.push_back(newItem);
- return newItem;
- }
-
- /**
- *
- */
- virtual SVGNumber getItem ( unsigned long index )
- throw( DOMException )
- {
- if (index>=items.size())
- {
- SVGNumber num;
- return num;
- }
- return items[index];
- }
-
- /**
- *
- */
- virtual SVGNumber insertItemBefore ( const SVGNumber &newItem,
- unsigned long index )
- throw( DOMException, SVGException )
- {
- if (index>=items.size())
- {
- items.push_back(newItem);
- }
- else
- {
- std::vector<SVGNumber>::iterator iter = items.begin() + index;
- items.insert(iter, newItem);
- }
- return newItem;
- }
-
- /**
- *
- */
- virtual SVGNumber replaceItem ( const SVGNumber &newItem,
- unsigned long index )
- throw( DOMException, SVGException )
- {
- if (index>=items.size())
- {
- SVGNumber num;
- return num;
- }
- std::vector<SVGNumber>::iterator iter = items.begin() + index;
- *iter = newItem;
- return newItem;
- }
-
- /**
- *
- */
- virtual SVGNumber removeItem ( unsigned long index )
- throw( DOMException )
- {
- if (index>=items.size())
- {
- SVGNumber num;
- return num;
- }
- std::vector<SVGNumber>::iterator iter = items.begin() + index;
- SVGNumber oldval = *iter;
- items.erase(iter);
- return oldval;
- }
-
- /**
- *
- */
- virtual SVGNumber appendItem ( const SVGNumber &newItem )
- throw( DOMException, SVGException )
- {
- items.push_back(newItem);
- return newItem;
- }
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- SVGNumberList() {}
-
- /**
- *
- */
- SVGNumberList(const SVGNumberList &other) :
- items (other.items)
- {
- }
-
- /**
- *
- */
- virtual ~SVGNumberList() {}
-
-protected:
-
- std::vector<SVGNumber>items;
-
-};
-
-
-
-
-
-/*#########################################################################
-## SVGAnimatedNumberList
-#########################################################################*/
-
-/**
- *
- */
-class SVGAnimatedNumberList
-{
-public:
-
-
- /**
- *
- */
- virtual SVGNumberList &getBaseVal()
- {
- return baseVal;
- }
-
- /**
- *
- */
- virtual SVGNumberList &getAnimVal()
- {
- return animVal;
- }
-
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- SVGAnimatedNumberList() {}
-
- /**
- *
- */
- SVGAnimatedNumberList(const SVGAnimatedNumberList &other) :
- baseVal (other.baseVal),
- animVal (other.animVal)
- {
- }
-
- /**
- *
- */
- virtual ~SVGAnimatedNumberList() {}
-
-protected:
-
- SVGNumberList baseVal;
- SVGNumberList animVal;
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGLength
-#########################################################################*/
-
-/**
- *
- */
-class SVGLength
-{
-public:
-
- /**
- * Length Unit Types
- */
- typedef enum
- {
- SVG_LENGTHTYPE_UNKNOWN = 0,
- SVG_LENGTHTYPE_NUMBER = 1,
- SVG_LENGTHTYPE_PERCENTAGE = 2,
- SVG_LENGTHTYPE_EMS = 3,
- SVG_LENGTHTYPE_EXS = 4,
- SVG_LENGTHTYPE_PX = 5,
- SVG_LENGTHTYPE_CM = 6,
- SVG_LENGTHTYPE_MM = 7,
- SVG_LENGTHTYPE_IN = 8,
- SVG_LENGTHTYPE_PT = 9,
- SVG_LENGTHTYPE_PC = 10
- } LengthUnitType;
-
-
- /**
- *
- */
- virtual unsigned short getUnitType( )
- {
- return unitType;
- }
-
- /**
- *
- */
- virtual double getValue( )
- {
- return value;
- }
-
- /**
- *
- */
- virtual void setValue( double val ) throw (DOMException)
- {
- value = val;
- }
-
- /**
- *
- */
- virtual double getValueInSpecifiedUnits( )
- {
- double result = 0.0;
- //fill this in
- return result;
- }
-
- /**
- *
- */
- virtual void setValueInSpecifiedUnits( double /*val*/ )
- throw (DOMException)
- {
- //fill this in
- }
-
- /**
- *
- */
- virtual DOMString getValueAsString( )
- {
- DOMString ret;
- char buf[32];
- snprintf(buf, 31, "%f", value);
- ret.append(buf);
- return ret;
- }
-
- /**
- *
- */
- virtual void setValueAsString( const DOMString& /*val*/ )
- throw (DOMException)
- {
- }
-
-
- /**
- *
- */
- virtual void newValueSpecifiedUnits ( unsigned short /*unitType*/, double /*val*/ )
- {
- }
-
- /**
- *
- */
- virtual void convertToSpecifiedUnits ( unsigned short /*unitType*/ )
- {
- }
-
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- SVGLength()
- {
- unitType = SVG_LENGTHTYPE_UNKNOWN;
- value = 0.0;
- }
-
-
- /**
- *
- */
- SVGLength(const SVGLength &other)
- {
- unitType = other.unitType;
- value = other.value;
- }
-
- /**
- *
- */
- virtual ~SVGLength() {}
-
-protected:
-
- int unitType;
-
- double value;
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGAnimatedLength
-#########################################################################*/
-
-/**
- *
- */
-class SVGAnimatedLength
-{
-public:
-
- /**
- *
- */
- virtual SVGLength &getBaseVal()
- {
- return baseVal;
- }
-
- /**
- *
- */
- virtual SVGLength &getAnimVal()
- {
- return animVal;
- }
-
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- SVGAnimatedLength() {}
-
- /**
- *
- */
- SVGAnimatedLength(const SVGAnimatedLength &other) :
- baseVal (other.baseVal),
- animVal (other.animVal)
- {
- }
-
- /**
- *
- */
- virtual ~SVGAnimatedLength() {}
-
-protected:
-
- SVGLength baseVal, animVal;
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGLengthList
-#########################################################################*/
-
-/**
- *
- */
-class SVGLengthList
-{
-public:
-
- /**
- *
- */
- virtual unsigned long getNumberOfItems()
- {
- return items.size();
- }
-
-
- /**
- *
- */
- virtual void clear ( ) throw( DOMException )
- {
- items.clear();
- }
-
- /**
- *
- */
- virtual SVGLength initialize (const SVGLength &newItem )
- throw( DOMException, SVGException )
- {
- items.clear();
- items.push_back(newItem);
- return newItem;
- }
-
- /**
- *
- */
- virtual SVGLength getItem (unsigned long index)
- throw( DOMException )
- {
- if (index>=items.size())
- {
- SVGLength ret;
- return ret;
- }
- return items[index];
- }
-
- /**
- *
- */
- virtual SVGLength insertItemBefore (const SVGLength &newItem,
- unsigned long index )
- throw( DOMException, SVGException )
- {
- if (index>=items.size())
- {
- items.push_back(newItem);
- }
- else
- {
- std::vector<SVGLength>::iterator iter = items.begin() + index;
- items.insert(iter, newItem);
- }
- return newItem;
- }
-
- /**
- *
- */
- virtual SVGLength replaceItem (const SVGLength &newItem,
- unsigned long index )
- throw( DOMException, SVGException )
- {
- if (index>=items.size())
- {
- SVGLength ret;
- return ret;
- }
- std::vector<SVGLength>::iterator iter = items.begin() + index;
- *iter = newItem;
- return newItem;
- }
-
- /**
- *
- */
- virtual SVGLength removeItem (unsigned long index )
- throw( DOMException )
- {
- if (index>=items.size())
- {
- SVGLength ret;
- return ret;
- }
- std::vector<SVGLength>::iterator iter = items.begin() + index;
- SVGLength oldval = *iter;
- items.erase(iter);
- return oldval;
- }
-
- /**
- *
- */
- virtual SVGLength appendItem (const SVGLength &newItem )
- throw( DOMException, SVGException )
- {
- items.push_back(newItem);
- return newItem;
- }
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- SVGLengthList() {}
-
- /**
- *
- */
- SVGLengthList(const SVGLengthList &other) :
- items (other.items)
- {
- }
-
- /**
- *
- */
- virtual ~SVGLengthList() {}
-
-protected:
-
- std::vector<SVGLength>items;
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGAnimatedLengthList
-#########################################################################*/
-
-/**
- *
- */
-class SVGAnimatedLengthList
-{
-public:
-
- /**
- *
- */
- virtual SVGLengthList &getBaseVal()
- {
- return baseVal;
- }
-
- /**
- *
- */
- virtual SVGLengthList &getAnimVal()
- {
- return animVal;
- }
-
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- SVGAnimatedLengthList() {}
-
- /**
- *
- */
- SVGAnimatedLengthList(const SVGAnimatedLengthList &other) :
- baseVal (other.baseVal),
- animVal (other.animVal)
- {
- }
-
- /**
- *
- */
- virtual ~SVGAnimatedLengthList() {}
-
-protected:
-
- SVGLengthList baseVal, animVal;
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGAngle
-#########################################################################*/
-
-/**
- *
- */
-class SVGAngle
-{
-public:
-
- /**
- * Angle Unit Types
- */
- typedef enum
- {
- SVG_ANGLETYPE_UNKNOWN = 0,
- SVG_ANGLETYPE_UNSPECIFIED = 1,
- SVG_ANGLETYPE_DEG = 2,
- SVG_ANGLETYPE_RAD = 3,
- SVG_ANGLETYPE_GRAD = 4
- } AngleUnitType;
-
-
-
- /**
- *
- */
- virtual unsigned short getUnitType()
- {
- return unitType;
- }
-
- /**
- *
- */
- virtual double getValue()
- {
- return value;
- }
-
- /**
- *
- */
- virtual void setValue(double val) throw (DOMException)
- {
- value = val;
- }
-
- /**
- *
- */
- virtual double getValueInSpecifiedUnits()
- {
- double result = 0.0;
- //convert here
- return result;
- }
-
- /**
- *
- */
- virtual void setValueInSpecifiedUnits(double /*val*/)
- throw (DOMException)
- {
- //do conversion
- }
-
- /**
- *
- */
- virtual DOMString getValueAsString()
- {
- DOMString result;
- char buf[32];
- snprintf(buf, 31, "%f", value);
- result.append(buf);
- return result;
- }
-
- /**
- *
- */
- virtual void setValueAsString(const DOMString &/*val*/)
- throw (DOMException)
- {
- //convert here
- }
-
-
- /**
- *
- */
- virtual void newValueSpecifiedUnits (unsigned short /*unitType*/,
- double /*valueInSpecifiedUnits*/ )
- {
- //convert here
- }
-
- /**
- *
- */
- virtual void convertToSpecifiedUnits (unsigned short /*unitType*/ )
- {
- //convert here
- }
-
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- SVGAngle()
- {
- unitType = SVG_ANGLETYPE_UNKNOWN;
- value = 0.0;
- }
-
- /**
- *
- */
- SVGAngle(const SVGAngle &other)
- {
- unitType = other.unitType;
- value = other.value;
- }
-
- /**
- *
- */
- virtual ~SVGAngle() {}
-
-protected:
-
- int unitType;
-
- double value;
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGAnimatedAngle
-#########################################################################*/
-
-/**
- *
- */
-class SVGAnimatedAngle
-{
-public:
-
- /**
- *
- */
- virtual SVGAngle getBaseVal()
- {
- return baseVal;
- }
-
- /**
- *
- */
- virtual SVGAngle getAnimVal()
- {
- return animVal;
- }
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- SVGAnimatedAngle() {}
-
- /**
- *
- */
- SVGAnimatedAngle(const SVGAngle &angle) :
- baseVal (angle)
- {}
-
- /**
- *
- */
- SVGAnimatedAngle(const SVGAnimatedAngle &other) :
- baseVal (other.baseVal),
- animVal (other.animVal)
- {
- }
-
- /**
- *
- */
- virtual ~SVGAnimatedAngle() {}
-
-protected:
-
- SVGAngle baseVal, animVal;
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGICCColor
-#########################################################################*/
-
-/**
- *
- */
-class SVGICCColor
-{
-public:
-
- /**
- *
- */
- virtual DOMString getColorProfile()
- {
- return colorProfile;
- }
-
- /**
- *
- */
- virtual void setColorProfile(const DOMString &val) throw (DOMException)
- {
- colorProfile = val;
- }
-
- /**
- *
- */
- virtual SVGNumberList &getColors()
- {
- return colors;
- }
-
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- SVGICCColor() {}
-
- /**
- *
- */
- SVGICCColor(const SVGICCColor &other) :
- colorProfile (other.colorProfile),
- colors (other.colors)
- {
- }
-
- /**
- *
- */
- virtual ~SVGICCColor() {}
-
-protected:
-
- DOMString colorProfile;
- SVGNumberList colors;
-
-};
-
-
-/*#########################################################################
-## SVGColor
-#########################################################################*/
-
-/**
- *
- */
-class SVGColor : virtual public css::CSSValue
-{
-public:
-
-
- /**
- * Color Types
- */
- typedef enum
- {
- SVG_COLORTYPE_UNKNOWN = 0,
- SVG_COLORTYPE_RGBCOLOR = 1,
- SVG_COLORTYPE_RGBCOLOR_ICCCOLOR = 2,
- SVG_COLORTYPE_CURRENTCOLOR = 3
- } ColorType;
-
-
- /**
- *
- */
- virtual unsigned short getColorType()
- {
- return colorType;
- }
-
- /**
- *
- */
- virtual css::RGBColor getRgbColor()
- {
- css::RGBColor col;
- return col;
- }
-
- /**
- *
- */
- virtual SVGICCColor getIccColor()
- {
- SVGICCColor col;
- return col;
- }
-
-
- /**
- *
- */
- virtual void setRGBColor (const DOMString& /*rgbColor*/ )
- throw( SVGException )
- {
- }
-
- /**
- *
- */
- virtual void setRGBColorICCColor (const DOMString& /*rgbColor*/,
- const DOMString& /*iccColor*/ )
- throw( SVGException )
- {
- }
-
- /**
- *
- */
- virtual void setColor (unsigned short /*colorType*/,
- const DOMString& /*rgbColor*/,
- const DOMString& /*iccColor*/ )
- throw( SVGException )
- {
- }
-
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- SVGColor()
- {
- colorType = SVG_COLORTYPE_UNKNOWN;
- }
-
- /**
- *
- */
- SVGColor(const SVGColor &other) : css::CSSValue(other)
- {
- colorType = other.colorType;
- }
-
- /**
- *
- */
- virtual ~SVGColor() {}
-
-protected:
-
- int colorType;
-
-};
-
-
-
-
-
-
-
-
-
-
-/*#########################################################################
-## SVGRect
-#########################################################################*/
-
-/**
- *
- */
-class SVGRect
-{
-public:
-
- /**
- *
- */
- virtual double getX()
- {
- return x;
- }
-
- /**
- *
- */
- virtual void setX(double val) throw (DOMException)
- {
- x = val;
- }
-
- /**
- *
- */
- virtual double getY()
- {
- return y;
- }
-
- /**
- *
- */
- virtual void setY(double val) throw (DOMException)
- {
- y = val;
- }
-
- /**
- *
- */
- virtual double getWidth()
- {
- return width;
- }
-
- /**
- *
- */
- virtual void setWidth(double val) throw (DOMException)
- {
- width = val;
- }
-
- /**
- *
- */
- virtual double getHeight()
- {
- return height;
- }
-
- /**
- *
- */
- virtual void setHeight(double val) throw (DOMException)
- {
- height = val;
- }
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- SVGRect()
- {
- x = y = width = height = 0.0;
- }
-
- /**
- *
- */
- SVGRect(const SVGRect &other)
- {
- x = other.x;
- y = other.y;
- width = other.width;
- height = other.height;
- }
-
- /**
- *
- */
- virtual ~SVGRect() {}
-
-protected:
-
- double x, y, width, height;
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGAnimatedRect
-#########################################################################*/
-
-/**
- *
- */
-class SVGAnimatedRect
-{
-public:
-
- /**
- *
- */
- virtual SVGRect &getBaseVal()
- {
- return baseVal;
- }
-
- /**
- *
- */
- virtual SVGRect &getAnimVal()
- {
- return animVal;
- }
-
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- SVGAnimatedRect()
- {
- }
-
- /**
- *
- */
- SVGAnimatedRect(const SVGAnimatedRect &other) :
- baseVal (other.baseVal),
- animVal (other.animVal)
- {
- }
-
- /**
- *
- */
- virtual ~SVGAnimatedRect() {}
-
-protected:
-
- SVGRect baseVal, animVal;
-
-};
-
-
-
-/*#########################################################################
-## SVGPoint
-#########################################################################*/
-
-/**
- *
- */
-class SVGPoint
-{
-public:
-
-
-
- /**
- *
- */
- virtual double getX()
- { return x; }
-
- /**
- *
- */
- virtual void setX(double val) throw (DOMException)
- { x = val; }
-
- /**
- *
- */
- virtual double getY()
- { return y; }
-
- /**
- *
- */
- virtual void setY(double val) throw (DOMException)
- { y = val; }
-
- /**
- *
- */
- virtual SVGPoint matrixTransform(const SVGMatrix &/*matrix*/)
- {
- SVGPoint point;
- return point;
- }
-
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- SVGPoint()
- { x = y = 0; }
-
- /**
- *
- */
- SVGPoint(const SVGPoint &other)
- {
- x = other.x;
- y = other.y;
- }
-
- /**
- *
- */
- virtual ~SVGPoint() {}
-
-protected:
-
- double x, y;
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGPointList
-#########################################################################*/
-
-/**
- *
- */
-class SVGPointList
-{
-public:
-
- /**
- *
- */
- virtual unsigned long getNumberOfItems()
- { return items.size(); }
-
- /**
- *
- */
- virtual void clear() throw( DOMException )
- { items.clear(); }
-
- /**
- *
- */
- virtual SVGPoint initialize(const SVGPoint &newItem)
- throw( DOMException, SVGException )
- {
- items.clear();
- items.push_back(newItem);
- return newItem;
- }
-
- /**
- *
- */
- virtual SVGPoint getItem(unsigned long index )
- throw( DOMException )
- {
- if (index >= items.size())
- {
- SVGPoint point;
- return point;
- }
- return items[index];
- }
-
- /**
- *
- */
- virtual SVGPoint insertItemBefore(const SVGPoint &newItem,
- unsigned long index )
- throw( DOMException, SVGException )
- {
- if (index >= items.size())
- items.push_back(newItem);
- else
- {
- std::vector<SVGPoint>::iterator iter = items.begin() + index;
- items.insert(iter, newItem);
- }
- return newItem;
- }
-
- /**
- *
- */
- virtual SVGPoint replaceItem(const SVGPoint &newItem,
- unsigned long index )
- throw( DOMException, SVGException )
- {
- if (index >= items.size())
- {
- SVGPoint point;
- return point;
- }
- std::vector<SVGPoint>::iterator iter = items.begin() + index;
- *iter = newItem;
- return newItem;
- }
-
- /**
- *
- */
- virtual SVGPoint removeItem(unsigned long index )
- throw( DOMException )
- {
- if (index >= items.size())
- {
- SVGPoint point;
- return point;
- }
- std::vector<SVGPoint>::iterator iter = items.begin() + index;
- SVGPoint oldItem = *iter;
- items.erase(iter);
- return oldItem;
- }
-
- /**
- *
- */
- virtual SVGPoint appendItem(const SVGPoint &newItem)
- throw( DOMException, SVGException )
- {
- items.push_back(newItem);
- return newItem;
- }
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- SVGPointList() {}
-
-
- /**
- *
- */
- SVGPointList(const SVGPointList &other) :
- items (other.items)
- {
- }
-
-
- /**
- *
- */
- virtual ~SVGPointList() {}
-
-protected:
-
- std::vector<SVGPoint> items;
-
-};
-
-
-
-
-/*#########################################################################
-## SVGUnitTypes
-#########################################################################*/
-
-/**
- *
- */
-class SVGUnitTypes
-{
-public:
-
- /**
- * Unit Types
- */
- typedef enum
- {
- SVG_UNIT_TYPE_UNKNOWN = 0,
- SVG_UNIT_TYPE_USERSPACEONUSE = 1,
- SVG_UNIT_TYPE_OBJECTBOUNDINGBOX = 2
- } UnitType;
-
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- SVGUnitTypes() {}
-
- /**
- *
- */
- virtual ~SVGUnitTypes() {}
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGStylable
-#########################################################################*/
-
-/**
- *
- */
-class SVGStylable
-{
-public:
-
- /**
- *
- */
- virtual SVGAnimatedString getClassName()
- {
- return className;
- }
-
- /**
- *
- */
- virtual css::CSSStyleDeclaration getStyle()
- {
- return style;
- }
-
-
- /**
- *
- */
- virtual css::CSSValue getPresentationAttribute (const DOMString& /*name*/ )
- {
- css::CSSValue val;
- //perform a lookup
- return val;
- }
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- SVGStylable() {}
-
- /**
- *
- */
- SVGStylable(const SVGStylable &other) :
- className (other.className),
- style (other.style)
- {
- }
-
- /**
- *
- */
- virtual ~SVGStylable() {}
-
-protected:
-
- SVGAnimatedString className;
- css::CSSStyleDeclaration style;
-
-};
-
-
-/*#########################################################################
-## SVGLocatable
-#########################################################################*/
-
-/**
- *
- */
-class SVGLocatable
-{
-public:
-
- /**
- *
- */
- virtual SVGElementPtr getNearestViewportElement()
- {
- SVGElementPtr result;
- return result;
- }
-
- /**
- *
- */
- virtual SVGElementPtr getFarthestViewportElement()
- {
- SVGElementPtr result;
- return result;
- }
-
- /**
- *
- */
- virtual SVGRect getBBox ( )
- {
- return bbox;
- }
-
- /**
- *
- */
- virtual SVGMatrix getCTM ( )
- {
- return ctm;
- }
-
- /**
- *
- */
- virtual SVGMatrix getScreenCTM ( )
- {
- return screenCtm;
- }
-
- /**
- *
- */
- virtual SVGMatrix getTransformToElement (const SVGElement &/*element*/)
- throw( SVGException )
- {
- SVGMatrix result;
- //do calculations
- return result;
- }
-
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- SVGLocatable() {}
-
- /**
- *
- */
- SVGLocatable(const SVGLocatable &/*other*/) :
- bbox(),
- ctm(),
- screenCtm()
- {
- }
-
- /**
- *
- */
- virtual ~SVGLocatable() {}
-
-protected:
-
- SVGRect bbox;
- SVGMatrix ctm;
- SVGMatrix screenCtm;
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGTransformable
-#########################################################################*/
-
-/**
- *
- */
-class SVGTransformable : public SVGLocatable
-{
-public:
-
-
- /**
- *
- */
- virtual SVGAnimatedTransformList &getTransform()
- {
- return transforms;
- }
-
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- SVGTransformable() {}
-
- /**
- *
- */
- SVGTransformable(const SVGTransformable &other) : SVGLocatable(other),
- transforms (other.transforms)
- {
- }
-
- /**
- *
- */
- virtual ~SVGTransformable() {}
-
-protected:
-
- SVGAnimatedTransformList transforms;
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGTests
-#########################################################################*/
-
-/**
- *
- */
-class SVGTests
-{
-public:
-
-
- /**
- *
- */
- virtual SVGStringList &getRequiredFeatures()
- {
- return requiredFeatures;
- }
-
- /**
- *
- */
- virtual SVGStringList &getRequiredExtensions()
- {
- return requiredExtensions;
- }
-
- /**
- *
- */
- virtual SVGStringList &getSystemLanguage()
- {
- return systemLanguage;
- }
-
-
- /**
- *
- */
- virtual bool hasExtension (const DOMString& /*extension*/ )
- {
- return false;
- }
-
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- SVGTests() {}
-
- /**
- *
- */
- SVGTests(const SVGTests &other) :
- requiredFeatures (other.requiredFeatures),
- requiredExtensions (other.requiredExtensions),
- systemLanguage (other.systemLanguage)
- {
- }
-
- /**
- *
- */
- virtual ~SVGTests() {}
-
-protected:
-
- SVGStringList requiredFeatures;
- SVGStringList requiredExtensions;
- SVGStringList systemLanguage;
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGLangSpace
-#########################################################################*/
-
-/**
- *
- */
-class SVGLangSpace
-{
-public:
-
-
- /**
- *
- */
- virtual DOMString getXmllang()
- {
- return xmlLang;
- }
-
- /**
- *
- */
- virtual void setXmllang(const DOMString &val)
- throw (DOMException)
- {
- xmlLang = val;
- }
-
- /**
- *
- */
- virtual DOMString getXmlspace()
- {
- return xmlSpace;
- }
-
- /**
- *
- */
- virtual void setXmlspace(const DOMString &val)
- throw (DOMException)
- {
- xmlSpace = val;
- }
-
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- SVGLangSpace() {}
-
- /**
- *
- */
- SVGLangSpace(const SVGLangSpace &other)
- {
- xmlLang = other.xmlLang;
- xmlSpace = other.xmlSpace;
- }
-
- /**
- *
- */
- virtual ~SVGLangSpace() {}
-
-protected:
-
- DOMString xmlLang;
- DOMString xmlSpace;
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGExternalResourcesRequired
-#########################################################################*/
-
-/**
- *
- */
-class SVGExternalResourcesRequired
-{
-public:
-
-
- /**
- *
- */
- virtual SVGAnimatedBoolean getExternalResourcesRequired()
- { return required; }
-
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- SVGExternalResourcesRequired()
- { }
-
-
- /**
- *
- */
- SVGExternalResourcesRequired(const SVGExternalResourcesRequired &other) :
- required (other.required)
- {
- }
-
- /**
- *
- */
- virtual ~SVGExternalResourcesRequired() {}
-
-protected:
-
- SVGAnimatedBoolean required;
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGPreserveAspectRatio
-#########################################################################*/
-
-/**
- *
- */
-class SVGPreserveAspectRatio
-{
-public:
-
-
- /**
- * Alignment Types
- */
- typedef enum
- {
- SVG_PRESERVEASPECTRATIO_UNKNOWN = 0,
- SVG_PRESERVEASPECTRATIO_NONE = 1,
- SVG_PRESERVEASPECTRATIO_XMINYMIN = 2,
- SVG_PRESERVEASPECTRATIO_XMIDYMIN = 3,
- SVG_PRESERVEASPECTRATIO_XMAXYMIN = 4,
- SVG_PRESERVEASPECTRATIO_XMINYMID = 5,
- SVG_PRESERVEASPECTRATIO_XMIDYMID = 6,
- SVG_PRESERVEASPECTRATIO_XMAXYMID = 7,
- SVG_PRESERVEASPECTRATIO_XMINYMAX = 8,
- SVG_PRESERVEASPECTRATIO_XMIDYMAX = 9,
- SVG_PRESERVEASPECTRATIO_XMAXYMAX = 10
- } AlignmentType;
-
-
- /**
- * Meet-or-slice Types
- */
- typedef enum
- {
- SVG_MEETORSLICE_UNKNOWN = 0,
- SVG_MEETORSLICE_MEET = 1,
- SVG_MEETORSLICE_SLICE = 2
- } MeetOrSliceType;
-
-
- /**
- *
- */
- virtual unsigned short getAlign()
- { return align; }
-
- /**
- *
- */
- virtual void setAlign(unsigned short val) throw (DOMException)
- { align = val; }
-
- /**
- *
- */
- virtual unsigned short getMeetOrSlice()
- { return meetOrSlice; }
-
- /**
- *
- */
- virtual void setMeetOrSlice(unsigned short val) throw (DOMException)
- { meetOrSlice = val; }
-
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- SVGPreserveAspectRatio()
- {
- align = SVG_PRESERVEASPECTRATIO_UNKNOWN;
- meetOrSlice = SVG_MEETORSLICE_UNKNOWN;
- }
-
- /**
- *
- */
- SVGPreserveAspectRatio(const SVGPreserveAspectRatio &other)
- {
- align = other.align;
- meetOrSlice = other.meetOrSlice;
- }
-
- /**
- *
- */
- virtual ~SVGPreserveAspectRatio() {}
-
-protected:
-
- unsigned short align;
- unsigned short meetOrSlice;
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGAnimatedPreserveAspectRatio
-#########################################################################*/
-
-/**
- *
- */
-class SVGAnimatedPreserveAspectRatio
-{
-public:
-
-
- /**
- *
- */
- virtual SVGPreserveAspectRatio getBaseVal()
- { return baseVal; }
-
- /**
- *
- */
- virtual SVGPreserveAspectRatio getAnimVal()
- { return animVal; }
-
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- SVGAnimatedPreserveAspectRatio() {}
-
- /**
- *
- */
- SVGAnimatedPreserveAspectRatio(const SVGAnimatedPreserveAspectRatio &other) :
- baseVal (other.baseVal),
- animVal (other.animVal)
- {
- }
-
- /**
- *
- */
- virtual ~SVGAnimatedPreserveAspectRatio() {}
-
-protected:
-
- SVGPreserveAspectRatio baseVal;
- SVGPreserveAspectRatio animVal;
-
-};
-
-
-
-
-/*#########################################################################
-## SVGFitToViewBox
-#########################################################################*/
-
-/**
- *
- */
-class SVGFitToViewBox
-{
-public:
-
- /**
- *
- */
- virtual SVGAnimatedRect getViewBox()
- { return viewBox; }
-
- /**
- *
- */
- virtual SVGAnimatedPreserveAspectRatio getPreserveAspectRatio()
- { return preserveAspectRatio; }
-
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- SVGFitToViewBox()
- {}
-
- /**
- *
- */
-
- SVGFitToViewBox(const SVGFitToViewBox &other) :
- viewBox (other.viewBox),
- preserveAspectRatio (other.preserveAspectRatio)
- {
- }
-
- /**
- *
- */
- virtual ~SVGFitToViewBox() {}
-
-protected:
-
- SVGAnimatedRect viewBox;
- SVGAnimatedPreserveAspectRatio preserveAspectRatio;
-
-};
-
-
-/*#########################################################################
-## SVGZoomAndPan
-#########################################################################*/
-
-/**
- *
- */
-class SVGZoomAndPan
-{
-public:
-
-
- /**
- * Zoom and Pan Types
- */
- typedef enum
- {
- SVG_ZOOMANDPAN_UNKNOWN = 0,
- SVG_ZOOMANDPAN_DISABLE = 1,
- SVG_ZOOMANDPAN_MAGNIFY = 2
- } ZoomAndPanType;
-
-
- /**
- *
- */
- virtual unsigned short getZoomAndPan()
- { return zoomAndPan; }
-
- /**
- *
- */
- virtual void setZoomAndPan(unsigned short val) throw (DOMException)
- { zoomAndPan = val; }
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- SVGZoomAndPan()
- { zoomAndPan = SVG_ZOOMANDPAN_UNKNOWN; }
-
- /**
- *
- */
- SVGZoomAndPan(const SVGZoomAndPan &other)
- { zoomAndPan = other.zoomAndPan; }
-
- /**
- *
- */
- virtual ~SVGZoomAndPan() {}
-
-protected:
-
- unsigned short zoomAndPan;
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGViewSpec
-#########################################################################*/
-
-/**
- *
- */
-class SVGViewSpec : public SVGZoomAndPan,
- public SVGFitToViewBox
-{
-public:
-
- /**
- *
- */
- virtual SVGTransformList getTransform()
- { return transform; }
-
- /**
- *
- */
- virtual SVGElementPtr getViewTarget()
- { return viewTarget; }
-
- /**
- *
- */
- virtual DOMString getViewBoxString()
- {
- DOMString ret;
- return ret;
- }
-
- /**
- *
- */
- virtual DOMString getPreserveAspectRatioString()
- {
- DOMString ret;
- return ret;
- }
-
- /**
- *
- */
- virtual DOMString getTransformString()
- {
- DOMString ret;
- return ret;
- }
-
- /**
- *
- */
- virtual DOMString getViewTargetString()
- {
- DOMString ret;
- return ret;
- }
-
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- SVGViewSpec() :
- viewTarget (NULL),
- transform ()
- {
- }
-
- /**
- *
- */
- SVGViewSpec(const SVGViewSpec &other) : SVGZoomAndPan(other), SVGFitToViewBox(other),
- viewTarget (other.viewTarget),
- transform (other.transform)
- {
- }
-
- /**
- *
- */
- virtual ~SVGViewSpec() {}
-
-protected:
-
- SVGElementPtr viewTarget;
- SVGTransformList transform;
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGURIReference
-#########################################################################*/
-
-/**
- *
- */
-class SVGURIReference
-{
-public:
-
- /**
- *
- */
- virtual SVGAnimatedString getHref()
- { return href; }
-
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- SVGURIReference() :
- href ()
- {}
-
- /**
- *
- */
- SVGURIReference(const SVGURIReference &other) :
- href (other.href)
- {
- }
-
- /**
- *
- */
- virtual ~SVGURIReference() {}
-
-protected:
-
- SVGAnimatedString href;
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGCSSRule
-#########################################################################*/
-
-/**
- *
- */
-class SVGCSSRule : public css::CSSRule
-{
-public:
-
-
- /**
- * Additional CSS RuleType to support ICC color specifications
- */
- typedef enum
- {
- COLOR_PROFILE_RULE = 7
- } ColorProfileRuleType;
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- SVGCSSRule()
- { type = COLOR_PROFILE_RULE; }
-
- /**
- *
- */
- SVGCSSRule(const SVGCSSRule &other) : css::CSSRule(other)
- { type = COLOR_PROFILE_RULE; }
-
- /**
- *
- */
- virtual ~SVGCSSRule() {}
-
-};
-
-
-
-/*#########################################################################
-## SVGRenderingIntent
-#########################################################################*/
-
-/**
- *
- */
-class SVGRenderingIntent
-{
-public:
-
- /**
- * Rendering Intent Types
- */
- typedef enum
- {
- RENDERING_INTENT_UNKNOWN = 0,
- RENDERING_INTENT_AUTO = 1,
- RENDERING_INTENT_PERCEPTUAL = 2,
- RENDERING_INTENT_RELATIVE_COLORIMETRIC = 3,
- RENDERING_INTENT_SATURATION = 4,
- RENDERING_INTENT_ABSOLUTE_COLORIMETRIC = 5
- } RenderingIntentType;
-
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- SVGRenderingIntent()
- {
- renderingIntentType = RENDERING_INTENT_UNKNOWN;
- }
-
- /**
- *
- */
- SVGRenderingIntent(const SVGRenderingIntent &other)
- {
- renderingIntentType = other.renderingIntentType;
- }
-
- /**
- *
- */
- virtual ~SVGRenderingIntent() {}
-
-protected:
-
- unsigned short renderingIntentType;
-};
-
-
-
-
-
-
-
-/*#########################################################################
-###########################################################################
-## P A T H S E G M E N T S
-###########################################################################
-#########################################################################*/
-
-static char const *const pathSegLetters[] =
-{
- "@", // PATHSEG_UNKNOWN,
- "z", // PATHSEG_CLOSEPATH
- "M", // PATHSEG_MOVETO_ABS
- "m", // PATHSEG_MOVETO_REL,
- "L", // PATHSEG_LINETO_ABS
- "l", // PATHSEG_LINETO_REL
- "C", // PATHSEG_CURVETO_CUBIC_ABS
- "c", // PATHSEG_CURVETO_CUBIC_REL
- "Q", // PATHSEG_CURVETO_QUADRATIC_ABS,
- "q", // PATHSEG_CURVETO_QUADRATIC_REL
- "A", // PATHSEG_ARC_ABS
- "a", // PATHSEG_ARC_REL,
- "H", // PATHSEG_LINETO_HORIZONTAL_ABS,
- "h", // PATHSEG_LINETO_HORIZONTAL_REL
- "V", // PATHSEG_LINETO_VERTICAL_ABS
- "v", // PATHSEG_LINETO_VERTICAL_REL
- "S", // PATHSEG_CURVETO_CUBIC_SMOOTH_ABS
- "s", // PATHSEG_CURVETO_CUBIC_SMOOTH_REL
- "T", // PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS
- "t" // PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL
-};
-
-/*#########################################################################
-## SVGPathSeg
-#########################################################################*/
-
-/**
- *
- */
-class SVGPathSeg
-{
-public:
-
-
-
- /**
- * Path Segment Types
- */
- typedef enum
- {
- PATHSEG_UNKNOWN = 0,
- PATHSEG_CLOSEPATH = 1,
- PATHSEG_MOVETO_ABS = 2,
- PATHSEG_MOVETO_REL = 3,
- PATHSEG_LINETO_ABS = 4,
- PATHSEG_LINETO_REL = 5,
- PATHSEG_CURVETO_CUBIC_ABS = 6,
- PATHSEG_CURVETO_CUBIC_REL = 7,
- PATHSEG_CURVETO_QUADRATIC_ABS = 8,
- PATHSEG_CURVETO_QUADRATIC_REL = 9,
- PATHSEG_ARC_ABS = 10,
- PATHSEG_ARC_REL = 11,
- PATHSEG_LINETO_HORIZONTAL_ABS = 12,
- PATHSEG_LINETO_HORIZONTAL_REL = 13,
- PATHSEG_LINETO_VERTICAL_ABS = 14,
- PATHSEG_LINETO_VERTICAL_REL = 15,
- PATHSEG_CURVETO_CUBIC_SMOOTH_ABS = 16,
- PATHSEG_CURVETO_CUBIC_SMOOTH_REL = 17,
- PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS = 18,
- PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL = 19
- } PathSegmentType;
-
- /**
- *
- */
- virtual unsigned short getPathSegType()
- { return type; }
-
- /**
- *
- */
- virtual DOMString getPathSegTypeAsLetter()
- {
- int typ = type;
- if (typ<0 || typ>PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL)
- typ = PATHSEG_UNKNOWN;
- char const *ch = pathSegLetters[typ];
- DOMString letter = ch;
- return letter;
- }
-
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- SVGPathSeg()
- { type = PATHSEG_UNKNOWN; }
-
- /**
- *
- */
- SVGPathSeg(const SVGPathSeg &other)
- {
- type = other.type;
- }
-
- /**
- *
- */
- virtual ~SVGPathSeg() {}
-
-protected:
-
- int type;
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGPathSegClosePath
-#########################################################################*/
-
-/**
- *
- */
-class SVGPathSegClosePath : public SVGPathSeg
-{
-public:
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- SVGPathSegClosePath()
- {
- type = PATHSEG_CLOSEPATH;
- }
-
- /**
- *
- */
- SVGPathSegClosePath(const SVGPathSegClosePath &other) : SVGPathSeg(other)
- {
- type = PATHSEG_CLOSEPATH;
- }
-
- /**
- *
- */
- virtual ~SVGPathSegClosePath() {}
-
-};
-
-
-
-
-/*#########################################################################
-## SVGPathSegMovetoAbs
-#########################################################################*/
-
-/**
- *
- */
-class SVGPathSegMovetoAbs : public SVGPathSeg
-{
-public:
-
- /**
- *
- */
- virtual double getX()
- { return x; }
-
- /**
- *
- */
- virtual void setX(double val) throw (DOMException)
- { x = val; }
-
- /**
- *
- */
- virtual double getY()
- { return y; }
-
- /**
- *
- */
- virtual void setY(double val) throw (DOMException)
- { y = val; }
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- SVGPathSegMovetoAbs()
- {
- type = PATHSEG_MOVETO_ABS;
- x = y = 0.0;
- }
-
- /**
- *
- */
- SVGPathSegMovetoAbs(double xArg, double yArg)
- {
- type = PATHSEG_MOVETO_ABS;
- x = xArg; y = yArg;
- }
-
- /**
- *
- */
- SVGPathSegMovetoAbs(const SVGPathSegMovetoAbs &other) : SVGPathSeg(other)
- {
- type = PATHSEG_MOVETO_ABS;
- x = other.x; y = other.y;
- }
-
- /**
- *
- */
- virtual ~SVGPathSegMovetoAbs() {}
-
-protected:
-
- double x,y;
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGPathSegMovetoRel
-#########################################################################*/
-
-/**
- *
- */
-class SVGPathSegMovetoRel : public SVGPathSeg
-{
-public:
-
- /**
- *
- */
- virtual double getX()
- { return x; }
-
- /**
- *
- */
- virtual void setX(double val) throw (DOMException)
- { x = val; }
-
- /**
- *
- */
- virtual double getY()
- { return y; }
-
- /**
- *
- */
- virtual void setY(double val) throw (DOMException)
- { y = val; }
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- SVGPathSegMovetoRel()
- {
- type = PATHSEG_MOVETO_REL;
- x = y = 0.0;
- }
-
-
- /**
- *
- */
- SVGPathSegMovetoRel(double xArg, double yArg)
- {
- type = PATHSEG_MOVETO_REL;
- x = xArg; y = yArg;
- }
-
- /**
- *
- */
- SVGPathSegMovetoRel(const SVGPathSegMovetoRel &other) : SVGPathSeg(other)
- {
- type = PATHSEG_MOVETO_REL;
- x = other.x; y = other.y;
- }
-
- /**
- *
- */
- virtual ~SVGPathSegMovetoRel() {}
-
-protected:
-
- double x,y;
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGPathSegLinetoAbs
-#########################################################################*/
-
-/**
- *
- */
-class SVGPathSegLinetoAbs : public SVGPathSeg
-{
-public:
-
- /**
- *
- */
- virtual double getX()
- { return x; }
-
- /**
- *
- */
- virtual void setX(double val) throw (DOMException)
- { x = val; }
-
- /**
- *
- */
- virtual double getY()
- { return y; }
-
- /**
- *
- */
- virtual void setY(double val) throw (DOMException)
- { y = val; }
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- SVGPathSegLinetoAbs()
- {
- type = PATHSEG_LINETO_ABS;
- x = y = 0.0;
- }
-
-
- /**
- *
- */
- SVGPathSegLinetoAbs(double xArg, double yArg)
- {
- type = PATHSEG_LINETO_ABS;
- x = xArg; y = yArg;
- }
-
- /**
- *
- */
- SVGPathSegLinetoAbs(const SVGPathSegLinetoAbs &other) : SVGPathSeg(other)
- {
- type = PATHSEG_LINETO_ABS;
- x = other.x; y = other.y;
- }
-
- /**
- *
- */
- virtual ~SVGPathSegLinetoAbs() {}
-
-protected:
-
- double x,y;
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGPathSegLinetoRel
-#########################################################################*/
-
-/**
- *
- */
-class SVGPathSegLinetoRel : public SVGPathSeg
-{
-public:
-
- /**
- *
- */
- virtual double getX()
- { return x; }
-
- /**
- *
- */
- virtual void setX(double val) throw (DOMException)
- { x = val; }
-
- /**
- *
- */
- virtual double getY()
- { return y; }
-
- /**
- *
- */
- virtual void setY(double val) throw (DOMException)
- { y = val; }
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- SVGPathSegLinetoRel()
- {
- type = PATHSEG_LINETO_REL;
- x = y = 0.0;
- }
-
-
- /**
- *
- */
- SVGPathSegLinetoRel(double xArg, double yArg)
- {
- type = PATHSEG_LINETO_REL;
- x = xArg; y = yArg;
- }
-
- /**
- *
- */
- SVGPathSegLinetoRel(const SVGPathSegLinetoRel &other) : SVGPathSeg(other)
- {
- type = PATHSEG_LINETO_REL;
- x = other.x; y = other.y;
- }
-
- /**
- *
- */
- virtual ~SVGPathSegLinetoRel() {}
-
-protected:
-
- double x,y;
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGPathSegCurvetoCubicAbs
-#########################################################################*/
-
-/**
- *
- */
-class SVGPathSegCurvetoCubicAbs : public SVGPathSeg
-{
-public:
-
- /**
- *
- */
- virtual double getX()
- { return x; }
-
- /**
- *
- */
- virtual void setX(double val) throw (DOMException)
- { x = val; }
-
- /**
- *
- */
- virtual double getY()
- { return y; }
-
- /**
- *
- */
- virtual void setY(double val) throw (DOMException)
- { y = val; }
-
- /**
- *
- */
- virtual double getX1()
- { return x1; }
-
- /**
- *
- */
- virtual void setX1(double val) throw (DOMException)
- { x1 = val; }
-
- /**
- *
- */
- virtual double getY1()
- { return y1; }
-
- /**
- *
- */
- virtual void setY1(double val) throw (DOMException)
- { y1 = val; }
-
-
- /**
- *
- */
- virtual double getX2()
- { return x2; }
-
- /**
- *
- */
- virtual void setX2(double val) throw (DOMException)
- { x2 = val; }
-
- /**
- *
- */
- virtual double getY2()
- { return y2; }
-
- /**
- *
- */
- virtual void setY2(double val) throw (DOMException)
- { y2 = val; }
-
-
- //##################
- //# Non-API methods
- //##################
-
-
- /**
- *
- */
- SVGPathSegCurvetoCubicAbs()
- {
- type = PATHSEG_CURVETO_CUBIC_ABS;
- x = y = x1 = y1 = x2 = y2 = 0.0;
- }
-
- /**
- *
- */
- SVGPathSegCurvetoCubicAbs(double xArg, double yArg,
- double x1Arg, double y1Arg,
- double x2Arg, double y2Arg)
- {
- type = PATHSEG_CURVETO_CUBIC_ABS;
- x = xArg; y = yArg;
- x1 = x1Arg; y1 = y1Arg;
- x2 = x2Arg; y2 = y2Arg;
- }
-
- /**
- *
- */
- SVGPathSegCurvetoCubicAbs(const SVGPathSegCurvetoCubicAbs &other)
- : SVGPathSeg(other)
- {
- type = PATHSEG_CURVETO_CUBIC_ABS;
- x = other.x; y = other.y;
- x1 = other.x1; y1 = other.y1;
- x2 = other.x2; y2 = other.y2;
- }
-
- /**
- *
- */
- virtual ~SVGPathSegCurvetoCubicAbs() {}
-
-protected:
-
- double x, y, x1, y1, x2, y2;
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGPathSegCurvetoCubicRel
-#########################################################################*/
-
-/**
- *
- */
-class SVGPathSegCurvetoCubicRel : public SVGPathSeg
-{
-public:
-
- /**
- *
- */
- virtual double getX()
- { return x; }
-
- /**
- *
- */
- virtual void setX(double val) throw (DOMException)
- { x = val; }
-
- /**
- *
- */
- virtual double getY()
- { return y; }
-
- /**
- *
- */
- virtual void setY(double val) throw (DOMException)
- { y = val; }
-
- /**
- *
- */
- virtual double getX1()
- { return x1; }
-
- /**
- *
- */
- virtual void setX1(double val) throw (DOMException)
- { x1 = val; }
-
- /**
- *
- */
- virtual double getY1()
- { return y1; }
-
- /**
- *
- */
- virtual void setY1(double val) throw (DOMException)
- { y1 = val; }
-
-
- /**
- *
- */
- virtual double getX2()
- { return x2; }
-
- /**
- *
- */
- virtual void setX2(double val) throw (DOMException)
- { x2 = val; }
-
- /**
- *
- */
- virtual double getY2()
- { return y2; }
-
- /**
- *
- */
- virtual void setY2(double val) throw (DOMException)
- { y2 = val; }
-
-
- //##################
- //# Non-API methods
- //##################
-
-
- /**
- *
- */
- SVGPathSegCurvetoCubicRel()
- {
- type = PATHSEG_CURVETO_CUBIC_REL;
- x = y = x1 = y1 = x2 = y2 = 0.0;
- }
-
-
- /**
- *
- */
- SVGPathSegCurvetoCubicRel(double xArg, double yArg,
- double x1Arg, double y1Arg,
- double x2Arg, double y2Arg)
- {
- type = PATHSEG_CURVETO_CUBIC_REL;
- x = xArg; y = yArg;
- x1 = x1Arg; y1 = y1Arg;
- x2 = x2Arg; y2 = y2Arg;
- }
-
- /**
- *
- */
- SVGPathSegCurvetoCubicRel(const SVGPathSegCurvetoCubicRel &other)
- : SVGPathSeg(other)
- {
- type = PATHSEG_CURVETO_CUBIC_REL;
- x = other.x; y = other.y;
- x1 = other.x1; y1 = other.y1;
- x2 = other.x2; y2 = other.y2;
- }
-
- /**
- *
- */
- virtual ~SVGPathSegCurvetoCubicRel() {}
-
-protected:
-
- double x, y, x1, y1, x2, y2;
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGPathSegCurvetoQuadraticAbs
-#########################################################################*/
-
-/**
- *
- */
-class SVGPathSegCurvetoQuadraticAbs : public SVGPathSeg
-{
-public:
-
- /**
- *
- */
- virtual double getX()
- { return x; }
-
- /**
- *
- */
- virtual void setX(double val) throw (DOMException)
- { x = val; }
-
- /**
- *
- */
- virtual double getY()
- { return y; }
-
- /**
- *
- */
- virtual void setY(double val) throw (DOMException)
- { y = val; }
-
- /**
- *
- */
- virtual double getX1()
- { return x1; }
-
- /**
- *
- */
- virtual void setX1(double val) throw (DOMException)
- { x1 = val; }
-
- /**
- *
- */
- virtual double getY1()
- { return y1; }
-
- /**
- *
- */
- virtual void setY1(double val) throw (DOMException)
- { y1 = val; }
-
-
- //##################
- //# Non-API methods
- //##################
-
-
- /**
- *
- */
- SVGPathSegCurvetoQuadraticAbs()
- {
- type = PATHSEG_CURVETO_QUADRATIC_ABS;
- x = y = x1 = y1 = 0.0;
- }
-
- /**
- *
- */
- SVGPathSegCurvetoQuadraticAbs(double xArg, double yArg,
- double x1Arg, double y1Arg)
- {
- type = PATHSEG_CURVETO_QUADRATIC_ABS;
- x = xArg; y = yArg;
- x1 = x1Arg; y1 = y1Arg;
- }
-
- /**
- *
- */
- SVGPathSegCurvetoQuadraticAbs(const SVGPathSegCurvetoQuadraticAbs &other)
- : SVGPathSeg(other)
- {
- type = PATHSEG_CURVETO_QUADRATIC_ABS;
- x = other.x; y = other.y;
- x1 = other.x1; y1 = other.y1;
- }
-
- /**
- *
- */
- virtual ~SVGPathSegCurvetoQuadraticAbs() {}
-
-protected:
-
- double x, y, x1, y1;
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGPathSegCurvetoQuadraticRel
-#########################################################################*/
-
-/**
- *
- */
-class SVGPathSegCurvetoQuadraticRel : public SVGPathSeg
-{
-public:
-
- /**
- *
- */
- virtual double getX()
- { return x; }
-
- /**
- *
- */
- virtual void setX(double val) throw (DOMException)
- { x = val; }
-
- /**
- *
- */
- virtual double getY()
- { return y; }
-
- /**
- *
- */
- virtual void setY(double val) throw (DOMException)
- { y = val; }
-
- /**
- *
- */
- virtual double getX1()
- { return x1; }
-
- /**
- *
- */
- virtual void setX1(double val) throw (DOMException)
- { x1 = val; }
-
- /**
- *
- */
- virtual double getY1()
- { return y1; }
-
- /**
- *
- */
- virtual void setY1(double val) throw (DOMException)
- { y1 = val; }
-
-
- //##################
- //# Non-API methods
- //##################
-
-
- /**
- *
- */
- SVGPathSegCurvetoQuadraticRel()
- {
- type = PATHSEG_CURVETO_QUADRATIC_REL;
- x = y = x1 = y1 = 0.0;
- }
-
-
- /**
- *
- */
- SVGPathSegCurvetoQuadraticRel(double xArg, double yArg,
- double x1Arg, double y1Arg)
- {
- type = PATHSEG_CURVETO_QUADRATIC_REL;
- x = xArg; y = yArg;
- x1 = x1Arg; y1 = y1Arg;
- }
-
- /**
- *
- */
- SVGPathSegCurvetoQuadraticRel(const SVGPathSegCurvetoQuadraticRel &other)
- : SVGPathSeg(other)
- {
- type = PATHSEG_CURVETO_QUADRATIC_REL;
- x = other.x; y = other.y;
- x1 = other.x1; y1 = other.y1;
- }
-
- /**
- *
- */
- virtual ~SVGPathSegCurvetoQuadraticRel() {}
-
-protected:
-
- double x, y, x1, y1;
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGPathSegArcAbs
-#########################################################################*/
-
-/**
- *
- */
-class SVGPathSegArcAbs : public SVGPathSeg
-{
-public:
-
- /**
- *
- */
- virtual double getX()
- { return x; }
-
- /**
- *
- */
- virtual void setX(double val) throw (DOMException)
- { x = val; }
-
- /**
- *
- */
- virtual double getY()
- { return y; }
-
- /**
- *
- */
- virtual void setY(double val) throw (DOMException)
- { y = val; }
-
- /**
- *
- */
- virtual double getR1()
- { return r1; }
-
- /**
- *
- */
- virtual void setR1(double val) throw (DOMException)
- { r1 = val; }
-
- /**
- *
- */
- virtual double getR2()
- { return r2; }
-
- /**
- *
- */
- virtual void setR2(double val) throw (DOMException)
- { r2 = val; }
-
- /**
- *
- */
- virtual double getAngle()
- { return angle; }
-
- /**
- *
- */
- virtual void setAngle(double val) throw (DOMException)
- { angle = val; }
-
- /**
- *
- */
- virtual bool getLargeArcFlag()
- { return largeArcFlag; }
-
- /**
- *
- */
- virtual void setLargeArcFlag(bool val) throw (DOMException)
- { largeArcFlag = val; }
-
- /**
- *
- */
- virtual bool getSweepFlag()
- { return sweepFlag; }
-
- /**
- *
- */
- virtual void setSweepFlag(bool val) throw (DOMException)
- { sweepFlag = val; }
-
- //##################
- //# Non-API methods
- //##################
-
-
- /**
- *
- */
- SVGPathSegArcAbs()
- {
- type = PATHSEG_ARC_ABS;
- x = y = r1 = r2 = angle = 0.0;
- largeArcFlag = sweepFlag = false;
- }
-
- /**
- *
- */
- SVGPathSegArcAbs(double xArg, double yArg,
- double r1Arg, double r2Arg,
- double angleArg,
- bool largeArcFlagArg,
- bool sweepFlagArg )
-
- {
- type = PATHSEG_ARC_ABS;
- x = xArg; y = yArg;
- r1 = r1Arg; r2 = r2Arg;
- angle = angleArg;
- largeArcFlag = largeArcFlagArg;
- sweepFlag = sweepFlagArg;
- }
-
- /**
- *
- */
- SVGPathSegArcAbs(const SVGPathSegArcAbs &other)
- : SVGPathSeg(other)
- {
- type = PATHSEG_ARC_ABS;
- x = other.x; y = other.y;
- r1 = other.r1; r2 = other.r2;
- angle = other.angle;
- largeArcFlag = other.largeArcFlag;
- sweepFlag = other.sweepFlag;
- }
-
- /**
- *
- */
- virtual ~SVGPathSegArcAbs() {}
-
-protected:
-
- double x, y, r1, r2, angle;
- bool largeArcFlag;
- bool sweepFlag;
-
-};
-
-
-
-/*#########################################################################
-## SVGPathSegArcRel
-#########################################################################*/
-
-/**
- *
- */
-class SVGPathSegArcRel : public SVGPathSeg
-{
-public:
-
- /**
- *
- */
- virtual double getX()
- { return x; }
-
- /**
- *
- */
- virtual void setX(double val) throw (DOMException)
- { x = val; }
-
- /**
- *
- */
- virtual double getY()
- { return y; }
-
- /**
- *
- */
- virtual void setY(double val) throw (DOMException)
- { y = val; }
-
- /**
- *
- */
- virtual double getR1()
- { return r1; }
-
- /**
- *
- */
- virtual void setR1(double val) throw (DOMException)
- { r1 = val; }
-
- /**
- *
- */
- virtual double getR2()
- { return r2; }
-
- /**
- *
- */
- virtual void setR2(double val) throw (DOMException)
- { r2 = val; }
-
- /**
- *
- */
- virtual double getAngle()
- { return angle; }
-
- /**
- *
- */
- virtual void setAngle(double val) throw (DOMException)
- { angle = val; }
-
- /**
- *
- */
- virtual bool getLargeArcFlag()
- { return largeArcFlag; }
-
- /**
- *
- */
- virtual void setLargeArcFlag(bool val) throw (DOMException)
- { largeArcFlag = val; }
-
- /**
- *
- */
- virtual bool getSweepFlag()
- { return sweepFlag; }
-
- /**
- *
- */
- virtual void setSweepFlag(bool val) throw (DOMException)
- { sweepFlag = val; }
-
- //##################
- //# Non-API methods
- //##################
-
-
- /**
- *
- */
- SVGPathSegArcRel()
- {
- type = PATHSEG_ARC_REL;
- x = y = r1 = r2 = angle = 0.0;
- largeArcFlag = sweepFlag = false;
- }
-
-
- /**
- *
- */
- SVGPathSegArcRel(double xArg, double yArg,
- double r1Arg, double r2Arg,
- double angleArg,
- bool largeArcFlagArg,
- bool sweepFlagArg )
-
- {
- type = PATHSEG_ARC_REL;
- x = xArg; y = yArg;
- r1 = r1Arg; r2 = r2Arg;
- angle = angleArg;
- largeArcFlag = largeArcFlagArg;
- sweepFlag = sweepFlagArg;
- }
-
- /**
- *
- */
- SVGPathSegArcRel(const SVGPathSegArcRel &other)
- : SVGPathSeg(other)
- {
- type = PATHSEG_ARC_REL;
- x = other.x; y = other.y;
- r1 = other.r1; r2 = other.r2;
- angle = other.angle;
- largeArcFlag = other.largeArcFlag;
- sweepFlag = other.sweepFlag;
- }
-
- /**
- *
- */
- virtual ~SVGPathSegArcRel() {}
-
-protected:
-
- double x, y, r1, r2, angle;
- bool largeArcFlag;
- bool sweepFlag;
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGPathSegLinetoHorizontalAbs
-#########################################################################*/
-
-/**
- *
- */
-class SVGPathSegLinetoHorizontalAbs : public SVGPathSeg
-{
-public:
-
- /**
- *
- */
- virtual double getX()
- { return x; }
-
- /**
- *
- */
- virtual void setX(double val) throw (DOMException)
- { x = val; }
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- SVGPathSegLinetoHorizontalAbs()
- {
- type = PATHSEG_LINETO_HORIZONTAL_ABS;
- x = 0.0;
- }
-
-
- /**
- *
- */
- SVGPathSegLinetoHorizontalAbs(double xArg)
- {
- type = PATHSEG_LINETO_HORIZONTAL_ABS;
- x = xArg;
- }
-
- /**
- *
- */
- SVGPathSegLinetoHorizontalAbs(const SVGPathSegLinetoHorizontalAbs &other)
- : SVGPathSeg(other)
- {
- type = PATHSEG_LINETO_HORIZONTAL_ABS;
- x = other.x;
- }
-
- /**
- *
- */
- virtual ~SVGPathSegLinetoHorizontalAbs() {}
-
-protected:
-
- double x;
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGPathSegLinetoHorizontalRel
-#########################################################################*/
-
-/**
- *
- */
-class SVGPathSegLinetoHorizontalRel : public SVGPathSeg
-{
-public:
-
- /**
- *
- */
- virtual double getX()
- { return x; }
-
- /**
- *
- */
- virtual void setX(double val) throw (DOMException)
- { x = val; }
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- SVGPathSegLinetoHorizontalRel()
- {
- type = PATHSEG_LINETO_HORIZONTAL_REL;
- x = 0.0;
- }
-
-
- /**
- *
- */
- SVGPathSegLinetoHorizontalRel(double xArg)
- {
- type = PATHSEG_LINETO_HORIZONTAL_REL;
- x = xArg;
- }
-
- /**
- *
- */
- SVGPathSegLinetoHorizontalRel(const SVGPathSegLinetoHorizontalRel &other)
- : SVGPathSeg(other)
- {
- type = PATHSEG_LINETO_HORIZONTAL_REL;
- x = other.x;
- }
-
- /**
- *
- */
- virtual ~SVGPathSegLinetoHorizontalRel() {}
-
-protected:
-
- double x;
-
-};
-
-
-
-/*#########################################################################
-## SVGPathSegLinetoVerticalAbs
-#########################################################################*/
-
-/**
- *
- */
-class SVGPathSegLinetoVerticalAbs : public SVGPathSeg
-{
-public:
-
- /**
- *
- */
- virtual double getY()
- { return y; }
-
- /**
- *
- */
- virtual void setY(double val) throw (DOMException)
- { y = val; }
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- SVGPathSegLinetoVerticalAbs()
- {
- type = PATHSEG_LINETO_VERTICAL_ABS;
- y = 0.0;
- }
-
-
- /**
- *
- */
- SVGPathSegLinetoVerticalAbs(double yArg)
- {
- type = PATHSEG_LINETO_VERTICAL_ABS;
- y = yArg;
- }
-
- /**
- *
- */
- SVGPathSegLinetoVerticalAbs(const SVGPathSegLinetoVerticalAbs &other)
- : SVGPathSeg(other)
- {
- type = PATHSEG_LINETO_VERTICAL_ABS;
- y = other.y;
- }
-
- /**
- *
- */
- virtual ~SVGPathSegLinetoVerticalAbs() {}
-
-protected:
-
- double y;
-
-};
-
-
-
-/*#########################################################################
-## SVGPathSegLinetoVerticalRel
-#########################################################################*/
-
-/**
- *
- */
-class SVGPathSegLinetoVerticalRel : public SVGPathSeg
-{
-public:
-
- /**
- *
- */
- virtual double getY()
- { return y; }
-
- /**
- *
- */
- virtual void setY(double val) throw (DOMException)
- { y = val; }
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- SVGPathSegLinetoVerticalRel()
- {
- type = PATHSEG_LINETO_VERTICAL_REL;
- y = 0.0;
- }
-
-
- /**
- *
- */
- SVGPathSegLinetoVerticalRel(double yArg)
- {
- type = PATHSEG_LINETO_VERTICAL_REL;
- y = yArg;
- }
-
- /**
- *
- */
- SVGPathSegLinetoVerticalRel(const SVGPathSegLinetoVerticalRel &other)
- : SVGPathSeg(other)
- {
- type = PATHSEG_LINETO_VERTICAL_REL;
- y = other.y;
- }
-
- /**
- *
- */
- virtual ~SVGPathSegLinetoVerticalRel() {}
-
-protected:
-
- double y;
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGPathSegCurvetoCubicSmoothAbs
-#########################################################################*/
-
-/**
- *
- */
-class SVGPathSegCurvetoCubicSmoothAbs : public SVGPathSeg
-{
-public:
-
- /**
- *
- */
- virtual double getX()
- { return x; }
-
- /**
- *
- */
- virtual void setX(double val) throw (DOMException)
- { x = val; }
-
- /**
- *
- */
- virtual double getY()
- { return y; }
-
- /**
- *
- */
- virtual void setY(double val) throw (DOMException)
- { y = val; }
-
- /**
- *
- */
- virtual double getX2()
- { return x2; }
-
- /**
- *
- */
- virtual void setX2(double val) throw (DOMException)
- { x2 = val; }
-
- /**
- *
- */
- virtual double getY2()
- { return y2; }
-
- /**
- *
- */
- virtual void setY2(double val) throw (DOMException)
- { y2 = val; }
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- SVGPathSegCurvetoCubicSmoothAbs()
- {
- type = PATHSEG_CURVETO_CUBIC_SMOOTH_ABS;
- x = y = x2 = y2 = 0.0;
- }
-
-
- /**
- *
- */
- SVGPathSegCurvetoCubicSmoothAbs(double xArg, double yArg,
- double x2Arg, double y2Arg)
- {
- type = PATHSEG_CURVETO_CUBIC_SMOOTH_ABS;
- x = xArg; y = yArg;
- x2 = x2Arg; y2 = y2Arg;
- }
-
- /**
- *
- */
- SVGPathSegCurvetoCubicSmoothAbs(const SVGPathSegCurvetoCubicSmoothAbs &other)
- : SVGPathSeg(other)
- {
- type = PATHSEG_CURVETO_CUBIC_SMOOTH_ABS;
- x = other.x; y = other.y;
- x2 = other.x2; y2 = other.y2;
- }
-
- /**
- *
- */
- virtual ~SVGPathSegCurvetoCubicSmoothAbs() {}
-
-protected:
-
- double x, y, x2, y2;
-
-};
-
-
-
-/*#########################################################################
-## SVGPathSegCurvetoCubicSmoothRel
-#########################################################################*/
-
-/**
- *
- */
-class SVGPathSegCurvetoCubicSmoothRel : public SVGPathSeg
-{
-public:
-
- /**
- *
- */
- virtual double getX()
- { return x; }
-
- /**
- *
- */
- virtual void setX(double val) throw (DOMException)
- { x = val; }
-
- /**
- *
- */
- virtual double getY()
- { return y; }
-
- /**
- *
- */
- virtual void setY(double val) throw (DOMException)
- { y = val; }
-
- /**
- *
- */
- virtual double getX2()
- { return x2; }
-
- /**
- *
- */
- virtual void setX2(double val) throw (DOMException)
- { x2 = val; }
-
- /**
- *
- */
- virtual double getY2()
- { return y2; }
-
- /**
- *
- */
- virtual void setY2(double val) throw (DOMException)
- { y2 = val; }
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- SVGPathSegCurvetoCubicSmoothRel()
- {
- type = PATHSEG_CURVETO_CUBIC_SMOOTH_REL;
- x = y = x2 = y2 = 0.0;
- }
-
-
- /**
- *
- */
- SVGPathSegCurvetoCubicSmoothRel(double xArg, double yArg,
- double x2Arg, double y2Arg)
- {
- type = PATHSEG_CURVETO_CUBIC_SMOOTH_REL;
- x = xArg; y = yArg;
- x2 = x2Arg; y2 = y2Arg;
- }
-
- /**
- *
- */
- SVGPathSegCurvetoCubicSmoothRel(const SVGPathSegCurvetoCubicSmoothRel &other)
- : SVGPathSeg(other)
- {
- type = PATHSEG_CURVETO_CUBIC_SMOOTH_REL;
- x = other.x; y = other.y;
- x2 = other.x2; y2 = other.y2;
- }
-
- /**
- *
- */
- virtual ~SVGPathSegCurvetoCubicSmoothRel() {}
-
-protected:
-
- double x, y, x2, y2;
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGPathSegCurvetoQuadraticSmoothAbs
-#########################################################################*/
-
-/**
- *
- */
-class SVGPathSegCurvetoQuadraticSmoothAbs : public SVGPathSeg
-{
-public:
-
- /**
- *
- */
- virtual double getX()
- { return x; }
-
- /**
- *
- */
- virtual void setX(double val) throw (DOMException)
- { x = val; }
-
- /**
- *
- */
- virtual double getY()
- { return y; }
-
- /**
- *
- */
- virtual void setY(double val) throw (DOMException)
- { y = val; }
-
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- SVGPathSegCurvetoQuadraticSmoothAbs()
- {
- type = PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS;
- x = y = 0.0;
- }
-
-
- /**
- *
- */
- SVGPathSegCurvetoQuadraticSmoothAbs(double xArg, double yArg)
- {
- type = PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS;
- x = xArg; y = yArg;
- }
-
- /**
- *
- */
- SVGPathSegCurvetoQuadraticSmoothAbs(const SVGPathSegCurvetoQuadraticSmoothAbs &other)
- : SVGPathSeg(other)
- {
- type = PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS;
- x = y = 0.0;
- }
-
- /**
- *
- */
- virtual ~SVGPathSegCurvetoQuadraticSmoothAbs() {}
-
-protected:
-
- double x, y;
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGPathSegCurvetoQuadraticSmoothRel
-#########################################################################*/
-
-/**
- *
- */
-class SVGPathSegCurvetoQuadraticSmoothRel : public SVGPathSeg
-{
-public:
-
- /**
- *
- */
- virtual double getX()
- { return x; }
-
- /**
- *
- */
- virtual void setX(double val) throw (DOMException)
- { x = val; }
-
- /**
- *
- */
- virtual double getY()
- { return y; }
-
- /**
- *
- */
- virtual void setY(double val) throw (DOMException)
- { y = val; }
-
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- SVGPathSegCurvetoQuadraticSmoothRel()
- {
- type = PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL;
- x = y = 0.0;
- }
-
-
- /**
- *
- */
- SVGPathSegCurvetoQuadraticSmoothRel(double xArg, double yArg)
- {
- type = PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL;
- x = xArg; y = yArg;
- }
-
- /**
- *
- */
- SVGPathSegCurvetoQuadraticSmoothRel(const SVGPathSegCurvetoQuadraticSmoothRel &other)
- : SVGPathSeg(other)
- {
- type = PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL;
- x = y = 0.0;
- }
-
- /**
- *
- */
- virtual ~SVGPathSegCurvetoQuadraticSmoothRel() {}
-
-protected:
-
- double x, y;
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGPathSegList
-#########################################################################*/
-
-/**
- *
- */
-class SVGPathSegList
-{
-public:
-
- /**
- *
- */
- virtual unsigned long getNumberOfItems()
- { return items.size(); }
-
-
- /**
- *
- */
- virtual void clear () throw( DOMException )
- { items.clear(); }
-
- /**
- *
- */
- virtual SVGPathSeg initialize (const SVGPathSeg &newItem)
- throw( DOMException, SVGException )
- {
- items.clear();
- items.push_back(newItem);
- return newItem;
- }
-
- /**
- *
- */
- virtual SVGPathSeg getItem (unsigned long index)
- throw( DOMException )
- {
- if (index >= items.size())
- {
- SVGPathSeg seg;
- return seg;
- }
- return items[index];
- }
-
- /**
- *
- */
- virtual SVGPathSeg insertItemBefore(const SVGPathSeg &newItem,
- unsigned long index )
- throw( DOMException, SVGException )
- {
- if (index >= items.size())
- items.push_back(newItem);
- else
- {
- std::vector<SVGPathSeg>::iterator iter = items.begin() + index;
- items.insert(iter, newItem);
- }
- return newItem;
- }
-
- /**
- *
- */
- virtual SVGPathSeg replaceItem(const SVGPathSeg &newItem,
- unsigned long index )
- throw( DOMException, SVGException )
- {
- if (index >= items.size())
- {
- SVGPathSeg seg;
- return seg;
- }
- std::vector<SVGPathSeg>::iterator iter = items.begin() + index;
- *iter = newItem;
- return newItem;
- }
-
- /**
- *
- */
- virtual SVGPathSeg removeItem (unsigned long index)
- throw (DOMException)
- {
- if (index >= items.size())
- {
- SVGPathSeg seg;
- return seg;
- }
- std::vector<SVGPathSeg>::iterator iter = items.begin() + index;
- SVGPathSeg olditem = *iter;
- items.erase(iter);
- return olditem;
- }
-
- /**
- *
- */
- virtual SVGPathSeg appendItem (const SVGPathSeg &newItem)
- throw( DOMException, SVGException )
- {
- items.push_back(newItem);
- return newItem;
- }
-
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- SVGPathSegList() {}
-
-
- /**
- *
- */
- SVGPathSegList(const SVGPathSegList &other) :
- items (other.items)
- {
- }
-
-
- /**
- *
- */
- virtual ~SVGPathSegList() {}
-
-protected:
-
- std::vector<SVGPathSeg> items;
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGAnimatedPathData
-#########################################################################*/
-
-/**
- *
- */
-class SVGAnimatedPathData
-{
-public:
-
- /**
- *
- */
- virtual SVGPathSegList getPathSegList()
- {
- SVGPathSegList list;
- return list;
- }
-
- /**
- *
- */
- virtual SVGPathSegList getNormalizedPathSegList()
- {
- SVGPathSegList list;
- return list;
- }
-
- /**
- *
- */
- virtual SVGPathSegList getAnimatedPathSegList()
- {
- SVGPathSegList list;
- return list;
- }
-
- /**
- *
- */
- virtual SVGPathSegList getAnimatedNormalizedPathSegList()
- {
- SVGPathSegList list;
- return list;
- }
-
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- SVGAnimatedPathData()
- {}
-
- /**
- *
- */
- SVGAnimatedPathData(const SVGAnimatedPathData &/*other*/)
- {
- }
-
- /**
- *
- */
- virtual ~SVGAnimatedPathData() {}
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGAnimatedPoints
-#########################################################################*/
-
-/**
- *
- */
-class SVGAnimatedPoints
-{
-public:
-
- /**
- *
- */
- virtual SVGPointList getPoints()
- { return points; }
-
- /**
- *
- */
- virtual SVGPointList getAnimatedPoints()
- { return animatedPoints; }
-
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- SVGAnimatedPoints() {}
-
- /**
- *
- */
- SVGAnimatedPoints(const SVGAnimatedPoints &other) :
- points (other.points),
- animatedPoints (other.animatedPoints)
- {
- }
-
- /**
- *
- */
- virtual ~SVGAnimatedPoints() {}
-
-protected:
-
- SVGPointList points;
- SVGPointList animatedPoints;
-
-};
-
-
-
-
-
-/*#########################################################################
-## SVGPaint
-#########################################################################*/
-
-/**
- *
- */
-class SVGPaint : public SVGColor
-{
-public:
-
-
- /**
- * Paint Types
- */
- typedef enum
- {
- SVG_PAINTTYPE_UNKNOWN = 0,
- SVG_PAINTTYPE_RGBCOLOR = 1,
- SVG_PAINTTYPE_RGBCOLOR_ICCCOLOR = 2,
- SVG_PAINTTYPE_NONE = 101,
- SVG_PAINTTYPE_CURRENTCOLOR = 102,
- SVG_PAINTTYPE_URI_NONE = 103,
- SVG_PAINTTYPE_URI_CURRENTCOLOR = 104,
- SVG_PAINTTYPE_URI_RGBCOLOR = 105,
- SVG_PAINTTYPE_URI_RGBCOLOR_ICCCOLOR = 106,
- SVG_PAINTTYPE_URI = 107
- } PaintType;
-
-
- /**
- *
- */
- virtual unsigned short getPaintType()
- { return paintType; }
-
- /**
- *
- */
- virtual DOMString getUri()
- { return uri; }
-
- /**
- *
- */
- virtual void setUri (const DOMString& uriArg )
- { uri = uriArg; }
-
- /**
- *
- */
- virtual void setPaint (unsigned short paintTypeArg,
- const DOMString& uriArg,
- const DOMString& /*rgbColor*/,
- const DOMString& /*iccColor*/ )
- throw( SVGException )
- {
- paintType = paintTypeArg;
- uri = uriArg;
- //do something with rgbColor
- //do something with iccColor;
- }
-
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- SVGPaint() :
- paintType (SVG_PAINTTYPE_UNKNOWN),
- uri ("")
- {
- }
-
- /**
- *
- */
- SVGPaint(const SVGPaint &other) : css::CSSValue(other), SVGColor(other),
- paintType (SVG_PAINTTYPE_UNKNOWN),
- uri ("")
- {
- }
-
- /**
- *
- */
- virtual ~SVGPaint() {}
-
-protected:
-
- unsigned int paintType;
- DOMString uri;
-
-};
-
-
-
-
-/*#########################################################################
-## SVGColorProfileRule
-#########################################################################*/
-
-/**
- *
- */
-class SVGColorProfileRule : public SVGCSSRule,
- public SVGRenderingIntent
-{
-
-public:
- /**
- *
- */
- virtual DOMString getSrc()
- { return src; }
-
- /**
- *
- */
- virtual void setSrc(const DOMString &val) throw (DOMException)
- { src = val; }
-
- /**
- *
- */
- virtual DOMString getName()
- { return name; }
-
- /**
- *
- */
- virtual void setName(const DOMString &val) throw (DOMException)
- { name = val; }
-
- /**
- *
- */
- virtual unsigned short getRenderingIntent()
- { return renderingIntent; }
-
- /**
- *
- */
- virtual void setRenderingIntent(unsigned short val) throw (DOMException)
- { renderingIntent = val; }
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- SVGColorProfileRule() :
- renderingIntent(0)
- {}
-
- /**
- *
- */
- SVGColorProfileRule(const SVGColorProfileRule &other)
- : SVGCSSRule(other), SVGRenderingIntent(other),
- renderingIntent (other.renderingIntent),
- src (other.src),
- name (other.name)
- {
- }
-
- /**
- *
- */
- virtual ~SVGColorProfileRule() {}
-
-protected:
-
- unsigned short renderingIntent;
- DOMString src;
- DOMString name;
-
-};
-
-
-
-/*#########################################################################
-## SVGFilterPrimitiveStandardAttributes
-#########################################################################*/
-
-/**
- *
- */
-class SVGFilterPrimitiveStandardAttributes : public SVGStylable
-{
-public:
-
-
-
- /**
- *
- */
- virtual SVGAnimatedLength getX()
- { return x; }
-
- /**
- *
- */
- virtual SVGAnimatedLength getY()
- { return y; }
-
- /**
- *
- */
- virtual SVGAnimatedLength getWidth()
- { return width; }
-
- /**
- *
- */
- virtual SVGAnimatedLength getHeight()
- { return height; }
-
- /**
- *
- */
- virtual SVGAnimatedString getResult()
- { return result; }
-
-
-
- //##################
- //# Non-API methods
- //##################
-
-
- /**
- *
- */
- SVGFilterPrimitiveStandardAttributes()
- {}
-
- /**
- *
- */
- SVGFilterPrimitiveStandardAttributes(const SVGFilterPrimitiveStandardAttributes &other)
- : SVGStylable(other),
- x (other.x),
- y (other.y),
- width (other.width),
- height (other.height),
- result (other.result)
- {
- }
-
- /**
- *
- */
- virtual ~SVGFilterPrimitiveStandardAttributes() {}
-
-protected:
-
- SVGAnimatedLength x;
- SVGAnimatedLength y;
- SVGAnimatedLength width;
- SVGAnimatedLength height;
- SVGAnimatedString result;
-
-};
-
-
-
-
-/*#########################################################################
-## SVGEvent
-#########################################################################*/
-
-/**
- *
- */
-class SVGEvent : events::Event
-{
-public:
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- SVGEvent() {}
-
- /**
- *
- */
- SVGEvent(const SVGEvent &other) : events::Event(other)
- {}
-
- /**
- *
- */
- virtual ~SVGEvent() {}
-
-};
-
-
-
-
-/*#########################################################################
-## SVGZoomEvent
-#########################################################################*/
-
-/**
- *
- */
-class SVGZoomEvent : events::UIEvent
-{
-public:
-
- /**
- *
- */
- virtual SVGRect getZoomRectScreen()
- { return zoomRectScreen; }
-
- /**
- *
- */
- virtual double getPreviousScale()
- { return previousScale; }
-
- /**
- *
- */
- virtual SVGPoint getPreviousTranslate()
- { return previousTranslate; }
-
- /**
- *
- */
- virtual double getNewScale()
- { return newScale; }
-
- /**
- *
- */
- virtual SVGPoint getNewTranslate()
- { return newTranslate; }
-
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- SVGZoomEvent():
- zoomRectScreen(),
- previousScale(0),
- previousTranslate(),
- newScale(0),
- newTranslate()
- {}
-
- /**
- *
- */
- SVGZoomEvent(const SVGZoomEvent &other) :
- events::Event(other),
- events::UIEvent(other),
- zoomRectScreen(other.zoomRectScreen),
- previousScale(other.previousScale),
- previousTranslate(other.previousTranslate),
- newScale(other.newScale),
- newTranslate(other.newTranslate)
- {
- }
-
- /**
- *
- */
- virtual ~SVGZoomEvent() {}
-
-protected:
-
- SVGRect zoomRectScreen;
- double previousScale;
- SVGPoint previousTranslate;
- double newScale;
- SVGPoint newTranslate;
-
-};
-
-
-
-/*#########################################################################
-## SVGElementInstance
-#########################################################################*/
-
-/**
- *
- */
-class SVGElementInstance : public events::EventTarget
-{
-public:
-
- /**
- *
- */
- virtual SVGElementPtr getCorrespondingElement()
- { return correspondingElement; }
-
- /**
- *
- */
- virtual SVGUseElementPtr getCorrespondingUseElement()
- { return correspondingUseElement; }
-
- /**
- *
- */
- virtual SVGElementInstance getParentNode()
- {
- SVGElementInstance ret;
- return ret;
- }
-
- /**
- * Since we are using stack types and this is a circular definition,
- * we will instead implement this as a global function below:
- * SVGElementInstanceList getChildNodes(const SVGElementInstance instance);
- */
- //virtual SVGElementInstanceList getChildNodes();
-
- /**
- *
- */
- virtual SVGElementInstance getFirstChild()
- {
- SVGElementInstance ret;
- return ret;
- }
-
- /**
- *
- */
- virtual SVGElementInstance getLastChild()
- {
- SVGElementInstance ret;
- return ret;
- }
-
- /**
- *
- */
- virtual SVGElementInstance getPreviousSibling()
- {
- SVGElementInstance ret;
- return ret;
- }
-
- /**
- *
- */
- virtual SVGElementInstance getNextSibling()
- {
- SVGElementInstance ret;
- return ret;
- }
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- SVGElementInstance() :
- correspondingElement(NULL),
- correspondingUseElement(NULL)
- {}
-
- /**
- *
- */
- SVGElementInstance(const SVGElementInstance &other)
- : events::EventTarget(other),
- correspondingElement(NULL),
- correspondingUseElement(NULL)
- {
- }
-
- /**
- *
- */
- virtual ~SVGElementInstance() {}
-
-protected:
-
- SVGElementPtr correspondingElement;
- SVGUseElementPtr correspondingUseElement;
-
-};
-
-
-
-
-
-
-/*#########################################################################
-## SVGElementInstanceList
-#########################################################################*/
-
-/**
- *
- */
-class SVGElementInstanceList
-{
-public:
-
-
- /**
- *
- */
- virtual unsigned long getLength()
- { return items.size(); }
-
- /**
- *
- */
- virtual SVGElementInstance item (unsigned long index )
- {
- if (index >= items.size())
- {
- SVGElementInstance ret;
- return ret;
- }
- return items[index];
- }
-
- /**
- * This static method replaces the circular definition of:
- * SVGElementInstanceList SVGElementInstance::getChildNodes()
- *
- */
- static SVGElementInstanceList getChildNodes(const SVGElementInstance &/*instance*/)
- {
- SVGElementInstanceList list;
- return list;
- }
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- SVGElementInstanceList() {}
-
- /**
- *
- */
- SVGElementInstanceList(const SVGElementInstanceList &other) :
- items (other.items)
- {
- }
-
- /**
- *
- */
- virtual ~SVGElementInstanceList() {}
-
-protected:
-
- std::vector<SVGElementInstance> items;
-
-
-};
-
-
-
-} //namespace svg
-} //namespace dom
-} //namespace w3c
-} //namespace org
-
-#endif // SEEN_SVGTYPES_H
-/*#########################################################################
-## E N D O F F I L E
-#########################################################################*/
-
diff --git a/src/dom/traversal.h b/src/dom/traversal.h
deleted file mode 100644
index 302ac2b1f..000000000
--- a/src/dom/traversal.h
+++ /dev/null
@@ -1,609 +0,0 @@
-#ifndef SEEN_TRAVERSAL_H
-#define SEEN_TRAVERSAL_H
-/**
- * @file
- * Phoebe DOM Implementation.
- *
- * This is a C++ approximation of the W3C DOM model, which follows
- * fairly closely the specifications in the various .idl files, copies of
- * which are provided for reference. Most important is this one:
- *
- * http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/idl-definitions.html
- */
-/*
- * Authors:
- * Bob Jamison
- *
- * Copyright (C) 2005-2008 Bob Jamison
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- *
- * ==========================================================================
- * NOTES
- *
- * This interface is described here:
- * http://www.w3.org/TR/2000/REC-DOM-Level-2-Traversal-Range-20001113
- */
-
-
-#include "dom.h"
-
-
-namespace org
-{
-namespace w3c
-{
-namespace dom
-{
-namespace traversal
-{
-
-
-//Local aliases
-typedef dom::Node Node;
-
-
-
-
-
-/*#########################################################################
-## NodeFilter
-#########################################################################*/
-
-/**
- * Filters are objects that know how to "filter out" nodes. If a NodeIterator or
- * TreeWalker is given a NodeFilter, it applies the filter before it returns the
- * next node. If the filter says to accept the node, the traversal logic returns
- * it; otherwise, traversal looks for the next node and pretends that the node
- * that was rejected was not there.
- *
- * The DOM does not provide any filters. NodeFilter is just an interface that
- * users can implement to provide their own filters.
- *
- * NodeFilters do not need to know how to traverse from node to node, nor do they
- * need to know anything about the data structure that is being traversed. This
- * makes it very easy to write filters, since the only thing they have to know
- * how to do is evaluate a single node. One filter may be used with a number of
- * different kinds of traversals, encouraging code reuse.
- *
- * Note:
- * The spec is slightly vague on this interface, for instance, setting the
- * whatToShow value.
- */
-class NodeFilter
-{
-public:
-
- /**
- * The following constants are returned by the acceptNode() method
- */
- typedef enum
- {
- FILTER_ACCEPT = 1,
- FILTER_REJECT = 2,
- FILTER_SKIP = 3
- } AcceptNodeType;
-
- /**
- * Test whether a specified node is visible in the logical view of a TreeWalker
- * or NodeIterator. This function will be called by the implementation of
- * TreeWalker and NodeIterator; it is not normally called directly from user
- * code. (Though you could do so if you wanted to use the same filter to guide
- * your own application logic.)
- */
- virtual short acceptNode(const NodePtr /*n*/)
- {
- return 0;
- }
-
-
- /**
- * These are the available values for the whatToShow parameter used in
- * TreeWalkers and NodeIterators. They are the same as the set of possible types
- * for Node, and their values are derived by using a bit position corresponding
- * to the value of nodeType for the equivalent node type. If a bit in whatToShow
- * is set false, that will be taken as a request to skip over this type of node;
- * the behavior in that case is similar to that of FILTER_SKIP.
- *
- * Note that if node types greater than 32 are ever introduced, they may not be
- * individually testable via whatToShow. If that need should arise, it can be
- * handled by selecting SHOW_ALL together with an appropriate NodeFilter.
- */
- typedef enum
- {
- SHOW_ALL = 0xFFFFFFFF,
- SHOW_ELEMENT = 0x00000001,
- SHOW_ATTRIBUTE = 0x00000002,
- SHOW_TEXT = 0x00000004,
- SHOW_CDATA_SECTION = 0x00000008,
- SHOW_ENTITY_REFERENCE = 0x00000010,
- SHOW_ENTITY = 0x00000020,
- SHOW_PROCESSING_INSTRUCTION = 0x00000040,
- SHOW_COMMENT = 0x00000080,
- SHOW_DOCUMENT = 0x00000100,
- SHOW_DOCUMENT_TYPE = 0x00000200,
- SHOW_DOCUMENT_FRAGMENT = 0x00000400,
- SHOW_NOTATION = 0x00000800
- } WhatToShowType;
-
-
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- NodeFilter() : whatToShow(SHOW_ALL)
- {}
-
- /**
- *
- */
- NodeFilter(int whatToShowArg) : whatToShow(whatToShowArg)
- {}
-
-
- /**
- *
- */
- NodeFilter(const NodeFilter &other)
- {
- whatToShow = other.whatToShow;
- }
-
- /**
- *
- */
- NodeFilter& operator=(const NodeFilter &other)
- {
- whatToShow = other.whatToShow;
- return *this;
- }
-
- /**
- *
- */
- virtual ~NodeFilter() {}
-
-
- int whatToShow;
-
-};
-
-
-
-/*#########################################################################
-## NodeIterator
-#########################################################################*/
-
-/**
- * Iterators are used to step through a set of nodes, e.g. the set of nodes in a
- * NodeList, the document subtree governed by a particular Node, the results of a
- * query, or any other set of nodes. The set of nodes to be iterated is
- * determined by the implementation of the NodeIterator. DOM Level 2 specifies a
- * single NodeIterator implementation for document-order traversal of a document
- * subtree. Instances of these iterators are created by calling
- * DocumentTraversal .createNodeIterator().
- */
-class NodeIterator
-{
-public:
-
- /**
- * The root node of the NodeIterator, as specified when it was created.
- */
- virtual NodePtr getRoot()
- {
- NodePtr ptr;
- return ptr;
- }
-
- /**
- * This attribute determines which node types are presented via the iterator. The
- * available set of constants is defined in the NodeFilter interface. Nodes not
- * accepted by whatToShow will be skipped, but their children may still be
- * considered. Note that this skip takes precedence over the filter, if any.
- */
- virtual unsigned long getWhatToShow()
- { return whatToShow; }
-
- /**
- * The NodeFilter used to screen nodes.
- */
- virtual NodeFilter getFilter()
- { return filter; }
-
- /**
- * The value of this flag determines whether the children of entity reference
- * nodes are visible to the iterator. If false, they and their descendants will
- * be rejected. Note that this rejection takes precedence over whatToShow and the
- * filter. Also note that this is currently the only situation where
- * NodeIterators may reject a complete subtree rather than skipping individual
- * nodes.
- *
- * To produce a view of the document that has entity references expanded and does
- * not expose the entity reference node itself, use the whatToShow flags to hide
- * the entity reference node and set expandEntityReferences to true when creating
- * the iterator. To produce a view of the document that has entity reference
- * nodes but no entity expansion, use the whatToShow flags to show the entity
- * reference node and set expandEntityReferences to false.
- */
- virtual bool getExpandEntityReferences()
- { return expandEntityReferences; }
-
- /**
- * Returns the next node in the set and advances the position of the iterator in
- * the set. After a NodeIterator is created, the first call to nextNode() returns
- * the first node in the set.
- */
- virtual NodePtr nextNode() throw(dom::DOMException)
- {
- NodePtr ptr;
- return ptr;
- }
-
- /**
- * Returns the previous node in the set and moves the position of the
- * NodeIterator backwards in the set.
- */
- virtual NodePtr previousNode() throw(dom::DOMException)
- {
- NodePtr ptr;
- return ptr;
- }
-
- /**
- * Detaches the NodeIterator from the set which it iterated over, releasing any
- * computational resources and placing the iterator in the INVALID state. After
- * detach has been invoked, calls to nextNode or previousNode will raise the
- * exception INVALID_STATE_ERR.
- */
- virtual void detach()
- {
- }
-
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- NodeIterator() :
- whatToShow(0),
- filter(),
- expandEntityReferences(0)
- {}
-
- /**
- *
- */
- NodeIterator(const NodeIterator &other) :
- whatToShow (other.whatToShow),
- filter (other.filter),
- expandEntityReferences (other.expandEntityReferences)
- {
- }
-
- /**
- *
- */
- virtual ~NodeIterator() {}
-
-protected:
-
- unsigned long whatToShow;
- NodeFilter filter;
- bool expandEntityReferences;
-
-
-};
-
-
-
-/*#########################################################################
-## TreeWalker
-#########################################################################*/
-
-/**
- * TreeWalker objects are used to navigate a document tree or subtree using the
- * view of the document defined by their whatToShow flags and filter (if any).
- * Any function which performs navigation using a TreeWalker will automatically
- * support any view defined by a TreeWalker.
- *
- * Omitting nodes from the logical view of a subtree can result in a structure
- * that is substantially different from the same subtree in the complete,
- * unfiltered document. Nodes that are siblings in the TreeWalker view may be
- * children of different, widely separated nodes in the original view. For
- * instance, consider a NodeFilter that skips all nodes except for Text nodes and
- * the root node of a document. In the logical view that results, all text nodes
- * will be siblings and appear as direct children of the root node, no matter how
- * deeply nested the structure of the original document.
- */
-class TreeWalker
-{
-public:
-
-
- /**
- * The root node of the TreeWalker, as specified when it was created.
- */
- virtual NodePtr getRoot()
- {
- NodePtr ptr;
- return ptr;
- }
-
- /**
- * This attribute determines which node types are presented via the TreeWalker.
- * The available set of constants is defined in the NodeFilter interface. Nodes
- * not accepted by whatToShow will be skipped, but their children may still be
- * considered. Note that this skip takes precedence over the filter, if any.
- */
- virtual unsigned long getWhatToShow()
- { return whatToShow; }
-
- /**
- * The filter used to screen nodes.
- */
- virtual NodeFilter getFilter()
- { return filter; }
-
- /**
- * The value of this flag determines whether the children of entity reference
- * nodes are visible to the TreeWalker. If false, they and their descendants will
- * be rejected. Note that this rejection takes precedence over whatToShow and the
- * filter, if any. To produce a view of the document that has entity references
- * expanded and does not expose the entity reference node itself, use the
- * whatToShow flags to hide the entity reference node and set
- * expandEntityReferences to true when creating the TreeWalker. To produce a view
- * of the document that has entity reference nodes but no entity expansion, use
- * the whatToShow flags to show the entity reference node and set
- * expandEntityReferences to false.
- */
- virtual bool getExpandEntityReferences()
- { return expandEntityReferences; }
-
- /**
- * The node at which the TreeWalker is currently positioned. Alterations to the
- * DOM tree may cause the current node to no longer be accepted by the
- * TreeWalker's associated filter. currentNode may also be explicitly set to any
- * node, whether or not it is within the subtree specified by the root node or
- * would be accepted by the filter and whatToShow flags. Further traversal occurs
- * relative to currentNode even if it is not part of the current view, by
- * applying the filters in the requested direction; if no traversal is possible,
- * currentNode is not changed.
- */
- virtual NodePtr getCurrentNode()
- { return currentNode; }
-
- /**
- * Sets the value above.
- */
- virtual void setCurrentNode(const NodePtr val) throw(dom::DOMException)
- { currentNode = val; }
-
- /**
- * Moves to and returns the closest visible ancestor node of the current node. If
- * the search for parentNode attempts to step upward from the TreeWalker's root
- * node, or if it fails to find a visible ancestor node, this method retains the
- * current position and returns null.
- */
- virtual NodePtr parentNode()
- {
- NodePtr ptr;
- return ptr;
- }
-
- /**
- * Moves the TreeWalker to the first visible child of the current node, and
- * returns the new node. If the current node has no visible children, returns
- * null, and retains the current node.
- */
- virtual NodePtr firstChild()
- {
- NodePtr ptr;
- return ptr;
- }
-
- /**
- * Moves the TreeWalker to the last visible child of the current node, and
- * returns the new node. If the current node has no visible children, returns
- * null, and retains the current node.
- */
- virtual NodePtr lastChild()
- {
- NodePtr ptr;
- return ptr;
- }
-
- /**
- * Moves the TreeWalker to the previous sibling of the current node, and returns
- * the new node. If the current node has no visible previous sibling, returns
- * null, and retains the current node.
- */
- virtual NodePtr previousSibling()
- {
- NodePtr ptr;
- return ptr;
- }
-
- /**
- * Moves the TreeWalker to the next sibling of the current node, and returns the
- * new node. If the current node has no visible next sibling, returns null, and
- * retains the current node.
- */
- virtual NodePtr nextSibling()
- {
- NodePtr ptr;
- return ptr;
- }
-
- /**
- * Moves the TreeWalker to the previous visible node in document order relative
- * to the current node, and returns the new node. If the current node has no
- * previous node, or if the search for previousNode attempts to step upward from
- * the TreeWalker's root node, returns null, and retains the current node.
- */
- virtual NodePtr previousNode()
- {
- NodePtr ptr;
- return ptr;
- }
-
- /**
- * Moves the TreeWalker to the next visible node in document order relative to
- * the current node, and returns the new node. If the current node has no next
- * node, or if the search for nextNode attempts to step upward from the
- * TreeWalker's root node, returns null, and retains the current node.
- */
- virtual NodePtr nextNode()
- {
- NodePtr ptr;
- return ptr;
- }
-
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- TreeWalker() :
- whatToShow(0),
- filter(),
- expandEntityReferences(0),
- currentNode(0)
- {}
-
- /**
- *
- */
- TreeWalker(const TreeWalker &other) :
- whatToShow (other.whatToShow),
- filter (other.filter),
- expandEntityReferences (other.expandEntityReferences),
- currentNode (other.currentNode)
- {
- }
-
- /**
- *
- */
- virtual ~TreeWalker() {}
-
-
-protected:
-
- unsigned long whatToShow;
- NodeFilter filter;
- bool expandEntityReferences;
- NodePtr currentNode;
-
-};
-
-
-
-
-/*#########################################################################
-## DocumentTraversal
-#########################################################################*/
-
-/**
- * DocumentTraversal contains methods that create iterators and tree-walkers to
- * traverse a node and its children in document order (depth first, pre-order
- * traversal, which is equivalent to the order in which the start tags occur in
- * the text representation of the document). In DOMs which support the Traversal
- * feature, DocumentTraversal will be implemented by the same objects that
- * implement the Document interface.
- */
-class DocumentTraversal
-{
-public:
-
- /**
- * Create a new NodeIterator over the subtree rooted at the specified node.
- */
- virtual NodeIterator createNodeIterator(const NodePtr /*root*/,
- unsigned long /*whatToShow*/,
- const NodeFilter/*filter*/,
- bool /*entityReferenceExpansion*/)
- throw (dom::DOMException)
- {
- NodeIterator ret;
- return ret;
- }
-
- /**
- * Create a new TreeWalker over the subtree rooted at the specified node.
- */
- virtual TreeWalker createTreeWalker(const NodePtr/*root*/,
- unsigned long /*whatToShow*/,
- const NodeFilter/*filter*/,
- bool /*entityReferenceExpansion*/)
- throw (dom::DOMException)
- {
- TreeWalker ret;
- return ret;
- }
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- DocumentTraversal() {}
-
- /**
- *
- */
- DocumentTraversal(const DocumentTraversal &/*other*/)
- {}
-
- /**
- *
- */
- virtual ~DocumentTraversal() {}
-
-};
-
-
-
-
-
-
-} //namespace traversal
-} //namespace dom
-} //namespace w3c
-} //namespace org
-
-#endif // SEEN_TRAVERSAL_H
-
-
-/*#########################################################################
-## E N D O F F I L E
-#########################################################################*/
-
diff --git a/src/dom/ucd.cpp b/src/dom/ucd.cpp
deleted file mode 100644
index f74af3956..000000000
--- a/src/dom/ucd.cpp
+++ /dev/null
@@ -1,2539 +0,0 @@
-/*
- * Generated by UcdReader at:Mon Jun 30 13:52:41 GMT-06:00 2008
- * block table size:2 (4 bytes)
- * plane table size:6 (64 bytes)
- *
- *
- * This table reflects information gleaned from the Unicode Character
- * Database. All codepoints are included.
- *
- * You might notice that this table is larger than some other implementations.
- * This is because we included the entire UCD set of codepoints, rather than
- * truncating it at 16 bits for UTF-16. It is similar to Java's and JS's, but
- * this is our own implementation.
- *
- * This lookup table should be compared to the raw unfolded table lookup
- * to make sure that no bits are lost in compression. This is done internally
- * before this file is generated (else it would not -be- generated). However,
- * you should also do this in the target compiler.
- *
- * The character properties are currently encoded into 32 bits in the
- * following manner:
- *
- * -----------------------------------------------------------------
- * |3|3|2|2|2|2|2|2|2|2|2|2|1|1|1|1|1|1|1|1|1|1|0|0|0|0|0|0|0|0|0|0|
- * |1|0|9|8|7|6|5|4|3|2|1|0|9|8|7|6|5|4|3|2|1|0|9|8|7|6|5|4|3|2|1|0|
- * |-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|
- * |A|B|B|B|B|C|C|C|C|C|C|C|C|C|D|E|F|G|G|G|H|H|I|I|I|I|I|J|J|J|J|J|
- * -----------------------------------------------------------------
- *
- * A 1 bit mirrored property
- * B 4 bits directionality property
- * C 9 bits signed offset used for converting case
- * D 1 bit if 1, adding the signed offset converts the character to
- * lowercase
- * E 1 bit if 1, subtracting the signed offset converts the character to
- * uppercase
- * F 1 bit if 1, character has a titlecase equivalent (possibly itself)
- * G 3 bits This field is for storing our own lexical information, in addition
- * to that given by the UCD. The fields are as follows:
- * 0 may not be part of an identifier
- * 1 ignorable control; may continue a Unicode identifier or C
- * identifier
- * 2 may continue a C identifier but not a Unicode identifier
- * (unused)
- * 3 may continue a Unicode identifier or C identifier
- * 4 is a C whitespace character
- * 5 may start or continue a C identifier;
- * may continue but not start a Unicode identifier (_)
- * 6 may start or continue a C identifier but not a Unicode
- * identifier ($)
- * 7 may start or continue a Unicode identifier or C identifier
- * Thus:
- * 5, 6, 7 may start a C identifier
- * 1, 2, 3, 5, 6, 7 may continue a C identifier
- * 7 may start a Unicode identifier
- * 1, 3, 5, 7 may continue a Unicode identifier
- * 1 is ignorable within an identifier
- * 4 is C whitespace
- * H 2 bits This field is for storing additional information regarding this
- * codepoint's numeric properties. The values are:
- * 0 this character has no numeric property
- * 1 adding the digit offset to the character code and then
- * masking with 0x1F will produce the desired numeric value
- * 2 this character has a 'strange' numeric value
- * 3 a JS supradecimal digit: adding the digit offset to the
- * character code, then masking with 0x1F, then adding 10
- * will produce the desired numeric value
- * I 5 bits digit offset
- * J 5 bits character type
- */
-
-
-
-/**
- * Look for comments in ucd.h
- */
-#include "ucd.h"
-
-
-static UcdBlockData ucd_blocks[] =
-{
- { 0x000000, 0x00007f, "Basic Latin" },
- { 0x000080, 0x0000ff, "Latin-1 Supplement" },
- { 0x000100, 0x00017f, "Latin Extended-A" },
- { 0x000180, 0x00024f, "Latin Extended-B" },
- { 0x000250, 0x0002af, "IPA Extensions" },
- { 0x0002b0, 0x0002ff, "Spacing Modifier Letters" },
- { 0x000300, 0x00036f, "Combining Diacritical Marks" },
- { 0x000370, 0x0003ff, "Greek and Coptic" },
- { 0x000400, 0x0004ff, "Cyrillic" },
- { 0x000500, 0x00052f, "Cyrillic Supplement" },
- { 0x000530, 0x00058f, "Armenian" },
- { 0x000590, 0x0005ff, "Hebrew" },
- { 0x000600, 0x0006ff, "Arabic" },
- { 0x000700, 0x00074f, "Syriac" },
- { 0x000750, 0x00077f, "Arabic Supplement" },
- { 0x000780, 0x0007bf, "Thaana" },
- { 0x0007c0, 0x0007ff, "NKo" },
- { 0x000900, 0x00097f, "Devanagari" },
- { 0x000980, 0x0009ff, "Bengali" },
- { 0x000a00, 0x000a7f, "Gurmukhi" },
- { 0x000a80, 0x000aff, "Gujarati" },
- { 0x000b00, 0x000b7f, "Oriya" },
- { 0x000b80, 0x000bff, "Tamil" },
- { 0x000c00, 0x000c7f, "Telugu" },
- { 0x000c80, 0x000cff, "Kannada" },
- { 0x000d00, 0x000d7f, "Malayalam" },
- { 0x000d80, 0x000dff, "Sinhala" },
- { 0x000e00, 0x000e7f, "Thai" },
- { 0x000e80, 0x000eff, "Lao" },
- { 0x000f00, 0x000fff, "Tibetan" },
- { 0x001000, 0x00109f, "Myanmar" },
- { 0x0010a0, 0x0010ff, "Georgian" },
- { 0x001100, 0x0011ff, "Hangul Jamo" },
- { 0x001200, 0x00137f, "Ethiopic" },
- { 0x001380, 0x00139f, "Ethiopic Supplement" },
- { 0x0013a0, 0x0013ff, "Cherokee" },
- { 0x001400, 0x00167f, "Unified Canadian Aboriginal Syllabics" },
- { 0x001680, 0x00169f, "Ogham" },
- { 0x0016a0, 0x0016ff, "Runic" },
- { 0x001700, 0x00171f, "Tagalog" },
- { 0x001720, 0x00173f, "Hanunoo" },
- { 0x001740, 0x00175f, "Buhid" },
- { 0x001760, 0x00177f, "Tagbanwa" },
- { 0x001780, 0x0017ff, "Khmer" },
- { 0x001800, 0x0018af, "Mongolian" },
- { 0x001900, 0x00194f, "Limbu" },
- { 0x001950, 0x00197f, "Tai Le" },
- { 0x001980, 0x0019df, "New Tai Lue" },
- { 0x0019e0, 0x0019ff, "Khmer Symbols" },
- { 0x001a00, 0x001a1f, "Buginese" },
- { 0x001b00, 0x001b7f, "Balinese" },
- { 0x001b80, 0x001bbf, "Sundanese" },
- { 0x001c00, 0x001c4f, "Lepcha" },
- { 0x001c50, 0x001c7f, "Ol Chiki" },
- { 0x001d00, 0x001d7f, "Phonetic Extensions" },
- { 0x001d80, 0x001dbf, "Phonetic Extensions Supplement" },
- { 0x001dc0, 0x001dff, "Combining Diacritical Marks Supplement" },
- { 0x001e00, 0x001eff, "Latin Extended Additional" },
- { 0x001f00, 0x001fff, "Greek Extended" },
- { 0x002000, 0x00206f, "General Punctuation" },
- { 0x002070, 0x00209f, "Superscripts and Subscripts" },
- { 0x0020a0, 0x0020cf, "Currency Symbols" },
- { 0x0020d0, 0x0020ff, "Combining Diacritical Marks for Symbols" },
- { 0x002100, 0x00214f, "Letterlike Symbols" },
- { 0x002150, 0x00218f, "Number Forms" },
- { 0x002190, 0x0021ff, "Arrows" },
- { 0x002200, 0x0022ff, "Mathematical Operators" },
- { 0x002300, 0x0023ff, "Miscellaneous Technical" },
- { 0x002400, 0x00243f, "Control Pictures" },
- { 0x002440, 0x00245f, "Optical Character Recognition" },
- { 0x002460, 0x0024ff, "Enclosed Alphanumerics" },
- { 0x002500, 0x00257f, "Box Drawing" },
- { 0x002580, 0x00259f, "Block Elements" },
- { 0x0025a0, 0x0025ff, "Geometric Shapes" },
- { 0x002600, 0x0026ff, "Miscellaneous Symbols" },
- { 0x002700, 0x0027bf, "Dingbats" },
- { 0x0027c0, 0x0027ef, "Miscellaneous Mathematical Symbols-A" },
- { 0x0027f0, 0x0027ff, "Supplemental Arrows-A" },
- { 0x002800, 0x0028ff, "Braille Patterns" },
- { 0x002900, 0x00297f, "Supplemental Arrows-B" },
- { 0x002980, 0x0029ff, "Miscellaneous Mathematical Symbols-B" },
- { 0x002a00, 0x002aff, "Supplemental Mathematical Operators" },
- { 0x002b00, 0x002bff, "Miscellaneous Symbols and Arrows" },
- { 0x002c00, 0x002c5f, "Glagolitic" },
- { 0x002c60, 0x002c7f, "Latin Extended-C" },
- { 0x002c80, 0x002cff, "Coptic" },
- { 0x002d00, 0x002d2f, "Georgian Supplement" },
- { 0x002d30, 0x002d7f, "Tifinagh" },
- { 0x002d80, 0x002ddf, "Ethiopic Extended" },
- { 0x002de0, 0x002dff, "Cyrillic Extended-A" },
- { 0x002e00, 0x002e7f, "Supplemental Punctuation" },
- { 0x002e80, 0x002eff, "CJK Radicals Supplement" },
- { 0x002f00, 0x002fdf, "Kangxi Radicals" },
- { 0x002ff0, 0x002fff, "Ideographic Description Characters" },
- { 0x003000, 0x00303f, "CJK Symbols and Punctuation" },
- { 0x003040, 0x00309f, "Hiragana" },
- { 0x0030a0, 0x0030ff, "Katakana" },
- { 0x003100, 0x00312f, "Bopomofo" },
- { 0x003130, 0x00318f, "Hangul Compatibility Jamo" },
- { 0x003190, 0x00319f, "Kanbun" },
- { 0x0031a0, 0x0031bf, "Bopomofo Extended" },
- { 0x0031c0, 0x0031ef, "CJK Strokes" },
- { 0x0031f0, 0x0031ff, "Katakana Phonetic Extensions" },
- { 0x003200, 0x0032ff, "Enclosed CJK Letters and Months" },
- { 0x003300, 0x0033ff, "CJK Compatibility" },
- { 0x003400, 0x004dbf, "CJK Unified Ideographs Extension A" },
- { 0x004dc0, 0x004dff, "Yijing Hexagram Symbols" },
- { 0x004e00, 0x009fff, "CJK Unified Ideographs" },
- { 0x00a000, 0x00a48f, "Yi Syllables" },
- { 0x00a490, 0x00a4cf, "Yi Radicals" },
- { 0x00a500, 0x00a63f, "Vai" },
- { 0x00a640, 0x00a69f, "Cyrillic Extended-B" },
- { 0x00a700, 0x00a71f, "Modifier Tone Letters" },
- { 0x00a720, 0x00a7ff, "Latin Extended-D" },
- { 0x00a800, 0x00a82f, "Syloti Nagri" },
- { 0x00a840, 0x00a87f, "Phags-pa" },
- { 0x00a880, 0x00a8df, "Saurashtra" },
- { 0x00a900, 0x00a92f, "Kayah Li" },
- { 0x00a930, 0x00a95f, "Rejang" },
- { 0x00aa00, 0x00aa5f, "Cham" },
- { 0x00ac00, 0x00d7af, "Hangul Syllables" },
- { 0x00d800, 0x00db7f, "High Surrogates" },
- { 0x00db80, 0x00dbff, "High Private Use Surrogates" },
- { 0x00dc00, 0x00dfff, "Low Surrogates" },
- { 0x00e000, 0x00f8ff, "Private Use Area" },
- { 0x00f900, 0x00faff, "CJK Compatibility Ideographs" },
- { 0x00fb00, 0x00fb4f, "Alphabetic Presentation Forms" },
- { 0x00fb50, 0x00fdff, "Arabic Presentation Forms-A" },
- { 0x00fe00, 0x00fe0f, "Variation Selectors" },
- { 0x00fe10, 0x00fe1f, "Vertical Forms" },
- { 0x00fe20, 0x00fe2f, "Combining Half Marks" },
- { 0x00fe30, 0x00fe4f, "CJK Compatibility Forms" },
- { 0x00fe50, 0x00fe6f, "Small Form Variants" },
- { 0x00fe70, 0x00feff, "Arabic Presentation Forms-B" },
- { 0x00ff00, 0x00ffef, "Halfwidth and Fullwidth Forms" },
- { 0x00fff0, 0x00ffff, "Specials" },
- { 0x010000, 0x01007f, "Linear B Syllabary" },
- { 0x010080, 0x0100ff, "Linear B Ideograms" },
- { 0x010100, 0x01013f, "Aegean Numbers" },
- { 0x010140, 0x01018f, "Ancient Greek Numbers" },
- { 0x010190, 0x0101cf, "Ancient Symbols" },
- { 0x0101d0, 0x0101ff, "Phaistos Disc" },
- { 0x010280, 0x01029f, "Lycian" },
- { 0x0102a0, 0x0102df, "Carian" },
- { 0x010300, 0x01032f, "Old Italic" },
- { 0x010330, 0x01034f, "Gothic" },
- { 0x010380, 0x01039f, "Ugaritic" },
- { 0x0103a0, 0x0103df, "Old Persian" },
- { 0x010400, 0x01044f, "Deseret" },
- { 0x010450, 0x01047f, "Shavian" },
- { 0x010480, 0x0104af, "Osmanya" },
- { 0x010800, 0x01083f, "Cypriot Syllabary" },
- { 0x010900, 0x01091f, "Phoenician" },
- { 0x010920, 0x01093f, "Lydian" },
- { 0x010a00, 0x010a5f, "Kharoshthi" },
- { 0x012000, 0x0123ff, "Cuneiform" },
- { 0x012400, 0x01247f, "Cuneiform Numbers and Punctuation" },
- { 0x01d000, 0x01d0ff, "Byzantine Musical Symbols" },
- { 0x01d100, 0x01d1ff, "Musical Symbols" },
- { 0x01d200, 0x01d24f, "Ancient Greek Musical Notation" },
- { 0x01d300, 0x01d35f, "Tai Xuan Jing Symbols" },
- { 0x01d360, 0x01d37f, "Counting Rod Numerals" },
- { 0x01d400, 0x01d7ff, "Mathematical Alphanumeric Symbols" },
- { 0x01f000, 0x01f02f, "Mahjong Tiles" },
- { 0x01f030, 0x01f09f, "Domino Tiles" },
- { 0x020000, 0x02a6df, "CJK Unified Ideographs Extension B" },
- { 0x02f800, 0x02fa1f, "CJK Compatibility Ideographs Supplement" },
- { 0x0e0000, 0x0e007f, "Tags" },
- { 0x0e0100, 0x0e01ef, "Variation Selectors Supplement" },
- { 0x0f0000, 0x0fffff, "Supplementary Private Use Area-A" },
- { 0x100000, 0x10ffff, "Supplementary Private Use Area-B" },
- { 0x000000, 0x10FFFF, (char*)0 } /* No_Block */
-};
-
-
-/**
- * Plane table has 4352 entries
- */
-static unsigned short plane[] =
-{
- 0x0000, 0x0040, 0x0080, 0x00c0, 0x0100, 0x0140, 0x0180, 0x01c0, /* 8 */
- 0x0200, 0x0240, 0x0280, 0x02c0, 0x0300, 0x0340, 0x0380, 0x03c0, /* 16 */
- 0x0400, 0x0440, 0x0480, 0x04c0, 0x0500, 0x0540, 0x0580, 0x05c0, /* 24 */
- 0x0600, 0x0640, 0x0680, 0x06c0, 0x0700, 0x0740, 0x0780, 0x07c0, /* 32 */
- 0x0800, 0x0840, 0x0880, 0x08c0, 0x0900, 0x0940, 0x0980, 0x09c0, /* 40 */
- 0x0a00, 0x0a40, 0x0a80, 0x0ac0, 0x0b00, 0x0b40, 0x0b80, 0x0bc0, /* 48 */
- 0x0c00, 0x0c40, 0x0c80, 0x0cc0, 0x0501, 0x0501, 0x0501, 0x0501, /* 56 */
- 0x0501, 0x0501, 0x0501, 0x0501, 0x0501, 0x0501, 0x0501, 0x0501, /* 64 */
- 0x0501, 0x0501, 0x0501, 0x0501, 0x0501, 0x0501, 0x0501, 0x0501, /* 72 */
- 0x0501, 0x0501, 0x0501, 0x0501, 0x0501, 0x0d00, 0x0501, 0x0501, /* 80 */
- 0x0501, 0x0501, 0x0501, 0x0501, 0x0501, 0x0501, 0x0501, 0x0501, /* 88 */
- 0x0501, 0x0501, 0x0501, 0x0501, 0x0501, 0x0501, 0x0501, 0x0501, /* 96 */
- 0x0501, 0x0501, 0x0501, 0x0501, 0x0501, 0x0501, 0x0501, 0x0501, /* 104 */
- 0x0501, 0x0501, 0x0501, 0x0501, 0x0501, 0x0501, 0x0501, 0x0501, /* 112 */
- 0x0501, 0x0501, 0x0501, 0x0501, 0x0501, 0x0501, 0x0501, 0x0501, /* 120 */
- 0x0501, 0x0501, 0x0501, 0x0501, 0x0501, 0x0501, 0x0501, 0x0501, /* 128 */
- 0x0501, 0x0501, 0x0501, 0x0501, 0x0501, 0x0501, 0x0501, 0x0501, /* 136 */
- 0x0501, 0x0501, 0x0501, 0x0501, 0x0501, 0x0501, 0x0501, 0x0501, /* 144 */
- 0x0501, 0x0501, 0x0501, 0x0501, 0x0501, 0x0501, 0x0501, 0x0501, /* 152 */
- 0x0501, 0x0501, 0x0501, 0x0501, 0x0501, 0x0501, 0x0501, 0x0d40, /* 160 */
- 0x0d80, 0x0501, 0x0501, 0x0501, 0x0dc0, 0x0501, 0x0e00, 0x0e40, /* 168 */
- 0x0e80, 0x0ec0, 0x0f00, 0x01ff, 0x0501, 0x0501, 0x0501, 0x0501, /* 176 */
- 0x0501, 0x0501, 0x0501, 0x0501, 0x0501, 0x0501, 0x0501, 0x0501, /* 184 */
- 0x0501, 0x0501, 0x0501, 0x0501, 0x0501, 0x0501, 0x0501, 0x0501, /* 192 */
- 0x0501, 0x0501, 0x0501, 0x0501, 0x0501, 0x0501, 0x0501, 0x0501, /* 200 */
- 0x0501, 0x0501, 0x0501, 0x0501, 0x0501, 0x0501, 0x0501, 0x0501, /* 208 */
- 0x0501, 0x0501, 0x0501, 0x0501, 0x0501, 0x0501, 0x0501, 0x0f40, /* 216 */
- 0x0f80, 0x0fc0, 0x0f82, 0x0f82, 0x0f82, 0x0f82, 0x0f82, 0x0f82, /* 224 */
- 0x1000, 0x1040, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, /* 232 */
- 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, /* 240 */
- 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, /* 248 */
- 0x1002, 0x1080, 0x10c0, 0x1100, 0x1140, 0x1180, 0x11c0, 0x1200, /* 256 */
- 0x1240, 0x1280, 0x12c0, 0x1300, 0x1340, 0x01ff, 0x01ff, 0x01ff, /* 264 */
- 0x1380, 0x13c0, 0x1400, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 272 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 280 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 288 */
- 0x0501, 0x0501, 0x0501, 0x1440, 0x1480, 0x01ff, 0x01ff, 0x01ff, /* 296 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 304 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 312 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 320 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 328 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 336 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 344 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 352 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 360 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 368 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 376 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 384 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 392 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 400 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 408 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 416 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 424 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 432 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 440 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 448 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 456 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 464 */
- 0x14c0, 0x1500, 0x1540, 0x1580, 0x15c0, 0x1600, 0x1640, 0x1680, /* 472 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 480 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 488 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 496 */
- 0x16c0, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 504 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 512 */
- 0x0501, 0x0501, 0x0501, 0x0501, 0x0501, 0x0501, 0x0501, 0x0501, /* 520 */
- 0x0501, 0x0501, 0x0501, 0x0501, 0x0501, 0x0501, 0x0501, 0x0501, /* 528 */
- 0x0501, 0x0501, 0x0501, 0x0501, 0x0501, 0x0501, 0x0501, 0x0501, /* 536 */
- 0x0501, 0x0501, 0x0501, 0x0501, 0x0501, 0x0501, 0x0501, 0x0501, /* 544 */
- 0x0501, 0x0501, 0x0501, 0x0501, 0x0501, 0x0501, 0x0501, 0x0501, /* 552 */
- 0x0501, 0x0501, 0x0501, 0x0501, 0x0501, 0x0501, 0x0501, 0x0501, /* 560 */
- 0x0501, 0x0501, 0x0501, 0x0501, 0x0501, 0x0501, 0x0501, 0x0501, /* 568 */
- 0x0501, 0x0501, 0x0501, 0x0501, 0x0501, 0x0501, 0x0501, 0x0501, /* 576 */
- 0x0501, 0x0501, 0x0501, 0x0501, 0x0501, 0x0501, 0x0501, 0x0501, /* 584 */
- 0x0501, 0x0501, 0x0501, 0x0501, 0x0501, 0x0501, 0x0501, 0x0501, /* 592 */
- 0x0501, 0x0501, 0x0501, 0x0501, 0x0501, 0x0501, 0x0501, 0x0501, /* 600 */
- 0x0501, 0x0501, 0x0501, 0x0501, 0x0501, 0x0501, 0x0501, 0x0501, /* 608 */
- 0x0501, 0x0501, 0x0501, 0x0501, 0x0501, 0x0501, 0x0501, 0x0501, /* 616 */
- 0x0501, 0x0501, 0x0501, 0x0501, 0x0501, 0x0501, 0x0501, 0x0501, /* 624 */
- 0x0501, 0x0501, 0x0501, 0x0501, 0x0501, 0x0501, 0x0501, 0x0501, /* 632 */
- 0x0501, 0x0501, 0x0501, 0x0501, 0x0501, 0x0501, 0x0501, 0x0501, /* 640 */
- 0x0501, 0x0501, 0x0501, 0x0501, 0x0501, 0x0501, 0x0501, 0x0501, /* 648 */
- 0x0501, 0x0501, 0x0501, 0x0501, 0x0501, 0x0501, 0x0501, 0x0501, /* 656 */
- 0x0501, 0x0501, 0x0501, 0x0501, 0x0501, 0x0501, 0x0501, 0x0501, /* 664 */
- 0x0501, 0x0501, 0x0501, 0x0501, 0x0501, 0x0501, 0x0501, 0x0501, /* 672 */
- 0x0501, 0x0501, 0x0501, 0x0501, 0x0501, 0x0501, 0x1700, 0x01ff, /* 680 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 688 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 696 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 704 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 712 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 720 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 728 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 736 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 744 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 752 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 760 */
- 0x1740, 0x0501, 0x1780, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 768 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 776 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 784 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 792 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 800 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 808 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 816 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 824 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 832 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 840 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 848 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 856 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 864 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 872 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 880 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 888 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 896 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 904 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 912 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 920 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 928 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 936 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 944 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 952 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 960 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 968 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 976 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 984 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 992 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 1000 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 1008 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 1016 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 1024 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 1032 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 1040 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 1048 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 1056 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 1064 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 1072 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 1080 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 1088 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 1096 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 1104 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 1112 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 1120 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 1128 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 1136 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 1144 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 1152 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 1160 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 1168 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 1176 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 1184 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 1192 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 1200 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 1208 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 1216 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 1224 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 1232 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 1240 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 1248 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 1256 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 1264 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 1272 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 1280 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 1288 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 1296 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 1304 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 1312 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 1320 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 1328 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 1336 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 1344 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 1352 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 1360 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 1368 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 1376 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 1384 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 1392 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 1400 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 1408 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 1416 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 1424 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 1432 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 1440 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 1448 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 1456 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 1464 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 1472 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 1480 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 1488 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 1496 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 1504 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 1512 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 1520 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 1528 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 1536 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 1544 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 1552 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 1560 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 1568 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 1576 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 1584 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 1592 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 1600 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 1608 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 1616 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 1624 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 1632 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 1640 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 1648 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 1656 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 1664 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 1672 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 1680 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 1688 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 1696 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 1704 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 1712 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 1720 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 1728 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 1736 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 1744 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 1752 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 1760 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 1768 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 1776 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 1784 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 1792 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 1800 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 1808 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 1816 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 1824 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 1832 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 1840 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 1848 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 1856 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 1864 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 1872 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 1880 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 1888 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 1896 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 1904 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 1912 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 1920 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 1928 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 1936 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 1944 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 1952 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 1960 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 1968 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 1976 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 1984 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 1992 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 2000 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 2008 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 2016 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 2024 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 2032 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 2040 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 2048 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 2056 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 2064 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 2072 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 2080 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 2088 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 2096 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 2104 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 2112 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 2120 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 2128 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 2136 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 2144 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 2152 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 2160 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 2168 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 2176 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 2184 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 2192 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 2200 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 2208 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 2216 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 2224 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 2232 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 2240 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 2248 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 2256 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 2264 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 2272 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 2280 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 2288 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 2296 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 2304 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 2312 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 2320 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 2328 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 2336 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 2344 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 2352 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 2360 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 2368 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 2376 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 2384 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 2392 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 2400 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 2408 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 2416 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 2424 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 2432 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 2440 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 2448 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 2456 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 2464 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 2472 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 2480 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 2488 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 2496 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 2504 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 2512 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 2520 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 2528 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 2536 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 2544 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 2552 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 2560 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 2568 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 2576 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 2584 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 2592 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 2600 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 2608 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 2616 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 2624 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 2632 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 2640 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 2648 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 2656 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 2664 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 2672 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 2680 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 2688 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 2696 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 2704 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 2712 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 2720 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 2728 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 2736 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 2744 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 2752 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 2760 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 2768 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 2776 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 2784 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 2792 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 2800 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 2808 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 2816 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 2824 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 2832 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 2840 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 2848 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 2856 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 2864 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 2872 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 2880 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 2888 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 2896 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 2904 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 2912 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 2920 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 2928 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 2936 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 2944 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 2952 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 2960 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 2968 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 2976 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 2984 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 2992 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 3000 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 3008 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 3016 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 3024 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 3032 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 3040 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 3048 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 3056 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 3064 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 3072 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 3080 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 3088 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 3096 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 3104 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 3112 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 3120 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 3128 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 3136 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 3144 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 3152 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 3160 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 3168 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 3176 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 3184 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 3192 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 3200 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 3208 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 3216 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 3224 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 3232 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 3240 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 3248 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 3256 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 3264 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 3272 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 3280 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 3288 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 3296 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 3304 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 3312 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 3320 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 3328 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 3336 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 3344 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 3352 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 3360 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 3368 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 3376 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 3384 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 3392 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 3400 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 3408 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 3416 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 3424 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 3432 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 3440 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 3448 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 3456 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 3464 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 3472 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 3480 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 3488 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 3496 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 3504 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 3512 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 3520 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 3528 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 3536 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 3544 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 3552 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 3560 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 3568 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 3576 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 3584 */
- 0x17c0, 0x1800, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 3592 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 3600 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 3608 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 3616 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 3624 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 3632 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 3640 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 3648 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 3656 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 3664 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 3672 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 3680 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 3688 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 3696 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 3704 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 3712 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 3720 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 3728 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 3736 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 3744 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 3752 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 3760 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 3768 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 3776 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 3784 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 3792 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 3800 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 3808 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 3816 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 3824 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 3832 */
- 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, 0x01ff, /* 3840 */
- 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, /* 3848 */
- 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, /* 3856 */
- 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, /* 3864 */
- 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, /* 3872 */
- 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, /* 3880 */
- 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, /* 3888 */
- 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, /* 3896 */
- 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, /* 3904 */
- 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, /* 3912 */
- 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, /* 3920 */
- 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, /* 3928 */
- 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, /* 3936 */
- 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, /* 3944 */
- 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, /* 3952 */
- 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, /* 3960 */
- 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, /* 3968 */
- 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, /* 3976 */
- 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, /* 3984 */
- 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, /* 3992 */
- 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, /* 4000 */
- 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, /* 4008 */
- 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, /* 4016 */
- 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, /* 4024 */
- 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, /* 4032 */
- 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, /* 4040 */
- 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, /* 4048 */
- 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, /* 4056 */
- 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, /* 4064 */
- 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, /* 4072 */
- 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, /* 4080 */
- 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, /* 4088 */
- 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1840, /* 4096 */
- 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, /* 4104 */
- 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, /* 4112 */
- 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, /* 4120 */
- 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, /* 4128 */
- 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, /* 4136 */
- 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, /* 4144 */
- 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, /* 4152 */
- 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, /* 4160 */
- 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, /* 4168 */
- 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, /* 4176 */
- 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, /* 4184 */
- 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, /* 4192 */
- 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, /* 4200 */
- 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, /* 4208 */
- 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, /* 4216 */
- 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, /* 4224 */
- 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, /* 4232 */
- 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, /* 4240 */
- 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, /* 4248 */
- 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, /* 4256 */
- 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, /* 4264 */
- 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, /* 4272 */
- 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, /* 4280 */
- 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, /* 4288 */
- 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, /* 4296 */
- 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, /* 4304 */
- 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, /* 4312 */
- 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, /* 4320 */
- 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, /* 4328 */
- 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, /* 4336 */
- 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, /* 4344 */
- 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1002, 0x1880, /* 4352 */
-
-};
-
-/**
- * Block table has 6336 entries
- */
-static unsigned short block[] =
-{
- 0x0000, 0x0004, 0x0008, 0x000c, 0x0000, 0x0000, 0x0000, 0x0010, /* 8 */
- 0x0014, 0x0018, 0x001c, 0x0020, 0x0024, 0x0028, 0x002c, 0x0030, /* 16 */
- 0x0034, 0x0038, 0x003c, 0x0040, 0x0044, 0x0048, 0x004c, 0x0050, /* 24 */
- 0x0054, 0x0058, 0x005c, 0x0060, 0x0064, 0x0068, 0x006c, 0x0070, /* 32 */
- 0x0000, 0x0074, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, /* 40 */
- 0x0078, 0x007c, 0x0080, 0x0084, 0x0088, 0x008c, 0x0090, 0x0094, /* 48 */
- 0x0098, 0x009c, 0x0098, 0x00a0, 0x0098, 0x00a4, 0x0098, 0x00a8, /* 56 */
- 0x00ac, 0x00b0, 0x00ac, 0x00ac, 0x00ac, 0x00b4, 0x00ac, 0x00b8, /* 64 */
- 0x00bc, 0x00c0, 0x00bc, 0x00bc, 0x00bc, 0x00bc, 0x00bc, 0x00bc, /* 72 */
- 0x00bc, 0x00bc, 0x00c4, 0x00c2, 0x00c8, 0x00bc, 0x00cc, 0x00bd, /* 80 */
- 0x00bd, 0x00bd, 0x00d0, 0x00bc, 0x00bc, 0x00bc, 0x00bc, 0x00bc, /* 88 */
- 0x00bc, 0x00bc, 0x00bc, 0x00bc, 0x00bc, 0x00bc, 0x00d4, 0x00ce, /* 96 */
- 0x00d8, 0x00dc, 0x00e0, 0x00e4, 0x00e8, 0x00ec, 0x00f0, 0x00f4, /* 104 */
- 0x00bc, 0x00f8, 0x00fc, 0x00f8, 0x0100, 0x0104, 0x0108, 0x010c, /* 112 */
- 0x0110, 0x0114, 0x0118, 0x011c, 0x00bd, 0x00bd, 0x00bd, 0x0120, /* 120 */
- 0x00bc, 0x00bc, 0x00bc, 0x00bc, 0x0124, 0x0128, 0x00bc, 0x00bc, /* 128 */
- 0x00bc, 0x00bc, 0x00bc, 0x00bc, 0x00bc, 0x00bc, 0x00bc, 0x00bc, /* 136 */
- 0x012c, 0x00bc, 0x00bc, 0x00bc, 0x00bc, 0x0130, 0x0134, 0x0138, /* 144 */
- 0x013c, 0x0140, 0x00bc, 0x00bc, 0x0144, 0x0148, 0x014c, 0x0130, /* 152 */
- 0x0150, 0x0130, 0x0154, 0x0158, 0x015c, 0x0160, 0x0130, 0x0156, /* 160 */
- 0x0164, 0x0130, 0x0168, 0x016c, 0x0170, 0x0174, 0x0130, 0x0130, /* 168 */
- 0x0130, 0x0130, 0x0130, 0x0130, 0x0178, 0x017c, 0x0180, 0x0178, /* 176 */
- 0x0184, 0x0188, 0x018c, 0x018a, 0x0184, 0x0186, 0x0186, 0x0186, /* 184 */
- 0x0178, 0x0185, 0x0186, 0x0190, 0x0186, 0x0186, 0x0186, 0x0186, /* 192 */
- 0x0194, 0x0198, 0x0194, 0x0194, 0x0194, 0x0194, 0x0194, 0x0194, /* 200 */
- 0x0194, 0x0194, 0x0194, 0x0194, 0x0194, 0x0194, 0x0194, 0x0194, /* 208 */
- 0x0194, 0x019c, 0x0194, 0x0194, 0x0194, 0x0194, 0x0194, 0x0194, /* 216 */
- 0x0194, 0x0194, 0x0194, 0x0194, 0x00bc, 0x01a0, 0x01a4, 0x01a8, /* 224 */
- 0x01ac, 0x01b0, 0x01b4, 0x01b8, 0x01bc, 0x0098, 0x0098, 0x0098, /* 232 */
- 0x01c0, 0x0098, 0x0098, 0x01c4, 0x00ab, 0x00ac, 0x00ac, 0x00ac, /* 240 */
- 0x01c8, 0x00ac, 0x00ac, 0x01cc, 0x01d0, 0x01d4, 0x00bc, 0x00bc, /* 248 */
- 0x00bc, 0x00bc, 0x00bc, 0x00bc, 0x01d8, 0x01dc, 0x01e0, 0x01e4, /* 256 */
- 0x01e8, 0x01ec, 0x01e8, 0x01e8, 0x0098, 0x0098, 0x0098, 0x0098, /* 264 */
- 0x0098, 0x0098, 0x0098, 0x0098, 0x00ac, 0x00ac, 0x00ac, 0x00ac, /* 272 */
- 0x00ac, 0x00ac, 0x00ac, 0x00ac, 0x01f0, 0x01f4, 0x01f0, 0x01f0, /* 280 */
- 0x00bc, 0x00bc, 0x00bc, 0x00bc, 0x00bc, 0x00bc, 0x00bc, 0x00bc, /* 288 */
- 0x01f8, 0x0194, 0x01fc, 0x00bc, 0x00bc, 0x00bc, 0x00bc, 0x00bc, /* 296 */
- 0x00bc, 0x00bc, 0x00bc, 0x00bc, 0x00bc, 0x00bc, 0x00bc, 0x00bc, /* 304 */
- 0x0200, 0x00bd, 0x00bd, 0x0204, 0x00bc, 0x00bc, 0x00bc, 0x00bc, /* 312 */
- 0x00bc, 0x00bc, 0x00bc, 0x00bc, 0x00bc, 0x00bc, 0x00bc, 0x00bc, /* 320 */
- 0x00bc, 0x00bc, 0x00bc, 0x00bc, 0x00bc, 0x00bc, 0x00bc, 0x00bc, /* 328 */
- 0x00bc, 0x01ab, 0x01ab, 0x01ab, 0x0208, 0x020c, 0x0209, 0x0209, /* 336 */
- 0x0209, 0x0209, 0x0209, 0x0209, 0x0209, 0x0210, 0x0214, 0x0218, /* 344 */
- 0x021c, 0x0220, 0x021d, 0x021d, 0x021d, 0x021d, 0x021d, 0x021d, /* 352 */
- 0x021d, 0x0224, 0x0228, 0x01ab, 0x022c, 0x0194, 0x0194, 0x0194, /* 360 */
- 0x0194, 0x0194, 0x0194, 0x0194, 0x0194, 0x0194, 0x0194, 0x0230, /* 368 */
- 0x0234, 0x0238, 0x01ab, 0x01ab, 0x023c, 0x0240, 0x023c, 0x023c, /* 376 */
- 0x023c, 0x023c, 0x0244, 0x01ab, 0x0248, 0x024c, 0x01ab, 0x01ab, /* 384 */
- 0x0250, 0x0254, 0x0258, 0x025c, 0x0194, 0x0194, 0x0260, 0x0264, /* 392 */
- 0x0268, 0x026c, 0x0269, 0x0269, 0x0269, 0x0269, 0x0269, 0x0269, /* 400 */
- 0x0270, 0x0269, 0x0274, 0x0194, 0x0194, 0x0194, 0x0194, 0x0278, /* 408 */
- 0x027c, 0x0280, 0x0284, 0x0288, 0x028c, 0x0269, 0x0269, 0x0269, /* 416 */
- 0x0269, 0x0269, 0x0269, 0x0269, 0x0269, 0x0269, 0x0269, 0x0269, /* 424 */
- 0x0269, 0x0269, 0x0269, 0x0269, 0x0269, 0x0269, 0x0269, 0x0269, /* 432 */
- 0x0269, 0x0269, 0x0269, 0x0269, 0x0269, 0x0290, 0x0194, 0x0294, /* 440 */
- 0x0194, 0x0298, 0x029c, 0x02a0, 0x0024, 0x0028, 0x02a4, 0x02a8, /* 448 */
- 0x02ac, 0x02b0, 0x02ac, 0x02b4, 0x028b, 0x0269, 0x0269, 0x0269, /* 456 */
- 0x0269, 0x0269, 0x0269, 0x0269, 0x0194, 0x0194, 0x0194, 0x0194, /* 464 */
- 0x0194, 0x0194, 0x0278, 0x0268, 0x0269, 0x0269, 0x0269, 0x0269, /* 472 */
- 0x0269, 0x0269, 0x0269, 0x0269, 0x0269, 0x0269, 0x0269, 0x0269, /* 480 */
- 0x0269, 0x0269, 0x0269, 0x0269, 0x0269, 0x0269, 0x0269, 0x0269, /* 488 */
- 0x0269, 0x0275, 0x0194, 0x0194, 0x02b8, 0x01ab, 0x01ab, 0x01ab, /* 496 */
- 0x02bc, 0x02c0, 0x02c4, 0x023c, 0x023c, 0x023c, 0x023c, 0x023c, /* 504 */
- 0x023c, 0x023c, 0x02c8, 0x0194, 0x0194, 0x02cc, 0x02d0, 0x01ab, /* 512 */
- 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, /* 520 */
- 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, /* 528 */
- 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, /* 536 */
- 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, /* 544 */
- 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, /* 552 */
- 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, /* 560 */
- 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, /* 568 */
- 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, /* 576 */
- 0x02d4, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, /* 584 */
- 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x02d8, 0x02dc, /* 592 */
- 0x02e0, 0x0194, 0x02e4, 0x02e8, 0x02ec, 0x02f0, 0x0110, 0x0110, /* 600 */
- 0x02f4, 0x02f8, 0x02fc, 0x0300, 0x0304, 0x01ab, 0x02f1, 0x0110, /* 608 */
- 0x0308, 0x030c, 0x0110, 0x0310, 0x0314, 0x0110, 0x0110, 0x0110, /* 616 */
- 0x0110, 0x0110, 0x0318, 0x0110, 0x031c, 0x02f2, 0x02d8, 0x02dc, /* 624 */
- 0x02e0, 0x0320, 0x0324, 0x0328, 0x01ab, 0x032c, 0x01ab, 0x0317, /* 632 */
- 0x02f4, 0x0330, 0x02fc, 0x0300, 0x0334, 0x0338, 0x033c, 0x01ab, /* 640 */
- 0x02d4, 0x030c, 0x030e, 0x02f1, 0x0310, 0x0110, 0x0110, 0x0110, /* 648 */
- 0x0110, 0x0110, 0x0318, 0x0110, 0x0318, 0x0312, 0x02d8, 0x0340, /* 656 */
- 0x0344, 0x0348, 0x034c, 0x02ef, 0x031f, 0x01ab, 0x030c, 0x031c, /* 664 */
- 0x01ab, 0x0330, 0x02fc, 0x0300, 0x0350, 0x0354, 0x01ab, 0x01ab, /* 672 */
- 0x02d4, 0x030c, 0x0110, 0x0317, 0x0317, 0x0110, 0x0110, 0x0110, /* 680 */
- 0x0110, 0x0110, 0x0318, 0x0110, 0x0318, 0x030c, 0x02d8, 0x02dc, /* 688 */
- 0x02e0, 0x0358, 0x035c, 0x02e8, 0x032a, 0x01ab, 0x01ab, 0x01ab, /* 696 */
- 0x02f4, 0x0330, 0x02fc, 0x0300, 0x0360, 0x01ab, 0x01ab, 0x01ab, /* 704 */
- 0x0308, 0x030c, 0x0110, 0x0310, 0x0310, 0x0110, 0x0110, 0x0110, /* 712 */
- 0x0110, 0x0110, 0x0318, 0x0110, 0x0318, 0x030c, 0x02d8, 0x0364, /* 720 */
- 0x02e0, 0x0320, 0x0324, 0x02e8, 0x01ab, 0x0307, 0x01ab, 0x0317, /* 728 */
- 0x02f4, 0x0330, 0x02fc, 0x0300, 0x0368, 0x01ab, 0x01ab, 0x01ab, /* 736 */
- 0x02da, 0x030c, 0x030e, 0x02f2, 0x0318, 0x02d8, 0x0312, 0x0318, /* 744 */
- 0x02f1, 0x032a, 0x030e, 0x02f2, 0x0110, 0x0110, 0x02d8, 0x0321, /* 752 */
- 0x0309, 0x0321, 0x036c, 0x02e8, 0x032a, 0x032c, 0x01ab, 0x01ab, /* 760 */
- 0x01ab, 0x0330, 0x02fc, 0x0300, 0x0370, 0x0374, 0x0378, 0x01ab, /* 768 */
- 0x0341, 0x030c, 0x0110, 0x0318, 0x0318, 0x0110, 0x0110, 0x0110, /* 776 */
- 0x0110, 0x0110, 0x0318, 0x0110, 0x0110, 0x030c, 0x02d8, 0x02eb, /* 784 */
- 0x02e4, 0x037c, 0x0359, 0x02ef, 0x01ab, 0x034a, 0x02d8, 0x01ab, /* 792 */
- 0x02f4, 0x0330, 0x02fc, 0x0300, 0x01ab, 0x01ab, 0x0380, 0x0384, /* 800 */
- 0x0321, 0x030c, 0x0110, 0x0318, 0x0318, 0x0110, 0x0110, 0x0110, /* 808 */
- 0x0110, 0x0110, 0x0318, 0x0110, 0x0110, 0x030c, 0x02d8, 0x0388, /* 816 */
- 0x02e5, 0x038c, 0x036c, 0x02ef, 0x01ab, 0x0322, 0x01ab, 0x0390, /* 824 */
- 0x02f4, 0x0330, 0x02fc, 0x0300, 0x0394, 0x01ab, 0x01ab, 0x01ab, /* 832 */
- 0x0321, 0x030c, 0x0110, 0x0318, 0x0318, 0x0110, 0x0110, 0x0110, /* 840 */
- 0x0110, 0x0110, 0x0318, 0x0110, 0x0110, 0x0110, 0x02d8, 0x0398, /* 848 */
- 0x02e0, 0x0340, 0x036c, 0x02e8, 0x01ab, 0x032c, 0x01ab, 0x01ab, /* 856 */
- 0x02f4, 0x0330, 0x02fc, 0x0300, 0x039c, 0x03a0, 0x03a4, 0x0110, /* 864 */
- 0x0321, 0x030c, 0x0110, 0x0110, 0x0110, 0x030e, 0x02f2, 0x0110, /* 872 */
- 0x0110, 0x0110, 0x0110, 0x0110, 0x0317, 0x0110, 0x0110, 0x0391, /* 880 */
- 0x0110, 0x030e, 0x03a8, 0x032c, 0x02df, 0x03ac, 0x02e5, 0x02e5, /* 888 */
- 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x0321, 0x03b0, 0x01ab, 0x01ab, /* 896 */
- 0x030c, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, /* 904 */
- 0x0110, 0x0110, 0x0110, 0x0110, 0x03b4, 0x0194, 0x0278, 0x03b8, /* 912 */
- 0x0110, 0x03bc, 0x0194, 0x03c0, 0x02fa, 0x02fe, 0x03c4, 0x01ab, /* 920 */
- 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, /* 928 */
- 0x0312, 0x0310, 0x031c, 0x0391, 0x01ab, 0x0110, 0x030c, 0x0110, /* 936 */
- 0x030c, 0x03c8, 0x02f2, 0x030c, 0x03b4, 0x0194, 0x0358, 0x0329, /* 944 */
- 0x0110, 0x03cc, 0x0194, 0x02ef, 0x02fa, 0x02fe, 0x03d0, 0x02d8, /* 952 */
- 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, /* 960 */
- 0x03d4, 0x0216, 0x0216, 0x0216, 0x03d8, 0x03dc, 0x03e0, 0x03db, /* 968 */
- 0x02fa, 0x02fe, 0x03e4, 0x03e8, 0x03e6, 0x03ec, 0x03f0, 0x03f4, /* 976 */
- 0x0110, 0x0110, 0x030c, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, /* 984 */
- 0x0110, 0x0110, 0x0110, 0x032a, 0x022c, 0x0194, 0x0194, 0x02e2, /* 992 */
- 0x0194, 0x03f8, 0x0110, 0x01ab, 0x0194, 0x0194, 0x022c, 0x0194, /* 1000 */
- 0x0194, 0x0194, 0x0194, 0x0194, 0x0194, 0x0194, 0x0194, 0x03fc, /* 1008 */
- 0x03db, 0x0400, 0x03db, 0x0404, 0x0216, 0x03b0, 0x01ab, 0x01ab, /* 1016 */
- 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, /* 1024 */
- 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, /* 1032 */
- 0x0110, 0x0110, 0x0408, 0x02e0, 0x040c, 0x0194, 0x0410, 0x0414, /* 1040 */
- 0x02fa, 0x02fe, 0x03c4, 0x0216, 0x0110, 0x0418, 0x0350, 0x02f4, /* 1048 */
- 0x02dc, 0x041c, 0x02e5, 0x041b, 0x02ec, 0x0351, 0x0110, 0x0110, /* 1056 */
- 0x0420, 0x040d, 0x02e5, 0x0424, 0x02fa, 0x02fe, 0x03d0, 0x0428, /* 1064 */
- 0x042c, 0x0430, 0x042c, 0x042c, 0x042c, 0x042c, 0x042c, 0x042c, /* 1072 */
- 0x042c, 0x0434, 0x01ab, 0x01ab, 0x0110, 0x0110, 0x0110, 0x0110, /* 1080 */
- 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0438, 0x043c, /* 1088 */
- 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, /* 1096 */
- 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, /* 1104 */
- 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x02d8, 0x02f1, /* 1112 */
- 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, /* 1120 */
- 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, /* 1128 */
- 0x030e, 0x01ab, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, /* 1136 */
- 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, /* 1144 */
- 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x02d8, 0x01ab, /* 1152 */
- 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, /* 1160 */
- 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, /* 1168 */
- 0x0110, 0x0110, 0x0318, 0x02d8, 0x0110, 0x030e, 0x0318, 0x02d8, /* 1176 */
- 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, /* 1184 */
- 0x0110, 0x0110, 0x0318, 0x02d8, 0x0110, 0x0110, 0x0110, 0x0110, /* 1192 */
- 0x0110, 0x0110, 0x0110, 0x0110, 0x0318, 0x02d8, 0x0110, 0x030e, /* 1200 */
- 0x0318, 0x02d8, 0x0110, 0x0110, 0x0110, 0x030e, 0x0110, 0x0110, /* 1208 */
- 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, /* 1216 */
- 0x0110, 0x0110, 0x0110, 0x0110, 0x0318, 0x02d8, 0x0110, 0x0110, /* 1224 */
- 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, /* 1232 */
- 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x030e, 0x0348, /* 1240 */
- 0x03d7, 0x0216, 0x0440, 0x0444, 0x0448, 0x044c, 0x0450, 0x0454, /* 1248 */
- 0x0110, 0x0110, 0x0110, 0x0110, 0x0373, 0x0373, 0x0395, 0x01ab, /* 1256 */
- 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, /* 1264 */
- 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, /* 1272 */
- 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x032a, 0x01ab, 0x01ab, /* 1280 */
- 0x030c, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, /* 1288 */
- 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, /* 1296 */
- 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, /* 1304 */
- 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, /* 1312 */
- 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, /* 1320 */
- 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, /* 1328 */
- 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, /* 1336 */
- 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, /* 1344 */
- 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, /* 1352 */
- 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, /* 1360 */
- 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, /* 1368 */
- 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, /* 1376 */
- 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, /* 1384 */
- 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, /* 1392 */
- 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, /* 1400 */
- 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, /* 1408 */
- 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, /* 1416 */
- 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, /* 1424 */
- 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, /* 1432 */
- 0x0110, 0x0110, 0x0110, 0x0458, 0x0110, 0x030e, 0x01ab, 0x01ab, /* 1440 */
- 0x045c, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0460, 0x0464, /* 1448 */
- 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, /* 1456 */
- 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, /* 1464 */
- 0x0110, 0x0110, 0x0438, 0x0468, 0x046c, 0x01ab, 0x01ab, 0x01ab, /* 1472 */
- 0x0110, 0x0110, 0x0110, 0x0318, 0x02f4, 0x02f0, 0x01ab, 0x01ab, /* 1480 */
- 0x0110, 0x0110, 0x0110, 0x0110, 0x02f4, 0x0470, 0x01ab, 0x01ab, /* 1488 */
- 0x0110, 0x0110, 0x0110, 0x0110, 0x02f4, 0x01ab, 0x01ab, 0x01ab, /* 1496 */
- 0x0110, 0x0110, 0x0110, 0x0318, 0x0474, 0x01ab, 0x01ab, 0x01ab, /* 1504 */
- 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, /* 1512 */
- 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0478, 0x0194, 0x02e3, /* 1520 */
- 0x02e5, 0x047c, 0x02e0, 0x0194, 0x0194, 0x0480, 0x0484, 0x0354, /* 1528 */
- 0x02fa, 0x02fe, 0x03d0, 0x01ab, 0x0380, 0x0488, 0x048c, 0x01ab, /* 1536 */
- 0x0490, 0x0494, 0x0498, 0x049c, 0x02fa, 0x02fe, 0x03d0, 0x01ab, /* 1544 */
- 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, /* 1552 */
- 0x04a0, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, /* 1560 */
- 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x01ab, 0x01ab, /* 1568 */
- 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, /* 1576 */
- 0x0110, 0x0110, 0x04a4, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, /* 1584 */
- 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, /* 1592 */
- 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, /* 1600 */
- 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x032a, /* 1608 */
- 0x02e2, 0x02de, 0x02e4, 0x01ab, 0x047c, 0x02e5, 0x02e0, 0x01ab, /* 1616 */
- 0x04a8, 0x04ac, 0x02fc, 0x0300, 0x0110, 0x0110, 0x0110, 0x0110, /* 1624 */
- 0x0110, 0x0110, 0x0110, 0x02d8, 0x0110, 0x032a, 0x01ab, 0x01ab, /* 1632 */
- 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, /* 1640 */
- 0x0110, 0x0110, 0x02d8, 0x01ab, 0x02e5, 0x02e5, 0x02e5, 0x02e5, /* 1648 */
- 0x04b0, 0x0110, 0x0323, 0x01ab, 0x02fa, 0x02fe, 0x03d0, 0x048e, /* 1656 */
- 0x0373, 0x0373, 0x0373, 0x0373, 0x0373, 0x0373, 0x0373, 0x0373, /* 1664 */
- 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0352, 0x02e4, 0x0466, /* 1672 */
- 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, /* 1680 */
- 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, /* 1688 */
- 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, /* 1696 */
- 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, /* 1704 */
- 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, /* 1712 */
- 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, /* 1720 */
- 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, /* 1728 */
- 0x0194, 0x04b4, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, /* 1736 */
- 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x040c, 0x02e2, 0x02e4, /* 1744 */
- 0x047c, 0x04b0, 0x0110, 0x01ab, 0x02fa, 0x02fe, 0x03c4, 0x0216, /* 1752 */
- 0x03da, 0x03db, 0x03dd, 0x0194, 0x0194, 0x03db, 0x03db, 0x04b8, /* 1760 */
- 0x02d5, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, /* 1768 */
- 0x04bc, 0x02e3, 0x035b, 0x02f2, 0x02fa, 0x02fe, 0x03d0, 0x01ab, /* 1776 */
- 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, /* 1784 */
- 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, /* 1792 */
- 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, /* 1800 */
- 0x0110, 0x02e5, 0x02e5, 0x0194, 0x0194, 0x02df, 0x043d, 0x0216, /* 1808 */
- 0x02fa, 0x02fe, 0x03d0, 0x030c, 0x02fa, 0x02fe, 0x04c0, 0x0110, /* 1816 */
- 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0178, 0x04c4, /* 1824 */
- 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, /* 1832 */
- 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, /* 1840 */
- 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, /* 1848 */
- 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, /* 1856 */
- 0x0130, 0x0130, 0x0130, 0x0130, 0x0130, 0x0130, 0x0130, 0x0130, /* 1864 */
- 0x0130, 0x0130, 0x0130, 0x0178, 0x0178, 0x0178, 0x0178, 0x0178, /* 1872 */
- 0x0178, 0x0178, 0x0178, 0x0178, 0x0178, 0x0178, 0x0178, 0x0178, /* 1880 */
- 0x04c8, 0x0130, 0x0130, 0x0130, 0x0130, 0x0130, 0x04cc, 0x0156, /* 1888 */
- 0x0130, 0x0130, 0x0130, 0x0130, 0x0130, 0x0130, 0x0175, 0x0178, /* 1896 */
- 0x0178, 0x0178, 0x0178, 0x0178, 0x0178, 0x0178, 0x0178, 0x0178, /* 1904 */
- 0x0194, 0x0194, 0x0194, 0x0194, 0x0194, 0x0194, 0x0194, 0x0194, /* 1912 */
- 0x0194, 0x0278, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x022b, /* 1920 */
- 0x00bc, 0x00bc, 0x00bc, 0x00bc, 0x00bc, 0x00bc, 0x00bc, 0x00bc, /* 1928 */
- 0x00bc, 0x00bc, 0x00bc, 0x00bc, 0x00bc, 0x00bc, 0x00bc, 0x00bc, /* 1936 */
- 0x00bc, 0x00bc, 0x00bc, 0x00bc, 0x00bc, 0x00bc, 0x00bc, 0x00bc, /* 1944 */
- 0x00bc, 0x00bc, 0x00bc, 0x00bc, 0x00bc, 0x00bc, 0x00bc, 0x00bc, /* 1952 */
- 0x00bc, 0x00bc, 0x00bc, 0x00bc, 0x00bc, 0x0142, 0x04d0, 0x04d4, /* 1960 */
- 0x00bc, 0x00bc, 0x00bc, 0x00bc, 0x00bc, 0x00bc, 0x00bc, 0x00bc, /* 1968 */
- 0x00bc, 0x00bc, 0x00bc, 0x00bc, 0x00bc, 0x00bc, 0x00bc, 0x00bc, /* 1976 */
- 0x00bc, 0x00bc, 0x00bc, 0x00bc, 0x00bc, 0x00bc, 0x00bc, 0x00bc, /* 1984 */
- 0x04d8, 0x04dc, 0x04e0, 0x04e4, 0x04d8, 0x04e8, 0x04e0, 0x04ec, /* 1992 */
- 0x04d8, 0x04d8, 0x04e0, 0x04e0, 0x04d8, 0x04d8, 0x04e0, 0x04e0, /* 2000 */
- 0x04d8, 0x04e8, 0x04e0, 0x04f0, 0x04f4, 0x04f8, 0x04fc, 0x0500, /* 2008 */
- 0x04d8, 0x04d8, 0x04e0, 0x04e0, 0x0504, 0x0508, 0x050c, 0x0510, /* 2016 */
- 0x0514, 0x0518, 0x051c, 0x0520, 0x0514, 0x0514, 0x051c, 0x051c, /* 2024 */
- 0x0514, 0x0514, 0x051c, 0x051c, 0x0524, 0x0528, 0x052c, 0x0530, /* 2032 */
- 0x0534, 0x0528, 0x0538, 0x053c, 0x0524, 0x0512, 0x0540, 0x0544, /* 2040 */
- 0x0524, 0x0548, 0x054c, 0x0550, 0x0512, 0x0528, 0x0554, 0x0558, /* 2048 */
- 0x055c, 0x0560, 0x0564, 0x0568, 0x056c, 0x0570, 0x0574, 0x0578, /* 2056 */
- 0x0490, 0x0490, 0x057c, 0x0580, 0x0584, 0x0588, 0x058c, 0x0590, /* 2064 */
- 0x0594, 0x0598, 0x0490, 0x0490, 0x059c, 0x0594, 0x0490, 0x05a0, /* 2072 */
- 0x05a4, 0x05a8, 0x05ac, 0x05a4, 0x05b0, 0x05b4, 0x05b8, 0x05bc, /* 2080 */
- 0x05c0, 0x05b4, 0x05b8, 0x05c4, 0x0178, 0x043c, 0x01ab, 0x01ab, /* 2088 */
- 0x007a, 0x007a, 0x007a, 0x007a, 0x007a, 0x05c8, 0x01ab, 0x01ab, /* 2096 */
- 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x0194, 0x0194, 0x0194, 0x05cc, /* 2104 */
- 0x05d0, 0x05d4, 0x0194, 0x0194, 0x02f0, 0x01ab, 0x01ab, 0x01ab, /* 2112 */
- 0x05d8, 0x05dc, 0x05e0, 0x05e4, 0x05e3, 0x05d9, 0x05e8, 0x05ec, /* 2120 */
- 0x0373, 0x05f0, 0x05f4, 0x05f8, 0x05fc, 0x0600, 0x0604, 0x0608, /* 2128 */
- 0x060c, 0x0610, 0x0614, 0x0618, 0x061c, 0x0620, 0x061f, 0x0624, /* 2136 */
- 0x0628, 0x062c, 0x0630, 0x0634, 0x0638, 0x063c, 0x0640, 0x0644, /* 2144 */
- 0x0648, 0x064c, 0x0650, 0x01ab, 0x060d, 0x0654, 0x0658, 0x0373, /* 2152 */
- 0x065c, 0x0660, 0x0373, 0x065d, 0x0373, 0x0373, 0x0373, 0x0373, /* 2160 */
- 0x0373, 0x0373, 0x0373, 0x0658, 0x065d, 0x0654, 0x0373, 0x0373, /* 2168 */
- 0x0373, 0x0373, 0x0373, 0x0373, 0x0373, 0x060d, 0x060d, 0x060d, /* 2176 */
- 0x0664, 0x060c, 0x0668, 0x066c, 0x0670, 0x0674, 0x0678, 0x067c, /* 2184 */
- 0x066b, 0x0680, 0x066e, 0x0665, 0x0665, 0x060d, 0x0684, 0x0665, /* 2192 */
- 0x0665, 0x0665, 0x0665, 0x060c, 0x0678, 0x066c, 0x060d, 0x066e, /* 2200 */
- 0x0680, 0x0665, 0x0665, 0x0678, 0x0665, 0x0665, 0x0665, 0x0665, /* 2208 */
- 0x0665, 0x0665, 0x0665, 0x0682, 0x066b, 0x060d, 0x060c, 0x060d, /* 2216 */
- 0x0678, 0x0678, 0x0665, 0x0665, 0x0665, 0x0665, 0x060c, 0x0678, /* 2224 */
- 0x060d, 0x060d, 0x0664, 0x066c, 0x066c, 0x0678, 0x0665, 0x0665, /* 2232 */
- 0x0665, 0x0665, 0x0665, 0x066c, 0x0665, 0x0665, 0x0665, 0x0665, /* 2240 */
- 0x0373, 0x0373, 0x0665, 0x0373, 0x0373, 0x0373, 0x0373, 0x0373, /* 2248 */
- 0x0688, 0x0373, 0x068c, 0x0373, 0x0373, 0x0690, 0x03db, 0x03db, /* 2256 */
- 0x03db, 0x03db, 0x03db, 0x03db, 0x03db, 0x03db, 0x03db, 0x03db, /* 2264 */
- 0x03db, 0x03db, 0x03db, 0x03db, 0x03db, 0x03db, 0x0694, 0x0654, /* 2272 */
- 0x0373, 0x0373, 0x0373, 0x0373, 0x0373, 0x0698, 0x0657, 0x060d, /* 2280 */
- 0x060d, 0x060d, 0x060d, 0x060d, 0x060d, 0x0373, 0x0373, 0x0373, /* 2288 */
- 0x0373, 0x0373, 0x0373, 0x0373, 0x0373, 0x0373, 0x0373, 0x060d, /* 2296 */
- 0x065b, 0x0373, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, /* 2304 */
- 0x0373, 0x0373, 0x0373, 0x0373, 0x0373, 0x0373, 0x0373, 0x0373, /* 2312 */
- 0x0373, 0x069c, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, /* 2320 */
- 0x0373, 0x0373, 0x06a0, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, /* 2328 */
- 0x06a4, 0x0489, 0x06a8, 0x06ac, 0x06b0, 0x06a4, 0x0489, 0x06a8, /* 2336 */
- 0x06ac, 0x06b4, 0x06b8, 0x05b5, 0x06bc, 0x06c0, 0x06c4, 0x03db, /* 2344 */
- 0x03db, 0x03db, 0x03db, 0x03db, 0x03db, 0x06c8, 0x06cc, 0x06ca, /* 2352 */
- 0x06ca, 0x06ca, 0x06ca, 0x06ca, 0x06d0, 0x06d4, 0x06d0, 0x06d0, /* 2360 */
- 0x06d0, 0x06d0, 0x06d8, 0x06ab, 0x06af, 0x06dc, 0x0488, 0x06e0, /* 2368 */
- 0x0373, 0x0373, 0x0373, 0x0373, 0x0373, 0x0373, 0x0373, 0x0373, /* 2376 */
- 0x0373, 0x0373, 0x0373, 0x0373, 0x0373, 0x0373, 0x0373, 0x0373, /* 2384 */
- 0x0373, 0x0373, 0x0373, 0x0373, 0x0373, 0x0373, 0x0373, 0x0373, /* 2392 */
- 0x0373, 0x0373, 0x0373, 0x0373, 0x0373, 0x0373, 0x0373, 0x0373, /* 2400 */
- 0x0373, 0x0373, 0x0373, 0x0373, 0x0373, 0x0373, 0x0373, 0x0373, /* 2408 */
- 0x0373, 0x0373, 0x0373, 0x0373, 0x0373, 0x0657, 0x0373, 0x0373, /* 2416 */
- 0x0616, 0x0373, 0x0373, 0x0373, 0x0373, 0x0373, 0x0373, 0x0373, /* 2424 */
- 0x0373, 0x0373, 0x0373, 0x0373, 0x0373, 0x0373, 0x060d, 0x060d, /* 2432 */
- 0x0373, 0x0373, 0x0373, 0x0373, 0x0373, 0x0373, 0x0373, 0x0373, /* 2440 */
- 0x0373, 0x0373, 0x0373, 0x0373, 0x0373, 0x0373, 0x0373, 0x0373, /* 2448 */
- 0x0373, 0x0373, 0x0373, 0x0373, 0x0373, 0x0373, 0x0373, 0x0373, /* 2456 */
- 0x0373, 0x0373, 0x0373, 0x0657, 0x0373, 0x0373, 0x0373, 0x0373, /* 2464 */
- 0x0373, 0x0373, 0x0373, 0x0373, 0x0373, 0x0373, 0x0373, 0x0395, /* 2472 */
- 0x0373, 0x0373, 0x0373, 0x0699, 0x0373, 0x0373, 0x0373, 0x04a8, /* 2480 */
- 0x0373, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, /* 2488 */
- 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, /* 2496 */
- 0x069f, 0x069e, 0x0395, 0x0373, 0x0373, 0x0373, 0x0373, 0x0373, /* 2504 */
- 0x0373, 0x0373, 0x069f, 0x0373, 0x0373, 0x0373, 0x0373, 0x0373, /* 2512 */
- 0x0373, 0x0373, 0x0373, 0x06e4, 0x069c, 0x06e8, 0x0373, 0x069c, /* 2520 */
- 0x069f, 0x0373, 0x03f2, 0x03f2, 0x03f2, 0x06ec, 0x06f0, 0x06f4, /* 2528 */
- 0x06a4, 0x0489, 0x06f8, 0x06f0, 0x06f4, 0x04a8, 0x0373, 0x0373, /* 2536 */
- 0x0373, 0x0373, 0x0373, 0x0373, 0x069f, 0x0373, 0x0373, 0x069c, /* 2544 */
- 0x0682, 0x06fc, 0x0700, 0x0704, 0x066e, 0x066b, 0x060d, 0x066b, /* 2552 */
- 0x0678, 0x0708, 0x03f2, 0x03f2, 0x060d, 0x060d, 0x060d, 0x060d, /* 2560 */
- 0x03db, 0x03db, 0x03db, 0x03db, 0x03db, 0x03db, 0x03db, 0x03db, /* 2568 */
- 0x03db, 0x03db, 0x03db, 0x03db, 0x03db, 0x03db, 0x03db, 0x03db, /* 2576 */
- 0x03db, 0x03db, 0x03db, 0x03db, 0x03db, 0x03db, 0x03db, 0x03db, /* 2584 */
- 0x03db, 0x03db, 0x03db, 0x03db, 0x03db, 0x03db, 0x03db, 0x03db, /* 2592 */
- 0x03db, 0x03db, 0x03db, 0x03db, 0x03db, 0x03db, 0x03db, 0x03db, /* 2600 */
- 0x03db, 0x03db, 0x03db, 0x03db, 0x03db, 0x03db, 0x03db, 0x03db, /* 2608 */
- 0x03db, 0x03db, 0x03db, 0x03db, 0x03db, 0x03db, 0x03db, 0x03db, /* 2616 */
- 0x03db, 0x03db, 0x03db, 0x03db, 0x03db, 0x03db, 0x03db, 0x03db, /* 2624 */
- 0x060d, 0x060d, 0x060d, 0x060d, 0x060d, 0x060d, 0x060d, 0x060d, /* 2632 */
- 0x060d, 0x060d, 0x060d, 0x060d, 0x060d, 0x060d, 0x060d, 0x060d, /* 2640 */
- 0x060d, 0x060d, 0x060d, 0x060d, 0x060d, 0x060d, 0x060d, 0x060d, /* 2648 */
- 0x060d, 0x060d, 0x060d, 0x060d, 0x060d, 0x060d, 0x060d, 0x060d, /* 2656 */
- 0x070c, 0x0710, 0x0714, 0x0710, 0x0710, 0x0710, 0x0718, 0x0665, /* 2664 */
- 0x0665, 0x0665, 0x0665, 0x0665, 0x060d, 0x060d, 0x060c, 0x060d, /* 2672 */
- 0x0665, 0x066c, 0x0681, 0x0678, 0x066b, 0x066c, 0x03f2, 0x060c, /* 2680 */
- 0x0684, 0x066c, 0x066c, 0x060d, 0x060d, 0x0665, 0x066c, 0x070a, /* 2688 */
- 0x060d, 0x060d, 0x0678, 0x0665, 0x0665, 0x0665, 0x0665, 0x067d, /* 2696 */
- 0x066c, 0x0680, 0x0684, 0x066b, 0x060d, 0x066c, 0x060d, 0x066b, /* 2704 */
- 0x060d, 0x060d, 0x060d, 0x060d, 0x060d, 0x066e, 0x060c, 0x060d, /* 2712 */
- 0x060d, 0x066c, 0x0678, 0x067c, 0x0682, 0x060c, 0x0664, 0x0665, /* 2720 */
- 0x0665, 0x0665, 0x0665, 0x0665, 0x0665, 0x0665, 0x0665, 0x0665, /* 2728 */
- 0x0665, 0x0678, 0x0665, 0x067c, 0x0665, 0x0665, 0x0665, 0x0665, /* 2736 */
- 0x0665, 0x0665, 0x0665, 0x0665, 0x0665, 0x066b, 0x060d, 0x0680, /* 2744 */
- 0x0678, 0x066b, 0x060d, 0x066b, 0x066e, 0x066e, 0x0665, 0x0681, /* 2752 */
- 0x0373, 0x0373, 0x0373, 0x0373, 0x0373, 0x0373, 0x0373, 0x0373, /* 2760 */
- 0x0373, 0x0373, 0x0373, 0x0373, 0x060d, 0x060d, 0x060d, 0x060d, /* 2768 */
- 0x060d, 0x065c, 0x060d, 0x071c, 0x0373, 0x04a8, 0x01ab, 0x01ab, /* 2776 */
- 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, /* 2784 */
- 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, /* 2792 */
- 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, /* 2800 */
- 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, /* 2808 */
- 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, /* 2816 */
- 0x0209, 0x0209, 0x0209, 0x0209, 0x0209, 0x0209, 0x0209, 0x0209, /* 2824 */
- 0x0209, 0x0209, 0x0209, 0x0210, 0x021d, 0x021d, 0x021d, 0x021d, /* 2832 */
- 0x021d, 0x021d, 0x021d, 0x021d, 0x021d, 0x021d, 0x021d, 0x0720, /* 2840 */
- 0x0724, 0x0728, 0x00bd, 0x0725, 0x072c, 0x012d, 0x0130, 0x0730, /* 2848 */
- 0x00bc, 0x00bc, 0x00bc, 0x00bc, 0x00bc, 0x00bc, 0x00bc, 0x00bc, /* 2856 */
- 0x00bc, 0x00bc, 0x00bc, 0x00bc, 0x00bc, 0x00bc, 0x00bc, 0x00bc, /* 2864 */
- 0x00bc, 0x00bc, 0x00bc, 0x00bc, 0x00bc, 0x00bc, 0x00bc, 0x00bc, /* 2872 */
- 0x00bc, 0x0734, 0x069c, 0x01ab, 0x01ab, 0x01ab, 0x048f, 0x0738, /* 2880 */
- 0x0514, 0x0514, 0x0514, 0x0514, 0x0514, 0x0514, 0x0514, 0x0514, /* 2888 */
- 0x0514, 0x073c, 0x01ab, 0x01ab, 0x0110, 0x0110, 0x0110, 0x0110, /* 2896 */
- 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, /* 2904 */
- 0x0110, 0x02d8, 0x01ab, 0x0740, 0x01ab, 0x01ab, 0x01ab, 0x01ab, /* 2912 */
- 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x030e, 0x01ab, 0x01ab, /* 2920 */
- 0x0110, 0x030e, 0x0110, 0x030e, 0x0110, 0x030e, 0x0110, 0x030e, /* 2928 */
- 0x0110, 0x030e, 0x0110, 0x030e, 0x0110, 0x030e, 0x0110, 0x030e, /* 2936 */
- 0x0194, 0x0194, 0x0194, 0x0194, 0x0194, 0x0194, 0x0194, 0x0194, /* 2944 */
- 0x058b, 0x058d, 0x058c, 0x058d, 0x0490, 0x0493, 0x0494, 0x058d, /* 2952 */
- 0x0744, 0x03f2, 0x0599, 0x0748, 0x01aa, 0x01ab, 0x01ab, 0x01ab, /* 2960 */
- 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, /* 2968 */
- 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, /* 2976 */
- 0x0373, 0x0373, 0x0373, 0x0373, 0x0373, 0x0373, 0x069d, 0x0373, /* 2984 */
- 0x0373, 0x0373, 0x0373, 0x0373, 0x0373, 0x0373, 0x0373, 0x0373, /* 2992 */
- 0x0373, 0x0373, 0x0373, 0x0373, 0x0373, 0x0373, 0x0373, 0x0373, /* 3000 */
- 0x0373, 0x0373, 0x0373, 0x0373, 0x0373, 0x01ab, 0x01ab, 0x01ab, /* 3008 */
- 0x0373, 0x0373, 0x0373, 0x0373, 0x0373, 0x0373, 0x0373, 0x0373, /* 3016 */
- 0x0373, 0x0373, 0x0373, 0x0373, 0x0373, 0x0373, 0x0373, 0x0373, /* 3024 */
- 0x0373, 0x0373, 0x0373, 0x0373, 0x0373, 0x0373, 0x0373, 0x0373, /* 3032 */
- 0x0373, 0x0373, 0x0373, 0x0373, 0x0373, 0x0373, 0x0373, 0x0373, /* 3040 */
- 0x0373, 0x0373, 0x0373, 0x0373, 0x0373, 0x0373, 0x0373, 0x0373, /* 3048 */
- 0x0373, 0x0373, 0x0373, 0x0373, 0x0373, 0x0373, 0x0373, 0x0373, /* 3056 */
- 0x0373, 0x0373, 0x0373, 0x0373, 0x0373, 0x0395, 0x01ab, 0x01ab, /* 3064 */
- 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x0373, 0x0373, 0x0373, 0x01ab, /* 3072 */
- 0x074c, 0x0750, 0x03f2, 0x03f2, 0x068d, 0x03f2, 0x03f2, 0x0754, /* 3080 */
- 0x0758, 0x075c, 0x0760, 0x0194, 0x0764, 0x0768, 0x076c, 0x0770, /* 3088 */
- 0x030c, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, /* 3096 */
- 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, /* 3104 */
- 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x030e, 0x0774, 0x0778, /* 3112 */
- 0x077c, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, /* 3120 */
- 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, /* 3128 */
- 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0780, 0x0784, /* 3136 */
- 0x01ab, 0x030c, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, /* 3144 */
- 0x0110, 0x0110, 0x0110, 0x02d8, 0x030c, 0x0110, 0x0110, 0x0110, /* 3152 */
- 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, /* 3160 */
- 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, /* 3168 */
- 0x0110, 0x0110, 0x0110, 0x030e, 0x0788, 0x078c, 0x03db, 0x03db, /* 3176 */
- 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x01ab, 0x01ab, /* 3184 */
- 0x0373, 0x0373, 0x0373, 0x0373, 0x0373, 0x0373, 0x0373, 0x0373, /* 3192 */
- 0x0373, 0x01ab, 0x01ab, 0x01ab, 0x0110, 0x0110, 0x0110, 0x0110, /* 3200 */
- 0x03db, 0x03db, 0x03db, 0x03db, 0x03db, 0x03db, 0x03db, 0x0790, /* 3208 */
- 0x0338, 0x0445, 0x0794, 0x03db, 0x03db, 0x03db, 0x03db, 0x03db, /* 3216 */
- 0x03db, 0x01ab, 0x01ab, 0x01ab, 0x0798, 0x079c, 0x07a0, 0x07a4, /* 3224 */
- 0x03db, 0x03db, 0x03db, 0x03db, 0x03db, 0x03db, 0x03db, 0x068f, /* 3232 */
- 0x0338, 0x0445, 0x0794, 0x03db, 0x03db, 0x03db, 0x03db, 0x03db, /* 3240 */
- 0x03db, 0x03db, 0x03db, 0x03db, 0x07a8, 0x07ac, 0x07b0, 0x07b4, /* 3248 */
- 0x03db, 0x03db, 0x03db, 0x0373, 0x03db, 0x03db, 0x03db, 0x03db, /* 3256 */
- 0x03db, 0x03db, 0x03db, 0x03db, 0x03db, 0x03db, 0x03db, 0x07b8, /* 3264 */
- 0x03db, 0x03db, 0x03db, 0x03db, 0x03db, 0x03db, 0x03db, 0x03db, /* 3272 */
- 0x03db, 0x03db, 0x03db, 0x03db, 0x03db, 0x03db, 0x03db, 0x03db, /* 3280 */
- 0x03db, 0x03db, 0x03db, 0x03db, 0x03db, 0x03db, 0x03db, 0x03db, /* 3288 */
- 0x03db, 0x03db, 0x03db, 0x03db, 0x03db, 0x0694, 0x068f, 0x03db, /* 3296 */
- 0x03db, 0x03db, 0x03db, 0x03db, 0x03db, 0x03db, 0x03db, 0x03db, /* 3304 */
- 0x03db, 0x03db, 0x03db, 0x03db, 0x03db, 0x03db, 0x03db, 0x03db, /* 3312 */
- 0x03db, 0x03db, 0x03db, 0x03db, 0x03db, 0x03db, 0x03db, 0x0695, /* 3320 */
- 0x03db, 0x03db, 0x03db, 0x03db, 0x03db, 0x03db, 0x03db, 0x0694, /* 3328 */
- 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, /* 3336 */
- 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, /* 3344 */
- 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, /* 3352 */
- 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, /* 3360 */
- 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, /* 3368 */
- 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x02d8, 0x01ab, 0x01ab, /* 3376 */
- 0x0373, 0x0373, 0x0373, 0x0373, 0x0373, 0x0373, 0x0373, 0x0373, /* 3384 */
- 0x0373, 0x0373, 0x0373, 0x0373, 0x0373, 0x0373, 0x0373, 0x0373, /* 3392 */
- 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, /* 3400 */
- 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, /* 3408 */
- 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, /* 3416 */
- 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, /* 3424 */
- 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, /* 3432 */
- 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, /* 3440 */
- 0x0110, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, /* 3448 */
- 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, /* 3456 */
- 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x07bc, 0x0110, 0x0110, /* 3464 */
- 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, /* 3472 */
- 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, /* 3480 */
- 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, /* 3488 */
- 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, /* 3496 */
- 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, /* 3504 */
- 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, /* 3512 */
- 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, /* 3520 */
- 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, /* 3528 */
- 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, /* 3536 */
- 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, /* 3544 */
- 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, /* 3552 */
- 0x0110, 0x0110, 0x0110, 0x032a, 0x0373, 0x0373, 0x0373, 0x0373, /* 3560 */
- 0x0373, 0x0373, 0x0373, 0x0373, 0x0373, 0x0373, 0x0373, 0x0373, /* 3568 */
- 0x0373, 0x069c, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, /* 3576 */
- 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, /* 3584 */
- 0x0110, 0x0110, 0x0110, 0x07c0, 0x0110, 0x0110, 0x0110, 0x0110, /* 3592 */
- 0x02fa, 0x02fe, 0x04c0, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, /* 3600 */
- 0x00bc, 0x00bc, 0x00bc, 0x00bc, 0x00bc, 0x00bc, 0x00bc, 0x00bc, /* 3608 */
- 0x07c4, 0x00bc, 0x00bc, 0x07c8, 0x07cc, 0x01ab, 0x01ab, 0x07d0, /* 3616 */
- 0x00bc, 0x00bc, 0x00bc, 0x00bc, 0x00bc, 0x00bc, 0x01ab, 0x01ab, /* 3624 */
- 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, /* 3632 */
- 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, /* 3640 */
- 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, /* 3648 */
- 0x0186, 0x0186, 0x0186, 0x0186, 0x0186, 0x0187, 0x018a, 0x018a, /* 3656 */
- 0x07d4, 0x00bc, 0x00bc, 0x00bc, 0x013b, 0x00bc, 0x00bc, 0x00bc, /* 3664 */
- 0x00bc, 0x00bc, 0x00bc, 0x00bc, 0x00bc, 0x00bc, 0x00bc, 0x00bc, /* 3672 */
- 0x00bc, 0x00bc, 0x00bc, 0x00bc, 0x07d8, 0x0130, 0x00cc, 0x07dc, /* 3680 */
- 0x00bc, 0x00bc, 0x07e0, 0x07e4, 0x01ab, 0x01ab, 0x01ab, 0x01ab, /* 3688 */
- 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, /* 3696 */
- 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, /* 3704 */
- 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x02f1, 0x0110, /* 3712 */
- 0x07e8, 0x07ec, 0x0352, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, /* 3720 */
- 0x0408, 0x040d, 0x0373, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, /* 3728 */
- 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, /* 3736 */
- 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0490, 0x01ab, 0x01ab, /* 3744 */
- 0x041b, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, /* 3752 */
- 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x02e5, 0x02e5, 0x02e5, /* 3760 */
- 0x02e5, 0x02f0, 0x01ab, 0x0466, 0x02fa, 0x02fe, 0x03d0, 0x01ab, /* 3768 */
- 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, /* 3776 */
- 0x02fa, 0x02fe, 0x04c0, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, /* 3784 */
- 0x0110, 0x02f4, 0x0194, 0x02f6, 0x0110, 0x0110, 0x0110, 0x0110, /* 3792 */
- 0x0110, 0x0352, 0x0194, 0x0194, 0x02e3, 0x01ab, 0x01ab, 0x043d, /* 3800 */
- 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, /* 3808 */
- 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, /* 3816 */
- 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, /* 3824 */
- 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, /* 3832 */
- 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, /* 3840 */
- 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, /* 3848 */
- 0x0110, 0x0110, 0x02ec, 0x02e2, 0x040d, 0x0344, 0x01ab, 0x01ab, /* 3856 */
- 0x0352, 0x0110, 0x0110, 0x07f0, 0x02fa, 0x02fe, 0x03d0, 0x0216, /* 3864 */
- 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, /* 3872 */
- 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, /* 3880 */
- 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, /* 3888 */
- 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, /* 3896 */
- 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, /* 3904 */
- 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, /* 3912 */
- 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, /* 3920 */
- 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, /* 3928 */
- 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, /* 3936 */
- 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, /* 3944 */
- 0x0110, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, /* 3952 */
- 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, /* 3960 */
- 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, /* 3968 */
- 0x07f4, 0x07f8, 0x07f4, 0x07f4, 0x07f4, 0x07f4, 0x07f4, 0x07f4, /* 3976 */
- 0x07f4, 0x07f4, 0x07f4, 0x07f4, 0x07f4, 0x07f4, 0x07f4, 0x07f4, /* 3984 */
- 0x07f4, 0x07f4, 0x07f4, 0x07f4, 0x07f4, 0x07f4, 0x07f4, 0x07f4, /* 3992 */
- 0x07f4, 0x07f4, 0x07f4, 0x07f4, 0x07f4, 0x07f4, 0x07f4, 0x07f4, /* 4000 */
- 0x07f4, 0x07f4, 0x07f4, 0x07f4, 0x07f4, 0x07f4, 0x07f4, 0x07f4, /* 4008 */
- 0x07f4, 0x07f4, 0x07f4, 0x07f4, 0x07f4, 0x07f4, 0x07f4, 0x07f4, /* 4016 */
- 0x07f4, 0x07f4, 0x07f4, 0x07f4, 0x07f4, 0x07f4, 0x07f4, 0x07f4, /* 4024 */
- 0x07f4, 0x07f4, 0x07f4, 0x07f4, 0x07f4, 0x07f4, 0x07f4, 0x07f4, /* 4032 */
- 0x07f4, 0x07f4, 0x07f4, 0x07f4, 0x07f4, 0x07f4, 0x07f4, 0x07f4, /* 4040 */
- 0x07f4, 0x07f4, 0x07f4, 0x07f4, 0x07f4, 0x07f4, 0x07f4, 0x07f4, /* 4048 */
- 0x07f4, 0x07f4, 0x07f4, 0x07f4, 0x07f4, 0x07f4, 0x07f4, 0x07f4, /* 4056 */
- 0x07f4, 0x07f4, 0x07f4, 0x07f4, 0x07f4, 0x07f4, 0x07f4, 0x07f4, /* 4064 */
- 0x07f4, 0x07f4, 0x07f4, 0x07f4, 0x07f4, 0x07f4, 0x07f4, 0x07f4, /* 4072 */
- 0x07f4, 0x07f4, 0x07f4, 0x07f4, 0x07f4, 0x07f4, 0x07f4, 0x07f4, /* 4080 */
- 0x07f4, 0x07f4, 0x07f4, 0x07f4, 0x07f4, 0x07f4, 0x07f4, 0x07f4, /* 4088 */
- 0x07f4, 0x07f4, 0x07f4, 0x07f4, 0x07f4, 0x07f4, 0x07f4, 0x07f4, /* 4096 */
- 0x07fc, 0x0800, 0x07fc, 0x07fc, 0x07fc, 0x07fc, 0x07fc, 0x07fc, /* 4104 */
- 0x07fc, 0x07fc, 0x07fc, 0x07fc, 0x07fc, 0x07fc, 0x07fc, 0x07fc, /* 4112 */
- 0x07fc, 0x07fc, 0x07fc, 0x07fc, 0x07fc, 0x07fc, 0x07fc, 0x07fc, /* 4120 */
- 0x07fc, 0x07fc, 0x07fc, 0x07fc, 0x07fc, 0x07fc, 0x07fc, 0x07fc, /* 4128 */
- 0x07fc, 0x07fc, 0x07fc, 0x07fc, 0x07fc, 0x07fc, 0x07fc, 0x07fc, /* 4136 */
- 0x07fc, 0x07fc, 0x07fc, 0x07fc, 0x07fc, 0x07fc, 0x07fc, 0x07fc, /* 4144 */
- 0x07fc, 0x07fc, 0x07fc, 0x07fc, 0x07fc, 0x07fc, 0x07fc, 0x07fc, /* 4152 */
- 0x07fc, 0x07fc, 0x07fc, 0x07fc, 0x07fc, 0x07fc, 0x07fc, 0x07fc, /* 4160 */
- 0x07fc, 0x07fc, 0x07fc, 0x07fc, 0x07fc, 0x07fc, 0x07fc, 0x07fc, /* 4168 */
- 0x07fc, 0x07fc, 0x07fc, 0x07fc, 0x07fc, 0x07fc, 0x07fc, 0x07fc, /* 4176 */
- 0x07fc, 0x07fc, 0x07fc, 0x07fc, 0x07fc, 0x07fc, 0x07fc, 0x07fc, /* 4184 */
- 0x07fc, 0x07fc, 0x07fc, 0x07fc, 0x07fc, 0x07fc, 0x07fc, 0x07fc, /* 4192 */
- 0x07fc, 0x07fc, 0x07fc, 0x07fc, 0x07fc, 0x07fc, 0x07fc, 0x07fc, /* 4200 */
- 0x07fc, 0x07fc, 0x07fc, 0x07fc, 0x07fc, 0x07fc, 0x07fc, 0x07fc, /* 4208 */
- 0x07fc, 0x07fc, 0x07fc, 0x07fc, 0x07fc, 0x07fc, 0x07fc, 0x07fc, /* 4216 */
- 0x07fc, 0x07fc, 0x07fc, 0x07fc, 0x07fc, 0x07fc, 0x07fc, 0x07fc, /* 4224 */
- 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, /* 4232 */
- 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, /* 4240 */
- 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, /* 4248 */
- 0x0110, 0x0110, 0x0804, 0x0110, 0x0808, 0x0110, 0x080c, 0x0110, /* 4256 */
- 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, /* 4264 */
- 0x0110, 0x0110, 0x0110, 0x0110, 0x0810, 0x0110, 0x0110, 0x0110, /* 4272 */
- 0x0110, 0x0110, 0x0110, 0x0110, 0x0814, 0x0110, 0x0110, 0x0110, /* 4280 */
- 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0818, /* 4288 */
- 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, /* 4296 */
- 0x0110, 0x0110, 0x0110, 0x02d8, 0x0110, 0x0110, 0x0110, 0x0110, /* 4304 */
- 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, /* 4312 */
- 0x0110, 0x0110, 0x030e, 0x01ab, 0x0110, 0x0110, 0x0110, 0x0110, /* 4320 */
- 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, /* 4328 */
- 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, /* 4336 */
- 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x02d8, 0x01ab, /* 4344 */
- 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, /* 4352 */
- 0x0514, 0x0526, 0x01ab, 0x01ab, 0x081c, 0x0514, 0x01ab, 0x0820, /* 4360 */
- 0x023c, 0x023c, 0x0824, 0x023c, 0x023c, 0x0244, 0x023c, 0x0828, /* 4368 */
- 0x0245, 0x0246, 0x023c, 0x023c, 0x0269, 0x0269, 0x0269, 0x0269, /* 4376 */
- 0x0269, 0x0269, 0x0269, 0x0269, 0x0269, 0x0269, 0x0269, 0x0269, /* 4384 */
- 0x0269, 0x0269, 0x0269, 0x0269, 0x0269, 0x0269, 0x0269, 0x0269, /* 4392 */
- 0x0269, 0x0269, 0x0269, 0x0269, 0x082c, 0x01ab, 0x01ab, 0x01ab, /* 4400 */
- 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x0830, 0x0269, 0x0269, 0x0269, /* 4408 */
- 0x0269, 0x0269, 0x0269, 0x0269, 0x0269, 0x0269, 0x0269, 0x0269, /* 4416 */
- 0x0269, 0x0269, 0x0269, 0x0269, 0x0269, 0x0269, 0x0269, 0x0269, /* 4424 */
- 0x0269, 0x0269, 0x0269, 0x0269, 0x0269, 0x0269, 0x0269, 0x0269, /* 4432 */
- 0x0269, 0x0269, 0x0269, 0x0269, 0x0269, 0x0269, 0x0269, 0x0269, /* 4440 */
- 0x0269, 0x0269, 0x0269, 0x0269, 0x0269, 0x0269, 0x0269, 0x0269, /* 4448 */
- 0x0269, 0x0269, 0x0269, 0x0269, 0x0269, 0x0269, 0x0269, 0x0269, /* 4456 */
- 0x0269, 0x0269, 0x0269, 0x0269, 0x0269, 0x0269, 0x0269, 0x0269, /* 4464 */
- 0x0269, 0x0269, 0x0269, 0x0269, 0x0269, 0x0269, 0x0269, 0x0269, /* 4472 */
- 0x0269, 0x0269, 0x0269, 0x0269, 0x0269, 0x0269, 0x0269, 0x0269, /* 4480 */
- 0x0269, 0x0269, 0x0269, 0x0269, 0x0269, 0x0269, 0x0269, 0x0269, /* 4488 */
- 0x0269, 0x0269, 0x0269, 0x0269, 0x0269, 0x0269, 0x0269, 0x0834, /* 4496 */
- 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x0269, 0x0269, 0x0269, 0x0269, /* 4504 */
- 0x0269, 0x0269, 0x0269, 0x0269, 0x0269, 0x0269, 0x0269, 0x0269, /* 4512 */
- 0x0269, 0x0269, 0x0269, 0x0269, 0x0831, 0x0269, 0x0269, 0x0269, /* 4520 */
- 0x0269, 0x0269, 0x0269, 0x0269, 0x0269, 0x0269, 0x0269, 0x0269, /* 4528 */
- 0x0269, 0x0269, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, /* 4536 */
- 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x0269, 0x0269, 0x0269, 0x0838, /* 4544 */
- 0x0194, 0x0194, 0x0194, 0x0194, 0x0490, 0x083c, 0x0840, 0x01ab, /* 4552 */
- 0x0194, 0x0278, 0x01ab, 0x01ab, 0x0844, 0x0848, 0x084c, 0x084a, /* 4560 */
- 0x084a, 0x0850, 0x0854, 0x0858, 0x085c, 0x0860, 0x0864, 0x0868, /* 4568 */
- 0x086c, 0x0700, 0x0870, 0x01ab, 0x0269, 0x0874, 0x0269, 0x0269, /* 4576 */
- 0x0269, 0x0269, 0x0269, 0x0269, 0x0269, 0x0269, 0x0269, 0x0269, /* 4584 */
- 0x0269, 0x0269, 0x0269, 0x0269, 0x0269, 0x0269, 0x0269, 0x0269, /* 4592 */
- 0x0269, 0x0269, 0x0269, 0x0269, 0x0269, 0x0269, 0x0269, 0x0269, /* 4600 */
- 0x0269, 0x0269, 0x0269, 0x0269, 0x0269, 0x0269, 0x0269, 0x0878, /* 4608 */
- 0x087c, 0x0018, 0x001c, 0x0020, 0x0024, 0x0028, 0x002c, 0x0030, /* 4616 */
- 0x0034, 0x0038, 0x0880, 0x0040, 0x0044, 0x0048, 0x004c, 0x0050, /* 4624 */
- 0x0054, 0x0058, 0x0884, 0x0060, 0x0064, 0x0068, 0x006c, 0x0888, /* 4632 */
- 0x088c, 0x0890, 0x0110, 0x0110, 0x0894, 0x0110, 0x0110, 0x0110, /* 4640 */
- 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x04c2, /* 4648 */
- 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x030e, /* 4656 */
- 0x02f2, 0x0110, 0x02f2, 0x0110, 0x02f2, 0x0110, 0x02f2, 0x032a, /* 4664 */
- 0x0898, 0x089c, 0x0659, 0x08a0, 0x01ab, 0x01ab, 0x08a4, 0x0395, /* 4672 */
- 0x0110, 0x0110, 0x0110, 0x030c, 0x0110, 0x0110, 0x0110, 0x0110, /* 4680 */
- 0x0110, 0x030e, 0x0110, 0x0110, 0x0110, 0x0110, 0x030e, 0x0317, /* 4688 */
- 0x0110, 0x0110, 0x0110, 0x02d8, 0x0110, 0x0110, 0x0110, 0x02d8, /* 4696 */
- 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, /* 4704 */
- 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, /* 4712 */
- 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, /* 4720 */
- 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, /* 4728 */
- 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x030e, 0x01ab, /* 4736 */
- 0x08a8, 0x08ac, 0x0442, 0x0446, 0x044a, 0x044e, 0x08b0, 0x08b4, /* 4744 */
- 0x08b8, 0x08bc, 0x08c0, 0x08c4, 0x08c8, 0x03a2, 0x03db, 0x03db, /* 4752 */
- 0x08cc, 0x08d0, 0x08d4, 0x08d8, 0x08d5, 0x08dc, 0x08e0, 0x08e4, /* 4760 */
- 0x08e8, 0x08ec, 0x08f0, 0x08f4, 0x08d8, 0x08f8, 0x08fc, 0x0373, /* 4768 */
- 0x0373, 0x0373, 0x0900, 0x01ab, 0x0373, 0x0373, 0x0373, 0x01ab, /* 4776 */
- 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, /* 4784 */
- 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x03db, 0x03db, 0x03db, 0x03db, /* 4792 */
- 0x03db, 0x03db, 0x03db, 0x03db, 0x03db, 0x03db, 0x03db, 0x0904, /* 4800 */
- 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, /* 4808 */
- 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, /* 4816 */
- 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, /* 4824 */
- 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, /* 4832 */
- 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x032a, /* 4840 */
- 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, /* 4848 */
- 0x0110, 0x0110, 0x0110, 0x0110, 0x032a, 0x01ab, 0x01ab, 0x01ab, /* 4856 */
- 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, /* 4864 */
- 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x030e, /* 4872 */
- 0x0908, 0x01ab, 0x01ab, 0x01ab, 0x0110, 0x0110, 0x0110, 0x0110, /* 4880 */
- 0x090c, 0x0110, 0x0910, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, /* 4888 */
- 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, /* 4896 */
- 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0914, /* 4904 */
- 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, /* 4912 */
- 0x0110, 0x01ab, 0x0110, 0x0110, 0x0918, 0x091c, 0x01ab, 0x01ab, /* 4920 */
- 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, /* 4928 */
- 0x0920, 0x0924, 0x0920, 0x0920, 0x0920, 0x0920, 0x0920, 0x0920, /* 4936 */
- 0x0920, 0x0920, 0x0928, 0x092c, 0x0928, 0x0928, 0x0928, 0x0928, /* 4944 */
- 0x0928, 0x0928, 0x0928, 0x0928, 0x0110, 0x0110, 0x0110, 0x0110, /* 4952 */
- 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, /* 4960 */
- 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x02d8, /* 4968 */
- 0x02fa, 0x02fe, 0x03d0, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, /* 4976 */
- 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, /* 4984 */
- 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, /* 4992 */
- 0x023c, 0x0930, 0x0246, 0x023c, 0x023c, 0x023c, 0x023c, 0x023c, /* 5000 */
- 0x023c, 0x023c, 0x023c, 0x023c, 0x023c, 0x0245, 0x0934, 0x0931, /* 5008 */
- 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, /* 5016 */
- 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, /* 5024 */
- 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, /* 5032 */
- 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, /* 5040 */
- 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, /* 5048 */
- 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, /* 5056 */
- 0x023c, 0x023c, 0x023c, 0x023c, 0x023c, 0x0938, 0x093c, 0x04a9, /* 5064 */
- 0x023c, 0x023c, 0x023c, 0x023c, 0x023c, 0x023c, 0x0930, 0x0940, /* 5072 */
- 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, /* 5080 */
- 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, /* 5088 */
- 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, /* 5096 */
- 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, /* 5104 */
- 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, /* 5112 */
- 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, /* 5120 */
- 0x0944, 0x034a, 0x01ab, 0x0194, 0x023c, 0x0247, 0x0247, 0x023c, /* 5128 */
- 0x023c, 0x023c, 0x023c, 0x023c, 0x023c, 0x01ab, 0x0278, 0x0348, /* 5136 */
- 0x0948, 0x094c, 0x01ab, 0x01ab, 0x0950, 0x0954, 0x024c, 0x01ab, /* 5144 */
- 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, /* 5152 */
- 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, /* 5160 */
- 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, /* 5168 */
- 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, /* 5176 */
- 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, /* 5184 */
- 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, /* 5192 */
- 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, /* 5200 */
- 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, /* 5208 */
- 0x0110, 0x0110, 0x0110, 0x030e, 0x01ab, 0x01ab, 0x01ab, 0x01ab, /* 5216 */
- 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, /* 5224 */
- 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, /* 5232 */
- 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, /* 5240 */
- 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, /* 5248 */
- 0x075a, 0x075e, 0x075b, 0x0958, 0x075d, 0x095c, 0x075c, 0x0960, /* 5256 */
- 0x0964, 0x0968, 0x075e, 0x096c, 0x0970, 0x096c, 0x0974, 0x0978, /* 5264 */
- 0x097c, 0x0980, 0x0984, 0x0988, 0x098c, 0x0990, 0x0994, 0x0998, /* 5272 */
- 0x099c, 0x01ab, 0x01ab, 0x01ab, 0x0216, 0x01ab, 0x01ab, 0x01ab, /* 5280 */
- 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, /* 5288 */
- 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, /* 5296 */
- 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, /* 5304 */
- 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, /* 5312 */
- 0x03db, 0x03db, 0x03db, 0x03db, 0x03db, 0x03db, 0x03db, 0x03db, /* 5320 */
- 0x03db, 0x03db, 0x03db, 0x03db, 0x03db, 0x03db, 0x03db, 0x03db, /* 5328 */
- 0x03db, 0x03db, 0x03db, 0x03db, 0x03db, 0x03db, 0x03db, 0x03db, /* 5336 */
- 0x03db, 0x03db, 0x03db, 0x03db, 0x03db, 0x03db, 0x03db, 0x03db, /* 5344 */
- 0x03db, 0x03db, 0x03db, 0x03db, 0x03db, 0x03db, 0x03db, 0x03db, /* 5352 */
- 0x03db, 0x03db, 0x03db, 0x03db, 0x03db, 0x03db, 0x03db, 0x03db, /* 5360 */
- 0x03db, 0x03db, 0x03db, 0x03db, 0x03db, 0x03db, 0x03db, 0x03db, /* 5368 */
- 0x03db, 0x03db, 0x03db, 0x03db, 0x03db, 0x09a0, 0x01ab, 0x01ab, /* 5376 */
- 0x03db, 0x03db, 0x03db, 0x03db, 0x03db, 0x03db, 0x03db, 0x03db, /* 5384 */
- 0x03db, 0x07b8, 0x03fd, 0x03db, 0x03db, 0x03db, 0x03db, 0x03db, /* 5392 */
- 0x03db, 0x03db, 0x03db, 0x03db, 0x03db, 0x03db, 0x03db, 0x03db, /* 5400 */
- 0x03db, 0x09a4, 0x03e0, 0x09a8, 0x09ac, 0x05a4, 0x09b0, 0x0194, /* 5408 */
- 0x09b4, 0x09b8, 0x0194, 0x03db, 0x03db, 0x03db, 0x03db, 0x03db, /* 5416 */
- 0x03db, 0x03db, 0x03de, 0x03e0, 0x03db, 0x03db, 0x03db, 0x03db, /* 5424 */
- 0x03db, 0x03db, 0x03db, 0x03db, 0x03db, 0x03db, 0x03db, 0x09a0, /* 5432 */
- 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, /* 5440 */
- 0x0373, 0x0373, 0x0373, 0x0373, 0x0373, 0x0373, 0x0373, 0x0373, /* 5448 */
- 0x0373, 0x0373, 0x0373, 0x0373, 0x0373, 0x0373, 0x0373, 0x0373, /* 5456 */
- 0x025e, 0x09bc, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, /* 5464 */
- 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, /* 5472 */
- 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, /* 5480 */
- 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, /* 5488 */
- 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, /* 5496 */
- 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, /* 5504 */
- 0x0373, 0x0373, 0x0373, 0x0373, 0x0373, 0x0373, 0x0373, 0x0373, /* 5512 */
- 0x0373, 0x0373, 0x0373, 0x0373, 0x0373, 0x0373, 0x0373, 0x0373, /* 5520 */
- 0x0373, 0x0373, 0x0373, 0x0373, 0x0373, 0x069c, 0x01ab, 0x01ab, /* 5528 */
- 0x0338, 0x0445, 0x0449, 0x044d, 0x09c0, 0x01ab, 0x01ab, 0x01ab, /* 5536 */
- 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, /* 5544 */
- 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, /* 5552 */
- 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, /* 5560 */
- 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, /* 5568 */
- 0x05e9, 0x05e9, 0x05e9, 0x05e9, 0x05e9, 0x05e9, 0x05e4, 0x0130, /* 5576 */
- 0x0130, 0x0130, 0x0130, 0x0130, 0x0130, 0x05e9, 0x05e9, 0x05e9, /* 5584 */
- 0x05e9, 0x05e9, 0x05e9, 0x05e4, 0x0130, 0x09c4, 0x0130, 0x0130, /* 5592 */
- 0x0130, 0x0130, 0x05e9, 0x05e9, 0x05e9, 0x05e9, 0x05e9, 0x05e9, /* 5600 */
- 0x05e4, 0x0130, 0x0130, 0x0130, 0x0130, 0x0130, 0x0130, 0x09c8, /* 5608 */
- 0x09cc, 0x09c9, 0x09d0, 0x09c8, 0x05e9, 0x05e4, 0x09d4, 0x09d8, /* 5616 */
- 0x0130, 0x09dc, 0x0130, 0x0130, 0x05e9, 0x05e9, 0x05e9, 0x05e9, /* 5624 */
- 0x05e9, 0x05e9, 0x05e4, 0x0130, 0x0130, 0x0130, 0x0130, 0x0130, /* 5632 */
- 0x0130, 0x09e0, 0x09e4, 0x09d0, 0x05e9, 0x09c8, 0x05e9, 0x09e8, /* 5640 */
- 0x0130, 0x0130, 0x0130, 0x0130, 0x0130, 0x0130, 0x09e0, 0x09e4, /* 5648 */
- 0x05e9, 0x09e6, 0x09cf, 0x05e9, 0x09ec, 0x0130, 0x0130, 0x0130, /* 5656 */
- 0x0130, 0x0130, 0x0130, 0x05e9, 0x05e9, 0x05e9, 0x05e9, 0x05e9, /* 5664 */
- 0x05e9, 0x05e4, 0x0130, 0x0130, 0x0130, 0x0130, 0x0130, 0x0130, /* 5672 */
- 0x05e9, 0x05e9, 0x05e9, 0x05e9, 0x05e9, 0x05e9, 0x05e4, 0x0130, /* 5680 */
- 0x0130, 0x0130, 0x0130, 0x0130, 0x0130, 0x05e9, 0x05e9, 0x05e9, /* 5688 */
- 0x05e9, 0x05e9, 0x05e9, 0x05e4, 0x0130, 0x0130, 0x0130, 0x0130, /* 5696 */
- 0x0130, 0x0130, 0x05e9, 0x05e9, 0x05e9, 0x05e9, 0x05e9, 0x05e9, /* 5704 */
- 0x05e4, 0x0130, 0x0130, 0x0130, 0x0130, 0x0130, 0x0130, 0x05e9, /* 5712 */
- 0x05e9, 0x05e9, 0x05e9, 0x05e9, 0x05e9, 0x05e4, 0x0130, 0x0130, /* 5720 */
- 0x0130, 0x0130, 0x0130, 0x0130, 0x05e9, 0x05e9, 0x05e9, 0x05e9, /* 5728 */
- 0x05e9, 0x05e9, 0x05e4, 0x0130, 0x0130, 0x0130, 0x0130, 0x0130, /* 5736 */
- 0x0130, 0x09f0, 0x05e9, 0x05e9, 0x05e9, 0x05e9, 0x05e9, 0x05e9, /* 5744 */
- 0x09f4, 0x0130, 0x0130, 0x0130, 0x0130, 0x0130, 0x09f8, 0x0130, /* 5752 */
- 0x0608, 0x05e9, 0x05e9, 0x05e9, 0x05e9, 0x05e9, 0x09fc, 0x0130, /* 5760 */
- 0x0130, 0x0130, 0x0130, 0x0130, 0x0130, 0x0a00, 0x0130, 0x05e9, /* 5768 */
- 0x05e9, 0x05e9, 0x05e9, 0x05e9, 0x05e9, 0x09f4, 0x0130, 0x0130, /* 5776 */
- 0x0130, 0x0130, 0x0130, 0x09f8, 0x0130, 0x0608, 0x05e9, 0x05e9, /* 5784 */
- 0x05e9, 0x05e9, 0x05e9, 0x09fc, 0x0130, 0x0130, 0x0130, 0x0130, /* 5792 */
- 0x0130, 0x0130, 0x0a04, 0x0130, 0x05e9, 0x05e9, 0x05e9, 0x05e9, /* 5800 */
- 0x05e9, 0x05e9, 0x09f4, 0x0130, 0x0130, 0x0130, 0x0130, 0x0130, /* 5808 */
- 0x09f8, 0x0130, 0x0a08, 0x0a0c, 0x0026, 0x002a, 0x0024, 0x0028, /* 5816 */
- 0x0a10, 0x0026, 0x002a, 0x0024, 0x0028, 0x0a14, 0x0026, 0x002a, /* 5824 */
- 0x0373, 0x0373, 0x0373, 0x0373, 0x0373, 0x0373, 0x0373, 0x0373, /* 5832 */
- 0x0373, 0x0373, 0x0373, 0x01ab, 0x0373, 0x0373, 0x0373, 0x0373, /* 5840 */
- 0x0373, 0x0373, 0x0373, 0x0373, 0x0373, 0x0373, 0x0373, 0x0373, /* 5848 */
- 0x0373, 0x0373, 0x0373, 0x0373, 0x0373, 0x0373, 0x0373, 0x0373, /* 5856 */
- 0x0373, 0x0373, 0x0373, 0x0373, 0x0373, 0x01ab, 0x01ab, 0x01ab, /* 5864 */
- 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, /* 5872 */
- 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, /* 5880 */
- 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, /* 5888 */
- 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, /* 5896 */
- 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, /* 5904 */
- 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, /* 5912 */
- 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, /* 5920 */
- 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, /* 5928 */
- 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, /* 5936 */
- 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x030e, 0x01ab, 0x01ab, /* 5944 */
- 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, /* 5952 */
- 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, /* 5960 */
- 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, /* 5968 */
- 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, /* 5976 */
- 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, /* 5984 */
- 0x0110, 0x0110, 0x0110, 0x0110, 0x0a18, 0x0110, 0x0110, 0x0110, /* 5992 */
- 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, /* 6000 */
- 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, /* 6008 */
- 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, /* 6016 */
- 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, 0x02d8, /* 6024 */
- 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, /* 6032 */
- 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, /* 6040 */
- 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, /* 6048 */
- 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, /* 6056 */
- 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, /* 6064 */
- 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, /* 6072 */
- 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, /* 6080 */
- 0x0a1c, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, /* 6088 */
- 0x05a4, 0x05a4, 0x05a4, 0x05a4, 0x05a4, 0x05a4, 0x05a4, 0x05a4, /* 6096 */
- 0x05a4, 0x05a4, 0x05a4, 0x05a4, 0x05a4, 0x05a4, 0x05a4, 0x05a4, /* 6104 */
- 0x05a4, 0x05a4, 0x05a4, 0x05a4, 0x05a4, 0x05a4, 0x05a4, 0x05a4, /* 6112 */
- 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, /* 6120 */
- 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, /* 6128 */
- 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, /* 6136 */
- 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, 0x01ab, /* 6144 */
- 0x0194, 0x0194, 0x0194, 0x0194, 0x0194, 0x0194, 0x0194, 0x0194, /* 6152 */
- 0x0194, 0x0194, 0x0194, 0x0194, 0x0194, 0x0194, 0x0194, 0x0194, /* 6160 */
- 0x0194, 0x0194, 0x0194, 0x0194, 0x0194, 0x0194, 0x0194, 0x0194, /* 6168 */
- 0x0194, 0x0194, 0x0194, 0x0194, 0x0194, 0x0194, 0x0194, 0x0194, /* 6176 */
- 0x0194, 0x0194, 0x0194, 0x0194, 0x0194, 0x0194, 0x0194, 0x0194, /* 6184 */
- 0x0194, 0x0194, 0x0194, 0x0194, 0x0194, 0x0194, 0x0194, 0x0194, /* 6192 */
- 0x0194, 0x0194, 0x0194, 0x0194, 0x0194, 0x0194, 0x0194, 0x0194, /* 6200 */
- 0x0194, 0x0194, 0x0194, 0x0194, 0x01ab, 0x01ab, 0x01ab, 0x01ab, /* 6208 */
- 0x07fc, 0x07fc, 0x07fc, 0x07fc, 0x07fc, 0x07fc, 0x07fc, 0x07fc, /* 6216 */
- 0x07fc, 0x07fc, 0x07fc, 0x07fc, 0x07fc, 0x07fc, 0x07fc, 0x07fc, /* 6224 */
- 0x07fc, 0x07fc, 0x07fc, 0x07fc, 0x07fc, 0x07fc, 0x07fc, 0x07fc, /* 6232 */
- 0x07fc, 0x07fc, 0x07fc, 0x07fc, 0x07fc, 0x07fc, 0x07fc, 0x07fc, /* 6240 */
- 0x07fc, 0x07fc, 0x07fc, 0x07fc, 0x07fc, 0x07fc, 0x07fc, 0x07fc, /* 6248 */
- 0x07fc, 0x07fc, 0x07fc, 0x07fc, 0x07fc, 0x07fc, 0x07fc, 0x07fc, /* 6256 */
- 0x07fc, 0x07fc, 0x07fc, 0x07fc, 0x07fc, 0x07fc, 0x07fc, 0x07fc, /* 6264 */
- 0x07fc, 0x07fc, 0x07fc, 0x07fc, 0x07fc, 0x07fc, 0x07fc, 0x0a20, /* 6272 */
- 0x07fc, 0x07fc, 0x07fc, 0x07fc, 0x07fc, 0x07fc, 0x07fc, 0x07fc, /* 6280 */
- 0x07fc, 0x07fc, 0x07fc, 0x07fc, 0x07fc, 0x07fc, 0x07fc, 0x07fc, /* 6288 */
- 0x07fc, 0x07fc, 0x07fc, 0x07fc, 0x07fc, 0x07fc, 0x07fc, 0x07fc, /* 6296 */
- 0x07fc, 0x07fc, 0x07fc, 0x07fc, 0x07fc, 0x07fc, 0x07fc, 0x07fc, /* 6304 */
- 0x07fc, 0x07fc, 0x07fc, 0x07fc, 0x07fc, 0x07fc, 0x07fc, 0x07fc, /* 6312 */
- 0x07fc, 0x07fc, 0x07fc, 0x07fc, 0x07fc, 0x07fc, 0x07fc, 0x07fc, /* 6320 */
- 0x07fc, 0x07fc, 0x07fc, 0x07fc, 0x07fc, 0x07fc, 0x07fc, 0x07fc, /* 6328 */
- 0x07fc, 0x07fc, 0x07fc, 0x07fc, 0x07fc, 0x07fc, 0x07fc, 0x0a24, /* 6336 */
-
-};
-
-/**
- * Property table has 2598 entries
- */
-static unsigned int prop[] =
-{
- 0x4800100f, 0x4800100f, 0x4800100f, 0x4800100f, /* 4 */
- 0x4800100f, 0x4800100f, 0x4800100f, 0x4800100f, /* 8 */
- 0x4800100f, 0x5800000f, 0x5000000f, 0x5800000f, /* 12 */
- 0x6000000f, 0x5000000f, 0x4800100f, 0x4800100f, /* 16 */
- 0x5000000f, 0x5000000f, 0x5000000f, 0x5800000f, /* 20 */
- 0x6000400c, 0x68000018, 0x68000018, 0x28000018, /* 24 */
- 0x2800501a, 0x28000018, 0x68000018, 0x68000018, /* 28 */
- 0xe8000015, 0xe8000016, 0x68000018, 0x20000019, /* 32 */
- 0x38000018, 0x20000014, 0x38000018, 0x38000018, /* 36 */
- 0x18003409, 0x18003429, 0x18003449, 0x18003469, /* 40 */
- 0x18003489, 0x180034a9, 0x180034c9, 0x180034e9, /* 44 */
- 0x18003509, 0x18003529, 0x38000018, 0x68000018, /* 48 */
- 0xe8000019, 0x68000019, 0xe8000019, 0x68000018, /* 52 */
- 0x68000018, 0x00827c01, 0x00827c21, 0x00827c41, /* 56 */
- 0x00827c61, 0x00827c81, 0x00827ca1, 0x00827cc1, /* 60 */
- 0x00827ce1, 0x07fd7d01, 0x07fd7d21, 0x00827d41, /* 64 */
- 0x00827d61, 0x00827d81, 0x00827da1, 0x00827dc1, /* 68 */
- 0x00827de1, 0x00827e01, 0x00827e21, 0x00827e41, /* 72 */
- 0x00827e61, 0x00827e81, 0x00827ea1, 0x00827ec1, /* 76 */
- 0x00827ee1, 0x00827f01, 0x00827f21, 0xe8000015, /* 80 */
- 0x68000018, 0xe8000016, 0x6800001b, 0x68002017, /* 84 */
- 0x6800001b, 0x00817c02, 0x00817c22, 0x00817c42, /* 88 */
- 0x00817c62, 0x00817c82, 0x00817ca2, 0x00817cc2, /* 92 */
- 0x00817ce2, 0x07fd7d02, 0x00817d22, 0x00817d42, /* 96 */
- 0x00817d62, 0x00817d82, 0x00817da2, 0x00817dc2, /* 100 */
- 0x00817de2, 0x00817e02, 0x00817e22, 0x00817e42, /* 104 */
- 0x00817e62, 0x00817e82, 0x00817ea2, 0x00817ec2, /* 108 */
- 0x00817ee2, 0x00817f02, 0x00817f22, 0xe8000015, /* 112 */
- 0x68000019, 0xe8000016, 0x68000019, 0x4800100f, /* 116 */
- 0x4800100f, 0x5000100f, 0x4800100f, 0x4800100f, /* 120 */
- 0x3800000c, 0x68000018, 0x2800501a, 0x2800501a, /* 124 */
- 0x2800501a, 0x2800501a, 0x6800001c, 0x6800001c, /* 128 */
- 0x6800001b, 0x6800001c, 0x00007002, 0xe800001d, /* 132 */
- 0x68000019, 0x48001010, 0x6800001c, 0x6800001b, /* 136 */
- 0x2800001c, 0x28000019, 0x1800044b, 0x1800046b, /* 140 */
- 0x6800001b, 0x07fd7002, 0x6800001c, 0x68000018, /* 144 */
- 0x6800001b, 0x1800042b, 0x00007002, 0xe800001e, /* 148 */
- 0x68000beb, 0x68000beb, 0x68000beb, 0x68000018, /* 152 */
- 0x00827001, 0x00827001, 0x00827001, 0x00827001, /* 156 */
- 0x00827001, 0x00827001, 0x00827001, 0x00827001, /* 160 */
- 0x07fd7001, 0x07fd7001, 0x00827001, 0x00827001, /* 164 */
- 0x00827001, 0x00827001, 0x00827001, 0x68000019, /* 168 */
- 0x00827001, 0x00827001, 0x00827001, 0x07fd7002, /* 172 */
- 0x00817002, 0x00817002, 0x00817002, 0x00817002, /* 176 */
- 0x00817002, 0x00817002, 0x00817002, 0x00817002, /* 180 */
- 0x00817002, 0x00817002, 0x00817002, 0x68000019, /* 184 */
- 0x00817002, 0x00817002, 0x00817002, 0x061d7002, /* 188 */
- 0x00067001, 0x00057002, 0x00067001, 0x00057002, /* 192 */
- 0x00067001, 0x00057002, 0x00067001, 0x00057002, /* 196 */
- 0x07fd7001, 0x00057002, 0x00067001, 0x00057002, /* 200 */
- 0x07fd7001, 0x03a17002, 0x00067001, 0x00057002, /* 204 */
- 0x00007002, 0x00067001, 0x00057002, 0x00067001, /* 208 */
- 0x00057002, 0x07fd7002, 0x00067001, 0x00057002, /* 212 */
- 0x061e7001, 0x00067001, 0x00057002, 0x00067001, /* 216 */
- 0x04f57002, 0x034a7001, 0x00067001, 0x00057002, /* 220 */
- 0x00067001, 0x00057002, 0x033a7001, 0x00067001, /* 224 */
- 0x00057002, 0x03367001, 0x03367001, 0x00067001, /* 228 */
- 0x00057002, 0x00007002, 0x013e7001, 0x032a7001, /* 232 */
- 0x032e7001, 0x00067001, 0x00057002, 0x03367001, /* 236 */
- 0x033e7001, 0x067d7002, 0x034e7001, 0x03467001, /* 240 */
- 0x00067001, 0x00057002, 0x05757002, 0x00007002, /* 244 */
- 0x034e7001, 0x03567001, 0x05f97002, 0x035a7001, /* 248 */
- 0x00067001, 0x00057002, 0x036a7001, 0x00067001, /* 252 */
- 0x00057002, 0x036a7001, 0x00007002, 0x00007002, /* 256 */
- 0x00057002, 0x03667001, 0x03667001, 0x00067001, /* 260 */
- 0x00057002, 0x00067001, 0x00057002, 0x036e7001, /* 264 */
- 0x00067001, 0x00057002, 0x00007002, 0x00007005, /* 268 */
- 0x00067001, 0x00057002, 0x00007002, 0x07217002, /* 272 */
- 0x00007005, 0x00007005, 0x00007005, 0x00007005, /* 276 */
- 0x000af001, 0x0007f003, 0x0009f002, 0x000af001, /* 280 */
- 0x0007f003, 0x0009f002, 0x000af001, 0x0007f003, /* 284 */
- 0x0009f002, 0x00067001, 0x00057002, 0x00067001, /* 288 */
- 0x00057002, 0x013d7002, 0x00067001, 0x00057002, /* 292 */
- 0x07fd7002, 0x000af001, 0x0007f003, 0x0009f002, /* 296 */
- 0x00067001, 0x00057002, 0x067e7001, 0x07227001, /* 300 */
- 0x05fa7001, 0x00007002, 0x00067001, 0x00057002, /* 304 */
- 0x00007002, 0x00007002, 0x00007002, 0x00007002, /* 308 */
- 0x00007002, 0x00007002, 0x07fe7001, 0x00067001, /* 312 */
- 0x00057002, 0x05767001, 0x07fe7001, 0x00007002, /* 316 */
- 0x00007002, 0x00067001, 0x00057002, 0x04f67001, /* 320 */
- 0x01167001, 0x011e7001, 0x00067001, 0x00057002, /* 324 */
- 0x07fd7002, 0x07fd7002, 0x00007002, 0x03497002, /* 328 */
- 0x03397002, 0x00007002, 0x03357002, 0x03357002, /* 332 */
- 0x00007002, 0x03297002, 0x00007002, 0x032d7002, /* 336 */
- 0x03357002, 0x00007002, 0x00007002, 0x033d7002, /* 340 */
- 0x03457002, 0x034d7002, 0x00007002, 0x07fd7002, /* 344 */
- 0x00007002, 0x00007002, 0x00007002, 0x034d7002, /* 348 */
- 0x00007002, 0x07fd7002, 0x03557002, 0x00007002, /* 352 */
- 0x00007002, 0x03597002, 0x00007002, 0x00007002, /* 356 */
- 0x03697002, 0x00007002, 0x00007002, 0x03697002, /* 360 */
- 0x03697002, 0x01157002, 0x03657002, 0x03657002, /* 364 */
- 0x011d7002, 0x00007002, 0x00007002, 0x00007002, /* 368 */
- 0x00007002, 0x00007002, 0x036d7002, 0x00007002, /* 372 */
- 0x00007005, 0x00007002, 0x00007002, 0x00007002, /* 376 */
- 0x00007004, 0x00007004, 0x00007004, 0x00007004, /* 380 */
- 0x00007004, 0x00007004, 0x00007004, 0x00007004, /* 384 */
- 0x00007004, 0x68007004, 0x68007004, 0x00007004, /* 388 */
- 0x00007004, 0x00007004, 0x6800001b, 0x6800001b, /* 392 */
- 0x6800001b, 0x6800001b, 0x68007004, 0x68007004, /* 396 */
- 0x68007004, 0x68007004, 0x68007004, 0x68007004, /* 400 */
- 0x68007004, 0x6800001b, 0x00007004, 0x6800001b, /* 404 */
- 0x40003006, 0x40003006, 0x40003006, 0x40003006, /* 408 */
- 0x40003006, 0x40003006, 0x40003006, 0x47fd3006, /* 412 */
- 0x40003006, 0x46b13006, 0x40003006, 0x40003006, /* 416 */
- 0x68007004, 0x6800001b, 0x00067001, 0x00057002, /* 420 */
- 0x78000000, 0x78000000, 0x00007004, 0x05f97002, /* 424 */
- 0x05f97002, 0x05f97002, 0x68000018, 0x78000000, /* 428 */
- 0x78000000, 0x78000000, 0x78000000, 0x78000000, /* 432 */
- 0x6800001b, 0x6800001b, 0x009a7001, 0x68000018, /* 436 */
- 0x00967001, 0x00967001, 0x00967001, 0x78000000, /* 440 */
- 0x01027001, 0x78000000, 0x00fe7001, 0x00fe7001, /* 444 */
- 0x07fd7002, 0x00827001, 0x00827001, 0x00827001, /* 448 */
- 0x00827001, 0x00827001, 0x78000000, 0x07fd7001, /* 452 */
- 0x00997002, 0x00957002, 0x00957002, 0x00957002, /* 456 */
- 0x00817002, 0x00817002, 0x007d7002, 0x00817002, /* 460 */
- 0x01017002, 0x00fd7002, 0x00fd7002, 0x00227001, /* 464 */
- 0x00f97002, 0x00e57002, 0x00007001, 0x00007001, /* 468 */
- 0x00007001, 0x00bd7002, 0x00d97002, 0x00217002, /* 472 */
- 0x01597002, 0x01417002, 0x07e57002, 0x00007002, /* 476 */
- 0x07127001, 0x01817002, 0x68000019, 0x00067001, /* 480 */
- 0x00057002, 0x07e67001, 0x00067001, 0x00057002, /* 484 */
- 0x00007002, 0x05fa7001, 0x05fa7001, 0x05fa7001, /* 488 */
- 0x01427001, 0x01427001, 0x01427001, 0x01427001, /* 492 */
- 0x01427001, 0x01427001, 0x01427001, 0x01427001, /* 496 */
- 0x01417002, 0x01417002, 0x01417002, 0x01417002, /* 500 */
- 0x01417002, 0x01417002, 0x01417002, 0x01417002, /* 504 */
- 0x00067001, 0x00057002, 0x0000001c, 0x40003006, /* 508 */
- 0x40000007, 0x40000007, 0x00067001, 0x00057002, /* 512 */
- 0x003e7001, 0x00067001, 0x00057002, 0x00067001, /* 516 */
- 0x00057002, 0x00067001, 0x00057002, 0x003d7002, /* 520 */
- 0x78000000, 0x00c27001, 0x00c27001, 0x00c27001, /* 524 */
- 0x00c27001, 0x00c27001, 0x00c27001, 0x00c27001, /* 528 */
- 0x00c27001, 0x00c27001, 0x00c27001, 0x78000000, /* 532 */
- 0x78000000, 0x00007004, 0x00000018, 0x00000018, /* 536 */
- 0x00000018, 0x00000018, 0x00000018, 0x00000018, /* 540 */
- 0x78000000, 0x00c17002, 0x00c17002, 0x00c17002, /* 544 */
- 0x00c17002, 0x00c17002, 0x00c17002, 0x00c17002, /* 548 */
- 0x00c17002, 0x00c17002, 0x00c17002, 0x07fd7002, /* 552 */
- 0x78000000, 0x00000018, 0x68000014, 0x78000000, /* 556 */
- 0x78000000, 0x40003006, 0x40003006, 0x40003006, /* 560 */
- 0x40003006, 0x40003006, 0x08000014, 0x40003006, /* 564 */
- 0x08000018, 0x40003006, 0x40003006, 0x08000018, /* 568 */
- 0x40003006, 0x40003006, 0x08000018, 0x40003006, /* 572 */
- 0x08007005, 0x08007005, 0x08007005, 0x08007005, /* 576 */
- 0x08007005, 0x08007005, 0x08007005, 0x08007005, /* 580 */
- 0x08007005, 0x08007005, 0x08007005, 0x78000000, /* 584 */
- 0x08007005, 0x08007005, 0x08007005, 0x08000018, /* 588 */
- 0x08000018, 0x78000000, 0x78000000, 0x78000000, /* 592 */
- 0x30001010, 0x30001010, 0x30001010, 0x30001010, /* 596 */
- 0x78000000, 0x78000000, 0x68000019, 0x68000019, /* 600 */
- 0x10000019, 0x28000018, 0x28000018, 0x1000501a, /* 604 */
- 0x38000018, 0x10000018, 0x6800001c, 0x6800001c, /* 608 */
- 0x40003006, 0x40003006, 0x40003006, 0x10000018, /* 612 */
- 0x78000000, 0x78000000, 0x10000018, 0x10000018, /* 616 */
- 0x78000000, 0x10007005, 0x10007005, 0x10007005, /* 620 */
- 0x10007005, 0x10007005, 0x10007005, 0x10007005, /* 624 */
- 0x10007004, 0x10007005, 0x10007005, 0x10007005, /* 628 */
- 0x10007005, 0x10007005, 0x10007005, 0x40003006, /* 632 */
- 0x40003006, 0x40003006, 0x40003006, 0x78000000, /* 636 */
- 0x30003409, 0x30003429, 0x30003449, 0x30003469, /* 640 */
- 0x30003489, 0x300034a9, 0x300034c9, 0x300034e9, /* 644 */
- 0x30003509, 0x30003529, 0x28000018, 0x30000018, /* 648 */
- 0x30000018, 0x10000018, 0x10007005, 0x10007005, /* 652 */
- 0x40003006, 0x10007005, 0x10007005, 0x10007005, /* 656 */
- 0x10000018, 0x10007005, 0x40003006, 0x40003006, /* 660 */
- 0x40003006, 0x30001010, 0x40000007, 0x40003006, /* 664 */
- 0x40003006, 0x10007004, 0x10007004, 0x40003006, /* 668 */
- 0x40003006, 0x6800001c, 0x40003006, 0x40003006, /* 672 */
- 0x40003006, 0x40003006, 0x10007005, 0x10007005, /* 676 */
- 0x18003509, 0x18003529, 0x10007005, 0x10007005, /* 680 */
- 0x10007005, 0x1000001c, 0x1000001c, 0x10007005, /* 684 */
- 0x10000018, 0x10000018, 0x10000018, 0x10000018, /* 688 */
- 0x10000018, 0x10000018, 0x10000018, 0x10000018, /* 692 */
- 0x10000018, 0x10000018, 0x78000000, 0x48001010, /* 696 */
- 0x40003006, 0x10007005, 0x78000000, 0x78000000, /* 700 */
- 0x08003409, 0x08003429, 0x08003449, 0x08003469, /* 704 */
- 0x08003489, 0x080034a9, 0x080034c9, 0x080034e9, /* 708 */
- 0x08003509, 0x08003529, 0x08007005, 0x08007005, /* 712 */
- 0x08007005, 0x08007005, 0x08007005, 0x40003006, /* 716 */
- 0x08007004, 0x08007004, 0x6800001c, 0x68000018, /* 720 */
- 0x68000018, 0x68000018, 0x08007004, 0x78000000, /* 724 */
- 0x78000000, 0x40003006, 0x40003006, 0x00003008, /* 728 */
- 0x00007005, 0x00007005, 0x78000000, 0x78000000, /* 732 */
- 0x40003006, 0x00007005, 0x00003008, 0x00003008, /* 736 */
- 0x00003008, 0x40003006, 0x40003006, 0x40003006, /* 740 */
- 0x40003006, 0x00003008, 0x00003008, 0x00003008, /* 744 */
- 0x00003008, 0x40003006, 0x78000000, 0x78000000, /* 748 */
- 0x00007005, 0x40003006, 0x40003006, 0x40003006, /* 752 */
- 0x40003006, 0x78000000, 0x78000000, 0x78000000, /* 756 */
- 0x00007005, 0x00007005, 0x40003006, 0x40003006, /* 760 */
- 0x00000018, 0x00000018, 0x00003409, 0x00003429, /* 764 */
- 0x00003449, 0x00003469, 0x00003489, 0x000034a9, /* 768 */
- 0x000034c9, 0x000034e9, 0x00003509, 0x00003529, /* 772 */
- 0x00000018, 0x00007004, 0x00007005, 0x78000000, /* 776 */
- 0x78000000, 0x40003006, 0x00003008, 0x00003008, /* 780 */
- 0x78000000, 0x00007005, 0x00007005, 0x00007005, /* 784 */
- 0x00007005, 0x78000000, 0x78000000, 0x00007005, /* 788 */
- 0x00007005, 0x78000000, 0x78000000, 0x00007005, /* 792 */
- 0x00007005, 0x78000000, 0x00007005, 0x00007005, /* 796 */
- 0x00007005, 0x78000000, 0x00007005, 0x78000000, /* 800 */
- 0x40003006, 0x78000000, 0x78000000, 0x00003008, /* 804 */
- 0x00003008, 0x78000000, 0x78000000, 0x00003008, /* 808 */
- 0x00003008, 0x40003006, 0x00007005, 0x78000000, /* 812 */
- 0x78000000, 0x78000000, 0x78000000, 0x00003008, /* 816 */
- 0x78000000, 0x78000000, 0x00003409, 0x00003429, /* 820 */
- 0x00007005, 0x00007005, 0x2800501a, 0x2800501a, /* 824 */
- 0x0000042b, 0x0000044b, 0x0000046b, 0x0000048b, /* 828 */
- 0x0000000b, 0x0000060b, 0x0000001c, 0x78000000, /* 832 */
- 0x40003006, 0x78000000, 0x00003008, 0x00003008, /* 836 */
- 0x00003008, 0x40003006, 0x40003006, 0x78000000, /* 840 */
- 0x78000000, 0x78000000, 0x78000000, 0x40003006, /* 844 */
- 0x40003006, 0x78000000, 0x78000000, 0x40003006, /* 848 */
- 0x40003006, 0x40003006, 0x00007005, 0x00007005, /* 852 */
- 0x00007005, 0x40003006, 0x78000000, 0x78000000, /* 856 */
- 0x40003006, 0x40003006, 0x78000000, 0x40003006, /* 860 */
- 0x40003006, 0x00003008, 0x78000000, 0x00003008, /* 864 */
- 0x78000000, 0x2800501a, 0x78000000, 0x78000000, /* 868 */
- 0x40003006, 0x00007005, 0x00003008, 0x40003006, /* 872 */
- 0x0000001c, 0x00007005, 0x78000000, 0x78000000, /* 876 */
- 0x00003008, 0x78000000, 0x00003008, 0x00003008, /* 880 */
- 0x0000054b, 0x0000088b, 0x0000090b, 0x6800001c, /* 884 */
- 0x6800001c, 0x6800001c, 0x6800001c, 0x6800001c, /* 888 */
- 0x6800001c, 0x2800501a, 0x6800001c, 0x78000000, /* 892 */
- 0x00003008, 0x78000000, 0x40003006, 0x40003006, /* 896 */
- 0x6800040b, 0x6800042b, 0x6800044b, 0x6800046b, /* 900 */
- 0x6800042b, 0x6800044b, 0x6800046b, 0x0000001c, /* 904 */
- 0x40003006, 0x00007005, 0x00003008, 0x00003006, /* 908 */
- 0x00003008, 0x78000000, 0x00003006, 0x00003008, /* 912 */
- 0x78000000, 0x78000000, 0x00007005, 0x78000000, /* 916 */
- 0x78000000, 0x6800001c, 0x6800001c, 0x78000000, /* 920 */
- 0x78000000, 0x00007005, 0x00003008, 0x00003008, /* 924 */
- 0x0000054b, 0x0000088b, 0x0000090b, 0x00000beb, /* 928 */
- 0x00000beb, 0x00000beb, 0x78000000, 0x78000000, /* 932 */
- 0x78000000, 0x0000001c, 0x00007005, 0x00007005, /* 936 */
- 0x78000000, 0x78000000, 0x40003006, 0x78000000, /* 940 */
- 0x40003006, 0x78000000, 0x40003006, 0x78000000, /* 944 */
- 0x00000018, 0x78000000, 0x78000000, 0x78000000, /* 948 */
- 0x00007005, 0x40003006, 0x00007005, 0x00007005, /* 952 */
- 0x78000000, 0x78000000, 0x78000000, 0x2800501a, /* 956 */
- 0x00007005, 0x00007005, 0x00007004, 0x40003006, /* 960 */
- 0x40003006, 0x40003006, 0x40003006, 0x00000018, /* 964 */
- 0x00003509, 0x00003529, 0x00000018, 0x00000018, /* 968 */
- 0x78000000, 0x00007005, 0x78000000, 0x00007005, /* 972 */
- 0x00007005, 0x78000000, 0x00007004, 0x78000000, /* 976 */
- 0x00003509, 0x00003529, 0x78000000, 0x78000000, /* 980 */
- 0x00007005, 0x0000001c, 0x0000001c, 0x0000001c, /* 984 */
- 0x00000018, 0x00000018, 0x00000018, 0x0000001c, /* 988 */
- 0x0000001c, 0x0000001c, 0x0000001c, 0x0000001c, /* 992 */
- 0x40003006, 0x40003006, 0x0000001c, 0x0000001c, /* 996 */
- 0x00003509, 0x00003529, 0x00000beb, 0x00000beb, /* 1000 */
- 0x00000beb, 0x00000beb, 0x00000beb, 0x00000beb, /* 1004 */
- 0x0000001c, 0x40003006, 0x0000001c, 0x40003006, /* 1008 */
- 0x0000001c, 0x40003006, 0xe8000015, 0xe8000016, /* 1012 */
- 0xe8000015, 0xe8000016, 0x00003008, 0x00003008, /* 1016 */
- 0x40003006, 0x00000018, 0x40003006, 0x40003006, /* 1020 */
- 0x40003006, 0x78000000, 0x0000001c, 0x0000001c, /* 1024 */
- 0x0000001c, 0x0000001c, 0x40003006, 0x0000001c, /* 1028 */
- 0x0000001c, 0x78000000, 0x0000001c, 0x0000001c, /* 1032 */
- 0x00007005, 0x00007005, 0x00007005, 0x00003008, /* 1036 */
- 0x40003006, 0x00003008, 0x40003006, 0x40003006, /* 1040 */
- 0x00003008, 0x40003006, 0x40003006, 0x00003008, /* 1044 */
- 0x00003008, 0x40003006, 0x40003006, 0x00007005, /* 1048 */
- 0x00007005, 0x00007005, 0x00003008, 0x00003008, /* 1052 */
- 0x00003008, 0x00007005, 0x00007005, 0x00003008, /* 1056 */
- 0x00007005, 0x00007005, 0x40003006, 0x00003008, /* 1060 */
- 0x00003008, 0x40003006, 0x00007005, 0x00003008, /* 1064 */
- 0x78000000, 0x78000000, 0x0000001c, 0x0000001c, /* 1068 */
- 0x07fe7001, 0x07fe7001, 0x07fe7001, 0x07fe7001, /* 1072 */
- 0x07fe7001, 0x07fe7001, 0x07fe7001, 0x07fe7001, /* 1076 */
- 0x07fe7001, 0x07fe7001, 0x78000000, 0x78000000, /* 1080 */
- 0x00007005, 0x00007005, 0x00007005, 0x00000018, /* 1084 */
- 0x00007004, 0x78000000, 0x78000000, 0x78000000, /* 1088 */
- 0x00000018, 0x0000042b, 0x0000044b, 0x0000046b, /* 1092 */
- 0x0000048b, 0x000004ab, 0x000004cb, 0x000004eb, /* 1096 */
- 0x0000050b, 0x0000052b, 0x0000054b, 0x0000068b, /* 1100 */
- 0x000007cb, 0x0000090b, 0x00000a4b, 0x00000b8b, /* 1104 */
- 0x000008cb, 0x00000a0b, 0x00000b4b, 0x0000088b, /* 1108 */
- 0x00000a0b, 0x78000000, 0x78000000, 0x78000000, /* 1112 */
- 0x00007005, 0x00000018, 0x00000018, 0x00007005, /* 1116 */
- 0x6000400c, 0x00007005, 0x00007005, 0x00007005, /* 1120 */
- 0x00007005, 0x00007005, 0x00007005, 0xe8000015, /* 1124 */
- 0xe8000016, 0x78000000, 0x78000000, 0x78000000, /* 1128 */
- 0x00000018, 0x00000018, 0x0000762a, 0x0000764a, /* 1132 */
- 0x0000766a, 0x78000000, 0x78000000, 0x78000000, /* 1136 */
- 0x40003006, 0x00000018, 0x00000018, 0x78000000, /* 1140 */
- 0x00007005, 0x78000000, 0x40003006, 0x40003006, /* 1144 */
- 0x00001010, 0x00001010, 0x00003008, 0x40003006, /* 1148 */
- 0x00003008, 0x00003008, 0x40003006, 0x00003008, /* 1152 */
- 0x00000018, 0x00000018, 0x00000018, 0x00007004, /* 1156 */
- 0x00000018, 0x00000018, 0x00000018, 0x2800501a, /* 1160 */
- 0x6800048b, 0x680004ab, 0x680004cb, 0x680004eb, /* 1164 */
- 0x6800050b, 0x6800052b, 0x78000000, 0x78000000, /* 1168 */
- 0x68000018, 0x68000018, 0x68000018, 0x68000018, /* 1172 */
- 0x68000018, 0x68000018, 0x68000014, 0x68000018, /* 1176 */
- 0x68000018, 0x68000018, 0x68000018, 0x40003006, /* 1180 */
- 0x40003006, 0x40003006, 0x6000400c, 0x78000000, /* 1184 */
- 0x00007005, 0x00007005, 0x00007005, 0x00007004, /* 1188 */
- 0x00007005, 0x40003006, 0x00007005, 0x78000000, /* 1192 */
- 0x6800001c, 0x78000000, 0x78000000, 0x78000000, /* 1196 */
- 0x68000018, 0x68000018, 0x00003409, 0x00003429, /* 1200 */
- 0x00003008, 0x00007005, 0x00007005, 0x00007005, /* 1204 */
- 0x00003008, 0x00007005, 0x00007005, 0x00007005, /* 1208 */
- 0x0000001c, 0x78000000, 0x78000000, 0x78000000, /* 1212 */
- 0x00007005, 0x00003008, 0x40003006, 0x40003006, /* 1216 */
- 0x00003509, 0x00003529, 0x00007005, 0x00007005, /* 1220 */
- 0x00007004, 0x00007004, 0x00000018, 0x00000018, /* 1224 */
- 0x00007004, 0x00007004, 0x00007002, 0x00007002, /* 1228 */
- 0x00007004, 0x07fd7002, 0x00007002, 0x00007002, /* 1232 */
- 0x07fd7002, 0x07fd7002, 0x07fd7002, 0x00ed7002, /* 1236 */
- 0x00007002, 0x00007002, 0x07fe7001, 0x00007002, /* 1240 */
- 0x07e17002, 0x07e17002, 0x07e17002, 0x07e17002, /* 1244 */
- 0x07e17002, 0x07e17002, 0x07e17002, 0x07e17002, /* 1248 */
- 0x07e27001, 0x07e27001, 0x07e27001, 0x07e27001, /* 1252 */
- 0x07e27001, 0x07e27001, 0x07e27001, 0x07e27001, /* 1256 */
- 0x07e17002, 0x07e17002, 0x78000000, 0x78000000, /* 1260 */
- 0x07e27001, 0x07e27001, 0x78000000, 0x78000000, /* 1264 */
- 0x07e27001, 0x07e27001, 0x78000000, 0x78000000, /* 1268 */
- 0x07fd7002, 0x07e17002, 0x07fd7002, 0x07e17002, /* 1272 */
- 0x07fd7002, 0x07e17002, 0x07fd7002, 0x07e17002, /* 1276 */
- 0x78000000, 0x07e27001, 0x78000000, 0x07e27001, /* 1280 */
- 0x78000000, 0x07e27001, 0x78000000, 0x07e27001, /* 1284 */
- 0x06d97002, 0x06d97002, 0x06a97002, 0x06a97002, /* 1288 */
- 0x06a97002, 0x06a97002, 0x06717002, 0x06717002, /* 1292 */
- 0x06017002, 0x06017002, 0x06417002, 0x06417002, /* 1296 */
- 0x06097002, 0x06097002, 0x78000000, 0x78000000, /* 1300 */
- 0x07fd7002, 0x07fd7002, 0x07fd7002, 0x07fd7002, /* 1304 */
- 0x07fd7002, 0x07fd7002, 0x07fd7002, 0x07fd7002, /* 1308 */
- 0x07fd7003, 0x07fd7003, 0x07fd7003, 0x07fd7003, /* 1312 */
- 0x07fd7003, 0x07fd7003, 0x07fd7003, 0x07fd7003, /* 1316 */
- 0x07e17002, 0x07e17002, 0x07fd7002, 0x07fd7002, /* 1320 */
- 0x07fd7002, 0x78000000, 0x07fd7002, 0x07fd7002, /* 1324 */
- 0x07e27001, 0x07e27001, 0x06da7001, 0x06da7001, /* 1328 */
- 0x07fd7003, 0x6800001b, 0x07fd7002, 0x6800001b, /* 1332 */
- 0x6800001b, 0x6800001b, 0x07fd7002, 0x07fd7002, /* 1336 */
- 0x06aa7001, 0x06aa7001, 0x06aa7001, 0x06aa7001, /* 1340 */
- 0x07fd7003, 0x6800001b, 0x6800001b, 0x6800001b, /* 1344 */
- 0x07e27001, 0x07e27001, 0x06727001, 0x06727001, /* 1348 */
- 0x78000000, 0x6800001b, 0x6800001b, 0x6800001b, /* 1352 */
- 0x07fd7002, 0x07e57002, 0x07fd7002, 0x07fd7002, /* 1356 */
- 0x07e27001, 0x07e27001, 0x06427001, 0x06427001, /* 1360 */
- 0x07e67001, 0x6800001b, 0x6800001b, 0x6800001b, /* 1364 */
- 0x06027001, 0x06027001, 0x060a7001, 0x060a7001, /* 1368 */
- 0x07fd7003, 0x6800001b, 0x6800001b, 0x78000000, /* 1372 */
- 0x6000400c, 0x6000400c, 0x6000400c, 0x6000400c, /* 1376 */
- 0x6000400c, 0x6000400c, 0x6000400c, 0x6000000c, /* 1380 */
- 0x6000400c, 0x6000400c, 0x6000400c, 0x48001010, /* 1384 */
- 0x48001010, 0x48001010, 0x00001010, 0x08001010, /* 1388 */
- 0x68000014, 0x68000014, 0x68000014, 0x68000014, /* 1392 */
- 0x68000014, 0x68000014, 0x68000018, 0x68000018, /* 1396 */
- 0x6800001d, 0x6800001e, 0x68000015, 0x6800001d, /* 1400 */
- 0x6800001d, 0x6800001e, 0x68000015, 0x6800001d, /* 1404 */
- 0x6000400d, 0x5000400e, 0x78001010, 0x78001010, /* 1408 */
- 0x78001010, 0x78001010, 0x78001010, 0x3800000c, /* 1412 */
- 0x28000018, 0x28000018, 0x28000018, 0x28000018, /* 1416 */
- 0x28000018, 0x68000018, 0x68000018, 0x68000018, /* 1420 */
- 0x68000018, 0xe800001d, 0xe800001e, 0x68000018, /* 1424 */
- 0x68000018, 0x68000018, 0x68000018, 0x68002017, /* 1428 */
- 0x68002017, 0x68000018, 0x68000018, 0x68000018, /* 1432 */
- 0x38000019, 0xe8000015, 0xe8000016, 0x68000018, /* 1436 */
- 0x68000018, 0x68000018, 0x68000019, 0x68000018, /* 1440 */
- 0x68000018, 0x68000018, 0x68000018, 0x6000400c, /* 1444 */
- 0x48001010, 0x48001010, 0x48001010, 0x48001010, /* 1448 */
- 0x48001010, 0x78000000, 0x78000000, 0x78000000, /* 1452 */
- 0x78000000, 0x78000000, 0x48001010, 0x48001010, /* 1456 */
- 0x1800040b, 0x00007002, 0x78000000, 0x78000000, /* 1460 */
- 0x1800048b, 0x180004ab, 0x180004cb, 0x180004eb, /* 1464 */
- 0x1800050b, 0x1800052b, 0x20000019, 0x20000019, /* 1468 */
- 0x68000019, 0xe8000015, 0xe8000016, 0x00007002, /* 1472 */
- 0x1800040b, 0x1800042b, 0x1800044b, 0x1800046b, /* 1476 */
- 0x68000019, 0xe8000015, 0xe8000016, 0x78000000, /* 1480 */
- 0x2800501a, 0x2800501a, 0x78000000, 0x78000000, /* 1484 */
- 0x40003006, 0x40000007, 0x40000007, 0x40000007, /* 1488 */
- 0x40000007, 0x40003006, 0x40000007, 0x40000007, /* 1492 */
- 0x40000007, 0x40003006, 0x40003006, 0x40003006, /* 1496 */
- 0x6800001c, 0x6800001c, 0x00007001, 0x6800001c, /* 1500 */
- 0x6800001c, 0x6800001c, 0x6800001c, 0x00007001, /* 1504 */
- 0x6800001c, 0x6800001c, 0x00007002, 0x00007001, /* 1508 */
- 0x00007001, 0x00007001, 0x00007002, 0x00007002, /* 1512 */
- 0x6800001c, 0x00007001, 0x00007001, 0x00007001, /* 1516 */
- 0x00007001, 0x00007001, 0x6800001c, 0x6800001c, /* 1520 */
- 0x00007001, 0x6800001c, 0x07fe7001, 0x6800001c, /* 1524 */
- 0x00007001, 0x6800001c, 0x07fe7001, 0x07fe7001, /* 1528 */
- 0x00007001, 0x00007001, 0x2800001c, 0x00007002, /* 1532 */
- 0x00007001, 0x00007001, 0x00727001, 0x00007001, /* 1536 */
- 0x00007002, 0x00007005, 0x00007005, 0x00007005, /* 1540 */
- 0x00007005, 0x00007002, 0x6800001c, 0x6800001c, /* 1544 */
- 0x00007002, 0x00007002, 0x00007001, 0x00007001, /* 1548 */
- 0xe8000019, 0x68000019, 0x68000019, 0x68000019, /* 1552 */
- 0x68000019, 0x00007001, 0x00007002, 0x00007002, /* 1556 */
- 0x00007002, 0x00007002, 0x6800001c, 0x68000019, /* 1560 */
- 0x6800001c, 0x6800001c, 0x00717002, 0x0000001c, /* 1564 */
- 0x78000000, 0x78000000, 0x78000000, 0x68000beb, /* 1568 */
- 0x68000beb, 0x68000beb, 0x68000beb, 0x68000beb, /* 1572 */
- 0x68000beb, 0x68000beb, 0x68000beb, 0x6800082b, /* 1576 */
- 0x0042742a, 0x0042744a, 0x0042746a, 0x0042748a, /* 1580 */
- 0x004274aa, 0x004274ca, 0x004274ea, 0x0042750a, /* 1584 */
- 0x0042752a, 0x0042754a, 0x0042756a, 0x0042758a, /* 1588 */
- 0x00427a4a, 0x0042788a, 0x00427a8a, 0x0042790a, /* 1592 */
- 0x0041742a, 0x0041744a, 0x0041746a, 0x0041748a, /* 1596 */
- 0x004174aa, 0x004174ca, 0x004174ea, 0x0041750a, /* 1600 */
- 0x0041752a, 0x0041754a, 0x0041756a, 0x0041758a, /* 1604 */
- 0x00417a4a, 0x0041788a, 0x00417a8a, 0x0041790a, /* 1608 */
- 0x0000790a, 0x0000790a, 0x00007a0a, 0x00067001, /* 1612 */
- 0x00057002, 0x000074ca, 0x00007a4a, 0x00007a0a, /* 1616 */
- 0x0000780a, 0x78000000, 0x78000000, 0x78000000, /* 1620 */
- 0x68000019, 0x6800001c, 0x6800001c, 0x6800001c, /* 1624 */
- 0x6800001c, 0x6800001c, 0x68000019, 0x68000019, /* 1628 */
- 0x68000019, 0x6800001c, 0x6800001c, 0x68000019, /* 1632 */
- 0x6800001c, 0x6800001c, 0x68000019, 0x6800001c, /* 1636 */
- 0x68000019, 0xe8000019, 0xe8000019, 0xe8000019, /* 1640 */
- 0xe8000019, 0xe8000019, 0xe8000019, 0xe8000019, /* 1644 */
- 0xe8000019, 0xe8000019, 0x68000019, 0x68000019, /* 1648 */
- 0x68000019, 0xe8000019, 0x20000019, 0x28000019, /* 1652 */
- 0x68000019, 0xe8000019, 0xe8000019, 0x68000019, /* 1656 */
- 0x68000019, 0x68000019, 0xe8000019, 0xe8000019, /* 1660 */
- 0xe8000019, 0xe8000019, 0x68000019, 0xe8000019, /* 1664 */
- 0xe8000019, 0x68000019, 0xe8000019, 0x68000019, /* 1668 */
- 0x68000019, 0xe8000019, 0x68000019, 0xe8000019, /* 1672 */
- 0xe8000019, 0xe8000019, 0x6800001c, 0x6800001c, /* 1676 */
- 0x6800001c, 0xe8000015, 0xe8000016, 0x6800001c, /* 1680 */
- 0x6800001c, 0x6800001c, 0x0000001c, 0x0000001c, /* 1684 */
- 0x0000001c, 0x0000001c, 0x0000001c, 0x6800001c, /* 1688 */
- 0x6800001c, 0x0000001c, 0x6800001c, 0x6800001c, /* 1692 */
- 0x6800001c, 0x6800001c, 0x6800001c, 0x78000000, /* 1696 */
- 0x6800001c, 0x6800001c, 0x6800001c, 0x78000000, /* 1700 */
- 0x6800042b, 0x6800044b, 0x6800046b, 0x6800048b, /* 1704 */
- 0x6800052b, 0x6800054b, 0x6800056b, 0x6800058b, /* 1708 */
- 0x680005ab, 0x680005cb, 0x680005eb, 0x6800060b, /* 1712 */
- 0x6800062b, 0x6800064b, 0x6800066b, 0x6800068b, /* 1716 */
- 0x6800062b, 0x6800064b, 0x6800066b, 0x6800068b, /* 1720 */
- 0x1800042b, 0x1800044b, 0x1800046b, 0x1800048b, /* 1724 */
- 0x1800052b, 0x1800054b, 0x1800056b, 0x1800058b, /* 1728 */
- 0x180005ab, 0x180005cb, 0x180005eb, 0x1800060b, /* 1732 */
- 0x1800062b, 0x1800064b, 0x1800066b, 0x1800068b, /* 1736 */
- 0x0000001c, 0x0000001c, 0x006a001c, 0x006a001c, /* 1740 */
- 0x006a001c, 0x006a001c, 0x006a001c, 0x006a001c, /* 1744 */
- 0x0069001c, 0x0069001c, 0x0069001c, 0x0069001c, /* 1748 */
- 0x0069001c, 0x0069001c, 0x0069001c, 0x0069001c, /* 1752 */
- 0x0069001c, 0x0069001c, 0x6800040b, 0x6800056b, /* 1756 */
- 0x6800068b, 0x6800042b, 0x6800044b, 0x6800046b, /* 1760 */
- 0x6800050b, 0x6800052b, 0x6800054b, 0x6800040b, /* 1764 */
- 0x78000000, 0x6800001c, 0x78000000, 0x6800001c, /* 1768 */
- 0x78000000, 0x78000000, 0x6800001c, 0x78000000, /* 1772 */
- 0xe8000015, 0xe8000016, 0x6800042b, 0x6800044b, /* 1776 */
- 0x6800046b, 0x6800048b, 0x680004ab, 0x680004cb, /* 1780 */
- 0x680004eb, 0x6800050b, 0x6800052b, 0x6800054b, /* 1784 */
- 0x6800052b, 0x6800054b, 0x6800042b, 0x6800044b, /* 1788 */
- 0xe8000019, 0xe8000015, 0xe8000016, 0x68000019, /* 1792 */
- 0xe8000019, 0xe8000019, 0x68000019, 0x78000000, /* 1796 */
- 0xe8000019, 0x78000000, 0x78000000, 0x78000000, /* 1800 */
- 0xe8000019, 0xe8000019, 0xe8000015, 0xe8000016, /* 1804 */
- 0x68000019, 0x68000019, 0x68000019, 0xe8000015, /* 1808 */
- 0xe8000016, 0xe8000015, 0xe8000016, 0xe8000015, /* 1812 */
- 0xe8000016, 0xe8000015, 0xe8000016, 0xe8000015, /* 1816 */
- 0xe8000016, 0x68000019, 0x68000019, 0xe8000019, /* 1820 */
- 0x68000019, 0x78000000, 0x78000000, 0x78000000, /* 1824 */
- 0x00c17002, 0x00c17002, 0x00c17002, 0x78000000, /* 1828 */
- 0x00067001, 0x00057002, 0x07fe7001, 0x07fe7001, /* 1832 */
- 0x07fe7001, 0x07fd7002, 0x07fd7002, 0x00067001, /* 1836 */
- 0x78000000, 0x00007002, 0x00067001, 0x00057002, /* 1840 */
- 0x00007002, 0x00007004, 0x78000000, 0x78000000, /* 1844 */
- 0x00007002, 0x6800001c, 0x6800001c, 0x6800001c, /* 1848 */
- 0x68000018, 0x68000beb, 0x68000018, 0x68000018, /* 1852 */
- 0x07fd7002, 0x07fd7002, 0x78000000, 0x78000000, /* 1856 */
- 0x78000000, 0x78000000, 0x78000000, 0x00007004, /* 1860 */
- 0xe800001d, 0xe800001e, 0xe8000015, 0xe8000016, /* 1864 */
- 0x68000018, 0x68000018, 0x68000018, 0x68007004, /* 1868 */
- 0x6000400c, 0x68000018, 0x68000018, 0x68000018, /* 1872 */
- 0x6800001c, 0x00007004, 0x00007005, 0x0000740a, /* 1876 */
- 0x68000014, 0x68000015, 0x68000016, 0x68000016, /* 1880 */
- 0x6800001c, 0x0000742a, 0x0000744a, 0x0000746a, /* 1884 */
- 0x0000748a, 0x000074aa, 0x000074ca, 0x000074ea, /* 1888 */
- 0x0000750a, 0x0000752a, 0x40003006, 0x40003006, /* 1892 */
- 0x68000014, 0x00007004, 0x00007004, 0x00007004, /* 1896 */
- 0x00007004, 0x00007004, 0x6800001c, 0x6800001c, /* 1900 */
- 0x0000754a, 0x0000768a, 0x000077ca, 0x00007004, /* 1904 */
- 0x00007005, 0x68000018, 0x6800001c, 0x6800001c, /* 1908 */
- 0x78000000, 0x40003006, 0x40003006, 0x6800001b, /* 1912 */
- 0x6800001b, 0x00007004, 0x00007004, 0x00007005, /* 1916 */
- 0x68000014, 0x00007005, 0x00007005, 0x00007005, /* 1920 */
- 0x00007005, 0x00007005, 0x00007005, 0x68000018, /* 1924 */
- 0x00007004, 0x00007004, 0x00007004, 0x00007005, /* 1928 */
- 0x0000001c, 0x0000001c, 0x0000042b, 0x0000044b, /* 1932 */
- 0x0000046b, 0x0000048b, 0x0000001c, 0x0000001c, /* 1936 */
- 0x0000001c, 0x6800001c, 0x6800001c, 0x78000000, /* 1940 */
- 0x0000052b, 0x0000054b, 0x0000001c, 0x0000001c, /* 1944 */
- 0x6800001c, 0x680006ab, 0x680006cb, 0x680006eb, /* 1948 */
- 0x6800070b, 0x6800072b, 0x6800074b, 0x6800076b, /* 1952 */
- 0x6800078b, 0x680007ab, 0x680007cb, 0x680007eb, /* 1956 */
- 0x6800080b, 0x6800082b, 0x6800084b, 0x6800086b, /* 1960 */
- 0x0000001c, 0x6800088b, 0x680008ab, 0x680008cb, /* 1964 */
- 0x680008eb, 0x6800090b, 0x6800092b, 0x6800094b, /* 1968 */
- 0x6800096b, 0x6800098b, 0x680009ab, 0x680009cb, /* 1972 */
- 0x680009eb, 0x68000a0b, 0x68000a2b, 0x68000a4b, /* 1976 */
- 0x0000001c, 0x0000001c, 0x0000001c, 0x78000000, /* 1980 */
- 0x00007005, 0x00007004, 0x00007005, 0x00007005, /* 1984 */
- 0x00007004, 0x68000018, 0x68000018, 0x68000018, /* 1988 */
- 0x78000000, 0x78000000, 0x00067001, 0x00057002, /* 1992 */
- 0x00067001, 0x00057002, 0x00007005, 0x40003006, /* 1996 */
- 0x40000007, 0x40000007, 0x40000007, 0x68000018, /* 2000 */
- 0x40003006, 0x40003006, 0x68000018, 0x68007004, /* 2004 */
- 0x6800001b, 0x6800001b, 0x00067001, 0x00057002, /* 2008 */
- 0x00007004, 0x00007002, 0x00007002, 0x00007002, /* 2012 */
- 0x00057002, 0x07fe7001, 0x00067001, 0x00057002, /* 2016 */
- 0x68007004, 0x0000001b, 0x0000001b, 0x00067001, /* 2020 */
- 0x00057002, 0x78000000, 0x78000000, 0x78000000, /* 2024 */
- 0x00007005, 0x00007005, 0x40003006, 0x00007005, /* 2028 */
- 0x00007005, 0x00007005, 0x40003006, 0x00007005, /* 2032 */
- 0x40003006, 0x00003008, 0x78000000, 0x78000000, /* 2036 */
- 0x00000013, 0x00000013, 0x00000013, 0x00000013, /* 2040 */
- 0x00000013, 0x00000013, 0x00000013, 0x00000013, /* 2044 */
- 0x00000012, 0x00000012, 0x00000012, 0x00000012, /* 2048 */
- 0x00000012, 0x00000012, 0x00000012, 0x00000012, /* 2052 */
- 0x00007005, 0x00007005, 0x00007005, 0x00007465, /* 2056 */
- 0x00007005, 0x00007005, 0x00007005, 0x00007545, /* 2060 */
- 0x00007445, 0x00007005, 0x00007005, 0x00007005, /* 2064 */
- 0x00007005, 0x00007005, 0x00007405, 0x00007005, /* 2068 */
- 0x00007005, 0x000074c5, 0x00007005, 0x000074c5, /* 2072 */
- 0x00007005, 0x00007545, 0x00007005, 0x00007005, /* 2076 */
- 0x78000000, 0x78000000, 0x78000000, 0x07fd7002, /* 2080 */
- 0x78000000, 0x08007005, 0x40003006, 0x08007005, /* 2084 */
- 0x08007005, 0x20000019, 0x08007005, 0x08007005, /* 2088 */
- 0x08007005, 0x78000000, 0x08007005, 0x78000000, /* 2092 */
- 0x10007005, 0x10007005, 0x78000000, 0x78000000, /* 2096 */
- 0x78000000, 0x78000000, 0x78000000, 0x10007005, /* 2100 */
- 0x10007005, 0x10007005, 0x68000015, 0x68000016, /* 2104 */
- 0x1000501a, 0x6800001c, 0x78000000, 0x78000000, /* 2108 */
- 0x68000018, 0x68000018, 0x68000018, 0x68000015, /* 2112 */
- 0x68000016, 0x68000018, 0x78000000, 0x78000000, /* 2116 */
- 0x68000018, 0x68000014, 0x68000014, 0x68002017, /* 2120 */
- 0x68002017, 0x68000015, 0x68000016, 0x68000015, /* 2124 */
- 0x68000016, 0x68000015, 0x68000016, 0x68000015, /* 2128 */
- 0x68000016, 0x68000018, 0x68000018, 0x68000015, /* 2132 */
- 0x68000016, 0x68000018, 0x68000018, 0x68000018, /* 2136 */
- 0x68000018, 0x68002017, 0x68002017, 0x68002017, /* 2140 */
- 0x38000018, 0x68000018, 0x38000018, 0x78000000, /* 2144 */
- 0x68000018, 0x38000018, 0x68000018, 0x68000018, /* 2148 */
- 0x68000014, 0xe8000015, 0xe8000016, 0xe8000015, /* 2152 */
- 0xe8000016, 0xe8000015, 0xe8000016, 0x28000018, /* 2156 */
- 0x68000018, 0x68000018, 0x20000019, 0x20000014, /* 2160 */
- 0x68000018, 0x2800501a, 0x28000018, 0x68000018, /* 2164 */
- 0x10007005, 0x78000000, 0x10007005, 0x10007005, /* 2168 */
- 0x10007005, 0x78000000, 0x78000000, 0x48001010, /* 2172 */
- 0x78000000, 0x68000018, 0x68000018, 0x28000018, /* 2176 */
- 0x00827ce1, 0x00827d01, 0x00827d21, 0x00827d41, /* 2180 */
- 0x00817ce2, 0x00817d02, 0x00817d22, 0x00817d42, /* 2184 */
- 0x68000019, 0xe8000016, 0x68000019, 0xe8000015, /* 2188 */
- 0xe8000016, 0x68000018, 0xe8000015, 0xe8000016, /* 2192 */
- 0x68000018, 0x68000018, 0x00007005, 0x00007005, /* 2196 */
- 0x00007004, 0x00007005, 0x00007005, 0x00007005, /* 2200 */
- 0x2800501a, 0x2800501a, 0x68000019, 0x6800001b, /* 2204 */
- 0x6800001c, 0x2800501a, 0x2800501a, 0x78000000, /* 2208 */
- 0x68000019, 0x6800001c, 0x6800001c, 0x78000000, /* 2212 */
- 0x78000000, 0x68001010, 0x68001010, 0x68001010, /* 2216 */
- 0x00000018, 0x68000018, 0x0000001c, 0x78000000, /* 2220 */
- 0x78000000, 0x78000000, 0x78000000, 0x0000042b, /* 2224 */
- 0x00000b4b, 0x0000088b, 0x0000090b, 0x0000098b, /* 2228 */
- 0x00000a0b, 0x00000a8b, 0x00000b0b, 0x00000b8b, /* 2232 */
- 0x0000080b, 0x0000088b, 0x0000090b, 0x00000a0b, /* 2236 */
- 0x00000b0b, 0x0000080b, 0x0000090b, 0x00000a0b, /* 2240 */
- 0x00000b0b, 0x0000080b, 0x0000090b, 0x00000a0b, /* 2244 */
- 0x0000080b, 0x00000a0b, 0x0000080b, 0x00000a0b, /* 2248 */
- 0x0000080b, 0x00000a0b, 0x0000080b, 0x00000a0b, /* 2252 */
- 0x68007bea, 0x68007bea, 0x6800742a, 0x680074aa, /* 2256 */
- 0x68007a4a, 0x68007a8a, 0x6800790a, 0x68007a0a, /* 2260 */
- 0x680074aa, 0x6800754a, 0x68007a4a, 0x6800788a, /* 2264 */
- 0x68007a8a, 0x6800790a, 0x6800790a, 0x680074aa, /* 2268 */
- 0x6800790a, 0x68007a0a, 0x68007a0a, 0x6800754a, /* 2272 */
- 0x6800742a, 0x6800742a, 0x6800742a, 0x6800744a, /* 2276 */
- 0x6800744a, 0x6800744a, 0x6800744a, 0x680074aa, /* 2280 */
- 0x6800754a, 0x6800754a, 0x6800754a, 0x6800754a, /* 2284 */
- 0x6800754a, 0x680077ca, 0x68007a4a, 0x68007a4a, /* 2288 */
- 0x68007a4a, 0x68007a4a, 0x6800788a, 0x6800798a, /* 2292 */
- 0x68007a8a, 0x68007a8a, 0x68007a8a, 0x68007a8a, /* 2296 */
- 0x68007a4a, 0x68000beb, 0x68000beb, 0x68000beb, /* 2300 */
- 0x68000beb, 0x6800001c, 0x6800001c, 0x6800001c, /* 2304 */
- 0x6800001c, 0x6800001c, 0x6800040b, 0x78000000, /* 2308 */
- 0x0000001c, 0x40003006, 0x78000000, 0x78000000, /* 2312 */
- 0x0000042b, 0x000004ab, 0x0000054b, 0x00000a4b, /* 2316 */
- 0x00007005, 0x00007b4a, 0x00007005, 0x00007005, /* 2320 */
- 0x00007005, 0x00007005, 0x0000788a, 0x78000000, /* 2324 */
- 0x00007005, 0x00007005, 0x78000000, 0x00000018, /* 2328 */
- 0x00000018, 0x0000742a, 0x0000744a, 0x0000754a, /* 2332 */
- 0x0000768a, 0x0000788a, 0x78000000, 0x78000000, /* 2336 */
- 0x00a27001, 0x00a27001, 0x00a27001, 0x00a27001, /* 2340 */
- 0x00a27001, 0x00a27001, 0x00a27001, 0x00a27001, /* 2344 */
- 0x00a17002, 0x00a17002, 0x00a17002, 0x00a17002, /* 2348 */
- 0x00a17002, 0x00a17002, 0x00a17002, 0x00a17002, /* 2352 */
- 0x08007005, 0x08007005, 0x78000000, 0x78000000, /* 2356 */
- 0x08007005, 0x78000000, 0x78000000, 0x78000000, /* 2360 */
- 0x08007005, 0x08007005, 0x0800042b, 0x0800054b, /* 2364 */
- 0x0800068b, 0x0800088b, 0x78000000, 0x78000000, /* 2368 */
- 0x78000000, 0x78000000, 0x78000000, 0x08000018, /* 2372 */
- 0x08007005, 0x40003006, 0x40003006, 0x40003006, /* 2376 */
- 0x0800042b, 0x0800044b, 0x0800046b, 0x0800048b, /* 2380 */
- 0x0800054b, 0x0800068b, 0x0800088b, 0x0800090b, /* 2384 */
- 0x08000018, 0x08000018, 0x08000018, 0x08000018, /* 2388 */
- 0x08000018, 0x08000018, 0x08000018, 0x08000018, /* 2392 */
- 0x000074ea, 0x0000750a, 0x0000752a, 0x0000748a, /* 2396 */
- 0x0000752a, 0x0000742a, 0x0000744a, 0x0000746a, /* 2400 */
- 0x0000750a, 0x0000752a, 0x0000742a, 0x0000744a, /* 2404 */
- 0x0000746a, 0x0000748a, 0x000074aa, 0x0000744a, /* 2408 */
- 0x0000746a, 0x0000746a, 0x0000748a, 0x000074aa, /* 2412 */
- 0x0000742a, 0x0000744a, 0x0000746a, 0x0000746a, /* 2416 */
- 0x0000748a, 0x000074aa, 0x0000700a, 0x0000700a, /* 2420 */
- 0x0000748a, 0x000074aa, 0x0000746a, 0x0000746a, /* 2424 */
- 0x0000748a, 0x0000748a, 0x0000748a, 0x0000748a, /* 2428 */
- 0x000074ca, 0x000074ea, 0x000074ea, 0x000074ea, /* 2432 */
- 0x0000750a, 0x0000750a, 0x0000752a, 0x0000752a, /* 2436 */
- 0x0000752a, 0x0000752a, 0x0000744a, 0x0000746a, /* 2440 */
- 0x0000748a, 0x000074aa, 0x000074ca, 0x0000742a, /* 2444 */
- 0x0000744a, 0x0000746a, 0x0000748a, 0x0000748a, /* 2448 */
- 0x000074aa, 0x000074aa, 0x0000700a, 0x0000700a, /* 2452 */
- 0x0000742a, 0x0000744a, 0x00007bea, 0x00007bea, /* 2456 */
- 0x00007bea, 0x00007bea, 0x00007bea, 0x00007bea, /* 2460 */
- 0x00007bea, 0x00007bea, 0x00007bea, 0x78000000, /* 2464 */
- 0x0000001c, 0x0000001c, 0x78000000, 0x78000000, /* 2468 */
- 0x0000001c, 0x00003008, 0x00003008, 0x40003006, /* 2472 */
- 0x0000001c, 0x00003008, 0x00003008, 0x00003008, /* 2476 */
- 0x00003008, 0x00003008, 0x00003008, 0x48001010, /* 2480 */
- 0x48001010, 0x48001010, 0x48001010, 0x40003006, /* 2484 */
- 0x40003006, 0x40003006, 0x40003006, 0x0000001c, /* 2488 */
- 0x0000001c, 0x40003006, 0x40003006, 0x40003006, /* 2492 */
- 0x40003006, 0x6800001c, 0x78000000, 0x78000000, /* 2496 */
- 0x00000a0b, 0x00000b4b, 0x78000000, 0x78000000, /* 2500 */
- 0x00007002, 0x78000000, 0x00007002, 0x00007002, /* 2504 */
- 0x00007001, 0x78000000, 0x00007001, 0x00007001, /* 2508 */
- 0x78000000, 0x78000000, 0x00007001, 0x78000000, /* 2512 */
- 0x78000000, 0x00007001, 0x00007001, 0x00007001, /* 2516 */
- 0x00007002, 0x00007002, 0x78000000, 0x00007002, /* 2520 */
- 0x78000000, 0x00007002, 0x00007002, 0x00007002, /* 2524 */
- 0x78000000, 0x00007002, 0x00007002, 0x00007002, /* 2528 */
- 0x00007001, 0x00007001, 0x78000000, 0x00007001, /* 2532 */
- 0x00007001, 0x00007001, 0x00007001, 0x78000000, /* 2536 */
- 0x00007001, 0x78000000, 0x00007002, 0x00007002, /* 2540 */
- 0x00007001, 0x78000000, 0x00007002, 0x00007002, /* 2544 */
- 0x00007002, 0x00007002, 0x78000000, 0x78000000, /* 2548 */
- 0x00007001, 0x00000019, 0x00007002, 0x00007002, /* 2552 */
- 0x00007002, 0x00007002, 0x00007002, 0x80000019, /* 2556 */
- 0x00007001, 0x00007001, 0x00007001, 0x00000019, /* 2560 */
- 0x00007002, 0x80000019, 0x00007002, 0x00007002, /* 2564 */
- 0x00007002, 0x80000019, 0x00007002, 0x00007002, /* 2568 */
- 0x00007002, 0x00007002, 0x00007001, 0x00007002, /* 2572 */
- 0x78000000, 0x78000000, 0x18003409, 0x18003429, /* 2576 */
- 0x18003509, 0x18003529, 0x18003409, 0x18003429, /* 2580 */
- 0x18003509, 0x18003529, 0x18003409, 0x18003429, /* 2584 */
- 0x00007525, 0x00007005, 0x00007005, 0x00007005, /* 2588 */
- 0x78000000, 0x48001010, 0x78000000, 0x78000000, /* 2592 */
- 0x00000012, 0x00000012, 0x78000000, 0x78000000, /* 2596 */
- 0x00000012, 0x00000012,
-};
-
-#define UNI_CODE(ch) (prop[block[plane[(ch>>8)&8191]+((ch>>2)&63)]+(ch&3)])
-
-/**
- * Get type part of code
-
- */
-#define UNI_CODE_TO_TYPE(ch) (ch & 0x1f)
-
-/**
- * Fetch the category type
-
- */
-#define UNI_TYPE(ch) (UNI_CODE_TO_TYPE(UNI_CODE(ch)))
-
-/**
- * Fetch the digit offset
- */
-#define UNI_DIGIT_OFFSET(ch) ((UNI_CODE(ch)>>5) & 0x1f)
-
-/**
- * Fetch the numeric property
- */
-#define UNI_NUM_PROP(ch) ((UNI_CODE(ch)>>10) & 0x3)
-
-/**
- * Fetch the lexical property
- */
-#define UNI_LEX_PROP(ch) ((UNI_CODE(ch)>>12) & 0x7)
-
-/**
- * Fetch the case mapping offset
- */
-#define UNI_CASE_OFFSET(ch) ((UNI_CODE(ch)>>18) & 0x1ff)
-
-
-/**
- * Special case mappings, not covered by UnicodeData.txt
- */
-typedef struct
-{
- int sourceChar;
- int nrMaps;
- int map[3];
-} CaseMapEntry;
-
-/*
-
-static CaseMapEntry caseMap[] =
-{
- { 0x1fc2, 2, { 0xffff, 0x0159 } },
- { 0x1fc3, 1, { 0xffff } },
- { 0x1fc6, 2, { 0x018d, 0x0156 } },
- { 0x1fc7, 3, { 0x018d, 0x0156, 0x0159 } },
- { 0x1fc4, 2, { 0x0185, 0x0159 } },
- { 0x1fcc, 1, { 0xffff } },
- { 0x1fd3, 3, { 0x018f, 0x0134, 0x012d } },
- { 0x1fd2, 3, { 0x018f, 0x0134, 0x012c } },
- { 0x1fd7, 3, { 0x018f, 0x0134, 0x0156 } },
- { 0x1fd6, 2, { 0x018f, 0x0156 } },
- { 0x0130, 1, { 0x0082 } },
- { 0x1fe2, 3, { 0xffff, 0x0134, 0x012c } },
- { 0x1fe3, 3, { 0xffff, 0x0134, 0x012d } },
- { 0x1fe4, 2, { 0xffff, 0x0139 } },
- { 0x1fe6, 2, { 0xffff, 0x0156 } },
- { 0x1fe7, 3, { 0xffff, 0x0134, 0x0156 } },
- { 0x0307, 1, { 0x0133 } },
- { 0x1ff3, 1, { 0xffff } },
- { 0x1ff2, 2, { 0xffff, 0x0159 } },
- { 0x1ff4, 2, { 0xffff, 0x0159 } },
- { 0x1ff7, 3, { 0xffff, 0x0156, 0x0159 } },
- { 0x1ff6, 2, { 0xffff, 0x0156 } },
- { 0x0128, 1, { 0x0080 } },
- { 0x1ffc, 1, { 0xffff } },
- { 0x012e, 1, { 0xffff } },
- { 0x1f86, 1, { 0xffff } },
- { 0x1f87, 1, { 0xffff } },
- { 0x1f84, 1, { 0xffff } },
- { 0x1e97, 2, { 0x0036, 0x0134 } },
- { 0x1f85, 1, { 0xffff } },
- { 0x1e96, 2, { 0x0030, 0x014b } },
- { 0x1f82, 1, { 0xffff } },
- { 0x1f83, 1, { 0xffff } },
- { 0x1f80, 1, { 0xffff } },
- { 0x1f81, 1, { 0xffff } },
- { 0xfb01, 2, { 0x002e, 0x0045 } },
- { 0x1f8e, 1, { 0xffff } },
- { 0xfb00, 2, { 0x002e, 0x0042 } },
- { 0x1f8f, 1, { 0xffff } },
- { 0xfb03, 3, { 0x002e, 0x0042, 0x0045 } },
- { 0x1f8c, 1, { 0xffff } },
- { 0xfb02, 2, { 0x002e, 0xffff } },
- { 0x1f8d, 1, { 0xffff } },
- { 0xfb05, 2, { 0x0035, 0x004a } },
- { 0x1e99, 2, { 0x003b, 0xffff } },
- { 0x1f8a, 1, { 0xffff } },
- { 0x0049, 1, { 0x0031 } },
- { 0xfb04, 3, { 0x002e, 0x0042, 0xffff } },
- { 0x1e98, 2, { 0x0039, 0xffff } },
- { 0x1f8b, 1, { 0xffff } },
- { 0x004a, 1, { 0xffff } },
- { 0x1f88, 1, { 0xffff } },
- { 0xfb06, 2, { 0x0035, 0x004a } },
- { 0x1e9a, 2, { 0x0029, 0xffff } },
- { 0x1f89, 1, { 0xffff } },
- { 0x1f97, 1, { 0xffff } },
- { 0x1f96, 1, { 0xffff } },
- { 0x1f95, 1, { 0xffff } },
- { 0x1f94, 1, { 0xffff } },
- { 0x1f93, 1, { 0xffff } },
- { 0x1f92, 1, { 0xffff } },
- { 0x1f91, 1, { 0xffff } },
- { 0x1f90, 1, { 0xffff } },
- { 0x1f9f, 1, { 0xffff } },
- { 0x1f9e, 1, { 0xffff } },
- { 0x1f9d, 1, { 0xffff } },
- { 0xfb13, 2, { 0x0220, 0x0240 } },
- { 0x1f9c, 1, { 0xffff } },
- { 0xfb14, 2, { 0x0220, 0x0235 } },
- { 0x1f9b, 1, { 0xffff } },
- { 0xfb15, 2, { 0x0220, 0xffff } },
- { 0x1f9a, 1, { 0xffff } },
- { 0xfb16, 2, { 0xffff, 0x0240 } },
- { 0x1f99, 1, { 0xffff } },
- { 0xfb17, 2, { 0x0220, 0xffff } },
- { 0x0149, 2, { 0xffff, 0xffff } },
- { 0x1f98, 1, { 0xffff } },
- { 0x1fa4, 1, { 0xffff } },
- { 0x1fa5, 1, { 0xffff } },
- { 0x1fa6, 1, { 0xffff } },
- { 0x1fa7, 1, { 0xffff } },
- { 0x1fa0, 1, { 0xffff } },
- { 0x1fa1, 1, { 0xffff } },
- { 0x1fa2, 1, { 0xffff } },
- { 0x1fa3, 1, { 0xffff } },
- { 0x1fac, 1, { 0xffff } },
- { 0x1fad, 1, { 0xffff } },
- { 0x1fae, 1, { 0xffff } },
- { 0x1faf, 1, { 0xffff } },
- { 0x1fa8, 1, { 0xffff } },
- { 0x1fa9, 1, { 0xffff } },
- { 0x1faa, 1, { 0xffff } },
- { 0x0069, 1, { 0x0082 } },
- { 0x1fab, 1, { 0xffff } },
- { 0x1fb4, 2, { 0x0182, 0x0159 } },
- { 0x1fb7, 3, { 0x0187, 0x0156, 0x0159 } },
- { 0x1fb6, 2, { 0x0187, 0x0156 } },
- { 0x1fb3, 1, { 0xffff } },
- { 0x1fb2, 2, { 0xffff, 0x0159 } },
- { 0x1fbc, 1, { 0xffff } },
- { 0x03b0, 3, { 0xffff, 0x0134, 0x012d } },
- { 0x1f52, 3, { 0xffff, 0x0139, 0x012c } },
- { 0x1f50, 2, { 0xffff, 0x0139 } },
- { 0x1f56, 3, { 0xffff, 0x0139, 0x0156 } },
- { 0x03a3, 1, { 0xffff } },
- { 0x1f54, 3, { 0xffff, 0x0139, 0x012d } },
- { 0x0390, 3, { 0x018f, 0x0134, 0x012d } },
- { 0x00cd, 1, { 0xffff } },
- { 0x00cc, 1, { 0xffff } },
- { 0x00df, 2, { 0x0035, 0x0049 } },
- { 0x0587, 2, { 0x0217, 0x0246 } },
- { 0x01f0, 2, { 0xffff, 0xffff } },
- { 0, 0, {} }
-};
-
-
-*/
-
-
-
-unsigned int uni_code(int ch)
-{
- return UNI_CODE(ch);
-}
-
-unsigned int uni_type(int ch)
-{
- return UNI_TYPE(ch);
-}
-
-int uni_is_lower(int ch)
-{
- return (UNI_TYPE(ch) == UNI_LOWERCASE_LETTER);
-}
-
-int uni_is_upper(int ch)
-{
- return (UNI_TYPE(ch) == UNI_UPPERCASE_LETTER);
-}
-
-int uni_is_title(int ch)
-{
- return (UNI_TYPE(ch) == UNI_TITLECASE_LETTER);
-}
-
-int uni_is_digit(int ch)
-{
- return (UNI_TYPE(ch) == UNI_DECIMAL_DIGIT_NUMBER);
-}
-
-int uni_is_defined(int ch)
-{
- return (UNI_TYPE(ch) != UNI_UNASSIGNED);
-}
-
-int uni_is_letter(int ch)
-{
- int c = UNI_TYPE(ch);
- return (c>=UNI_UPPERCASE_LETTER && c<=UNI_OTHER_LETTER);
-}
-
-int uni_is_letter_or_digit(int ch)
-{
- int c = UNI_TYPE(ch);
- return ((c>=UNI_UPPERCASE_LETTER && c<=UNI_OTHER_LETTER)
- || c==UNI_DECIMAL_DIGIT_NUMBER);
-}
-
-int uni_is_space(int ch)
-{
- int c = UNI_TYPE(ch);
- return (c==UNI_SPACE_SEPARATOR || c==UNI_LINE_SEPARATOR
- || c==UNI_PARAGRAPH_SEPARATOR || (ch>= 0x09 && ch <= 0x0d));
-}
-
-int uni_to_lower(int ch)
-{
- int c = UNI_CODE(ch);
- if (UNI_CODE_TO_TYPE(c) == UNI_LOWERCASE_LETTER)
- return ch;
- ch -= (c>>18) & 0x1ff;
- return ch;
-}
-
-int uni_to_upper(int ch)
-{
- int c = UNI_CODE(ch);
- if (UNI_CODE_TO_TYPE(c) == UNI_UPPERCASE_LETTER)
- return ch;
- ch += (c>>18) & 0x1ff;
- return ch;
-}
-
-int uni_to_title(int ch)
-{
- int c = UNI_CODE(ch);
- if (UNI_CODE_TO_TYPE(c) == UNI_TITLECASE_LETTER)
- return ch;
- ch += (c>>18) & 0x1ff;
- return ch;
-}
-
-int uni_block(int ch)
-{
- int ret = 0;
- for (UcdBlockData *entry = ucd_blocks; entry->name ; entry++, ret++) {
- if ((ch >= entry->low) && (ch <= entry->high)) {
- return ret;
- }
- }
- return UCD_BLOCK_NO_BLOCK;
-}
-
-UcdBlockData *uni_block_data(int blockNr)
-{
- if (blockNr >= 0 && blockNr < UCD_BLOCK_NO_BLOCK)
- return &(ucd_blocks[blockNr]);
- else
- return (UcdBlockData *)0;
-}
-
-
-
-
-
diff --git a/src/dom/ucd.h b/src/dom/ucd.h
deleted file mode 100644
index 112c45f20..000000000
--- a/src/dom/ucd.h
+++ /dev/null
@@ -1,335 +0,0 @@
-/**
- * @file
- * Phoebe DOM Implementation.
- *
- * This is a C++ approximation of the W3C DOM model, which follows
- * fairly closely the specifications in the various .idl files, copies of
- * which are provided for reference. Most important is this one:
- *
- * http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/idl-definitions.html
- *
- * More thorough explanations of the various classes and their algorithms
- * can be found there.
- *
- */
-/*
- * Authors:
- * Bob Jamison
- *
- * Copyright (C) 2006-2008 Bob Jamison
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- *
- */
-#ifndef SEEN_UCD_H
-#define SEEN_UCD_H
-
-
-/* ***********************************************
-** Unicode character classification
-************************************************/
-
-
-/**
- * Enumerated Unicode general category types
- */
-typedef enum UniCharType
-{
- UNI_UNASSIGNED = 0, /* Cn */
- UNI_UPPERCASE_LETTER = 1, /* Lu */
- UNI_LOWERCASE_LETTER = 2, /* Ll */
- UNI_TITLECASE_LETTER = 3, /* Lt */
- UNI_MODIFIER_LETTER = 4, /* Lm */
- UNI_OTHER_LETTER = 5, /* Lo */
- UNI_NON_SPACING_MARK = 6, /* Mn */
- UNI_ENCLOSING_MARK = 7, /* Me */
- UNI_COMBINING_SPACING_MARK = 8, /* Mc */
- UNI_DECIMAL_DIGIT_NUMBER = 9, /* Nd */
- UNI_LETTER_NUMBER = 10, /* Nl */
- UNI_OTHER_NUMBER = 11, /* No */
- UNI_SPACE_SEPARATOR = 12, /* Zs */
- UNI_LINE_SEPARATOR = 13, /* Zl */
- UNI_PARAGRAPH_SEPARATOR = 14, /* Zp */
- UNI_CONTROL = 15, /* Cc */
- UNI_FORMAT = 16, /* Cf */
- UNI_UNUSED_RESERVE = 17, /* xx */
- UNI_PRIVATE_USE = 18, /* Co */
- UNI_SURROGATE = 19, /* Cs */
- UNI_DASH_PUNCTUATION = 20, /* Pd */
- UNI_START_PUNCTUATION = 21, /* Ps */
- UNI_END_PUNCTUATION = 22, /* Pe */
- UNI_CONNECTOR_PUNCTUATION = 23, /* Pc */
- UNI_OTHER_PUNCTUATION = 24, /* Po */
- UNI_MATH_SYMBOL = 25, /* Sm */
- UNI_CURRENCY_SYMBOL = 26, /* Sc */
- UNI_MODIFIER_SYMBOL = 27, /* Sk */
- UNI_OTHER_SYMBOL = 28, /* So */
- UNI_INITIAL_QUOTE_PUNCTUATION = 29, /* Pi */
- UNI_FINAL_QUOTE_PUNCTUATION = 30 /* Pf */
-} UnicodeCharType;
-
-
-/**
- * Get the raw table entry for this Unicode codepoint
- * @param ch the Unicode codepoint to test
- * @return the raw UCD property table entry
- */
-unsigned int uni_code(int ch);
-
-
-/**
- * Get the Unicode General Category of ths character
- * @param ch the Unicode codepoint to test
- * @return the 'UniCharType' General Category enumeration (above)
- */
-unsigned int uni_type(int ch);
-
-
-/**
- * Test if this Unicode code point is lower case
- * @param ch the Unicode codepoint to test
- * @return 1 if successful, else 0
- */
-int uni_is_lower(int ch);
-
-
-/**
- * Test if this Unicode code point is upper case
- * @param ch the Unicode codepoint to test
- * @return 1 if successful, else 0
- */
-int uni_is_upper(int ch);
-
-
-/**
- * Test if this Unicode code point is title case
- * @param ch the Unicode codepoint to test
- * @return 1 if successful, else 0
- */
-int uni_is_title(int ch);
-
-
-/**
- * Test if this Unicode code point is a numeric digit
- * @param ch the Unicode codepoint to test
- * @return 1 if successful, else 0
- */
-int uni_is_digit(int ch);
-
-
-/**
- * Test if this Unicode code point is defined in the database
- * @param ch the Unicode codepoint to test
- * @return 1 if successful, else 0
- */
-int uni_is_defined(int ch);
-
-/**
- * Test if this Unicode code point is a letter
- * @param ch the Unicode codepoint to test
- * @return 1 if successful, else 0
- */
-int uni_is_letter(int ch);
-
-
-/**
- * Test if this Unicode code point is a letter or a digit
- * @param ch the Unicode codepoint to test
- * @return 1 if successful, else 0
- */
-int uni_is_letter_or_digit(int ch);
-
-/**
- * Test if this Unicode code point is considered to be a space
- * @param ch the Unicode codepoint to test
- * @return 1 if successful, else 0
- */
-int uni_is_space(int ch);
-
-
-/************************************************
-** Unicode case conversion
-************************************************/
-
-/**
- * Convert the given codepoint to its lower case mapping.
- * If there is none, return the codepoint.
- * @param ch the Unicode codepoint to convert
- * @return the converted codepoint
- */
-int uni_to_lower(int ch);
-
-/**
- * Convert the given codepoint to its upper case mapping.
- * If there is none, return the codepoint.
- * @param ch the Unicode codepoint to convert
- * @return the converted codepoint
- */
-int uni_to_upper(int ch);
-
-/**
- * Convert the given codepoint to its title case mapping.
- * If there is none, return the codepoint.
- * @param ch the Unicode codepoint to convert
- * @return the converted codepoint
- */
-int uni_to_title(int ch);
-
-
-/* ***********************************************
-** Unicode blocks
-************************************************/
-
-
-
-/**
- * Used to hold the information for a Unicode codepoint
- * block
- */
-typedef struct
-{
- /**
- * Low end of the block range
- */
- unsigned long low;
- /**
- * High end of the block range
- */
- unsigned long high;
- /**
- * Name string for the block
- */
- const char *name;
-} UcdBlockData;
-
-
-/**
- * Return the Unicode block (defined below) for the given
- * codepoint. If not found, return UCD_BLOCK_NO_BLOCK.
- * @param ch the Unicode codepoint to search
- * @return the block
- */
-int uni_block(int ch);
-
-
-/**
- * Return the Unicode block data for the enumerated block number.
- * @param nr the Unicode block number
- * @return the block data if found, else NULL
- */
-UcdBlockData *uni_block_data(int blockNr);
-
-
-
-
-/**
- * The Unicode codepoint blocks as defined in Blocks.txt.
- * Block list has 171 entries
- */
-typedef enum
-{
- /* 0, 000000 - 00007f */ UCD_BLOCK_BASIC_LATIN,
- /* 2, 000100 - 00017f */ UCD_BLOCK_LATIN_EXTENDED_A,
- /* 4, 000250 - 0002af */ UCD_BLOCK_IPA_EXTENSIONS,
- /* 6, 000300 - 00036f */ UCD_BLOCK_COMBINING_DIACRITICAL_MARKS,
- /* 8, 000400 - 0004ff */ UCD_BLOCK_CYRILLIC,
- /* 10, 000530 - 00058f */ UCD_BLOCK_ARMENIAN,
- /* 12, 000600 - 0006ff */ UCD_BLOCK_ARABIC,
- /* 14, 000750 - 00077f */ UCD_BLOCK_ARABIC_SUPPLEMENT,
- /* 16, 0007c0 - 0007ff */ UCD_BLOCK_NKO,
- /* 18, 000980 - 0009ff */ UCD_BLOCK_BENGALI,
- /* 20, 000a80 - 000aff */ UCD_BLOCK_GUJARATI,
- /* 22, 000b80 - 000bff */ UCD_BLOCK_TAMIL,
- /* 24, 000c80 - 000cff */ UCD_BLOCK_KANNADA,
- /* 26, 000d80 - 000dff */ UCD_BLOCK_SINHALA,
- /* 28, 000e80 - 000eff */ UCD_BLOCK_LAO,
- /* 30, 001000 - 00109f */ UCD_BLOCK_MYANMAR,
- /* 32, 001100 - 0011ff */ UCD_BLOCK_HANGUL_JAMO,
- /* 34, 001380 - 00139f */ UCD_BLOCK_ETHIOPIC_SUPPLEMENT,
- /* 36, 001400 - 00167f */ UCD_BLOCK_UNIFIED_CANADIAN_ABORIGINAL_SYLLABICS,
- /* 38, 0016a0 - 0016ff */ UCD_BLOCK_RUNIC,
- /* 40, 001720 - 00173f */ UCD_BLOCK_HANUNOO,
- /* 42, 001760 - 00177f */ UCD_BLOCK_TAGBANWA,
- /* 44, 001800 - 0018af */ UCD_BLOCK_MONGOLIAN,
- /* 46, 001950 - 00197f */ UCD_BLOCK_TAI_LE,
- /* 48, 0019e0 - 0019ff */ UCD_BLOCK_KHMER_SYMBOLS,
- /* 50, 001b00 - 001b7f */ UCD_BLOCK_BALINESE,
- /* 52, 001c00 - 001c4f */ UCD_BLOCK_LEPCHA,
- /* 54, 001d00 - 001d7f */ UCD_BLOCK_PHONETIC_EXTENSIONS,
- /* 56, 001dc0 - 001dff */ UCD_BLOCK_COMBINING_DIACRITICAL_MARKS_SUPPLEMENT,
- /* 58, 001f00 - 001fff */ UCD_BLOCK_GREEK_EXTENDED,
- /* 60, 002070 - 00209f */ UCD_BLOCK_SUPERSCRIPTS_AND_SUBSCRIPTS,
- /* 62, 0020d0 - 0020ff */ UCD_BLOCK_COMBINING_DIACRITICAL_MARKS_FOR_SYMBOLS,
- /* 64, 002150 - 00218f */ UCD_BLOCK_NUMBER_FORMS,
- /* 66, 002200 - 0022ff */ UCD_BLOCK_MATHEMATICAL_OPERATORS,
- /* 68, 002400 - 00243f */ UCD_BLOCK_CONTROL_PICTURES,
- /* 70, 002460 - 0024ff */ UCD_BLOCK_ENCLOSED_ALPHANUMERICS,
- /* 72, 002580 - 00259f */ UCD_BLOCK_BLOCK_ELEMENTS,
- /* 74, 002600 - 0026ff */ UCD_BLOCK_MISCELLANEOUS_SYMBOLS,
- /* 76, 0027c0 - 0027ef */ UCD_BLOCK_MISCELLANEOUS_MATHEMATICAL_SYMBOLS_A,
- /* 78, 002800 - 0028ff */ UCD_BLOCK_BRAILLE_PATTERNS,
- /* 80, 002980 - 0029ff */ UCD_BLOCK_MISCELLANEOUS_MATHEMATICAL_SYMBOLS_B,
- /* 82, 002b00 - 002bff */ UCD_BLOCK_MISCELLANEOUS_SYMBOLS_AND_ARROWS,
- /* 84, 002c60 - 002c7f */ UCD_BLOCK_LATIN_EXTENDED_C,
- /* 86, 002d00 - 002d2f */ UCD_BLOCK_GEORGIAN_SUPPLEMENT,
- /* 88, 002d80 - 002ddf */ UCD_BLOCK_ETHIOPIC_EXTENDED,
- /* 90, 002e00 - 002e7f */ UCD_BLOCK_SUPPLEMENTAL_PUNCTUATION,
- /* 92, 002f00 - 002fdf */ UCD_BLOCK_KANGXI_RADICALS,
- /* 94, 003000 - 00303f */ UCD_BLOCK_CJK_SYMBOLS_AND_PUNCTUATION,
- /* 96, 0030a0 - 0030ff */ UCD_BLOCK_KATAKANA,
- /* 98, 003130 - 00318f */ UCD_BLOCK_HANGUL_COMPATIBILITY_JAMO,
- /* 100, 0031a0 - 0031bf */ UCD_BLOCK_BOPOMOFO_EXTENDED,
- /* 102, 0031f0 - 0031ff */ UCD_BLOCK_KATAKANA_PHONETIC_EXTENSIONS,
- /* 104, 003300 - 0033ff */ UCD_BLOCK_CJK_COMPATIBILITY,
- /* 106, 004dc0 - 004dff */ UCD_BLOCK_YIJING_HEXAGRAM_SYMBOLS,
- /* 108, 00a000 - 00a48f */ UCD_BLOCK_YI_SYLLABLES,
- /* 110, 00a500 - 00a63f */ UCD_BLOCK_VAI,
- /* 112, 00a700 - 00a71f */ UCD_BLOCK_MODIFIER_TONE_LETTERS,
- /* 114, 00a800 - 00a82f */ UCD_BLOCK_SYLOTI_NAGRI,
- /* 116, 00a880 - 00a8df */ UCD_BLOCK_SAURASHTRA,
- /* 118, 00a930 - 00a95f */ UCD_BLOCK_REJANG,
- /* 120, 00ac00 - 00d7af */ UCD_BLOCK_HANGUL_SYLLABLES,
- /* 122, 00db80 - 00dbff */ UCD_BLOCK_HIGH_PRIVATE_USE_SURROGATES,
- /* 124, 00e000 - 00f8ff */ UCD_BLOCK_PRIVATE_USE_AREA,
- /* 126, 00fb00 - 00fb4f */ UCD_BLOCK_ALPHABETIC_PRESENTATION_FORMS,
- /* 128, 00fe00 - 00fe0f */ UCD_BLOCK_VARIATION_SELECTORS,
- /* 130, 00fe20 - 00fe2f */ UCD_BLOCK_COMBINING_HALF_MARKS,
- /* 132, 00fe50 - 00fe6f */ UCD_BLOCK_SMALL_FORM_VARIANTS,
- /* 134, 00ff00 - 00ffef */ UCD_BLOCK_HALFWIDTH_AND_FULLWIDTH_FORMS,
- /* 136, 010000 - 01007f */ UCD_BLOCK_LINEAR_B_SYLLABARY,
- /* 138, 010100 - 01013f */ UCD_BLOCK_AEGEAN_NUMBERS,
- /* 140, 010190 - 0101cf */ UCD_BLOCK_ANCIENT_SYMBOLS,
- /* 142, 010280 - 01029f */ UCD_BLOCK_LYCIAN,
- /* 144, 010300 - 01032f */ UCD_BLOCK_OLD_ITALIC,
- /* 146, 010380 - 01039f */ UCD_BLOCK_UGARITIC,
- /* 148, 010400 - 01044f */ UCD_BLOCK_DESERET,
- /* 150, 010480 - 0104af */ UCD_BLOCK_OSMANYA,
- /* 152, 010900 - 01091f */ UCD_BLOCK_PHOENICIAN,
- /* 154, 010a00 - 010a5f */ UCD_BLOCK_KHAROSHTHI,
- /* 156, 012400 - 01247f */ UCD_BLOCK_CUNEIFORM_NUMBERS_AND_PUNCTUATION,
- /* 158, 01d100 - 01d1ff */ UCD_BLOCK_MUSICAL_SYMBOLS,
- /* 160, 01d300 - 01d35f */ UCD_BLOCK_TAI_XUAN_JING_SYMBOLS,
- /* 162, 01d400 - 01d7ff */ UCD_BLOCK_MATHEMATICAL_ALPHANUMERIC_SYMBOLS,
- /* 164, 01f030 - 01f09f */ UCD_BLOCK_DOMINO_TILES,
- /* 166, 02f800 - 02fa1f */ UCD_BLOCK_CJK_COMPATIBILITY_IDEOGRAPHS_SUPPLEMENT,
- /* 168, 0e0100 - 0e01ef */ UCD_BLOCK_VARIATION_SELECTORS_SUPPLEMENT,
- /* 170, 100000 - 10ffff */ UCD_BLOCK_SUPPLEMENTARY_PRIVATE_USE_AREA_B,
- /* 171, 000000 - 10ffff */ UCD_BLOCK_NO_BLOCK
-} UnicodeBlocks;
-
-
-#endif // SEEN_UCD_H
-
-
diff --git a/src/dom/uri.cpp b/src/dom/uri.cpp
deleted file mode 100644
index 231995daf..000000000
--- a/src/dom/uri.cpp
+++ /dev/null
@@ -1,961 +0,0 @@
-/*
- * Phoebe DOM Implementation.
- *
- * This is a C++ approximation of the W3C DOM model, which follows
- * fairly closely the specifications in the various .idl files, copies of
- * which are provided for reference. Most important is this one:
- *
- * http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/idl-definitions.html
- *
- * Authors:
- * Bob Jamison
- *
- * Copyright (C) 2005-2008 Bob Jamison
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#include "uri.h"
-#include "ucd.h"
-
-#include <cstdarg>
-#include <cstdio>
-#include <cstdlib>
-#include <vector>
-
-namespace org
-{
-namespace w3c
-{
-namespace dom
-{
-
-
-typedef struct
-{
- int ival;
- char const *sval;
- int port;
-} LookupEntry;
-
-static LookupEntry schemes[] =
-{
- { URI::SCHEME_DATA, "data:", 0 },
- { URI::SCHEME_HTTP, "http:", 80 },
- { URI::SCHEME_HTTPS, "https:", 443 },
- { URI::SCHEME_FTP, "ftp", 12 },
- { URI::SCHEME_FILE, "file:", 0 },
- { URI::SCHEME_LDAP, "ldap:", 123 },
- { URI::SCHEME_MAILTO, "mailto:", 25 },
- { URI::SCHEME_NEWS, "news:", 117 },
- { URI::SCHEME_TELNET, "telnet:", 23 },
- { 0, NULL, 0 }
-};
-
-
-
-//#########################################################################
-//# C O N S T R U C T O R
-//#########################################################################
-
-/**
- *
- */
-URI::URI()
-{
- init();
-}
-
-/**
- *
- */
-URI::URI(const DOMString &str)
-{
- init();
- parse(str);
-}
-
-
-/**
- *
- */
-URI::URI(const char *str)
-{
- init();
- DOMString domStr = str;
- parse(domStr);
-}
-
-
-/**
- *
- */
-URI::URI(const URI &other)
-{
- init();
- assign(other);
-}
-
-
-/**
- *
- */
-URI &URI::operator=(const URI &other)
-{
- init();
- assign(other);
- return *this;
-}
-
-
-/**
- *
- */
-URI::~URI()
-{
-}
-
-
-
-
-
-/**
- *
- */
-void URI::init()
-{
- parsebuf = NULL;
- parselen = 0;
- scheme = SCHEME_NONE;
- schemeStr.clear();
- port = 0;
- portSpecified = false;
- authority.clear();
- path.clear();
- absolute = false;
- opaque = false;
- query.clear();
- fragment.clear();
-}
-
-
-/**
- *
- */
-void URI::assign(const URI &other)
-{
- scheme = other.scheme;
- schemeStr = other.schemeStr;
- authority = other.authority;
- port = other.port;
- path = other.path;
- absolute = other.absolute;
- opaque = other.opaque;
- query = other.query;
- fragment = other.fragment;
-}
-
-
-//#########################################################################
-//#A T T R I B U T E S
-//#########################################################################
-static const char *hexChars = "0123456789abcdef";
-
-static DOMString toStr(const std::vector<int> &arr)
-{
- DOMString buf;
- std::vector<int>::const_iterator iter;
- for (iter=arr.begin() ; iter!=arr.end() ; ++iter)
- {
- int ch = *iter;
- if (isprint(ch))
- buf.push_back((XMLCh)ch);
- else
- {
- buf.push_back('%');
- int hi = ((ch>>4) & 0xf);
- buf.push_back(hexChars[hi]);
- int lo = ((ch ) & 0xf);
- buf.push_back(hexChars[lo]);
- }
- }
- return buf;
-}
-
-
-DOMString URI::toString() const
-{
- DOMString str = schemeStr;
- if (!authority.empty())
- {
- str.append("//");
- str.append(toStr(authority));
- }
- str.append(toStr(path));
- if (!query.empty())
- {
- str.append("?");
- str.append(toStr(query));
- }
- if (!fragment.empty())
- {
- str.append("#");
- str.append(toStr(fragment));
- }
- return str;
-}
-
-
-int URI::getScheme() const
-{
- return scheme;
-}
-
-DOMString URI::getSchemeStr() const
-{
- return schemeStr;
-}
-
-
-DOMString URI::getAuthority() const
-{
- DOMString ret = toStr(authority);
- if (portSpecified && port>=0)
- {
- char buf[7];
- snprintf(buf, 6, ":%6d", port);
- ret.append(buf);
- }
- return ret;
-}
-
-DOMString URI::getHost() const
-{
- DOMString str = toStr(authority);
- return str;
-}
-
-int URI::getPort() const
-{
- return port;
-}
-
-
-DOMString URI::getPath() const
-{
- DOMString str = toStr(path);
- return str;
-}
-
-DOMString URI::getNativePath() const
-{
- DOMString pathStr = toStr(path);
- DOMString npath;
-#ifdef __WIN32__
- unsigned int firstChar = 0;
- if (pathStr.size() >= 3)
- {
- if (pathStr[0] == '/' &&
- uni_is_letter(pathStr[1]) &&
- pathStr[2] == ':')
- firstChar++;
- }
- for (unsigned int i=firstChar ; i<pathStr.size() ; i++)
- {
- XMLCh ch = (XMLCh) pathStr[i];
- if (ch == '/')
- npath.push_back((XMLCh)'\\');
- else
- npath.push_back(ch);
- }
-#else
- npath = pathStr;
-#endif
- return npath;
-}
-
-
-bool URI::isAbsolute() const
-{
- return absolute;
-}
-
-bool URI::isOpaque() const
-{
- return opaque;
-}
-
-
-DOMString URI::getQuery() const
-{
- DOMString str = toStr(query);
- return str;
-}
-
-
-DOMString URI::getFragment() const
-{
- DOMString str = toStr(fragment);
- return str;
-}
-
-
-
-
-static int find(const std::vector<int> &str, int ch, int startpos)
-{
- for (unsigned int i = startpos ; i < str.size() ; i++)
- {
- if (ch == str[i])
- return i;
- }
- return -1;
-}
-
-
-static int findLast(const std::vector<int> &str, int ch)
-{
- /**
- * Fixed. Originally I used an unsigned int for str.size(),
- * which was dumb, since i>=0 would always be true.
- */
- for (int i = ((int)str.size())-1 ; i>=0 ; i--)
- {
- if (ch == str[i])
- return i;
- }
- return -1;
-}
-
-
-static bool sequ(const std::vector<int> &str, const char *key)
-{
- char *c = (char *)key;
- for (unsigned int i=0 ; i<str.size() ; i++)
- {
- if (! (*c))
- return false;
- if (*c != str[i])
- return false;
- }
- return true;
-}
-
-
-static std::vector<int> substr(const std::vector<int> &str,
- int startpos, int len)
-{
- std::vector<int> buf;
- unsigned int pos = startpos;
- for (int i=0 ; i<len ; i++)
- {
- if (pos >= str.size())
- break;
- buf.push_back(str[pos++]);
- }
- return buf;
-}
-
-
-URI URI::resolve(const URI &other) const
-{
- //### According to w3c, this is handled in 3 cases
-
- //## 1
- if (opaque || other.isAbsolute())
- return other;
-
- //## 2
- if (!other.fragment.empty() &&
- other.path.empty() &&
- other.scheme == SCHEME_NONE &&
- other.authority.empty() &&
- other.query.empty())
- {
- URI fragUri = *this;
- fragUri.fragment = other.fragment;
- return fragUri;
- }
-
- //## 3 http://www.ietf.org/rfc/rfc2396.txt, section 5.2
- URI newUri;
- //# 3.1
- newUri.scheme = scheme;
- newUri.schemeStr = schemeStr;
- newUri.query = other.query;
- newUri.fragment = other.fragment;
- if (!other.authority.empty())
- {
- //# 3.2
- if (absolute || other.absolute)
- newUri.absolute = true;
- newUri.authority = other.authority;
- newUri.port = other.port;//part of authority
- newUri.path = other.path;
- }
- else
- {
- //# 3.3
- if (other.absolute)
- {
- newUri.absolute = true;
- newUri.path = other.path;
- }
- else
- {
- int pos = findLast(path, '/');
- if (pos >= 0)
- {
- newUri.path.clear();
- //# append my path up to and including the '/'
- for (int i = 0; i<=pos ; i++)
- newUri.path.push_back(path[i]);
- //# append other path
- for (unsigned int i = 0; i<other.path.size() ; i++)
- newUri.path.push_back(other.path[i]);
- }
- else
- newUri.path = other.path;
- }
- }
-
- newUri.normalize();
-
- return newUri;
-}
-
-
-/**
- * This follows the Java URI algorithm:
- * 1. All "." segments are removed.
- * 2. If a ".." segment is preceded by a non-".." segment
- * then both of these segments are removed. This step
- * is repeated until it is no longer applicable.
- * 3. If the path is relative, and if its first segment
- * contains a colon character (':'), then a "." segment
- * is prepended. This prevents a relative URI with a path
- * such as "a:b/c/d" from later being re-parsed as an
- * opaque URI with a scheme of "a" and a scheme-specific
- * part of "b/c/d". (Deviation from RFC 2396)
- */
-void URI::normalize()
-{
- std::vector< std::vector<int> > segments;
-
- //## Collect segments
- if (path.size()<2)
- return;
- bool abs = false;
- int pos=0;
- int len = (int) path.size();
-
- if (path[0]=='/')
- {
- abs = true;
- pos++;
- }
-
- while (pos < len)
- {
- int pos2 = find(path, '/', pos);
- if (pos2 < 0)
- {
- std::vector<int> seg = substr(path, pos, path.size()-pos);
- //printf("last segment:%s\n", toStr(seg).c_str());
- segments.push_back(seg);
- break;
- }
- if (pos2>pos)
- {
- std::vector<int> seg = substr(path, pos, pos2-pos);
- //printf("segment:%s\n", toStr(seg).c_str());
- segments.push_back(seg);
- }
- pos = pos2;
- pos++;
- }
-
- //## Clean up (normalize) segments
- bool edited = false;
- std::vector< std::vector<int> >::iterator iter;
- for (iter=segments.begin() ; iter!=segments.end() ; )
- {
- std::vector<int> s = *iter;
- if (sequ(s,"."))
- {
- iter = segments.erase(iter);
- edited = true;
- }
- else if (sequ(s, "..") && iter != segments.begin() &&
- !sequ(*(iter-1), ".."))
- {
- --iter; //back up, then erase two entries
- iter = segments.erase(iter);
- iter = segments.erase(iter);
- edited = true;
- }
- else
- ++iter;
- }
-
- //## Rebuild path, if necessary
- if (edited)
- {
- path.clear();
- if (abs)
- {
- path.push_back('/');
- }
- std::vector< std::vector<int> >::iterator iter;
- for (iter=segments.begin() ; iter!=segments.end() ; ++iter)
- {
- if (iter != segments.begin())
- path.push_back('/');
- std::vector<int> seg = *iter;
- for (unsigned int i = 0; i<seg.size() ; i++)
- path.push_back(seg[i]);
- }
- }
-
-}
-
-
-
-//#########################################################################
-//# M E S S A G E S
-//#########################################################################
-
-void URI::error(const char *fmt, ...)
-{
- va_list args;
- fprintf(stderr, "URI error: ");
- va_start(args, fmt);
- vfprintf(stderr, fmt, args);
- va_end(args);
- fprintf(stderr, "\n");
-}
-
-void URI::trace(const char *fmt, ...)
-{
- va_list args;
- fprintf(stdout, "URI: ");
- va_start(args, fmt);
- vfprintf(stdout, fmt, args);
- va_end(args);
- fprintf(stdout, "\n");
-}
-
-
-
-//#########################################################################
-//# P A R S I N G
-//#########################################################################
-
-
-
-int URI::peek(int p)
-{
- if (p<0 || p>=parselen)
- return -1;
- return parsebuf[p];
-}
-
-
-
-int URI::match(int p0, char const *key)
-{
- int p = p0;
- while (p < parselen)
- {
- if (*key == '\0')
- return p;
- else if (*key != parsebuf[p])
- break;
- p++; key++;
- }
- return p0;
-}
-
-//#########################################################################
-//# Parsing is performed according to:
-//# http://www.gbiv.com/protocols/uri/rfc/rfc3986.html#components
-//#########################################################################
-
-int URI::parseHex(int p0, int &result)
-{
- int p = p0;
- int val = 0;
-
- //# Upper 4
- int ch = peek(p);
- if (ch >= '0' && ch <= '9')
- val += (ch - '0');
- else if (ch >= 'a' && ch <= 'f')
- val += (10 + ch - 'a');
- else if (ch >= 'A' && ch <= 'F')
- val += (10 + ch - 'A');
- else
- {
- error("parseHex : unexpected character : %c", ch);
- return -1;
- }
- p++;
- val <<= 4;
-
- //# Lower 4
- ch = peek(p);
- if (ch >= '0' && ch <= '9')
- val += (ch - '0');
- else if (ch >= 'a' && ch <= 'f')
- val += (10 + ch - 'a');
- else if (ch >= 'A' && ch <= 'F')
- val += (10 + ch - 'A');
- else
- {
- error("parseHex : unexpected character : %c", ch);
- return -1;
- }
- p++;
- result = val;
- return p;
-}
-
-
-
-int URI::parseEntity(int p0, int &result)
-{
- int p = p0;
- int ch = peek(p);
- if (ch != '&')
- return p0;
- p++;
- if (!match(p, "#x"))
- {
- error("parseEntity: expected '#x'");
- return -1;
- }
- p += 2;
- int val;
- p = parseHex(p, val);
- if (p<0)
- return -1;
- ch = peek(p);
- if (ch != ';')
- {
- error("parseEntity: expected ';'");
- return -1;
- }
- p++;
- result = val;
- return p;
-}
-
-int URI::parseAsciiEntity(int p0, int &result)
-{
- int p = p0;
- int ch = peek(p);
- if (ch != '%')
- return p0;
- p++;
- int val;
- p = parseHex(p, val);
- if (p<0)
- return -1;
- result = val;
- return p;
-}
-
-
-int URI::parseScheme(int p0)
-{
- int p = p0;
- for (LookupEntry *entry = schemes; entry->sval ; entry++)
- {
- int p2 = match(p, entry->sval);
- if (p2 > p)
- {
- schemeStr = entry->sval;
- scheme = entry->ival;
- port = entry->port;
- p = p2;
- return p;
- }
- }
-
- return p;
-}
-
-
-int URI::parseHierarchicalPart(int p0)
-{
- int p = p0;
- int ch;
-
- //# Authority field (host and port, for example)
- int p2 = match(p, "//");
- if (p2 > p)
- {
- p = p2;
- portSpecified = false;
- DOMString portStr;
- while (p < parselen)
- {
- ch = peek(p);
- if (ch == '/')
- break;
- else if (ch == '&') //IRI entity
- {
- int val;
- p2 = parseEntity(p, val);
- if (p2<p)
- {
- return -1;
- }
- p = p2;
- authority.push_back((XMLCh)val);
- }
- else if (ch == '%') //ascii hex excape
- {
- int val;
- p2 = parseAsciiEntity(p, val);
- if (p2<p)
- {
- return -1;
- }
- p = p2;
- authority.push_back((XMLCh)val);
- }
- else if (ch == ':')
- {
- portSpecified = true;
- p++;
- }
- else if (portSpecified)
- {
- portStr.push_back((XMLCh)ch);
- p++;
- }
- else
- {
- authority.push_back((XMLCh)ch);
- p++;
- }
- }
- if (portStr.size() > 0)
- {
- char *pstr = (char *)portStr.c_str();
- char *endStr;
- long val = strtol(pstr, &endStr, 10);
- if (endStr > pstr) //successful parse?
- port = val;
- }
- }
-
- //# Are we absolute?
- ch = peek(p);
- if (uni_is_letter(ch) && peek(p+1)==':')
- {
- absolute = true;
- path.push_back((XMLCh)'/');
- }
- else if (ch == '/')
- {
- absolute = true;
- if (p>p0) //in other words, if '/' is not the first char
- opaque = true;
- path.push_back((XMLCh)ch);
- p++;
- }
-
- while (p < parselen)
- {
- ch = peek(p);
- if (ch == '?' || ch == '#')
- break;
- else if (ch == '&') //IRI entity
- {
- int val;
- p2 = parseEntity(p, val);
- if (p2<p)
- {
- return -1;
- }
- p = p2;
- path.push_back((XMLCh)val);
- }
- else if (ch == '%') //ascii hex excape
- {
- int val;
- p2 = parseAsciiEntity(p, val);
- if (p2<p)
- {
- return -1;
- }
- p = p2;
- path.push_back((XMLCh)val);
- }
- else
- {
- path.push_back((XMLCh)ch);
- p++;
- }
- }
- //trace("path:%s", toStr(path).c_str());
- return p;
-}
-
-int URI::parseQuery(int p0)
-{
- int p = p0;
- int ch = peek(p);
- if (ch != '?')
- return p0;
-
- p++;
- while (p < parselen)
- {
- ch = peek(p);
- if (ch == '#')
- break;
- query.push_back((XMLCh)ch);
- p++;
- }
-
-
- return p;
-}
-
-int URI::parseFragment(int p0)
-{
-
- int p = p0;
- int ch = peek(p);
- if (ch != '#')
- return p0;
-
- p++;
- while (p < parselen)
- {
- ch = peek(p);
- if (ch == '?')
- break;
- fragment.push_back(ch);
- p++;
- }
-
-
- return p;
-}
-
-
-int URI::parse(int p0)
-{
-
- int p = p0;
-
- int p2 = parseScheme(p);
- if (p2 < 0)
- {
- error("Scheme");
- return -1;
- }
- p = p2;
-
-
- p2 = parseHierarchicalPart(p);
- if (p2 < 0)
- {
- error("Hierarchical part");
- return -1;
- }
- p = p2;
-
- p2 = parseQuery(p);
- if (p2 < 0)
- {
- error("Query");
- return -1;
- }
- p = p2;
-
-
- p2 = parseFragment(p);
- if (p2 < 0)
- {
- error("Fragment");
- return -1;
- }
- p = p2;
-
- return p;
-
-}
-
-
-
-bool URI::parse(const DOMString &str)
-{
-
- parselen = str.size();
- parsebuf = new int[str.size()];
- if (!parsebuf)
- {
- error("parse : could not allocate parsebuf");
- return false;
- }
-
- DOMString::const_iterator iter;
- unsigned int i=0;
- for (iter= str.begin() ; iter!=str.end() ; ++iter)
- {
- int ch = *iter;
- if (ch == '\\')
- parsebuf[i++] = '/';
- else
- parsebuf[i++] = ch;
- }
-
-
- int p = parse(0);
- normalize();
-
- delete[] parsebuf;
-
- if (p < 0)
- {
- error("Syntax error");
- return false;
- }
-
- //printf("uri:%s\n", toString().c_str());
- //printf("parse:%s\n", toStr(path).c_str());
-
- return true;
-
-}
-
-
-
-
-
-} //namespace dom
-} //namespace w3c
-} //namespace org
-//#########################################################################
-//# E N D O F F I L E
-//#########################################################################
-
-
-
diff --git a/src/dom/uri.h b/src/dom/uri.h
deleted file mode 100644
index 4d3c384c9..000000000
--- a/src/dom/uri.h
+++ /dev/null
@@ -1,488 +0,0 @@
-#ifndef SEEN_URI_H
-#define SEEN_URI_H
-
-/**
- * @file
- * Phoebe DOM Implementation.
- *
- * This is a C++ approximation of the W3C DOM model, which follows
- * fairly closely the specifications in the various .idl files, copies of
- * which are provided for reference. Most important is this one:
- *
- * http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/idl-definitions.html
- */
-/*
- * Authors:
- * Bob Jamison
- *
- * Copyright (C) 2005-2008 Bob Jamison
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- *
- * =======================================================================
- * NOTES
- *
- * Some definitions are taken from the URI RFC:
- * http://www.ietf.org/rfc/rfc2396.txt
- */
-
-#include "dom.h"
-
-
-namespace org
-{
-namespace w3c
-{
-namespace dom
-{
-
-
-/**
- * A class that implements the W3C URI resource reference. Although this
- * API attempts to process URIs as closely as possible to the needs of W3,
- * this model is not based on any official W3C spec.
- */
-class URI
-{
-public:
-
- /**
- * Code that indicates the scheme type.
- */
- typedef enum
- {
- SCHEME_NONE =0,
- SCHEME_DATA,
- SCHEME_HTTP,
- SCHEME_HTTPS,
- SCHEME_FTP,
- SCHEME_FILE,
- SCHEME_LDAP,
- SCHEME_MAILTO,
- SCHEME_NEWS,
- SCHEME_TELNET
- } SchemeTypes;
-
- /**
- * Simple constructor
- */
- URI();
-
- /**
- * Copy constructor
- */
- URI(const DOMString &str);
-
-
- /**
- * Parsing constructor
- */
- URI(const char *str);
-
- /**
- * Copy constructor
- */
- URI(const URI &other);
-
- /**
- * Assignment operator
- */
- URI &operator=(const URI &other);
-
- /**
- * Destructor
- */
- virtual ~URI();
-
- /**
- * Parse a string to initialize this URI.
- */
- virtual bool parse(const DOMString &str);
-
- /**
- * Produce a string displaying this URI's current value, in W3C format.
- */
- virtual DOMString toString() const;
-
- /**
- * Return the scheme (SchemeTypes above) of this URI as an enumeration
- */
- virtual int getScheme() const;
-
- /**
- * Return the scheme value as a string
- * From the RFC:
- * Just as there are many different methods of access to resources,
- * there are a variety of schemes for identifying such resources. The
- * URI syntax consists of a sequence of components separated by reserved
- * characters, with the first component defining the semantics for the
- * remainder of the URI string.
- *
- * Scheme names consist of a sequence of characters beginning with a
- * lower case letter and followed by any combination of lower case
- * letters, digits, plus ("+"), period ("."), or hyphen ("-"). For
- * resiliency, programs interpreting URI should treat upper case letters
- * as equivalent to lower case in scheme names (e.g., allow "HTTP" as
- * well as "http").
- *
- * scheme = alpha *( alpha | digit | "+" | "-" | "." )
- *
- * Relative URI references are distinguished from absolute URI in that
- * they do not begin with a scheme name. Instead, the scheme is
- * inherited from the base URI, as described in Section 5.2.
- *
- */
- virtual DOMString getSchemeStr() const;
-
- /**
- * From the RFC:
- * Many URI schemes include a top hierarchical element for a naming
- * authority, such that the namespace defined by the remainder of the
- * URI is governed by that authority. This authority component is
- * typically defined by an Internet-based server or a scheme-specific
- * registry of naming authorities.
- *
- * authority = server | reg_name
- *
- * The authority component is preceded by a double slash "//" and is
- * terminated by the next slash "/", question-mark "?", or by the end of
- * the URI. Within the authority component, the characters ";", ":",
- * "@", "?", and "/" are reserved.
- *
- * An authority component is not required for a URI scheme to make use
- * of relative references. A base URI without an authority component
- * implies that any relative reference will also be without an authority
- * component.
- */
- virtual DOMString getAuthority() const;
-
- /**
- * Same as getAuthority, but if the port has been specified
- * as host:port , the port will not be included
- */
- virtual DOMString getHost() const;
-
- /**
- * Return the port (TCPIP port for transport-type schemes)
- */
- virtual int getPort() const;
-
- /**
- * From the RFC:
- * The path component contains data, specific to the authority (or the
- * scheme if there is no authority component), identifying the resource
- * within the scope of that scheme and authority.
- *
- * path = [ abs_path | opaque_part ]
- *
- * path_segments = segment *( "/" segment )
- * segment = *pchar *( ";" param )
- * param = *pchar
- *
- * pchar = unreserved | escaped |
- * ":" | "@" | "&" | "=" | "+" | "$" | ","
- *
- * The path may consist of a sequence of path segments separated by a
- * single slash "/" character. Within a path segment, the characters
- * "/", ";", "=", and "?" are reserved. Each path segment may include a
- * sequence of parameters, indicated by the semicolon ";" character.
- * The parameters are not significant to the parsing of relative
- * references.
- */
- virtual DOMString getPath() const;
-
- /**
- * Converts the URI's internal canonical representation of the path to
- * what is meaningful on the architecture on which this method is called.
- */
- virtual DOMString getNativePath() const;
-
- /**
- * An absolute URI contains the name of the scheme being used (<scheme>)
- * followed by a colon (":") and then a string (the <scheme-specific-part>)
- * whose interpretation depends on the scheme.
- */
- virtual bool isAbsolute() const;
-
- /**
- * URI that do not make use of the slash "/" character for separating
- * hierarchical components are considered opaque
- */
- virtual bool isOpaque() const;
-
- /**
- * The part of the URI following a ? in the path.
- *
- * From the RFC:
- * The query component is a string of information to be interpreted by
- * the resource.
- *
- * query = *uric
- *
- * Within a query component, the characters ";", "/", "?", ":", "@",
- * "&", "=", "+", ",", and "$" are reserved.
- *
- */
- virtual DOMString getQuery() const;
-
- /**
- * From the RFC:
- * When a URI reference is used to perform a retrieval action on the
- * identified resource, the optional fragment identifier, separated from
- * the URI by a crosshatch ("#") character, consists of additional
- * reference information to be interpreted by the user agent after the
- * retrieval action has been successfully completed. As such, it is not
- * part of a URI, but is often used in conjunction with a URI.
- *
- * fragment = *uric
- *
- * The semantics of a fragment identifier is a property of the data
- * resulting from a retrieval action, regardless of the type of URI used
- * in the reference. Therefore, the format and interpretation of
- * fragment identifiers is dependent on the media type [RFC2046] of the
- * retrieval result. The character restrictions described in Section 2
- * for URI also apply to the fragment in a URI-reference. Individual
- * media types may define additional restrictions or structure within
- * the fragment for specifying different types of "partial views" that
- * can be identified within that media type.
- *
- * A fragment identifier is only meaningful when a URI reference is
- * intended for retrieval and the result of that retrieval is a document
- * for which the identified fragment is consistently defined.
- */
- virtual DOMString getFragment() const;
-
- /**
- * resolve()
- * This is by far the most useful feature of a URI. It defines a set
- * of rules for finding one resource relative to another, so that your
- * resource search is well-defined and much easier.
- *
- * From the RFC:
- *
- * The base URI is established according to the rules of Section 5.1 and
- * parsed into the four main components as described in Section 3. Note
- * that only the scheme component is required to be present in the base
- * URI; the other components may be empty or undefined. A component is
- * undefined if its preceding separator does not appear in the URI
- * reference; the path component is never undefined, though it may be
- * empty. The base URI's query component is not used by the resolution
- * algorithm and may be discarded.
- *
- * For each URI reference, the following steps are performed in order:
- *
- * 1) The URI reference is parsed into the potential four components and
- * fragment identifier, as described in Section 4.3.
- *
- * 2) If the path component is empty and the scheme, authority, and
- * query components are undefined, then it is a reference to the
- * current document and we are done. Otherwise, the reference URI's
- * query and fragment components are defined as found (or not found)
- * within the URI reference and not inherited from the base URI.
- *
- * 3) If the scheme component is defined, indicating that the reference
- * starts with a scheme name, then the reference is interpreted as an
- * absolute URI and we are done. Otherwise, the reference URI's
- * scheme is inherited from the base URI's scheme component.
- *
- * Due to a loophole in prior specifications [RFC1630], some parsers
- * allow the scheme name to be present in a relative URI if it is the
- * same as the base URI scheme. Unfortunately, this can conflict
- * with the correct parsing of non-hierarchical URI. For backwards
- * compatibility, an implementation may work around such references
- * by removing the scheme if it matches that of the base URI and the
- * scheme is known to always use the <hier_part> syntax. The parser
- * can then continue with the steps below for the remainder of the
- * reference components. Validating parsers should mark such a
- * misformed relative reference as an error.
- *
- * 4) If the authority component is defined, then the reference is a
- * network-path and we skip to step 7. Otherwise, the reference
- * URI's authority is inherited from the base URI's authority
- * component, which will also be undefined if the URI scheme does not
- * use an authority component.
- *
- * 5) If the path component begins with a slash character ("/"), then
- * the reference is an absolute-path and we skip to step 7.
- *
- * 6) If this step is reached, then we are resolving a relative-path
- * reference. The relative path needs to be merged with the base
- * URI's path. Although there are many ways to do this, we will
- * describe a simple method using a separate string buffer.
- *
- * a) All but the last segment of the base URI's path component is
- * copied to the buffer. In other words, any characters after the
- * last (right-most) slash character, if any, are excluded.
- *
- * b) The reference's path component is appended to the buffer
- * string.
- *
- * c) All occurrences of "./", where "." is a complete path segment,
- * are removed from the buffer string.
- *
- * d) If the buffer string ends with "." as a complete path segment,
- * that "." is removed.
- *
- * e) All occurrences of "<segment>/../", where <segment> is a
- * complete path segment not equal to "..", are removed from the
- * buffer string. Removal of these path segments is performed
- * iteratively, removing the leftmost matching pattern on each
- * iteration, until no matching pattern remains.
- *
- * f) If the buffer string ends with "<segment>/..", where <segment>
- * is a complete path segment not equal to "..", that
- * "<segment>/.." is removed.
- *
- * g) If the resulting buffer string still begins with one or more
- * complete path segments of "..", then the reference is
- * considered to be in error. Implementations may handle this
- * error by retaining these components in the resolved path (i.e.,
- * treating them as part of the final URI), by removing them from
- * the resolved path (i.e., discarding relative levels above the
- * root), or by avoiding traversal of the reference.
- *
- * h) The remaining buffer string is the reference URI's new path
- * component.
- *
- * 7) The resulting URI components, including any inherited from the
- * base URI, are recombined to give the absolute form of the URI
- * reference. Using pseudocode, this would be
- *
- * result = ""
- *
- * if scheme is defined then
- * append scheme to result
- * append ":" to result
- *
- * if authority is defined then
- * append "//" to result
- * append authority to result
- *
- * append path to result
- *
- * if query is defined then
- * append "?" to result
- * append query to result
- *
- * if fragment is defined then
- * append "#" to result
- * append fragment to result
- *
- * return result
- *
- * Note that we must be careful to preserve the distinction between a
- * component that is undefined, meaning that its separator was not
- * present in the reference, and a component that is empty, meaning
- * that the separator was present and was immediately followed by the
- * next component separator or the end of the reference.
- *
- * The above algorithm is intended to provide an example by which the
- * output of implementations can be tested -- implementation of the
- * algorithm itself is not required. For example, some systems may find
- * it more efficient to implement step 6 as a pair of segment stacks
- * being merged, rather than as a series of string pattern replacements.
- *
- * Note: Some WWW client applications will fail to separate the
- * reference's query component from its path component before merging
- * the base and reference paths in step 6 above. This may result in
- * a loss of information if the query component contains the strings
- * "/../" or "/./".
- *
- */
- virtual URI resolve(const URI &other) const;
-
- /**
- * "Mends" a URI by examining the path, and converting it to canonical
- * form. In particular, it takes patterns like "/./" and "/a/../b/../c"
- * and simplifies them.
- */
- virtual void normalize();
-
-
-private:
-
- void init();
-
- //assign values of other to this. used by copy constructor
- void assign(const URI &other);
-
- int scheme;
-
- DOMString schemeStr;
-
- std::vector<int> authority;
-
- bool portSpecified;
-
- int port;
-
- std::vector<int> path;
-
- bool absolute;
-
- bool opaque;
-
- std::vector<int> query;
-
- std::vector<int> fragment;
-
- void error(const char *fmt, ...)
- #ifdef G_GNUC_PRINTF
- G_GNUC_PRINTF(2, 3)
- #endif
- ;
-
- void trace(const char *fmt, ...)
- #ifdef G_GNUC_PRINTF
- G_GNUC_PRINTF(2, 3)
- #endif
- ;
-
- int peek(int p);
-
- int match(int p, char const *key);
-
- int parseHex(int p, int &result);
-
- int parseEntity(int p, int &result);
-
- int parseAsciiEntity(int p, int &result);
-
- int parseScheme(int p);
-
- int parseHierarchicalPart(int p0);
-
- int parseQuery(int p0);
-
- int parseFragment(int p0);
-
- int parse(int p);
-
- int *parsebuf;
-
- int parselen;
-
-};
-
-
-
-} //namespace dom
-} //namespace w3c
-} //namespace org
-
-
-
-#endif // SEEN_URI_H
-
diff --git a/src/dom/views-level3.h b/src/dom/views-level3.h
deleted file mode 100644
index 427051d06..000000000
--- a/src/dom/views-level3.h
+++ /dev/null
@@ -1,1967 +0,0 @@
-#ifndef SEEN_VIEWS_LEVEL3_H
-#define SEEN_VIEWS_LEVEL3_H
-
-/**
- * @file
- * Phoebe DOM Implementation.
- *
- * This is a C++ approximation of the W3C DOM model, which follows
- * fairly closely the specifications in the various .idl files, copies of
- * which are provided for reference. Most important is this one:
- *
- * http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/idl-definitions.html
- */
-/*
- * Authors:
- * Bob Jamison
- *
- * Copyright (C) 2005-2008 Bob Jamison
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-/*
- * Currently CSS is not at level 3, so we will probably not use this
- * Level 3 Views implementation. Rather, we'll regress back to Level 2.
- * This should not affect using the rest of DOM Core 3
- */
-
-#include "dom.h"
-
-
-
-namespace org
-{
-namespace w3c
-{
-namespace dom
-{
-namespace views
-{
-
-
-//local aliases
-typedef dom::Node Node;
-typedef dom::DOMString DOMString;
-
-//forward declarations
-class Segment;
-class VisualResource;
-class VisualCharacter;
-class VisualCharacterRun;
-class VisualFrame;
-class VisualImage;
-class VisualFormButton;
-class VisualFormField;
-
-
-
-
-/*#########################################################################
-## Match
-#########################################################################*/
-
-/**
- *
- */
-class Match
-{
-public:
-
- typedef enum
- {
- IS_EQUAL = 0,
- IS_NOT_EQUAL = 1,
- INT_PRECEDES = 2,
- INT_PRECEDES_OR_EQUALS = 3,
- INT_FOLLOWS = 4,
- INT_FOLLOWS_OR_EQUALS = 5,
- STR_STARTS_WITH = 6,
- STR_ENDS_WITH = 7,
- STR_CONTAINS = 8,
- SET_ANY = 9,
- SET_ALL = 10,
- SET_NOT_ANY = 11,
- SET_NOT_ALL = 12
- } MatchTestGroup;
-
- /**
- *
- */
- virtual unsigned short test()
- { return IS_NOT_EQUAL; }
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- Match() {}
-
- /**
- *
- */
- Match(const Match &/*other*/)
- {
- }
-
- /**
- *
- */
- virtual ~Match() {}
-};
-
-
-
-/*#########################################################################
-## MatchString
-#########################################################################*/
-
-/**
- *
- */
-class MatchString : virtual public Match
-{
-public:
-
- /**
- *
- */
- virtual DOMString getName()
- { return name; }
-
- /**
- *
- */
- virtual DOMString getValue()
- { return value; }
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- MatchString() {}
-
- /**
- *
- */
- MatchString(const MatchString &other) : Match(other)
- {
- name = other.name;
- value = other.value;
- }
-
- /**
- *
- */
- virtual ~MatchString() {}
-
-protected:
-
- DOMString name;
- DOMString value;
-
-
-};
-
-
-
-/*#########################################################################
-## MatchInteger
-#########################################################################*/
-
-/**
- *
- */
-class MatchInteger : virtual public Match
-{
-public:
-
- /**
- *
- */
- virtual DOMString getName()
- { return name; }
-
- /**
- *
- */
- virtual long getValue()
- { return value; }
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- MatchInteger() {}
-
- /**
- *
- */
- MatchInteger(const MatchInteger &other) : Match(other)
- {
- name = other.name;
- value = other.value;
- }
-
- /**
- *
- */
- virtual ~MatchInteger() {}
-
-protected:
-
- DOMString name;
- long value;
-};
-
-
-
-/*#########################################################################
-## MatchBoolean
-#########################################################################*/
-
-/**
- *
- */
-class MatchBoolean : virtual public Match
-{
-public:
-
- /**
- *
- */
- virtual DOMString getName()
- { return name; }
-
- /**
- *
- */
- virtual bool getValue()
- { return value; }
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- MatchBoolean() {}
-
- /**
- *
- */
- MatchBoolean(const MatchBoolean &other) : Match(other)
- {
- name = other.name;
- value = other.value;
- }
-
- /**
- *
- */
- virtual ~MatchBoolean() {}
-
-protected:
-
- DOMString name;
- bool value;
-};
-
-
-
-/*#########################################################################
-## MatchContent
-#########################################################################*/
-
-/**
- *
- */
-class MatchContent : virtual public Match
-{
-public:
-
- /**
- *
- */
- virtual DOMString getName()
- { return name; }
-
- /**
- *
- */
- virtual NodePtr getNodeArg()
- { return nodeArg; }
-
-
- /**
- *
- */
- virtual unsigned long getOffset()
- { return offset; }
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- MatchContent()
- {
- nodeArg = NULL;
- offset = 0L;
- }
-
- /**
- *
- */
- MatchContent(const MatchContent &other) : Match(other)
- {
- name = other.name;
- nodeArg = other.nodeArg;
- offset = other.offset;
- }
-
- /**
- *
- */
- virtual ~MatchContent() {}
-
-protected:
-
- DOMString name;
- NodePtr nodeArg;
- unsigned long offset;
-
-
-
-};
-
-
-
-/*#########################################################################
-## MatchSet
-#########################################################################*/
-
-/**
- *
- */
-class MatchSet : virtual public Match
-{
-public:
-
- /**
- *
- */
- virtual NodePtr getNodeArg()
- { return nodeArg; }
-
- /**
- *
- */
- virtual void addMatch(const Match &match)
- { matches.push_back(match); }
-
- /**
- *
- */
- virtual Match getMatch(unsigned long index)
- {
- if (index >= matches.size())
- {
- Match match;
- return match;
- }
- return matches[index];
- }
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- MatchSet()
- {
- nodeArg = NULL;
- }
-
- /**
- *
- */
- MatchSet(const MatchSet &other) : Match(other)
- {
- nodeArg = other.nodeArg;
- matches = other.matches;
- }
-
- /**
- *
- */
- virtual ~MatchSet() {}
-
-protected:
-
- NodePtr nodeArg;
-
- std::vector<Match> matches;
-
-};
-
-
-
-/*#########################################################################
-## Item
-#########################################################################*/
-
-/**
- *
- */
-class Item
-{
-public:
-
- /**
- *
- */
- virtual bool getExists()
- { return exists; }
-
- /**
- *
- */
- virtual DOMString getName()
- { return name; }
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- Item() {}
-
- /**
- *
- */
- Item(const Item &other)
- {
- exists = other.exists;
- name = other.name;
- }
-
- /**
- *
- */
- virtual ~Item() {}
-
-protected:
-
- bool exists;
-
- DOMString name;
-
-
-};
-
-
-
-/*#########################################################################
-## StringItem
-#########################################################################*/
-
-/**
- *
- */
-class StringItem : virtual public Item
-{
-public:
-
- /**
- *
- */
- virtual DOMString getValue()
- { return value; }
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- StringItem() {}
-
- /**
- *
- */
- StringItem(const StringItem &other) : Item(other)
- {
- value = other.value;
- }
-
- /**
- *
- */
- virtual ~StringItem() {}
-
-protected:
-
- DOMString value;
-
-
-};
-
-
-
-/*#########################################################################
-## IntegerItem
-#########################################################################*/
-
-/**
- *
- */
-class IntegerItem : virtual public Item
-{
-public:
-
-
- /**
- *
- */
- virtual long getValue()
- { return value; }
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- IntegerItem() {}
-
- /**
- *
- */
- IntegerItem(const IntegerItem &other) : Item(other)
- {
- value = other.value;
- }
-
- /**
- *
- */
- virtual ~IntegerItem() {}
-
-protected:
-
- long value;
-
-};
-
-
-/*#########################################################################
-## BooleanItem
-#########################################################################*/
-
-/**
- *
- */
-class BooleanItem : virtual public Item
-{
-public:
-
- /**
- *
- */
- virtual bool getValue()
- { return value; }
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- BooleanItem() {}
-
- /**
- *
- */
- BooleanItem(const BooleanItem &other) : Item(other)
- {
- value = other.value;
- }
-
- /**
- *
- */
- virtual ~BooleanItem() {}
-
-protected:
-
- bool value;
-
-};
-
-
-/*#########################################################################
-## ContentItem
-#########################################################################*/
-
-/**
- *
- */
-class ContentItem : virtual public Item
-{
-public:
-
- /**
- *
- */
- virtual NodePtr getNodeArg()
- { return nodeArg; }
-
- /**
- *
- */
- virtual unsigned long getOffset()
- { return offset; }
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- ContentItem()
- {
- nodeArg = NULL;
- }
-
- /**
- *
- */
- ContentItem(const ContentItem &other) : Item(other)
- {
- nodeArg = other.nodeArg;
- offset = other.offset;
- }
-
- /**
- *
- */
- virtual ~ContentItem() {}
-
-protected:
-
- NodePtr nodeArg;
- long offset;
-
-
-};
-
-
-
-
-
-
-
-/*#########################################################################
-## Segment
-#########################################################################*/
-
-/**
- *
- */
-class Segment : virtual public Match
-{
-public:
-
- /**
- *
- */
- virtual Match getCriteria()
- { return criteria; }
-
- /**
- *
- */
- virtual void setCriteria(const Match &val)
- { criteria = val; }
-
-
- /**
- *
- */
- virtual DOMString getOrder()
- { return order; }
-
- /**
- *
- */
- virtual void setOrder(const DOMString &val)
- { order = val; }
-
- /**
- *
- */
- virtual MatchString createMatchString(unsigned short /*test*/,
- const DOMString &/*name*/,
- const DOMString &/*value*/)
- {
- MatchString ret;
- return ret;
- }
-
- /**
- *
- */
- virtual MatchInteger createMatchInteger(unsigned short /*test*/,
- const DOMString &/*name*/,
- long /*value*/)
- {
- MatchInteger ret;
- return ret;
- }
-
- /**
- *
- */
- virtual MatchBoolean createMatchBoolean(unsigned short /*test*/,
- const DOMString &/*name*/,
- bool /*value*/)
- {
- MatchBoolean ret;
- return ret;
- }
-
- /**
- *
- */
- virtual MatchContent createMatchContent(unsigned short /*test*/,
- const DOMString &/*name*/,
- unsigned long /*offset*/,
- const NodePtr /*nodeArg*/)
- {
- MatchContent ret;
- return ret;
- }
-
- /**
- *
- */
- virtual MatchSet createMatchSet(unsigned short /*test*/)
- {
- MatchSet ret;
- return ret;
- }
-
- /**
- *
- */
- virtual StringItem createStringItem(const DOMString &/*name*/)
- {
- StringItem ret;
- return ret;
- }
-
- /**
- *
- */
- virtual IntegerItem createIntegerItem(const DOMString &/*name*/)
- {
- IntegerItem ret;
- return ret;
- }
-
- /**
- *
- */
- virtual BooleanItem createBooleanItem(const DOMString &/*name*/)
- {
- BooleanItem ret;
- return ret;
- }
-
- /**
- *
- */
- virtual ContentItem createContentItem(const DOMString &/*name*/)
- {
- ContentItem ret;
- return ret;
- }
-
- /**
- *
- */
- virtual void addItem(const Item &item)
- {
- items.push_back(item);
- }
-
- /**
- *
- */
- virtual Item getItem(unsigned long index)
- {
- if (index >= items.size())
- {
- Item item;
- return item;
- }
- return items[index];
- }
-
- /**
- *
- */
- virtual bool getNext()
- {
- return false;
- }
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- Segment() {}
-
- /**
- *
- */
- Segment(const Segment &other) : Match(other)
- {
- criteria = other.criteria;
- order = other.order;
- items = other.items;
- }
-
- /**
- *
- */
- virtual ~Segment() {}
-
-protected:
-
- Match criteria;
-
- DOMString order;
-
- std::vector<Item> items;
-
-};
-
-
-
-
-
-
-
-
-
-
-
-
-/*#########################################################################
-## View
-#########################################################################*/
-
-/**
- *
- */
-class View
-{
-public:
-
- /**
- *
- */
- virtual void select(const NodePtr /*boundary*/,
- unsigned long /*offset*/,
- bool /*extend*/,
- bool /*add*/)
- {
- }
-
- /**
- *
- */
- virtual Segment createSegment()
- {
- Segment ret;
- return ret;
- }
-
- /**
- *
- */
- virtual bool matchFirstSegment(Segment &/*todo*/) //inout parm, not const
- throw(dom::DOMException)
- {
- return false;
- }
-
- /**
- *
- */
- virtual long getIntegerProperty(const DOMString &/*name*/)
- throw(dom::DOMException)
- {
- long val=0;
- return val;
- }
-
- /**
- *
- */
- virtual DOMString getStringProperty(const DOMString &/*name*/)
- throw(dom::DOMException)
- {
- DOMString val;
- return val;
- }
-
- /**
- *
- */
- virtual bool getBooleanProperty(bool /*name*/)
- throw(dom::DOMException)
- {
- bool val=false;
- return val;
- }
-
- /**
- *
- */
- virtual NodePtr getContentPropertyNode(const DOMString &/*name*/)
- throw(dom::DOMException)
- {
- NodePtr val = NULL;
- return val;
- }
-
- /**
- *
- */
- virtual unsigned long getContentPropertyOffset(const DOMString &/*name*/)
- throw(dom::DOMException)
- {
- long val=0;
- return val;
- }
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- View() {}
-
- /**
- *
- */
- View(const View &/*other*/)
- {
- }
-
- /**
- *
- */
- virtual ~View() {}
-};
-
-
-/*#########################################################################
-## VisualResource
-#########################################################################*/
-
-/**
- *
- */
-class VisualResource
-{
-public:
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- VisualResource() {}
-
- /**
- *
- */
- VisualResource(const VisualResource &/*other*/)
- {
- }
-
- /**
- *
- */
- virtual ~VisualResource() {}
-};
-
-
-/*#########################################################################
-## VisualFont
-#########################################################################*/
-
-/**
- *
- */
-class VisualFont : virtual public VisualResource
-{
-public:
-
- /**
- *
- */
- virtual DOMString getMatchFontName()
- { return matchFontName; }
-
- /**
- *
- */
- virtual void setMatchFontName(const DOMString &val)
- { matchFontName = val; }
-
- /**
- *
- */
- virtual bool getExists()
- { return true; }
-
- /**
- *
- */
- virtual DOMString getFontName()
- { return fontName; }
-
- /**
- *
- */
- virtual bool getNext()
- { return next; }
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- VisualFont() {}
-
- /**
- *
- */
- VisualFont(const VisualFont &other) : VisualResource(other)
- {
- matchFontName = other.matchFontName;
- fontName = other.fontName;
- next = other.next;
- }
-
- /**
- *
- */
- virtual ~VisualFont() {}
-
-protected:
-
- DOMString matchFontName;
- DOMString fontName;
- bool next;
-
-
-};
-
-
-/*#########################################################################
-## VisualSegment
-#########################################################################*/
-
-/**
- *
- */
-class VisualSegment : virtual public VisualResource
-{
-public:
-
-
- /**
- *
- */
- virtual bool getMatchPosition()
- { return matchPosition; }
-
- /**
- *
- */
- virtual void setMatchPosition(bool val)
- { matchPosition = val; }
-
- /**
- *
- */
- virtual bool getMatchInside()
- { return matchInside; }
-
- /**
- *
- */
- virtual void setMatchInside(bool val)
- { matchInside = val; }
-
- /**
- *
- */
- virtual bool getMatchContaining()
- { return matchContaining; }
-
- /**
- *
- */
- virtual void setMatchContaining(bool val)
- { matchContaining = val; }
-
- /**
- *
- */
- virtual long getMatchX()
- { return matchX; }
-
- /**
- *
- */
- virtual void setMatchX(long val)
- { matchX = val; }
-
- /**
- *
- */
- virtual long getMatchY()
- { return matchY; }
-
- /**
- *
- */
- virtual void setMatchY(long val)
- { matchY = val; }
-
- /**
- *
- */
- virtual long getMatchXR()
- { return matchXR; }
-
- /**
- *
- */
- virtual void setMatchXR(long val)
- { matchXR = val; }
-
- /**
- *
- */
- virtual long getMatchYR()
- { return matchYR; }
-
- /**
- *
- */
- virtual void setMatchYR(long val)
- { matchYR = val; }
-
- /**
- *
- */
- virtual bool getMatchContent()
- { return matchContent; }
-
- /**
- *
- */
- virtual void setMatchContent(bool val)
- { matchContent = val; }
-
- /**
- *
- */
- virtual bool getMatchRange()
- { return matchRange; }
-
- /**
- *
- */
- virtual void setMatchRange(bool val)
- { matchRange = val; }
-
- /**
- *
- */
- virtual NodePtr getMatchNode()
- { return matchNode; }
-
- /**
- *
- */
- virtual void setMatchNode(const NodePtr val)
- { matchNode = (NodePtr )val; }
-
- /**
- *
- */
- virtual unsigned long getMatchOffset()
- { return matchOffset; }
-
- /**
- *
- */
- virtual void setMatchOffset(unsigned long val)
- { matchOffset = val; }
-
- /**
- *
- */
- virtual NodePtr getMatchNodeR()
- { return matchNodeR; }
-
- /**
- *
- */
- virtual void setMatchNodeR(const NodePtr val)
- { matchNodeR = (NodePtr )val; }
-
- /**
- *
- */
- virtual unsigned long getMatchOffsetR()
- { return matchOffsetR; }
-
- /**
- *
- */
- virtual void setMatchOffsetR(unsigned long val)
- { matchOffsetR = val; }
-
- /**
- *
- */
- virtual bool getMatchContainsSelected()
- { return matchContainsSelected; }
-
- /**
- *
- */
- virtual void setMatchContainsSelected(bool val)
- { matchContainsSelected = val; }
-
- /**
- *
- */
- virtual bool getMatchContainsVisible()
- { return matchContainsVisible; }
-
- /**
- *
- */
- virtual void setMatchContainsVisible(bool val)
- { matchContainsVisible = val; }
-
-
- /**
- *
- */
- virtual bool getExists()
- { return exists; }
-
- /**
- *
- */
- virtual NodePtr getStartNode()
- { return startNode; }
-
- /**
- *
- */
- virtual unsigned long getStartOffset()
- { return startOffset; }
-
- /**
- *
- */
- virtual NodePtr getEndNode()
- { return endNode; }
-
- /**
- *
- */
- virtual unsigned long getEndOffset()
- { return endOffset; }
-
- /**
- *
- */
- virtual long getTopOffset()
- { return topOffset; }
-
- /**
- *
- */
- virtual long getBottomOffset()
- { return bottomOffset; }
-
- /**
- *
- */
- virtual long getLeftOffset()
- { return leftOffset; }
-
- /**
- *
- */
- virtual long getRightOffset()
- { return rightOffset; }
-
- /**
- *
- */
- virtual unsigned long getWidth()
- { return width; }
-
- /**
- *
- */
- virtual unsigned long getHeight()
- { return height; }
-
- /**
- *
- */
- virtual bool getSelected()
- { return selected; }
-
- /**
- *
- */
- virtual bool getVisible()
- { return visible; }
-
- /**
- *
- */
- virtual unsigned long getForegroundColor()
- { return foregroundColor; }
-
- /**
- *
- */
- virtual unsigned long getBackgroundColor()
- { return backgroundColor; }
-
- /**
- *
- */
- virtual DOMString getFontName()
- { return fontName; }
-
- /**
- *
- */
- virtual DOMString getFontHeight()
- { return fontHeight; }
-
- /**
- *
- */
- virtual bool getNext()
- { return next; }
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- VisualSegment() {}
-
- /**
- *
- */
- VisualSegment(const VisualSegment &other) : VisualResource(other)
- {
- matchPosition = other.matchPosition;
- matchInside = other.matchInside;
- matchContaining = other.matchContaining;
- matchX = other.matchX;
- matchY = other.matchY;
- matchXR = other.matchXR;
- matchYR = other.matchYR;
- matchContent = other.matchContent;
- matchRange = other.matchRange;
- matchNode = other.matchNode;
- matchOffset = other.matchOffset;
- matchNodeR = other.matchNodeR;
- matchOffsetR = other.matchOffsetR;
- matchContainsSelected = other.matchContainsSelected;
- matchContainsVisible = other.matchContainsVisible;
- exists = other.exists;
- startNode = other.startNode;
- startOffset = other.startOffset;
- endNode = other.endNode;
- endOffset = other.endOffset;
- topOffset = other.topOffset;
- bottomOffset = other.bottomOffset;
- leftOffset = other.leftOffset;
- rightOffset = other.rightOffset;
- width = other.width;
- height = other.height;
- selected = other.selected;
- visible = other.visible;
- foregroundColor = other.foregroundColor;
- backgroundColor = other.backgroundColor;
- fontName = other.fontName;
- fontHeight = other.fontHeight;
- next = other.next;
- }
-
- /**
- *
- */
- virtual ~VisualSegment() {}
-
-
-protected:
-
- bool matchPosition;
- bool matchInside;
- bool matchContaining;
- long matchX;
- long matchY;
- long matchXR;
- long matchYR;
- bool matchContent;
- bool matchRange;
- NodePtr matchNode;
- unsigned long matchOffset;
- NodePtr matchNodeR;
- unsigned long matchOffsetR;
- bool matchContainsSelected;
- bool matchContainsVisible;
- bool exists;
- NodePtr startNode;
- unsigned long startOffset;
- NodePtr endNode;
- unsigned long endOffset;
- long topOffset;
- long bottomOffset;
- long leftOffset;
- long rightOffset;
- unsigned long width;
- unsigned long height;
- bool selected;
- bool visible;
- unsigned long foregroundColor;
- unsigned long backgroundColor;
- DOMString fontName;
- DOMString fontHeight;
- bool next;
-
-
-};
-
-
-/*#########################################################################
-## VisualCharacter
-#########################################################################*/
-
-/**
- *
- */
-class VisualCharacter : virtual public VisualSegment
-{
-public:
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- VisualCharacter()
- {}
-
- /**
- *
- */
- VisualCharacter(const VisualCharacter &other) : VisualResource(other),
- VisualSegment(other)
- {
- }
-
- /**
- *
- */
- virtual ~VisualCharacter() {}
-};
-
-
-
-/*#########################################################################
-## VisualCharacterRun
-#########################################################################*/
-
-/**
- *
- */
-class VisualCharacterRun : virtual public VisualSegment
-{
-public:
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- VisualCharacterRun() {}
-
- /**
- *
- */
- VisualCharacterRun(const VisualCharacterRun &other) : VisualResource(other),
- VisualSegment(other)
- {
- }
-
- /**
- *
- */
- virtual ~VisualCharacterRun() {}
-
-protected:
-
-
-};
-
-
-
-/*#########################################################################
-## VisualFrame
-#########################################################################*/
-
-/**
- *
- */
-class VisualFrame : virtual public VisualSegment
-{
-public:
-
-
- /**
- *
- */
- virtual VisualSegment getEmbedded()
- { return embedded; }
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- VisualFrame() {}
-
- /**
- *
- */
- VisualFrame(const VisualFrame &other) : VisualResource(other),
- VisualSegment(other)
- {
- embedded = other.embedded;
- }
-
- /**
- *
- */
- virtual ~VisualFrame() {}
-
-protected:
-
- VisualSegment embedded;
-};
-
-
-
-/*#########################################################################
-## VisualImage
-#########################################################################*/
-
-/**
- *
- */
-class VisualImage : virtual public VisualSegment
-{
-public:
-
- /**
- *
- */
- virtual DOMString getImageURL()
- { return imageURL; }
-
- /**
- *
- */
- virtual bool getIsLoaded()
- { return isLoaded; }
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- VisualImage() {}
-
- /**
- *
- */
- VisualImage(const VisualImage &other) : VisualResource(other),
- VisualSegment(other)
- {
- imageURL = other.imageURL;
- isLoaded = other.isLoaded;
- }
-
- /**
- *
- */
- virtual ~VisualImage() {}
-
-protected:
-
- DOMString imageURL;
- bool isLoaded;
-
-};
-
-
-
-/*#########################################################################
-## VisualFormButton
-#########################################################################*/
-
-/**
- *
- */
-class VisualFormButton : virtual public VisualSegment
-{
-public:
-
- /**
- *
- */
- virtual bool getIsPressed()
- { return isPressed; }
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- VisualFormButton()
- { isPressed = false; }
-
- /**
- *
- */
- VisualFormButton(const VisualFormButton &other) : VisualResource(other),
- VisualSegment(other)
- {
- isPressed = other.isPressed;
- }
-
- /**
- *
- */
- virtual ~VisualFormButton() {}
-
-protected:
-
- bool isPressed;
-
-};
-
-
-
-/*#########################################################################
-## VisualFormField
-#########################################################################*/
-
-/**
- *
- */
-class VisualFormField : virtual public VisualSegment
-{
-public:
-
- /**
- *
- */
- virtual DOMString getFormValue()
- { return formValue; }
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- VisualFormField() {}
-
- /**
- *
- */
- VisualFormField(const VisualFormField &other) : VisualResource(other),
- VisualSegment(other)
- {
- formValue = other.formValue;
- }
-
- /**
- *
- */
- virtual ~VisualFormField() {}
-
-protected:
-
- DOMString formValue;
-
-};
-
-
-
-/*#########################################################################
-## VisualView
-#########################################################################*/
-
-/**
- *
- */
-class VisualView
-{
-public:
-
- /**
- *
- */
- virtual bool getValue()
- { return value; }
-
- /**
- *
- */
- virtual DOMString getFontScheme()
- { return fontScheme; }
-
- /**
- *
- */
- virtual unsigned long getWidth()
- { return width; }
-
- /**
- *
- */
- virtual unsigned long getHeight()
- { return height; }
-
- /**
- *
- */
- virtual unsigned long getHorizontalDPI()
- { return horizontalDPI; }
-
- /**
- *
- */
- virtual unsigned long getVerticalDPI()
- { return verticalDPI; }
-
- /**
- *
- */
- virtual VisualCharacter createVisualCharacter()
- {
- VisualCharacter ret;
- return ret;
- }
-
- /**
- *
- */
- virtual VisualCharacterRun createVisualCharacterRun()
- {
- VisualCharacterRun ret;
- return ret;
- }
- /**
- *
- */
- virtual VisualFrame createVisualFrame()
- {
- VisualFrame ret;
- return ret;
- }
-
-
- /**
- *
- */
- virtual VisualImage createVisualImage()
- {
- VisualImage ret;
- return ret;
- }
-
- /**
- *
- */
- virtual VisualFormButton createVisualFormButton()
- {
- VisualFormButton ret;
- return ret;
- }
-
- /**
- *
- */
- virtual VisualFormField createVisualFormField()
- {
- VisualFormField ret;
- return ret;
- }
-
- /**
- *
- */
- virtual void select(const NodePtr /*boundary*/,
- unsigned long /*offset*/,
- bool /*extend*/,
- bool /*add*/)
- {
- }
-
- /**
- *
- */
- virtual void matchSegment(const VisualResource */*segment*/)
- {
- }
-
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- VisualView() {}
-
- /**
- *
- */
- VisualView(const VisualView &other)
- {
- value = other.value;
- fontScheme = other.fontScheme;
- width = other.width;
- height = other.height;
- horizontalDPI = other.horizontalDPI;
- verticalDPI = other.verticalDPI;
- }
-
- /**
- *
- */
- virtual ~VisualView() {}
-
-protected:
-
- bool value;
-
- DOMString fontScheme;
-
- unsigned long width;
- unsigned long height;
- unsigned long horizontalDPI;
- unsigned long verticalDPI;
-
-};
-
-
-
-
-} //namespace views
-} //namespace dom
-} //namespace w3c
-} //namespace org
-
-
-#endif // SEEN_VIEWS_LEVEL3_H
-/*#########################################################################
-## E N D O F F I L E
-#########################################################################*/
-
diff --git a/src/dom/views.h b/src/dom/views.h
deleted file mode 100644
index f1154fb62..000000000
--- a/src/dom/views.h
+++ /dev/null
@@ -1,218 +0,0 @@
-#ifndef SEEN_VIEWS_H
-#define SEEN_VIEWS_H
-
-/**
- * @file
- * Phoebe DOM Implementation.
- *
- * This is a C++ approximation of the W3C DOM model, which follows
- * fairly closely the specifications in the various .idl files, copies of
- * which are provided for reference. Most important is this one:
- *
- * http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/idl-definitions.html
- */
-/*
- * Authors:
- * Bob Jamison
- *
- * Copyright (C) 2005-2008 Bob Jamison
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- *
- * =========================================================================
- * NOTES
- *
- * This is the Level 2 Views definition, which is very minimalist. It is
- * described here:
- * http://www.w3.org/TR/2000/REC-DOM-Level-2-Views-20001113
- *
- * Note that SVG uses the DOM Core and Events Level 3, but Level 2 CSS and Views.
- *
- * The level 3 version is much larger:
- * http://www.w3.org/TR/2004/NOTE-DOM-Level-3-Views-20040226
- * Be prepared in the future to adjust to this, if SVG ever switches .
- */
-
-#include <cstdlib>
-#include "dom.h"
-
-namespace org
-{
-namespace w3c
-{
-namespace dom
-{
-namespace views
-{
-
-
-//local aliases
-typedef dom::Node Node;
-typedef dom::DOMString DOMString;
-
-//forward declarations
-class DocumentView;
-class AbstractView;
-
-
-
-/*#########################################################################
-## AbstractView
-#########################################################################*/
-
-/**
- * A base interface that all views shall derive from.
- */
-class AbstractView
-{
-public:
-
- /**
- * The source DocumentView of which this is an AbstractView.
- */
- virtual DocumentView *getDocument()
- {
- return documentView;
- }
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- AbstractView()
- { documentView = NULL; }
-
- /**
- *
- */
- AbstractView(const AbstractView &other)
- {
- assign(other);
- }
-
- /**
- *
- */
- AbstractView &operator=(const AbstractView &other)
- {
- assign(other);
- return *this;
- }
-
- /**
- *
- */
- virtual ~AbstractView() {}
-
-private:
-
- void assign(const AbstractView &other)
- {
- if (documentView != NULL)
- {
- free(documentView); //NOTE: is free the correct method?
- }
- documentView = other.documentView;
- }
- DocumentView *documentView;
-};
-
-
-/*#########################################################################
-## DocumentView
-#########################################################################*/
-
-
-/**
- * The DocumentView interface is implemented by Document objects in DOM
- * implementations supporting DOM Views. It provides an attribute to retrieve the
- * default view of a document.
- */
-class DocumentView
-{
-public:
-
- /**
- * The default AbstractView for this Document, or null if none available.
- */
- virtual AbstractView *getDefaultView()
- {
- return defaultView;
- }
-
- //##################
- //# Non-API methods
- //##################
-
- /**
- *
- */
- DocumentView() {defaultView = NULL;}
-
- /**
- *
- */
- DocumentView(const DocumentView &other)
- {
- assign(other);
- }
-
- /**
- *
- */
- DocumentView &operator=(const DocumentView &other)
- {
- assign(other);
- return *this;
- }
-
- /**
- *
- */
- virtual ~DocumentView() {}
-
-private:
-
- void assign(const DocumentView &other)
- {
- if (defaultView != NULL)
- {
- free(defaultView); //NOTE: is free the correct method?
- }
- defaultView = other.defaultView;
- }
- AbstractView *defaultView;
-
-};
-
-
-
-
-
-
-} //namespace views
-} //namespace dom
-} //namespace w3c
-} //namespace org
-
-
-#endif // SEEN_VIEWS_H
-/*#########################################################################
-## E N D O F F I L E
-#########################################################################*/
-
diff --git a/src/dom/xmlreader.cpp b/src/dom/xmlreader.cpp
deleted file mode 100644
index 29519d592..000000000
--- a/src/dom/xmlreader.cpp
+++ /dev/null
@@ -1,998 +0,0 @@
-/*
- * Phoebe DOM Implementation.
- *
- * This is a C++ approximation of the W3C DOM model, which follows
- * fairly closely the specifications in the various .idl files, copies of
- * which are provided for reference. Most important is this one:
- *
- * http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/idl-definitions.html
- *
- * Authors:
- * Bob Jamison
- *
- * Copyright (C) 2005-2008 Bob Jamison
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-
-
-#include "xmlreader.h"
-#include "ucd.h"
-#include "domimpl.h"
-
-#include <stdio.h>
-#include <stdarg.h>
-
-namespace org
-{
-namespace w3c
-{
-namespace dom
-{
-
-
-//#########################################################################
-//# E N T I T Y T A B L E
-//#########################################################################
-struct EntityInfo
-{
- const char *escape;
- int escapeLength;
- const char *value;
-};
-
-
-static EntityInfo entityTable[] =
-{
- { "&amp;" , 5 , "&" },
- { "&lt;" , 4 , "<" },
- { "&gt;" , 4 , ">" },
- { "&apos;" , 6 , "'" },
- { "&quot;" , 6 , "\"" },
- { NULL , 0 , "\0" }
-};
-
-
-
-//#########################################################################
-//# M E S S A G E S
-//#########################################################################
-
-
-/**
- *
- */
-void XmlReader::error(const char *fmt, ...)
-{
- va_list args;
- fprintf(stderr, "XmlReader:error at line %d, column %d:", lineNr, colNr);
- va_start(args, fmt);
- vfprintf(stderr, fmt, args);
- va_end(args) ;
- fprintf(stderr, "\n");
-}
-
-
-
-//#########################################################################
-//# U T I L I T Y
-//#########################################################################
-
-static void trim(DOMString &str)
-{
- int len = str.size();
- if (len<1)
- return;
-
- int start = 0;
- int end = 0;
- for (start=0 ; start<len ; start++)
- {
- int ch = str[start];
- if (ch<=' ' || ch>126)
- break;
- }
- for (end=len-1 ; end>=0 ; end--)
- {
- int ch = str[end];
- if (ch<=' ' || ch>126)
- break;
- }
- if (start<end)
- {
- str = str.substr(start, end+1);
- }
-}
-
-//#########################################################################
-//# P A R S I N G
-//#########################################################################
-
-/**
- * Get the character at the position and record the fact
- */
-int XmlReader::get(int p)
-{
- if (p >= len)
- return -1;
- int ch = parsebuf[p];
- //printf("%c", ch);
- if (ch == '\n' || ch == '\r')
- {
- colNr = 0;
- lineNr++;
- }
- else
- colNr++;
- return ch;
-}
-
-/**
- * Look at the character at the position, but don't note the fact
- */
-int XmlReader::peek(int p)
-{
- if (p >= len)
- return -1;
- int ch = parsebuf[p];
- return ch;
-}
-
-
-/**
- * Test if the given substring exists at the given position
- * in parsebuf. Use peek() in case of out-of-bounds
- */
-bool XmlReader::match(int pos, const char *str)
-{
- while (*str)
- {
- if (peek(pos++) != *str++)
- return false;
- }
- return true;
-}
-
-
-
-/**
- * Test if the given substring exists at the given position
- * in a given buffer
- */
-/*
-static bool bufMatch(const DOMString &buf, int pos, char *str)
-{
- while (*str)
- {
- if (buf[pos++] != *str++)
- return false;
- }
- return true;
-}
-*/
-
-
-/**
- *
- */
-int XmlReader::skipwhite(int p)
-{
- while (p < len)
- {
- int b = get(p);
- if (!uni_is_space(b))
- break;
- p++;
- }
- return p;
-}
-
-/**
- * modify this to allow all chars for an element or attribute name
- */
-int XmlReader::getWord(int p, DOMString &result)
-{
- while (p<len)
- {
- int b = get(p);
- if (b<=' ' || b=='/' || b=='>' || b=='=')
- break;
- result.push_back((XMLCh)b);
- p++;
- }
- return p;
-}
-
-/**
- * get a name and prefix, if any
- */
-int XmlReader::getPrefixedWord(int p, DOMString &prefix,
- DOMString &shortWord, DOMString &fullWord)
-{
- while (p<len)
- {
- int b = get(p);
- if (b<=' ' || b=='/' || b=='>' || b=='=')
- break;
- else if (b == ':')
- {
- prefix = shortWord;
- shortWord = "";
- }
- else
- shortWord.push_back((XMLCh)b);
- p++;
- }
- if (prefix.size() > 0)
- fullWord = prefix + ":" + shortWord;
- else
- fullWord = shortWord;
- return p;
-}
-
-
-/**
- * Assume that we are starting on a quote. Ends on the char
- * after the final '"'
- */
-int XmlReader::getQuoted(int p0, DOMString &result)
-{
-
- int p = p0;
-
- if (peek(p)!='"' && peek(p)!='\'')
- return p0;
-
- int b = get(p++); //go to next char
-
- DOMString buf;
-
- while (p<len )
- {
- b = get(p++);
- if (b=='"' || b=='\'')
- break;
- else if (b=='&')
- {
- p = parseEntity(p, result);
- if (p < 0)
- return p0;
- }
- else
- {
- buf.push_back((XMLCh)b);
- }
- }
-
- //printf("quoted text:'%s'\n", buf.c_str());
-
- result.append(buf);
-
- return p;
-}
-
-
-
-/**
- * Parse a <!xml> tag. Node may be null. Assumes current char is '<'
- * ends on char after '>'
- */
-int XmlReader::parseVersion(int p0)
-{
- int p = p0;
-
- if (!match(p, "<?xml"))
- return p0;
-
- p += 5;
- colNr += 5;
-
- bool quickCloseDummy;
- NodePtr node = new NodeImpl();
- int p2 = parseAttributes(p, node, &quickCloseDummy);
- if (p2 < p)
- {
- //smart ptr!!do not delete node;
- return p0;
- }
- p = p2;
-
- //get the attributes that we need
- NamedNodeMap attributes = node->getAttributes();
- NodePtr attr = attributes.getNamedItem("version");
- if (attr.get())
- document->setXmlVersion(attr->getNodeValue());
- attr = attributes.getNamedItem("encoding");
- if (attr.get())
- { /*document->setXmlEncoding(attr->getNodeValue());*/ }
- attr = attributes.getNamedItem("standalone");
- if (attr.get())
- document->setXmlStandalone((attr->getNodeValue() == "yes"));
-
- //#now we should be pointing at '?>'
- if (!match(p, "?>"))
- {
- return p0;
- }
-
- //skip over '?>'
- get(p++);
- get(p++);
-
- return p;
-}
-
-
-/**
- * Parse a <!DOCTYPE> tag. doctype may be null. Expects '<'
- * on start. Ends pointing at char after '>'
- */
-int XmlReader::parseDoctype(int p0)
-{
- int p = p0;
-
- if (!match(p, "<!DOCTYPE"))
- return p0;
-
- p += 9;
- colNr += 9;
-
- DocumentTypePtr doctype = document->getDoctype();
- if (!doctype)
- return p0;
-
-
- //### get the root name of the document
- p = skipwhite(p);
- DOMString rootName;
- int p2 = getWord(p, rootName);
- if (p2 <= p)
- return p0;
- p = p2;
- //printf("doctype root '%s'\n", rootName.c_str());
-
-
- while (p < len)
- {
- p = skipwhite(p);
- if (peek(p) == '>')
- break;
- else if (peek(p) == '[') //just ignore 'internal' [] stuff
- {
- while (p < len)
- {
- int ch = get(p++);
- if (ch == ']')
- break;
- }
- p++;
- }
- else if (match(p, "PUBLIC"))
- {
- p += 6;
- colNr += 6;
- p = skipwhite(p);
- DOMString pubIdLiteral;
- int p2 = getQuoted(p, pubIdLiteral);
- if (p2 <= p)
- return p0;
- p = p2;
- p = skipwhite(p);
- DOMString systemLiteral;
- p2 = getQuoted(p, systemLiteral);
- if (p2 <= p)
- return p0;
- p = p2;
- //printf("PUBLIC \"%s\" \"%s\" \n",
- // pubIdLiteral.c_str(), systemLiteral.c_str());
- }
- else if (match(p, "SYSTEM"))
- {
- p += 6;
- colNr += 6;
- p = skipwhite(p);
- DOMString systemLiteral;
- int p2 = getQuoted(p, systemLiteral);
- if (p2 <= p)
- return p0;
- p = p2;
- //printf("SYSTEM \"%s\" \n", systemLiteral.c_str());
- }
- }
-
-
- //skip over '>'
- get(p++);
-
- return p;
-}
-
-
-
-/**
- * Expects '<' on startup, ends on char after '>'
- */
-int XmlReader::parseComment(int p0, CommentPtr comment)
-{
- int p = p0;
-
- if (!match(p, "<!--"))
- return p0;
-
- colNr += 4;
- p += 4;
-
- DOMString buf;
-
- while (p<len-3)
- {
- if (match(p, "-->"))
- {
- p += 3;
- colNr += 3;
- break;
- }
- int ch = get(p++);
- buf.push_back((XMLCh)ch);
- }
-
- comment->setNodeValue(buf);
-
- return p;
-}
-
-
-
-/**
- *
- */
-int XmlReader::parseCDATA(int p0, CDATASectionPtr cdata)
-{
-
- int p = p0;
-
- if (!match(p, "<![CDATA["))
- return p0;
-
- colNr += 9;
- p += 9;
-
- DOMString buf;
-
- while (p<len)
- {
- if (match(p, "]]>"))
- {
- p +=3;
- colNr += 3;
- break;
- }
- int ch = get(p++);
- buf.push_back((XMLCh)ch);
- }
-
- /*printf("Got CDATA:%s\n",buf.c_str());*/
- cdata->setNodeValue(buf);
-
- return p;
-}
-
-
-
-/**
- *
- */
-int XmlReader::parseText(int p0, TextPtr text)
-{
-
- int p = p0;
-
- DOMString buf;
-
- while (p<len)
- {
- if (peek(p) == '&')
- {
- p = parseEntity(p, buf);
- if (p < 0) //error?
- return p0;
- }
- else if (peek(p) == '<')
- {
- break;
- }
- else
- {
- int ch = get(p++);
- buf.push_back((XMLCh)ch);
- }
- }
-
- /*printf("Got Text:%s\n",buf.c_str());*/
- text->setNodeValue(buf);
-
- return p;
-}
-
-
-
-
-
-/**
- * Parses attributes of a node. Should end pointing at either the
- * '?' of a version or doctype tag, or a '>' of a normal tag
- */
-int XmlReader::parseAttributes(int p0, NodePtr node, bool *quickClose)
-{
- *quickClose = false;
-
- int p = p0;
-
- NamedNodeMap attributes;
-
- while (p<len)
- {
- /*printf("ch:%c\n",ch);*/
- p = skipwhite(p);
- int ch = get(p);
-
- /*printf("ch:%c\n",ch);*/
- if (ch == '?' || ch == '>')//done
- break;
- else if (ch=='/' && p<len+1)
- {
- p++;
- p = skipwhite(p);
- ch = peek(p);
- if (ch == '>')
- {
- p++;
- *quickClose = true;
- /*printf("quick close\n");*/
- return p;
- }
- }
- DOMString shortName;
- DOMString prefix;
- DOMString qualifiedName;
- int p2 = getPrefixedWord(p, prefix, shortName, qualifiedName);
- if (p2 <= p)
- break;
-
- /*printf("name:%s",buf);*/
- p = p2;
- p = skipwhite(p);
- ch = get(p);
- /*printf("ch:%c\n",ch);*/
- if (ch != '=')
- break;
- p++;
- p = skipwhite(p);
- /*ch = parsebuf[p];*/
- /*printf("ch:%c\n",ch);*/
- DOMString attrValue;
- p2 = getQuoted(p, attrValue);
- p = p2;
- /*printf("name:'%s' value:'%s'\n",buf,buf2);*/
-
- DOMString namespaceURI = "";
- if (prefix == "xmlns" || shortName == "xmlns")
- namespaceURI = XMLNSNAME;
-
- //## Now let us make the attribute and give it to the node
- AttrPtr attr = document->createAttributeNS(namespaceURI, qualifiedName);
- attr->setValue(attrValue);
- node->getAttributes().setNamedItemNS(attr);
-
- }//while p<len
-
- return p;
-}
-
-/**
- * Appends the value of an entity to the buffer
- */
-int XmlReader::parseEntity(int p0, DOMString &buf)
-{
- int p = p0;
- for (EntityInfo *info = entityTable ; info->escape ; info++)
- {
- if (match(p, info->escape))
- {
- p += info->escapeLength;
- colNr += info->escapeLength;
- buf += info->value;
- return p;
- }
- }
-
- error("unterminated entity");
- return -1;
-}
-
-
-//#########################################################################
-//# P A R S E A N O D E
-//#########################################################################
-
-/**
- * Parse as a document, preserving the original structure as much as
- * possible
- */
-int XmlReader::parseNode(int p0, NodePtr node, int depth)
-{
-
- int p = p0;
-
-
- //### OPEN TAG
- int ch = get(p++);
- if (ch != '<')
- return p0;
-
- p = skipwhite(p);
- DOMString openTagName;
- DOMString openTagNamePrefix;
- DOMString openTagQualifiedName;
- int p2 = getPrefixedWord(p,openTagNamePrefix,
- openTagName, openTagQualifiedName);
- if (p2 <= p)
- return p0;
- p = p2;
- p = skipwhite(p);
-
- //printf("qualifiedName:%s\n", openTagQualifiedName.c_str());
- DOMString namespaceURI = node->lookupNamespaceURI(openTagNamePrefix);
- document->renameNode(node, namespaceURI, openTagQualifiedName);
-
- //### ATTRIBUTES
- bool quickClose;
- p = parseAttributes(p, node, &quickClose);
- if (quickClose) //trivial tag: <name/>
- return p;
-
- p++; //skip over '>'
-
-
- DOMString nodeValue;
-
- /* ### Get intervening data ### */
- while (p<len && keepGoing)
- {
- //### COMMENT
- if (match(p, "<!--"))
- {
- CommentPtr comment = document->createComment("");
- p2 = parseComment(p, comment);
- if (p2 <= p)
- return p0;
- p = p2;
- if (parseAsData)
- { //throw away
- //delete comment;
- }
- else
- {
- node->appendChild(comment);
- }
- }
- //### VERSION
- else if (match(p, "<?xml"))
- {
- p2 = parseVersion(p);
- if (p2 <= p)
- return p0;
- }
- //### DOCTYPE
- else if (match(p, "<!DOCTYPE"))
- {
- p2 = parseDoctype(p);
- if (p2 <= p)
- return p0;
- }
- //### CDATA
- else if (match(p, "<![CDATA["))
- {
- CDATASectionPtr cdata = document->createCDATASection("");
- p2 = parseCDATA(p, cdata);
- if (p2 <= p)
- return p0;
- p = p2;
- if (parseAsData)
- {
- nodeValue += cdata->getNodeValue();
- //delete cdata;
- }
- else
- {
- node->appendChild(cdata);
- }
- }
- //### OPEN OR CLOSE TAG
- else if (peek(p) == '<')
- {
- p2 = skipwhite(p+1);
- if (peek(p2) =='/')
- {
- p = p2;
- break;
- }
- else
- {
- /*Add element to tree*/
- ElementPtr elem = document->createElement(""); //fill in name later
- node->appendChild(elem);
- p2 = parseNode(p, elem, depth+1);
- if (p2 <= p)
- {
- /*printf("problem on element:%ls. p2:%d p:%d\n",n->name, p2, p);*/
- return p0;
- }
- p = p2;
- }
- }
- //### TEXT
- else
- {
- TextPtr text = document->createTextNode("");
- p2 = parseText(p, text);
- if (p2 <= p)
- return p0;
- p = p2;
- if (parseAsData)
- {
- nodeValue += text->getNodeValue();
- //delete text;
- }
- else
- {
- node->appendChild(text);
- }
- }
-
- }//while (p<len)
-
- //printf("%d : nodeValue:'%s'\n", p, nodeValue.c_str());
- trim(nodeValue);
- node->setNodeValue(nodeValue);
-
- //### get close tag. we should be pointing at '/'
- p = skipwhite(p);
- ch = get(p);
- if (ch != '/')
- {
- error("no / on end tag");
- return p0;
- }
- p++;
-
- //### get word after '/'
- p = skipwhite(p);
- DOMString closeTagName;
- DOMString closeTagNamePrefix;
- DOMString closeTagQualifiedName;
- p = getPrefixedWord(p, closeTagNamePrefix, closeTagName,
- closeTagQualifiedName);
- if (openTagQualifiedName != closeTagQualifiedName)
- {
- error("Mismatched closing tag. Expected </%s>. Got '%s'.",
- openTagQualifiedName.c_str(), closeTagQualifiedName.c_str());
- return p0;
- }
- p = skipwhite(p);
- if (parsebuf[p] != '>')
- {
- error("no > on end tag");
- return p0;
- }
- p++;
- /*printf("close element:%ls\n",buf);*/
- return p;
-}
-
-
-/**
- *
- */
-org::w3c::dom::DocumentPtr
-XmlReader::parse(const DOMString &buf, int bufferOffset, int parseLen)
-{
- len = parseLen;
- parsebuf = buf;
-
- keepGoing = true;
-
- DOMImplementationSourceImpl source;
- DOMImplementation *domImpl = source.getDOMImplementation("");
-
- document = domImpl->createDocument("", "", NULL);
- //document = new svg::SVGDocumentImpl(domImpl, "", "", NULL);
-
- int p = bufferOffset;
- int p2 = 0;
-
- while (p<len && keepGoing)
- {
- p = skipwhite(p);
- //### COMMENT
- if (match(p, "<!--"))
- {
- CommentPtr comment = document->createComment("");
- p2 = parseComment(p, comment);
- if (p2 <= p)
- return document;
- p = p2;
- if (parseAsData)
- { //throw away
- //delete comment;
- }
- else
- {
- document->appendChild(comment);
- }
- }
- //### VERSION
- else if (match(p, "<?xml"))
- {
- p2 = parseVersion(p);
- if (p2 <= p)
- return document;
- p = p2;
- }
- //### DOCTYPE
- else if (match(p, "<!DOCTYPE"))
- {
- p2 = parseDoctype(p);
- if (p2 <= p)
- return document;
- p = p2;
- }
- else
- {
- break;
- }
- }
-
- p = skipwhite(p);
- p = parseNode(p, document->getDocumentElement(), 0);
-
- keepGoing = false;
-
- return document;
-}
-
-
-/**
- *
- */
-org::w3c::dom::DocumentPtr
-XmlReader::parse(const DOMString &str)
-{
-
- DocumentPtr doc = parse(str, 0, str.size());
- if (!doc)
- return doc;
- doc->normalizeDocument();
- return doc;
-}
-
-/**
- *
- */
-org::w3c::dom::DocumentPtr
-XmlReader::parseFile(const DOMString &fileName)
-{
- DocumentPtr doc;
-
- DOMString buf = loadFile(fileName);
- if (buf.size() == 0)
- return doc; /*doc still null*/
-
- doc = parse(buf, 0, buf.size());
-
- return doc;
-}
-
-
-
-//#########################################################################
-//# S T R E A M R E A D I N G
-//#########################################################################
-
-/**
- *
- */
-org::w3c::dom::DOMString
-XmlReader::loadFile(const DOMString &fileName)
-{
- DOMString buf;
-
- if (fileName.size() == 0)
- return buf;
- FILE *f = fopen(fileName.c_str(), "rb");
- if (!f)
- {
- //error here
- return buf;
- }
-
- while (!feof(f))
- {
- int ch = fgetc(f);
- if (ch<0)
- break;
- buf.push_back((XMLCh)ch);
- }
- fclose(f);
-
- return buf;
-}
-
-
-//#########################################################################
-//# C O N S T R U C T O R / D E S T R U C T O R
-//#########################################################################
-
-
-/**
- *
- */
-XmlReader::XmlReader() :
- document(),
- parsebuf(),
- keepGoing(false),
- parseAsData(false),
- pos(0),
- len(0),
- lineNr(1),
- colNr(0)
-{
-}
-
-/**
- *
- */
-XmlReader::XmlReader(bool parseAsDataArg) :
- document(),
- parsebuf(),
- keepGoing(false),
- parseAsData(parseAsDataArg),
- pos(0),
- len(0),
- lineNr(1),
- colNr(0)
-{
-}
-
-
-
-/**
- *
- */
-XmlReader::~XmlReader()
-{
-}
-
-
-} //namespace dom
-} //namespace w3c
-} //namespace org
-
-
-//#########################################################################
-//# E N D O F F I L E
-//#########################################################################
-
diff --git a/src/dom/xmlreader.h b/src/dom/xmlreader.h
deleted file mode 100644
index f45601d33..000000000
--- a/src/dom/xmlreader.h
+++ /dev/null
@@ -1,126 +0,0 @@
-#ifndef SEEN_XMLREADER_H
-#define SEEN_XMLREADER_H
-
-/**
- * Phoebe DOM Implementation.
- *
- * This is a C++ approximation of the W3C DOM model, which follows
- * fairly closely the specifications in the various .idl files, copies of
- * which are provided for reference. Most important is this one:
- *
- * http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/idl-definitions.html
- */
-/*
- * Authors:
- * Bob Jamison
- *
- * Copyright (C) 2005-2008 Bob Jamison
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#include "dom.h"
-
-namespace org
-{
-namespace w3c
-{
-namespace dom
-{
-
-
-
-class XmlReader
-{
-public:
-
- /**
- *
- */
- XmlReader();
-
- /**
- *
- */
- XmlReader(bool parseAsData);
-
- /**
- *
- */
- virtual ~XmlReader();
-
- /**
- *
- */
- org::w3c::dom::DocumentPtr parse(const DOMString &buf,
- int offset, int length);
-
- /**
- *
- */
- org::w3c::dom::DocumentPtr parse(const DOMString &buf);
-
- /**
- *
- */
- org::w3c::dom::DocumentPtr parseFile(const DOMString &fileName);
-
-
-private:
-
- void error(const char *format, ...)
- #ifdef G_GNUC_PRINTF
- G_GNUC_PRINTF(2, 3)
- #endif
- ;
-
- int get(int ch);
- int peek(int ch);
- bool match(int pos, char const *str);
-
- int skipwhite(int ch);
- int getWord(int pos, DOMString &result);
- int getPrefixedWord(int pos,
- DOMString &prefix,
- DOMString &shortWord,
- DOMString &fullWord);
- int getQuoted(int p, DOMString &result);
-
- int parseVersion(int pos);
- int parseDoctype(int pos);
- int parseCDATA (int pos, CDATASectionPtr cdata);
- int parseComment(int pos, CommentPtr comment);
- int parseText(int pos, TextPtr text);
- int parseEntity(int pos, DOMString &buf);
- int parseAttributes(int p0, NodePtr node, bool *quickClose);
- int parseNode(int p0, NodePtr node, int depth);
-
- DOMString loadFile(const DOMString &fileName);
-
- DocumentPtr document;
- DOMString parsebuf;
- bool keepGoing;
- bool parseAsData;
- int pos; //current parse position
- int len; //length of parsed region
- int lineNr;
- int colNr;
-};
-
-} //namespace dom
-} //namespace w3c
-} //namespace org
-
-#endif // SEEN_XMLREADER_H
diff --git a/src/dom/xmlwriter.cpp b/src/dom/xmlwriter.cpp
deleted file mode 100644
index 4fda5b5fe..000000000
--- a/src/dom/xmlwriter.cpp
+++ /dev/null
@@ -1,200 +0,0 @@
-/*
- * Phoebe DOM Implementation.
- *
- * This is a C++ approximation of the W3C DOM model, which follows
- * fairly closely the specifications in the various .idl files, copies of
- * which are provided for reference. Most important is this one:
- *
- * http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/idl-definitions.html
- *
- * Authors:
- * Bob Jamison
- *
- * Copyright (C) 2005-2008 Bob Jamison
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-
-
-
-#include <stdio.h>
-#include <stdarg.h>
-
-#include "xmlwriter.h"
-
-namespace org
-{
-namespace w3c
-{
-namespace dom
-{
-
-
-
-//#########################################################################
-//# O U T P U T
-//#########################################################################
-
-/**
- *
- */
-void XmlWriter::spaces()
-{
- for (int i=0 ; i<indent ; i++)
- {
- buf.push_back(' ');
- }
-}
-
-/**
- *
- */
-void XmlWriter::po(const char *fmt, ...)
-{
- char str[257];
- va_list args;
- va_start(args, fmt);
- vsnprintf(str, 256, fmt, args);
- va_end(args) ;
-
- buf.append(str);
-}
-
-
-void XmlWriter::pos(const DOMString &str)
-{
- buf.append(str);
-}
-
-/**
- *
- */
-void XmlWriter::write(const NodePtr nodeArg)
-{
- NodePtr node = nodeArg;
-
- indent+=2;
-
- NamedNodeMap attributes = node->getAttributes();
- int nrAttrs = attributes.getLength();
-
- //### Start open tag
- spaces();
- po("<");
- pos(node->getNodeName());
- if (nrAttrs>0)
- po("\n");
-
- //### Attributes
- for (int i=0 ; i<nrAttrs ; i++)
- {
- NodePtr attr = attributes.item(i);
- spaces();
- pos(attr->getNodeName());
- po("=\"");
- pos(attr->getNodeValue());
- po("\"\n");
- }
-
- //### Finish open tag
- if (nrAttrs>0)
- spaces();
- po(">\n");
-
- //### Contents
- spaces();
- pos(node->getNodeValue());
-
- //### Children
- for (NodePtr child = node->getFirstChild() ;
- child.get() ;
- child=child->getNextSibling())
- {
- write(child);
- }
-
- //### Close tag
- spaces();
- po("</");
- pos(node->getNodeName());
- po(">\n");
-
- indent-=2;
-}
-
-
-/**
- *
- */
-void XmlWriter::writeFile(FILE *f, const NodePtr node)
-{
- if (!node)
- {
- po("XmlWriter: NULL document\n");
- return;
- }
-
- indent = 0;
-
- //po("Document\n");
-
- buf = "";
-
- write(node);
-
- for (unsigned int i=0 ; i<buf.size() ; i++)
- {
- int ch = buf[i];
- fputc(ch, f);
- }
- fflush(f);
-
- buf = "";
-
-}
-
-
-
-//#########################################################################
-//# C O N S T R U C T O R / D E S T R U C T O R
-//#########################################################################
-
-/**
- *
- */
-XmlWriter::XmlWriter() :
- indent(0),
- buf()
-{
-}
-
-/**
- *
- */
-XmlWriter::~XmlWriter()
-{
-}
-
-
-
-} //namespace dom
-} //namespace w3c
-} //namespace org
-
-//#########################################################################
-//# E N D O F F I L E
-//#########################################################################
-
diff --git a/src/dom/xmlwriter.h b/src/dom/xmlwriter.h
deleted file mode 100644
index ada0be04c..000000000
--- a/src/dom/xmlwriter.h
+++ /dev/null
@@ -1,84 +0,0 @@
-#ifndef SEEN_XMLWRITER_H
-#define SEEN_XMLWRITER_H
-
-/**
- * @file
- * Phoebe DOM Implementation.
- *
- * This is a C++ approximation of the W3C DOM model, which follows
- * fairly closely the specifications in the various .idl files, copies of
- * which are provided for reference. Most important is this one:
- *
- * http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/idl-definitions.html
- */
-/*
- * Authors:
- * Bob Jamison
- *
- * Copyright (C) 2005-2008 Bob Jamison
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-
-#include "dom.h"
-#include <stdio.h>
-#include <glib.h>
-
-
-namespace org
-{
-namespace w3c
-{
-namespace dom
-{
-
-
-
-class XmlWriter
-{
-public:
- XmlWriter();
- virtual ~XmlWriter();
- void write(const NodePtr node);
- void writeFile(FILE *f, const NodePtr node);
-
-
-protected:
- void spaces();
- void po(const char *str, ...) G_GNUC_PRINTF(2,3);
- void pos(const DOMString &str);
-
- int indent;
- DOMString buf;
-};
-
-
-} //namespace dom
-} //namespace w3c
-} //namespace org
-
-
-
-
-
-
-
-#endif // SEEN_XMLWRITER_H
-
-
-
-
-
diff --git a/src/dom/xpath.h b/src/dom/xpath.h
deleted file mode 100644
index ce5b88f7f..000000000
--- a/src/dom/xpath.h
+++ /dev/null
@@ -1,351 +0,0 @@
-#ifndef SEEN_XPATH_H
-#define SEEN_XPATH_H
-
-/**
- * @file
- * Phoebe DOM Implementation.
- *
- * This is a C++ approximation of the W3C DOM model, which follows
- * fairly closely the specifications in the various .idl files, copies of
- * which are provided for reference. Most important is this one:
- *
- * http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/idl-definitions.html
- */
-/*
- * Authors:
- * Bob Jamison
- *
- * Copyright (C) 2005 Bob Jamison
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-
-#include "dom.h"
-
-
-namespace org
-{
-namespace w3c
-{
-namespace dom
-{
-namespace xpath
-{
-
-
-
-typedef dom::DOMString DOMString;
-typedef dom::Node Node;
-typedef dom::DOMObject DOMObject;
-typedef dom::Element Element;
-
-
-class XPathNSResolver;
-class XPathExpression;
-class XPathResult;
-
-/*#########################################################################
-## XPathException
-#########################################################################*/
-/**
- * Maybe this should inherit from DOMException?
- */
-class XPathException
-{
-
-public:
-
- XPathException(const DOMString &reasonMsg)
- { msg = reasonMsg; }
-
- XPathException(short theCode)
- {
- code = theCode;
- }
-
- virtual ~XPathException() throw()
- {}
-
- /**
- *
- */
- unsigned short code;
-
- /**
- *
- */
- DOMString msg;
-
- /**
- * Get a string, translated from the code.
- * Like std::exception. Not in spec.
- */
- const char *what()
- { return msg.c_str(); }
-
-
-
-};
-
-
-/**
- * XPathExceptionCode
- */
-typedef enum
-{
- INVALID_EXPRESSION_ERR = 51,
- TYPE_ERR = 52
-} XPathExceptionCode;
-
-
-/*#########################################################################
-## XPathEvaluator
-#########################################################################*/
-
-/**
- *
- */
-class XPathEvaluator
-{
-public:
-
- /**
- *
- */
- virtual XPathExpression *createExpression(
- const DOMString &expression,
- const XPathNSResolver *resolver)
- throw (XPathException, dom::DOMException) =0;
-
- /**
- *
- */
- virtual XPathNSResolver *createNSResolver(const Node *nodeResolver) =0;
-
- /**
- *
- */
- virtual XPathResult *evaluate(
- const DOMString &expression,
- const Node *contextNode,
- const XPathNSResolver *resolver,
- const unsigned short type,
- const XPathResult *result)
- throw (XPathException, dom::DOMException) =0;
-
- //###################
- //# Non-API methods
- //###################
-
- /**
- *
- */
- virtual ~XPathEvaluator() {}
-
-};
-
-/*#########################################################################
-## XPathExpression
-#########################################################################*/
-
-/**
- *
- */
-class XPathExpression
-{
-public:
-
-
- /**
- *
- */
- virtual XPathResult *evaluate(
- const Node *contextNode,
- unsigned short type,
- const XPathResult *result)
- throw (XPathException, dom::DOMException) =0;
-
-
- //###################
- //# Non-API methods
- //###################
-
- /**
- *
- */
- virtual ~XPathExpression() {}
-
-};
-
-/*#########################################################################
-## XPathNSResolver
-#########################################################################*/
-
-/**
- *
- */
-class XPathNSResolver
-{
-public:
-
- /**
- *
- */
- virtual DOMString lookupNamespaceURI(const DOMString &prefix) =0;
-
-
- //###################
- //# Non-API methods
- //###################
-
- /**
- *
- */
- virtual ~XPathNSResolver() {}
-
-};
-
-/*#########################################################################
-## XPathResult
-#########################################################################*/
-
-/**
- *
- */
-class XPathResult
-{
-public:
-
- // XPathResultType
- typedef enum
- {
- ANY_TYPE = 0,
- NUMBER_TYPE = 1,
- STRING_TYPE = 2,
- BOOLEAN_TYPE = 3,
- UNORDERED_NODE_ITERATOR_TYPE = 4,
- ORDERED_NODE_ITERATOR_TYPE = 5,
- UNORDERED_NODE_SNAPSHOT_TYPE = 6,
- ORDERED_NODE_SNAPSHOT_TYPE = 7,
- ANY_UNORDERED_NODE_TYPE = 8,
- FIRST_ORDERED_NODE_TYPE = 9
- } XPathResultType;
-
-
- /**
- *
- */
- virtual unsigned short getResultType() throw (XPathException) =0;
-
- /**
- *
- */
- virtual double getNumberValue() throw (XPathException) =0;
-
- /**
- *
- */
- virtual DOMString getStringValue() throw (XPathException) =0;
-
- /**
- *
- */
- virtual bool getBooleanValue() throw (XPathException) =0;
-
- /**
- *
- */
- virtual Node *getSingleNodeValue() throw (XPathException) =0;
-
- /**
- *
- */
- virtual bool getInvalidIteratorState() throw (XPathException) =0;
-
- /**
- *
- */
- virtual unsigned long getSnapshotLength() throw (XPathException) =0;
-
- /**
- *
- */
- virtual Node *iterateNext() throw (XPathException, dom::DOMException) =0;
-
- /**
- *
- */
- virtual Node *snapshotItem(unsigned long index) throw (XPathException) =0;
-
- //###################
- //# Non-API methods
- //###################
-
- /**
- *
- */
- virtual ~XPathResult() {}
-
-};
-
-/*#########################################################################
-## XPathNamespace
-#########################################################################*/
-class XPathNamespace : virtual public Node
-{
-public:
-
- typedef enum
- {
- XPATH_NAMESPACE_NODE = 13
- } XPathNodeType;
-
- /**
- *
- */
- virtual Element *getOwnerElement() = 0;
-
-
- //###################
- //# Non-API methods
- //###################
-
- /**
- *
- */
- virtual ~XPathNamespace() {}
-
-};
-
-
-
-
-
-} //namespace xpath
-} //namespace dom
-} //namespace w3c
-} //namespace org
-
-
-
-
-#endif // SEEN_XPATH_H
-/*#########################################################################
-## E N D O F F I L E
-#########################################################################*/
-
-
-
diff --git a/src/dom/xpathimpl.cpp b/src/dom/xpathimpl.cpp
deleted file mode 100644
index 12e1d8cf4..000000000
--- a/src/dom/xpathimpl.cpp
+++ /dev/null
@@ -1,236 +0,0 @@
-/*
- * Phoebe DOM Implementation.
- *
- * This is a C++ approximation of the W3C DOM model, which follows
- * fairly closely the specifications in the various .idl files, copies of
- * which are provided for reference. Most important is this one:
- *
- * http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/idl-definitions.html
- *
- * Authors:
- * Bob Jamison
- *
- * Copyright (C) 2005-2008 Bob Jamison
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-
-#include "xpathimpl.h"
-
-
-namespace org
-{
-namespace w3c
-{
-namespace dom
-{
-namespace xpath
-{
-
-
-/*#########################################################################
-## XPathEvaluatorImpl
-#########################################################################*/
-
-/**
- *
- */
-XPathExpression *XPathEvaluatorImpl::createExpression(
- const DOMString &/*expression*/,
- const XPathNSResolver */*resolver*/)
- throw (XPathException, dom::DOMException)
-{
- return NULL;
-}
-
-
-/**
- *
- */
-XPathNSResolver *XPathEvaluatorImpl::createNSResolver(const Node */*nodeResolver*/)
-{
- return NULL;
-}
-
-
-/**
- *
- */
-XPathResult *XPathEvaluatorImpl::evaluate(
- const DOMString &/*expression*/,
- const Node */*contextNode*/,
- const XPathNSResolver */*resolver*/,
- const unsigned short /*type*/,
- const XPathResult */*result*/)
- throw (XPathException, dom::DOMException)
-{
- return NULL;
-}
-
-
-//###################
-//# Non-API methods
-//###################
-
-
-
-/*#########################################################################
-## XPathExpressionImpl
-#########################################################################*/
-
-
-
-/**
- *
- */
-XPathResult *XPathExpressionImpl::evaluate(
- const Node */*contextNode*/,
- unsigned short /*type*/,
- const XPathResult */*result*/)
- throw (XPathException, dom::DOMException)
-{
- return NULL;
-}
-
-
-
-/*#########################################################################
-## XPathNSResolverImpl
-#########################################################################*/
-
-
-/**
- *
- */
-DOMString XPathNSResolverImpl::lookupNamespaceURI(const DOMString &/*prefix*/)
-{
- return "";
-}
-
-
-
-
-/*#########################################################################
-## XPathResultImpl
-#########################################################################*/
-
-
-
-/**
- *
- */
-unsigned short XPathResultImpl::getResultType() throw (XPathException)
-{
- return 0;
-}
-
-/**
- *
- */
-double XPathResultImpl::getNumberValue() throw (XPathException)
-{
- return 0.0;
-}
-
-
-/**
- *
- */
-DOMString XPathResultImpl::getStringValue() throw (XPathException)
-{
- return "";
-}
-
-/**
- *
- */
-bool XPathResultImpl::getBooleanValue() throw (XPathException)
-{
- return false;
-}
-
-/**
- *
- */
-Node *XPathResultImpl::getSingleNodeValue() throw (XPathException)
-{
- return NULL;
-}
-
-/**
- *
- */
-bool XPathResultImpl::getInvalidIteratorState() throw (XPathException)
-{
- return false;
-}
-
-/**
- *
- */
-unsigned long XPathResultImpl::getSnapshotLength() throw (XPathException)
-{
- return 0L;
-}
-
-/**
- *
- */
-Node *XPathResultImpl::iterateNext() throw (XPathException, dom::DOMException)
-{
- return NULL;
-}
-
-/**
- *
- */
-Node *XPathResultImpl::snapshotItem(unsigned long /*index*/) throw (XPathException)
-{
- return NULL;
-}
-
-
-
-/*#########################################################################
-## XPathNamespaceImpl
-#########################################################################*/
-
-
-/**
- *
- */
-Element *XPathNamespaceImpl::getOwnerElement()
-{
- return NULL;
-}
-
-
-
-
-} //namespace xpath
-} //namespace dom
-} //namespace w3c
-} //namespace org
-
-
-
-
-/*#########################################################################
-## E N D O F F I L E
-#########################################################################*/
-
-
-
diff --git a/src/dom/xpathimpl.h b/src/dom/xpathimpl.h
deleted file mode 100644
index 82b5c48f8..000000000
--- a/src/dom/xpathimpl.h
+++ /dev/null
@@ -1,265 +0,0 @@
-#ifndef SEEN_XPATHIMPL_H
-#define SEEN_XPATHIMPL_H
-
-/**
- * @file
- * Phoebe DOM Implementation.
- *
- * This is a C++ approximation of the W3C DOM model, which follows
- * fairly closely the specifications in the various .idl files, copies of
- * which are provided for reference. Most important is this one:
- *
- * http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/idl-definitions.html
- */
-/*
- * Authors:
- * Bob Jamison
- *
- * Copyright (C) 2005 Bob Jamison
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-
-#include "xpath.h"
-#include "domimpl.h"
-
-
-namespace org
-{
-namespace w3c
-{
-namespace dom
-{
-namespace xpath
-{
-
-
-/*#########################################################################
-## XPathEvaluatorImpl
-#########################################################################*/
-
-/**
- *
- */
-class XPathEvaluatorImpl : public XPathEvaluator
-{
-public:
-
- /**
- *
- */
- virtual XPathExpression *createExpression(
- const DOMString &expression,
- const XPathNSResolver *resolver)
- throw (XPathException, dom::DOMException);
-
- /**
- *
- */
- virtual XPathNSResolver *createNSResolver(const Node *nodeResolver);
-
- /**
- *
- */
- virtual XPathResult *evaluate(
- const DOMString &expression,
- const Node *contextNode,
- const XPathNSResolver *resolver,
- const unsigned short type,
- const XPathResult *result)
- throw (XPathException, dom::DOMException);
-
- //###################
- //# Non-API methods
- //###################
-
- /**
- *
- */
- virtual ~XPathEvaluatorImpl() {}
-
-};
-
-/*#########################################################################
-## XPathExpressionImpl
-#########################################################################*/
-
-/**
- *
- */
-class XPathExpressionImpl : public XPathExpression
-{
-public:
-
-
- /**
- *
- */
- virtual XPathResult *evaluate(const Node *contextNode,
- unsigned short type,
- const XPathResult *result)
- throw (XPathException, dom::DOMException);
-
-
- //###################
- //# Non-API methods
- //###################
-
- /**
- *
- */
- virtual ~XPathExpressionImpl() {}
-
-};
-
-/*#########################################################################
-## XPathNSResolverImpl
-#########################################################################*/
-
-/**
- *
- */
-class XPathNSResolverImpl : public XPathNSResolver
-{
-public:
-
- /**
- *
- */
- virtual DOMString lookupNamespaceURI(const DOMString &prefix);
-
-
- //###################
- //# Non-API methods
- //###################
-
- /**
- *
- */
- virtual ~XPathNSResolverImpl() {}
-
-};
-
-/*#########################################################################
-## XPathResultImpl
-#########################################################################*/
-
-/**
- *
- */
-class XPathResultImpl : public XPathResult
-{
-public:
-
- /**
- *
- */
- virtual unsigned short getResultType() throw (XPathException);
-
- /**
- *
- */
- virtual double getNumberValue() throw (XPathException);
-
- /**
- *
- */
- virtual DOMString getStringValue() throw (XPathException);
-
- /**
- *
- */
- virtual bool getBooleanValue() throw (XPathException);
-
- /**
- *
- */
- virtual Node *getSingleNodeValue() throw (XPathException);
-
- /**
- *
- */
- virtual bool getInvalidIteratorState() throw (XPathException);
-
- /**
- *
- */
- virtual unsigned long getSnapshotLength() throw (XPathException);
-
- /**
- *
- */
- virtual Node *iterateNext() throw (XPathException, dom::DOMException);;
-
- /**
- *
- */
- virtual Node *snapshotItem(unsigned long index) throw (XPathException);
-
- //###################
- //# Non-API methods
- //###################
-
- /**
- *
- */
- virtual ~XPathResultImpl() {}
-
-};
-
-/*#########################################################################
-## XPathNamespaceImpl
-#########################################################################*/
-class XPathNamespaceImpl : public XPathNamespace, public NodeImpl
-{
-public:
-
- /**
- *
- */
- virtual Element *getOwnerElement() = 0;
-
-
- //###################
- //# Non-API methods
- //###################
-
- /**
- *
- */
- virtual ~XPathNamespaceImpl() {}
-
-};
-
-
-
-
-
-} //namespace xpath
-} //namespace dom
-} //namespace w3c
-} //namespace org
-
-
-
-
-#endif /* __XPATHIMPL_H__ */
-/*#########################################################################
-## E N D O F F I L E
-#########################################################################*/
-
-
-
diff --git a/src/dom/xpathparser.cpp b/src/dom/xpathparser.cpp
deleted file mode 100644
index 4785ce93f..000000000
--- a/src/dom/xpathparser.cpp
+++ /dev/null
@@ -1,2093 +0,0 @@
-/*
- * Phoebe DOM Implementation.
- *
- * This is a C++ approximation of the W3C DOM model, which follows
- * fairly closely the specifications in the various .idl files, copies of
- * which are provided for reference. Most important is this one:
- *
- * http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/idl-definitions.html
- *
- * Authors:
- * Bob Jamison
- *
- * Copyright (C) 2006-2007 Bob Jamison
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#include "ucd.h"
-#include "xpathparser.h"
-#include <cstdlib>
-
-namespace org
-{
-namespace w3c
-{
-namespace dom
-{
-namespace xpath
-{
-
-
-//#########################################################################
-//# M E S S A G E S
-//#########################################################################
-
-
-
-void XPathParser::trace(const char *fmt, ...)
-{
- if (!debug)
- return;
-
- FILE *f = stdout;
-
- va_list args;
- va_start(args, fmt);
- fprintf(f, "XPathParser: ");
- vfprintf(f, fmt, args);
- fprintf(f, "\n");
- va_end(args);
-}
-
-
-
-void XPathParser::error(const char *fmt, ...)
-{
- FILE *f = stdout;
- va_list args;
- va_start(args, fmt);
- fprintf(f, "XPathParser ERROR: ");
- vfprintf(f, fmt, args);
- fprintf(f, "\n");
- va_end(args);
-
- //Print location in string
- fprintf(f, "%s\n", parsebuf);
- for (int i=0 ; i<position ; i++)
- fprintf(f, " ");
- fprintf(f, "^\n");
-}
-
-
-
-void XPathParser::traceStack(const char *name, int pos, int depth)
-{
- if (!debug)
- return;
- return;
- int indent = depth;
-
- for (int i=0 ; i<indent ; i++)
- fprintf(stdout, " ");
- fprintf(stdout, "%d %d %s\n", pos, depth, name);
-
-}
-
-
-//#########################################################################
-//# L E X I C A L S C A N N I N G
-//#########################################################################
-
-void XPathParser::lexTokAdd(int type, int loc)
-{
- LexTok tok(type, loc);
- lexicalTokens.push_back(tok);
-}
-
-void XPathParser::lexTokAdd(int type, int loc, const DOMString &val)
-{
- LexTok tok(type, loc, val);
- lexicalTokens.push_back(tok);
-}
-
-void XPathParser::lexTokAdd(int type, int loc, double val)
-{
- LexTok tok(type, loc, val);
- lexicalTokens.push_back(tok);
-}
-
-void XPathParser::lexTokAdd(int type, int loc, long val)
-{
- LexTok tok(type, loc, val);
- lexicalTokens.push_back(tok);
-}
-
-void XPathParser::lexicalTokenDump()
-{
- printf("####### LEXICAL TOKENS #######\n");
- for (unsigned int i=0 ; i<lexicalTokens.size() ; i++)
- {
- printf("%u : ", i);
- lexicalTokens[i].print();
- }
- printf("##### END LEXICAL TOKENS #####\n\n");
-}
-
-
-
-LexTok XPathParser::lexTok(int p)
-{
- if (p < 0 || p>=(int)lexicalTokens.size())
- {
- LexTok tok;
- return tok;
- }
- return lexicalTokens[p];
-}
-
-int XPathParser::lexTokType(int p)
-{
- if (p < 0 || p>=(int)lexicalTokens.size())
- return -1;
- return lexicalTokens[p].getType();
-}
-
-
-
-
-
-
-
-
-int XPathParser::peek(int p)
-{
- if (p >= parselen)
- return -1;
- position = p;
- return parsebuf[p] ;
-}
-
-
-int XPathParser::get(int p)
-{
- if (p >= parselen)
- return -1;
- position = p;
- return parsebuf[p];
-}
-
-int XPathParser::skipwhite(int p0)
-{
- int p = p0;
-
- while (p < parselen)
- {
- int ch = peek(p);
- if (!uni_is_space(ch))
- break;
- ch = get(p++);
- }
- return p;
-}
-
-int XPathParser::getword(int p0, DOMString &str)
-{
- int p = p0;
- while (p < parselen)
- {
- int ch = peek(p);
- if (!uni_is_letter_or_digit(ch))
- break;
- ch = get(p++);
- str.push_back((XMLCh)ch);
- }
- return p;
-}
-
-int XPathParser::match(int p, const char *str)
-{
- while (*str)
- {
- if (p >= parselen)
- return -1;
- if (parsebuf[p] != *str)
- return -1;
- p++; str++;
- }
- return p;
-}
-
-
-
-
-int XPathParser::getNumber(int p0, double &dresult)
-{
- int p = p0;
- if (p >= parselen)
- {
- return p0;/*need at least x*/
- }
-
- bool isdouble = false;
-
- int ch = parsebuf[p];
- if (ch=='-')
- {
- p++;
- if (p >= parselen) return p0;
- }
-
- bool seen_dot = false;
- bool seen_e = false;
- bool seen_eminus = false;
-
- DOMString num;
-
- int i = p;
- while (i < parselen)
- {
- ch = parsebuf[i];
- if (ch=='.')
- {
- if (seen_dot)
- return p0;
- seen_dot = true;
- isdouble = true;
- }
- else if (ch=='e' || ch=='E')
- {
- if (seen_e || !seen_dot)
- return p0;
- seen_e = true;
- }
- else if (ch=='-' && seen_e)
- {
- if (seen_eminus || !seen_dot)
- return p0;
- seen_eminus = true;
- }
- else if (!uni_is_digit(ch))
- break;
- num.push_back((XMLCh)ch);
- i++;
- }
-
- if (i == p)/*no digits*/
- return p0;
- if (isdouble)
- {
- const char *begin = num.c_str();
- char *end;
- dresult = strtod(begin,&end);
- if (!end)/*not a number?*/
- {
- error("Error formatting double: %s\n", num.c_str());
- return p0;
- }
- }
- else
- {
- const char *begin = num.c_str();
- char *end;
- dresult = (double)strtol(begin,&end,10);
- if (!end)/*not a number?*/
- {
- error("Error formatting integer: %s\n", num.c_str());
- return p0;
- }
- }
- p = i;
- return p;
-}
-
-
-
-int XPathParser::getLiteral(int p0, DOMString &result)
-{
- int p = p0;
- int ch = peek(p);
- int quotechar = 0;
- if (ch == '"' || ch == '\'')
- {
- quotechar = ch;
- }
- else
- return p0;
- p++;
- while (true)
- {
- if (p >= parselen)
- {
- error("Unterminated literal string");
- return -1;
- }
- ch = peek(p);
- if (ch == quotechar)
- break;
- result.push_back((XMLCh)ch);
- p++;
- }
- p++; //skip over closing "
- return p;
-}
-
-
-
-/**
- * NCName is a 'non-colonized' name
- */
-int XPathParser::getNCName(int p0, DOMString &result)
-{
- int p = p0;
- int ch = peek(p);
- if (ch != '_' && !uni_is_letter(ch))
- return p0;
-
- result.push_back((XMLCh)ch);
- p++;
- while (p < parselen)
- {
- ch = peek(p);
- if ( uni_is_letter_or_digit(ch) ||
- // isCombiningChar(ch) ||
- // isExtender(ch) ||
- ch == '.' || ch == '-' || ch == '_' )
- {
- result.push_back((XMLCh)ch);
- p++;
- }
- else
- break;
- }
- return p;
-}
-
-
-
-/**
- * Name parsing with post-parsing
- */
-int XPathParser::getNameTest(int p0, DOMString &result)
-{
- int p = p0;
- int ch = peek(p);
- if (ch == '*')
- {
- result.push_back((XMLCh)ch);
- p++;
- return p;
- }
-
- DOMString ncName;
- int p2 = getNCName(p, ncName);
- if (p2 <= p)
- return p0;
-
- result = ncName;
- p = p2;
-
- ch = peek(p);
- if (ch != ':' )//short name. we are done
- {
- return p;
- }
-
- if (peek(p+1) == ':') //was name:: which is ok
- return p;
-
- result.push_back(':');
-
- p++;
- ch = peek(p);
- if (ch == '*')
- {
- result.push_back((XMLCh)ch);
- p++;
- return p;
- }
-
- DOMString ncName2;
- p2 = getNCName(p, ncName2);
- if (p2 <= p)
- {
- if (peek(p) == ':') //was name:: which is ok
- return p0;
- error("Nothing after ':' in QName");
- return -1;
- }
-
- result.append(ncName2);
-
- p = p2;
-
- return p;
-}
-
-
-
-int XPathParser::lexicalScan()
-{
- lexicalTokens.clear();
-
- int p = 0;
- int p2 = p;
-
- while (p < parselen)
- {
- p2 = skipwhite(p);
- p = p2;
-
- //trace("nextChar:%c", peek(p));
- bool selected = false;
-
- //### LITERAL EXPR TOKENS
- for (int i=2 ; i<=10 ; i++)
- {
- p2 = match(p, exprTokenTable[i].sval);
- if (p2 > p)
- {
- lexTokAdd(exprTokenTable[i].ival, p);
- p = p2;
- selected = true;
- break;
- }
- }
- if (selected)
- continue;
-
- //### OPERATORS
- for (LookupEntry *entry = operatorTable; entry->sval ; entry++)
- {
- p2 = match(p, entry->sval);
- if (p2 > p)
- {
- long op = (long)entry->ival;
- //according to the disambiguating rule for * in the spec
- if (op == MULTIPLY && !lexicalTokens.empty())
- {
- int ltyp = lexTokType(lexicalTokens.size()-1);
- if (ltyp != AMPR && ltyp != DOUBLE_COLON &&
- ltyp != LPAREN && ltyp != RBRACKET &&
- ltyp != COMMA && ltyp != OPERATOR )
- {
- lexTokAdd(OPERATOR, p, (long)entry->ival);
- p = p2;
- selected = true;
- break;
- }
- }
- else
- {
- lexTokAdd(OPERATOR, p, (long)entry->ival);
- p = p2;
- selected = true;
- break;
- }
- }
- }
- if (selected)
- continue;
-
- //### NODE TYPES
- for (LookupEntry *entry = nodeTypeTable; entry->sval ; entry++)
- {
- p2 = match(p, entry->sval);
- if (p2 > p)
- {
- lexTokAdd(NODE_TYPE, p, (long)entry->ival);
- p = p2;
- selected = true;
- break;
- }
- }
- if (selected)
- continue;
-
- //### AXIS NAMES
- for (LookupEntry *entry = axisNameTable; entry->sval ; entry++)
- {
- p2 = match(p, entry->sval);
- if (p2 > p)
- {
- lexTokAdd(AXIS_NAME, p, (long)entry->ival);
- p = p2;
- selected = true;
- break;
- }
- }
- if (selected)
- continue;
-
- //### NAME TEST
- DOMString ntResult;
- p2 = getNameTest(p, ntResult);
- if (p2 > p)
- {
- int p3 = skipwhite(p2);
- if (peek(p3) == '(')
- lexTokAdd(FUNCTION_NAME, p, ntResult);
- else
- lexTokAdd(NAME_TEST, p, ntResult);
- p = p2;
- selected = true;
- }
- if (selected)
- continue;
-
- //### VARIABLE REFERENCE
- if (peek(p) == '$')
- {
- p++;
- DOMString qnResult;
- p2 = getNCName(p, qnResult);
- if (p2 > p)
- {
- lexTokAdd(VARIABLE_REFERENCE, p, qnResult);
- p = p2;
- selected = true;
- }
- else
- {
- error("Variable referenced with '$' requires a qualified name\n");
- return -1;
- }
- }
- if (selected)
- continue;
-
- //### NUMBER
- double numval;
- p2 = getNumber(p, numval);
- if (p2 > p)
- {
- lexTokAdd(NUMBER, p, numval);
- p = p2;
- selected = true;
- }
- if (selected)
- continue;
-
- //### LITERAL
- DOMString strval;
- p2 = getLiteral(p, strval);
- if (p2 > p)
- {
- lexTokAdd(LITERAL, p, strval);
- p = p2;
- selected = true;
- }
- if (selected)
- continue;
-
- //### CHAR (default, none of the above)
- lexTokAdd(CHAR, p, (long) peek(p));
- p++;
-
- }//while p
-
-
- return p;
-}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-//#########################################################################
-//# X P A T H G R A M M A R P A R S I N G
-//#########################################################################
-
-//## Various shorthand methods to add a token to the list
-void XPathParser::tokAdd(const Token &tok)
-{
- tokens.add(tok);
-}
-
-void XPathParser::tokAdd(int type)
-{
- tokens.add(Token::create(type));
-}
-
-void XPathParser::tokAdd(int type, long val)
-{
- tokens.add(Token::create(type, val));
-}
-
-void XPathParser::tokAdd(int type, double val)
-{
- tokens.add(Token::create(type, val));
-}
-
-void XPathParser::tokAdd(int type, const DOMString &val)
-{
- tokens.add(Token::create(type, val));
-}
-
-
-
-
-
-//########################################
-//# Grammar - specific parsing
-//########################################
-
-/**
- * [1] LocationPath ::=
- * RelativeLocationPath
- * | AbsoluteLocationPath
- */
-int XPathParser::getLocationPath(int p0, int depth)
-{
- traceStack("getLocationPath", p0, depth);
- int p = p0;
-
- p = skipwhite(p);
-
- int p2 = getAbsoluteLocationPath(p, depth+1);
- if (p2 > p)
- {
- tokAdd(Token::TOK_ABSOLUTE);
- return p2;
- }
-
- p2 = getRelativeLocationPath(p, depth+1);
- if (p2 > p)
- {
- tokAdd(Token::TOK_RELATIVE);
- return p2;
- }
-
- return p0;
-}
-
-
-/**
- * [2] AbsoluteLocationPath ::=
- * '/' RelativeLocationPath?
- * | AbbreviatedAbsoluteLocationPath
- */
-int XPathParser::getAbsoluteLocationPath(int p0, int depth)
-{
- traceStack("getAbsoluteLocationPath", p0, depth);
-
- int p = p0;
- LexTok t = lexTok(p);
- if (t.getType() == OPERATOR && t.getIntValue()==SLASH)
- {
- p++;
- int p2 = getRelativeLocationPath(p, depth+1);
- if (p2 <= p)
- {
- error("Relative path after '/'");
- return -1;
- }
- p = p2;
- return p;
- }
-
- //AbbreviatedAbsoluteLocationPath
- if (t.getType() == OPERATOR && t.getIntValue()==DOUBLE_SLASH)
- {
- p++;
- int p2 = getRelativeLocationPath(p, depth+1);
- if (p2 <= p)
- {
- error("Relative path after '//'");
- return -1;
- }
- p = p2;
- return p;
- }
-
-
- return p0;
-}
-
-
-/**
- * [3] RelativeLocationPath ::=
- * Step
- * | RelativeLocationPath '/' Step
- * | AbbreviatedRelativeLocationPath
- */
-int XPathParser::getRelativeLocationPath(int p0, int depth)
-{
- traceStack("getRelativeLocationPath", p0, depth);
- int p = p0;
- int p2 = getStep(p, depth+1);
- if (p2 < 0)
- return -1;
- if (p2 > p)
- {
- p = p2;
- LexTok t = lexTok(p);
- if (t.getType() == OPERATOR && t.getIntValue()==SLASH)
- {
- p++;
- p2 = getRelativeLocationPath(p, depth+1);
- if (p2 < 0)
- {
- error("Relative path after '/'");
- return -1;
- }
- p = p2;
- return p;
- }
- //AbbreviatedRelativeLocationPath
- if (t.getType() == OPERATOR && t.getIntValue()==DOUBLE_SLASH)
- {
- p++;
- // a '//' is an abbreviation for /descendant-or-self:node()/
- tokAdd(Token::TOK_AXIS_DESCENDANT_OR_SELF);
- p2 = getRelativeLocationPath(p, depth+1);
- if (p2 < 0)
- {
- error("Relative path after '//'");
- return -1;
- }
- p = p2;
- return p;
- }
- return p;
- }
-
-
- return p0;
-}
-
-
-/**
- * [4] Step ::=
- * AxisSpecifier NodeTest Predicate*
- * | AbbreviatedStep
- */
-int XPathParser::getStep(int p0, int depth)
-{
- traceStack("getStep", p0, depth);
-
- int p = p0;
-
- lexTok(p).print();
-
- //This can be (and usually is) 0-length
- int p2 = getAxisSpecifier(p, depth+1);
- if (p2 < 0)
- {
- error("Axis specifier in step section");
- return -1;
- }
- p = p2;
- p2 = getNodeTest(p, depth+1);
- if (p2 < 0)
- {
- error("Node test in step section");
- return -1;
- }
-
- if (p2 > p)
- {
- p = p2;
- p2 = getPredicate(p, depth+1);
- if (p2 < 0)
- {
- error("Predicate in step section");
- return -1;
- }
- p = p2;
- return p;
- }
-
- //AbbreviatedStep
- if (lexTokType(p) == DOT)
- {
- p++;
- return p;
- }
-
- //AbbreviatedStep
- if (lexTokType(p) == DOUBLE_DOT)
- {
- p++;
- return p;
- }
-
- return p0;
-}
-
-
-/**
- * [5] AxisSpecifier ::=
- * AxisName '::'
- * | AbbreviatedAxisSpecifier
- */
-int XPathParser::getAxisSpecifier(int p0, int depth)
-{
- traceStack("getAxisSpecifier", p0, depth);
- int p = p0;
- if (lexTokType(p) == AXIS_NAME)
- {
- LexTok t = lexTok(p);
- int axisType = t.getIntValue();
- p++;
- if (lexTokType(p) != DOUBLE_COLON)
- {
- error("'::' required after axis name literal");
- return -1;
- }
- p++;
- switch (axisType)
- {
- case ANCESTOR_OR_SELF:
- tokAdd(Token::TOK_AXIS_ANCESTOR_OR_SELF);
- break;
- case ANCESTOR:
- tokAdd(Token::TOK_AXIS_ANCESTOR);
- break;
- case ATTRIBUTE:
- tokAdd(Token::TOK_AXIS_ATTRIBUTE);
- break;
- case CHILD:
- tokAdd(Token::TOK_AXIS_CHILD);
- break;
- case DESCENDANT_OR_SELF:
- tokAdd(Token::TOK_AXIS_DESCENDANT_OR_SELF);
- break;
- case DESCENDANT:
- tokAdd(Token::TOK_AXIS_DESCENDANT);
- break;
- case FOLLOWING_SIBLING:
- tokAdd(Token::TOK_AXIS_FOLLOWING_SIBLING);
- break;
- case FOLLOWING:
- tokAdd(Token::TOK_AXIS_FOLLOWING);
- break;
- case NAMESPACE:
- tokAdd(Token::TOK_AXIS_NAMESPACE);
- break;
- case PARENT:
- tokAdd(Token::TOK_AXIS_PARENT);
- break;
- case PRECEDING_SIBLING:
- tokAdd(Token::TOK_AXIS_PRECEDING_SIBLING);
- break;
- case PRECEDING:
- tokAdd(Token::TOK_AXIS_PRECEDING);
- break;
- case SELF:
- tokAdd(Token::TOK_AXIS_SELF);
- break;
- default:
- {
- error("unknown axis type %d", axisType);
- return -1;
- }
- }
- return p;
- }
-
- //AbbreviatedAxisSpecifier
- if (lexTokType(p) == AMPR)
- {
- p++;
- return p;
- }
-
- return p0;
-}
-
-
-/**
- * [6] AxisName ::=
- * 'ancestor'
- * | 'ancestor-or-self'
- * | 'attribute'
- * | 'child'
- * | 'descendant'
- * | 'descendant-or-self'
- * | 'following'
- * | 'following-sibling'
- * | 'namespace'
- * | 'parent'
- * | 'preceding'
- * | 'preceding-sibling'
- * | 'self'
- * NOTE: This definition, and those at the bottom, is not
- * needed. Its functionality is handled by lexical scanning.
- * It is left here for reference.
- */
-int XPathParser::getAxisName(int p0, int depth)
-{
- traceStack("getAxisName", p0, depth);
- return p0;
-}
-
-
-/**
- * [7] NodeTest ::=
- * NameTest
- * | NodeType '(' ')'
- * | 'processing-instruction' '(' Literal ')'
- */
-int XPathParser::getNodeTest(int p0, int depth)
-{
- traceStack("getNodeTest", p0, depth);
- int p = p0;
-
- LexTok t = lexTok(p);
- if (t.getType() == NAME_TEST)
- {
- p++;
- tokAdd(Token::TOK_NAME_TEST, t.getStringValue());
- return p;
- }
- if (t.getType() == NODE_TYPE)
- {
- if (t.getIntValue() == PROCESSING_INSTRUCTION)
- {
- if (lexTokType(p) != LPAREN ||
- lexTokType(p+1) != LITERAL ||
- lexTokType(p+2) != RPAREN )
- {
- error("processing instruction requires (\"literal string\")");
- return -1;
- }
- p += 3;
- }
- else
- {
- if (lexTokType(p+1) != LPAREN ||
- lexTokType(p+2) != RPAREN )
- {
- error("processing instruction requires ()");
- return -1;
- }
- p += 2;
- }
- return p;
- }
-
- return p0;
-}
-
-
-/**
- * [8] Predicate ::=
- * '[' PredicateExpr ']'
- */
-int XPathParser::getPredicate(int p0, int depth)
-{
- traceStack("getPredicate", p0, depth);
-
- int p = p0;
- if (lexTokType(p) != LBRACKET)
- return p0;
-
- p++;
- int p2 = getPredicateExpr(p, depth+1);
- if (p2 <= p)
- {
- error("Predicate expression in predicate");
- return -1;
- }
-
- p = p2;
- lexTok(p).print();
- if (lexTokType(p) != RBRACKET)
- {
- error("Predicate expression requires closing ']'");
- return -1;
- }
- p++;
- return p;
-}
-
-
-/**
- * [9] PredicateExpr ::=
- * Expr
- */
-int XPathParser::getPredicateExpr(int p0, int depth)
-{
- traceStack("getPredicateExpr", p0, depth);
- int p = p0;
- int p2 = getExpr(p, depth+1);
- if (p2 < 0)
- {
- error("Expression in predicate expression");
- return -1;
- }
- p = p2;
- return p;
-}
-
-
-/**
- * [10] AbbreviatedAbsoluteLocationPath ::=
- * '//' RelativeLocationPath
- * NOTE: not used. handled in getAbsoluteLocationPath()
- */
-int XPathParser::getAbbreviatedAbsoluteLocationPath(int p0, int depth)
-{
- traceStack("getAbbreviatedAbsoluteLocationPath", p0, depth);
-
- return p0;
-}
-
-/**
- * [11] AbbreviatedRelativeLocationPath ::=
- * RelativeLocationPath '//' Step
- * NOTE: not used. handled in getRelativeLocationPath()
- */
-int XPathParser::getAbbreviatedRelativeLocationPath(int p0, int depth)
-{
- traceStack("getAbbreviatedRelativeLocationPath", p0, depth);
- return p0;
-}
-
-/**
- * [12] AbbreviatedStep ::=
- * '.'
- * | '..'
- * NOTE: not used. handled in getStep()
- */
-int XPathParser::getAbbreviatedStep(int p0, int depth)
-{
- traceStack("getAbbreviatedStep", p0, depth);
- return p0;
-}
-
-
-/**
- * [13] AbbreviatedAxisSpecifier ::=
- * '@'?
- * NOTE: not used. handled in getAxisSpecifier()
- */
-int XPathParser::getAbbreviatedAxisSpecifier(int p0, int depth)
-{
- traceStack("getAbbreviatedAxisSpecifier", p0, depth);
- return p0;
-}
-
-
-/**
- * [14] Expr ::=
- * OrExpr
- */
-int XPathParser::getExpr(int p0, int depth)
-{
- traceStack("getExpr", p0, depth);
-
- int p = p0;
-
- int p2 = getOrExpr(p, depth+1);
- if (p2 < 0)
- {
- error("OR expression in expression");
- return -1;
- }
- p = p2;
-
- return p;
-}
-
-
-/**
- * [15] PrimaryExpr ::=
- * VariableReference
- * | '(' Expr ')'
- * | Literal
- * | Number
- * | FunctionCall
- */
-int XPathParser::getPrimaryExpr(int p0, int depth)
-{
- traceStack("getPrimaryExpr", p0, depth);
- int p = p0;
- int p2 = p;
-
- if (lexTokType(p) == VARIABLE_REFERENCE)
- {
- p++;
- return p;
- }
-
- if (lexTokType(p) == LPAREN)
- {
- p++;
- p2 = getExpr(p, depth+1);
- if (p2 <= p)
- {
- error("Expression in primary expression");
- return -1;
- }
- p += p2;
- if (lexTokType(p) != RPAREN)
- {
- error("Primary expression requires closing ')'");
- return -1;
- }
- }
-
- if (lexTokType(p) == LITERAL)
- {
- tokAdd(Token::TOK_STR, lexTok(p).getStringValue());
- p++;
- return p;
- }
-
- if (lexTokType(p) == NUMBER)
- {
- tokAdd(Token::TOK_FLOAT, lexTok(p).getDoubleValue());
- p++;
- return p;
- }
-
- p2 = getFunctionCall(p, depth+1);
- if (p2 < 0)
- {
- error("Function call in primary expression");
- return -1;
- }
- if (p2 > p)
- {
- p = p2;
- return p;
- }
-
- return p0;
-}
-
-
-/**
- * [16] FunctionCall ::=
- * FunctionName '(' ( Argument ( ',' Argument )* )? ')'
- */
-int XPathParser::getFunctionCall(int p0, int depth)
-{
- traceStack("getFunctionCall", p0, depth);
- int p = p0;
-
- if (lexTokType(p) != FUNCTION_NAME)
- {
- return p0;
- }
-
- DOMString name = lexTok(p).getStringValue();
-
- p++;
-
- if (lexTokType(p) != LPAREN) //this makes a function
- {
- return p0;
- }
- p++;
-
- int p2 = getArgument(p, depth+1);
- if (p2 < 0)
- {
- error("Error in function argument");
- return -1;
- }
- if (p2 > p)
- {
- int argCount = 1;
- p = p2;
- while (lexTokType(p) == COMMA)
- {
- p++;
- p2 = getArgument(p, depth+1);
- if (p2 <= p)
- {
- error("Error in function argument");
- return -1;
- }
- if (p2 > p)
- argCount++;
- //do we add a token here? i dont think so
- p = p2;
- }
- }
-
- if (lexTokType(p) != RPAREN) //mandatory
- {
- error("Function requires closing ')'");
- return -1;
- }
- p++;
-
- // Function names from http://www.w3.org/TR/xpath#NT-FunctionName
- if (name == "last")
- tokAdd(Token::TOK_FUNC_LAST);
- else if (name == "position")
- tokAdd(Token::TOK_FUNC_POSITION);
- else if (name == "count")
- tokAdd(Token::TOK_FUNC_COUNT);
- else if (name == "id")
- tokAdd(Token::TOK_FUNC_ID);
- else if (name == "local-name")
- tokAdd(Token::TOK_FUNC_LOCAL_NAME);
- else if (name == "namespace-uri")
- tokAdd(Token::TOK_FUNC_NAMESPACE_URI);
- else if (name == "name")
- tokAdd(Token::TOK_FUNC_NAME);
- else if (name == "string")
- tokAdd(Token::TOK_FUNC_STRING);
- else if (name == "concat")
- tokAdd(Token::TOK_FUNC_CONCAT);
- else if (name == "starts-with")
- tokAdd(Token::TOK_FUNC_STARTS_WITH);
- else if (name == "contains")
- tokAdd(Token::TOK_FUNC_CONTAINS);
- else if (name == "substring-before")
- tokAdd(Token::TOK_FUNC_SUBSTRING_BEFORE);
- else if (name == "substring-after")
- tokAdd(Token::TOK_FUNC_SUBSTRING_AFTER);
- else if (name == "substring")
- tokAdd(Token::TOK_FUNC_SUBSTRING);
- else if (name == "string-length")
- tokAdd(Token::TOK_FUNC_STRING_LENGTH);
- else if (name == "normalize-space")
- tokAdd(Token::TOK_FUNC_NORMALIZE_SPACE);
- else if (name == "translate")
- tokAdd(Token::TOK_FUNC_TRANSLATE);
- else if (name == "boolean")
- tokAdd(Token::TOK_FUNC_BOOLEAN);
- else if (name == "not")
- tokAdd(Token::TOK_FUNC_NOT);
- else if (name == "true")
- tokAdd(Token::TOK_FUNC_TRUE);
- else if (name == "false")
- tokAdd(Token::TOK_FUNC_FALSE);
- else if (name == "lang")
- tokAdd(Token::TOK_FUNC_LANG);
- else if (name == "number")
- tokAdd(Token::TOK_FUNC_NUMBER);
- else if (name == "sum")
- tokAdd(Token::TOK_FUNC_SUM);
- else if (name == "floor")
- tokAdd(Token::TOK_FUNC_FLOOR);
- else if (name == "ceiling")
- tokAdd(Token::TOK_FUNC_CEILING);
- else if (name == "round")
- tokAdd(Token::TOK_FUNC_ROUND);
- else
- {
- error("unknown function name:'%s'", name.c_str());
- return -1;
- }
- return p;
-}
-
-
-/**
- * [17] Argument ::=
- * Expr
- */
-int XPathParser::getArgument(int p0, int depth)
-{
- traceStack("getArgument", p0, depth);
- int p = p0;
- int p2 = getExpr(p, depth+1);
- if (p2 < 0)
- {
- error("Argument expression");
- return -1;
- }
- p = p2;
- return p;
-}
-
-
-/**
- * [18] UnionExpr ::=
- * PathExpr
- * | UnionExpr '|' PathExpr
- */
-int XPathParser::getUnionExpr(int p0, int depth)
-{
- traceStack("getUnionExpr", p0, depth);
- int p = p0;
- int p2 = getPathExpr(p, depth+1);
- if (p2 < 0)
- {
- error("Path expression for union");
- return -1;
- }
- p = p2;
- LexTok t = lexTok(p);
- if (t.getType() == OPERATOR && t.getIntValue() == PIPE)
- {
- p++;
- p2 = getUnionExpr(p, depth+1);
- if (p2 < 0)
- {
- error("OR (|) requires union expression on the left");
- return -1;
- }
- tokAdd(Token::TOK_UNION);
- p = p2;
- }
- return p;
-}
-
-
-/**
- * [19] PathExpr ::=
- * LocationPath
- * | FilterExpr
- * | FilterExpr '/' RelativeLocationPath
- * | FilterExpr '//' RelativeLocationPath
- */
-int XPathParser::getPathExpr(int p0, int depth)
-{
- traceStack("getPathExpr", p0, depth);
- int p = p0;
- int p2;
-
- p2 = getLocationPath(p, depth+1);
- if (p2 < 0)
- {
- error("Location path in path expression");
- return -1;
- }
- if (p2 > p)
- {
- p = p2;
- return p;
- }
-
- p2 = getFilterExpr(p, depth+1);
- if (p2 < 0)
- {
- error("Filter expression in path expression");
- return -1;
- }
- if (p2 <= p)
- return p0;
- p = p2;
-
- LexTok t = lexTok(p);
- if (t.getType() == OPERATOR && t.getIntValue() == SLASH)
- {
- p++;
- p2 = getRelativeLocationPath(p, depth+1);
- if (p2 < 0)
- {
- error("Relative location after / in path expression");
- return -1;
- }
- p = p2;
- return p;
- }
-
- if (t.getType() == OPERATOR && t.getIntValue() == DOUBLE_SLASH)
- {
- p++;
- p2 = getRelativeLocationPath(p, depth+1);
- if (p2 < 0)
- {
- error("Relative location after // in path expression");
- return -1;
- }
- p = p2;
- return p;
- }
- return p;
-}
-
-
-/**
- * [20] FilterExpr ::=
- * PrimaryExpr
- * | FilterExpr Predicate
- */
-int XPathParser::getFilterExpr(int p0, int depth)
-{
- traceStack("getFilterExpr", p0, depth);
- int p = p0;
-
- int p2 = getPrimaryExpr(p, depth+1);
- if (p2 < 0)
- {
- error("Primary expression in path expression");
- return -1;
- }
- if (p2 > p)
- {
- p = p2;
- while (true)
- {
- p2 = getPredicate(p, depth+1);
- if (p2 < 0)
- {
- error("Predicate in primary expression");
- return -1;
- }
- if (p2 > p)
- {
- p = p2;
- }
- else
- break;
- }
- return p;
- }
-
- return p0;
-}
-
-
-/**
- * [21] OrExpr ::=
- * AndExpr
- * | OrExpr 'or' AndExpr
- */
-int XPathParser::getOrExpr(int p0, int depth)
-{
- traceStack("getOrExpr", p0, depth);
- int p = p0;
- int p2 = getAndExpr(p, depth+1);
- if (p2 < 0)
- {
- error("AND expression in OR expression");
- return -1;
- }
- if (p2 > p)
- {
- p = p2;
- LexTok t = lexTok(p);
- if (t.getType() == OPERATOR && t.getIntValue() == OR)
- {
- p++;
- p2 = getAndExpr(p, depth+1);
- if (p2 <= p)
- {
- error("AND expression in OR expression");
- return -1;
- }
- p = p2;
- return p;
- }
- tokAdd(Token::TOK_OR);
- return p;
- }
-
- return p0;
-}
-
-
-/**
- * [22] AndExpr ::=
- * EqualityExpr
- * | AndExpr 'and' EqualityExpr
- */
-int XPathParser::getAndExpr(int p0, int depth)
-{
- traceStack("getAndExpr", p0, depth);
- int p = p0;
- int p2 = getEqualityExpr(p, depth+1);
- if (p2 < 0)
- {
- error("Equality expression in AND expression");
- return -1;
- }
- if (p2 > p)
- {
- p = p2;
- LexTok t = lexTok(p);
- if (t.getType() == OPERATOR && t.getIntValue() == AND)
- {
- p++;
- p2 = getAndExpr(p, depth+1);
- if (p2 <= p)
- {
- error("AND expression after 'and'");
- return -1;
- }
- p = p2;
- return p;
- }
- tokAdd(Token::TOK_AND);
- return p;
- }
-
- return p0;
-}
-
-
-/**
- * [23] EqualityExpr ::=
- * RelationalExpr
- * | EqualityExpr '=' RelationalExpr
- * | EqualityExpr '!=' RelationalExpr
- */
-int XPathParser::getEqualityExpr(int p0, int depth)
-{
- traceStack("getEqualityExpr", p0, depth);
- int p = p0;
- int p2 = getRelationalExpr(p, depth+1);
- if (p2 < 0)
- {
- error("Relation expression in equality expression");
- return -1;
- }
- if (p2 > p)
- {
- p = p2;
- LexTok t = lexTok(p);
- if (t.getType() == OPERATOR && t.getIntValue() == EQUALS)
- {
- p++;
- p2 = getEqualityExpr(p, depth+1);
- if (p2 <= p)
- {
- error("Equality expression expected after ==");
- return -1;
- }
- tokAdd(Token::TOK_EQUALS);
- p = p2;
- return p;
- }
-
- if (t.getType() == OPERATOR && t.getIntValue() == NOT_EQUALS)
- {
- p++;
- p2 = getEqualityExpr(p, depth+1);
- if (p2 <= p)
- {
- error("Equality expression expected after !=");
- return -1;
- }
- tokAdd(Token::TOK_NOT_EQUALS);
- p = p2;
- return p;
- }
-
- return p;
- }
-
- return p0;
-}
-
-
-/**
- * [24] RelationalExpr ::=
- * AdditiveExpr
- * | RelationalExpr '<' AdditiveExpr
- * | RelationalExpr '>' AdditiveExpr
- * | RelationalExpr '<=' AdditiveExpr
- * | RelationalExpr '>=' AdditiveExpr
- */
-int XPathParser::getRelationalExpr(int p0, int depth)
-{
- traceStack("getRelationalExpr", p0, depth);
- int p = p0;
- int p2 = getAdditiveExpr(p, depth+1);
- if (p2 < 0)
- {
- error("Additive expression in relational expression");
- return -1;
- }
- if (p2 > p)
- {
- p = p2;
- LexTok t = lexTok(p);
-
- if (t.getType() == OPERATOR && t.getIntValue() == GREATER_THAN)
- {
- p++;
- p2 = getRelationalExpr(p, depth+1);
- if (p2 <= p)
- {
- error("Relational expression after '>'");
- return -1;
- }
- tokAdd(Token::TOK_GREATER_THAN);
- p = p2;
- return p;
- }
- if (t.getType() == OPERATOR && t.getIntValue() == LESS_THAN)
- {
- p++;
- p2 = getRelationalExpr(p, depth+1);
- if (p2 <= p)
- {
- error("Relational expression after '<'");
- return -1;
- }
- tokAdd(Token::TOK_LESS_THAN);
- p = p2;
- return p;
- }
- if (t.getType() == OPERATOR && t.getIntValue() == GREATER_THAN_EQUALS)
- {
- p++;
- p2 = getRelationalExpr(p, depth+1);
- if (p2 <= p)
- {
- error("Relational expression after '>='");
- return -1;
- }
- tokAdd(Token::TOK_GREATER_THAN_EQUALS);
- p = p2;
- return p;
- }
- if (t.getType() == OPERATOR && t.getIntValue() == LESS_THAN_EQUALS)
- {
- p++;
- p2 = getRelationalExpr(p, depth+1);
- if (p2 <= p)
- {
- error("Relational expression after '<='");
- return -1;
- }
- tokAdd(Token::TOK_LESS_THAN_EQUALS);
- p = p2;
- return p;
- }
-
-
- return p;
- }
-
- return p0;
-}
-
-
-/**
- * [25] AdditiveExp ::=
- * MultiplicativeExpr
- * | AdditiveExpr '+' MultiplicativeExpr
- * | AdditiveExpr '-' MultiplicativeExpr
- */
-int XPathParser::getAdditiveExpr(int p0, int depth)
-{
- traceStack("getAdditiveExpr", p0, depth);
- int p = p0;
- int p2 = getMultiplicativeExpr(p, depth+1);
- if (p2 < 0)
- {
- error("Multiplicative expression in additive expression");
- return -1;
- }
- if (p2 > p)
- {
- p = p2;
- LexTok t = lexTok(p);
-
- if (t.getType() == OPERATOR && t.getIntValue() == PLUS)
- {
- p++;
- p2 = getAdditiveExpr(p, depth+1);
- if (p2 <= p)
- {
- error("Additive expression after '+'");
- return -1;
- }
- tokAdd(Token::TOK_MINUS);
- p = p2;
- return p;
- }
- if (t.getType() == OPERATOR && t.getIntValue() == MINUS)
- {
- p++;
- p2 = getAdditiveExpr(p, depth+1);
- if (p2 <= p)
- {
- error("Additive expression after '-'");
- return -1;
- }
- tokAdd(Token::TOK_MINUS);
- p = p2;
- return p;
- }
-
-
- return p;
- }
-
- return p0;
-}
-
-
-/**
- * [26] MultiplicativeExpr ::=
- * UnaryExpr
- * | MultiplicativeExpr MultiplyOperator UnaryExpr
- * | MultiplicativeExpr 'div' UnaryExpr
- * | MultiplicativeExpr 'mod' UnaryExpr
- */
-int XPathParser::getMultiplicativeExpr(int p0, int depth)
-{
- traceStack("getMultiplicativeExpr", p0, depth);
- int p = p0;
- int p2 = getUnaryExpr(p, depth+1);
- if (p2 < 0)
- {
- error("Unary expression in multiplicative expression");
- return -1;
- }
- if (p2 > p)
- {
- p = p2;
- LexTok t = lexTok(p);
-
- if (t.getType() == OPERATOR && t.getIntValue() == MULTIPLY)
- {
- p++;
- p2 = getMultiplicativeExpr(p, depth+1);
- if (p2 <= p)
- {
- error("Multiplicative expression after '*'");
- return -1;
- }
- tokAdd(Token::TOK_MUL);
- p = p2;
- return p;
- }
-
- if (t.getType() == OPERATOR && t.getIntValue() == DIV)
- {
- p++;
- p2 = getMultiplicativeExpr(p, depth+1);
- if (p2 <= p)
- {
- error("Multiplicative expression after 'div'");
- return -1;
- }
- tokAdd(Token::TOK_DIV);
- p = p2;
- return p;
- }
-
- if (t.getType() == OPERATOR && t.getIntValue() == MOD)
- {
- p++;
- p2 = getMultiplicativeExpr(p, depth+1);
- if (p2 <= p)
- {
- error("Multiplicative expression after 'mod'");
- return -1;
- }
- tokAdd(Token::TOK_MOD);
- p = p2;
- return p;
- }
-
-
- return p;
- }
-
- return p0;
-}
-
-
-/**
- * [27] UnaryExpr ::=
- * UnionExpr
- * | '-' UnaryExpr
- */
-int XPathParser::getUnaryExpr(int p0, int depth)
-{
- traceStack("getUnaryExpr", p0, depth);
- int p = p0;
- int p2 = getUnionExpr(p, depth+1);
- if (p2 < 0)
- {
- error("Union expression in unary expression");
- return -1;
- }
- if (p2 > p)
- {
- p = p2;
- return p;
- }
-
- if (lexTokType(p) == '-')
- {
- p++;
- p2 = getUnaryExpr(p, depth+1);
- if (p2 < 0)
- {
- error("Unary expression after '-'");
- return -1;
- }
- tokAdd(Token::TOK_NEG);
- p = p2;
- return p;
- }
-
- return p0;
-}
-
-
-//######################################################
-//# NOT USED!!!
-//## The grammar definitions below are
-//## handled by lexical parsing, and will not be used
-//######################################################
-
-/**
- * [28] ExprToken ::=
- * '(' | ')' | '[' | ']' | '.' | '..' | '@' | ',' | '::'
- * | NameTest
- * | NodeType
- * | Operator
- * | FunctionName
- * | AxisName
- * | Literal
- * | Number
- * | VariableReference
- */
-int XPathParser::getExprToken(int p0, int depth)
-{
- traceStack("getExprToken", p0, depth);
- return p0;
-}
-
-
-/**
- * [29] Literal ::=
- * '"' [^"]* '"'
- * | "'" [^']* "'"
- */
-int XPathParser::getLiteral(int p0, int depth)
-{
- traceStack("getLiteral", p0, depth);
- return p0;
-}
-
-
-/**
- * [30] Number ::=
- * Digits ('.' Digits?)?
- * | '.' Digits
- */
-int XPathParser::getNumber(int p0, int depth)
-{
- traceStack("getNumber", p0, depth);
- return p0;
-}
-
-
-/**
- * [31] Digits ::=
- * [0-9]+
- */
-int XPathParser::getDigits(int p0, int depth)
-{
- traceStack("getDigits", p0, depth);
- return p0;
-}
-
-
-/**
- * [32] Operator ::=
- * OperatorName
- * | MultiplyOperator
- * | '/' | '//' | '|' | '+' | '-' | '='
- * | '!=' | '<' | '<=' | '>' | '>='
- */
-int XPathParser::getOperator(int p0, int depth)
-{
- traceStack("getOperator", p0, depth);
- return p0;
-}
-
-
-/**
- * [33] OperatorName ::=
- * 'and' | 'or' | 'mod' | 'div'
- */
-int XPathParser::getOperatorName(int p0, int depth)
-{
- traceStack("getOperatorName", p0, depth);
- return p0;
-}
-
-
-/**
- * [34] MultiplyOperator ::=
- * '*'
- */
-int XPathParser::getMultiplyOperator(int p0, int depth)
-{
- traceStack("getMultiplyOperator", p0, depth);
- return p0;
-}
-
-
-/**
- * [35] FunctionName ::=
- * QName - NodeType
- */
-int XPathParser::getFunctionName(int p0, int depth)
-{
- traceStack("getFunctionName", p0, depth);
- return p0;
-}
-
-
-/**
- * [36] VariableReference ::=
- * '$' QName
- */
-int XPathParser::getVariableReference(int p0, int depth)
-{
- traceStack("getVariableReference", p0, depth);
- return p0;
-}
-
-
-/**
- * [37] NameTest ::=
- * '*'
- * | NCName ':' '*'
- * | QName
- */
-int XPathParser::getNameTest(int p0, int depth)
-{
- traceStack("getNameTest", p0, depth);
- return p0;
-}
-
-
-/**
- * [38] NodeType ::=
- * 'comment'
- * | 'text'
- * | 'processing-instruction'
- * | 'node'
- */
-int XPathParser::getNodeType(int p0, int depth)
-{
- traceStack("getNodeType", p0, depth);
- return p0;
-}
-
-
-/**
- * [39] ExprWhitespace ::=
- * S
- */
-int XPathParser::getExprWhitespace(int p0, int depth)
-{
- traceStack("getExprWhitespace", p0, depth);
- return p0;
-}
-
-
-
-
-
-//#########################################################################
-//# H I G H L E V E L P A R S I N G
-//#########################################################################
-
-/**
- * Parse a candidate XPath string. Leave a copy in 'tokens.'
- */
-bool XPathParser::parse(const DOMString &xpathString)
-{
- int p0 = 0;
-
- DOMString str = xpathString;
-
- parsebuf = (char *)str.c_str();
- parselen = (int) str.size();
- position = 0;
-
- trace("## parsing string: '%s'", parsebuf);
-
- lexicalScan();
- lexicalTokenDump();
-
- tokens.clear();//Get ready to store new tokens
-
- int p = getLocationPath(p0, 0);
-
- parsebuf = NULL;
- parselen = 0;
-
- if (p <= p0)
- {
- //return false;
- }
-
- return true;
-}
-
-
-
-
-
-//#########################################################################
-//# E V A L U A T E
-//#########################################################################
-
-
-
-
-/**
- * This wraps the two-step call to parse(), then execute() to get a NodeList
- * of matching DOM nodes
- */
-NodeList XPathParser::evaluate(const NodePtr root,
- const DOMString &xpathString)
-{
- NodeList list;
-
- //### Maybe do caching for speed here
-
- //### Parse and execute
- //### Error message can be generated as a side effect
- if (!parse(xpathString))
- return list;
-
- if (debug)
- tokens.dump();
-
- //### Execute the token list
- TokenExecutor executor;
- NodeList results;
- if (!executor.execute(tokens, root, results))
- {
- //error
- }
-
- return results;
-}
-
-
-
-} // namespace xpath
-} // namespace dom
-} // namespace w3c
-} // namespace org
-//#########################################################################
-//# E N D O F F I L E
-//#########################################################################
-
-
-
-
diff --git a/src/dom/xpathparser.h b/src/dom/xpathparser.h
deleted file mode 100644
index 7e5f774f1..000000000
--- a/src/dom/xpathparser.h
+++ /dev/null
@@ -1,801 +0,0 @@
-#ifndef SEEN_XPATHPARSER_H
-#define SEEN_XPATHPARSER_H
-
-/**
- * @file
- * Phoebe DOM Implementation.
- *
- * This is a C++ approximation of the W3C DOM model, which follows
- * fairly closely the specifications in the various .idl files, copies of
- * which are provided for reference. Most important is this one:
- *
- * http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/idl-definitions.html
- */
-/*
- * Authors:
- * Bob Jamison
- *
- * Copyright (C) 2005-2007 Bob Jamison
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-
-#include <stdio.h>
-#include <stdarg.h>
-
-#include <string>
-#include <vector>
-
-#include "dom.h"
-#include "xpathtoken.h"
-
-namespace org
-{
-namespace w3c
-{
-namespace dom
-{
-namespace xpath
-{
-
-typedef dom::DOMString DOMString;
-typedef dom::Node Node;
-typedef dom::NodeList NodeList;
-
-
-
-//########################################################################
-//# L E X I C A L D E F I N I T I O N S
-//########################################################################
-
-
-typedef struct
-{
- int ival;
- char const *sval;
-} LookupEntry;
-
-
-
-//Note: in the following definitions, where the starts of
-//strings are similar, put the longer definitions first
-
-/**
- *
- */
-typedef enum
-{
- COMMENT,
- TEXT,
- PROCESSING_INSTRUCTION,
- NODE
-} NodeType;
-
-
-static LookupEntry nodeTypeTable [] =
-{
- { COMMENT, "comment" },
- { TEXT, "text" },
- { PROCESSING_INSTRUCTION, "processing-instruction" },
- { NODE, "node" },
- { -1, NULL }
-};
-
-
-/**
- *
- */
-typedef enum
-{
- ANCESTOR_OR_SELF,
- ANCESTOR,
- ATTRIBUTE,
- CHILD,
- DESCENDANT_OR_SELF,
- DESCENDANT,
- FOLLOWING_SIBLING,
- FOLLOWING,
- NAMESPACE,
- PARENT,
- PRECEDING_SIBLING,
- PRECEDING,
- SELF
-} AxisNameType;
-
-
-static LookupEntry axisNameTable [] =
-{
- { ANCESTOR_OR_SELF, "ancestor-or-self" },
- { ANCESTOR, "ancestor" },
- { ATTRIBUTE, "attribute" },
- { CHILD, "child" },
- { DESCENDANT_OR_SELF, "descendant-or-self"},
- { DESCENDANT, "descendant" },
- { FOLLOWING_SIBLING, "following-sibling" },
- { FOLLOWING, "following" },
- { NAMESPACE, "namespace" },
- { PARENT, "parent" },
- { PRECEDING_SIBLING, "preceding-sibling" },
- { PRECEDING, "preceding" },
- { SELF, "self" },
- { -1, NULL }
-};
-
-
-/**
- *
- */
-typedef enum
-{
- NONE = 0,
- CHAR, //default if none of the below
- //Expr tokens
- LPAREN,
- RPAREN,
- LBRACKET,
- RBRACKET,
- DOUBLE_DOT,
- DOT,
- AMPR,
- COMMA,
- DOUBLE_COLON,
- NAME_TEST,
- NODE_TYPE,
- OPERATOR,
- FUNCTION_NAME,
- AXIS_NAME,
- LITERAL,
- NUMBER,
- VARIABLE_REFERENCE,
- //Operator tokens
- AND,
- OR,
- MOD,
- DIV,
- MULTIPLY,
- DOUBLE_SLASH,
- SLASH,
- PIPE,
- PLUS,
- MINUS,
- EQUALS,
- NOT_EQUALS,
- LESS_THAN_EQUALS,
- LESS_THAN,
- GREATER_THAN_EQUALS,
- GREATER_THAN
-} LexTokType;
-
-
-/*
-* Be VERY careful that this table matches the LexicalTokenType enum
-* declaration above.
-*/
-static LookupEntry exprTokenTable [] =
-{
- { NONE, "xxNONExx" },
- { CHAR, "CHAR" },
- //Expr tokens
- { LPAREN, "(" },
- { RPAREN, ")" },
- { LBRACKET, "[" },
- { RBRACKET, "]" },
- { DOUBLE_DOT, ".." },
- { DOT, "." },
- { AMPR, "@" },
- { COMMA, "," },
- { DOUBLE_COLON, "::" },
- { NAME_TEST, "NameTest" },
- { NODE_TYPE, "NodeType" },
- { OPERATOR, "Operator" },
- { FUNCTION_NAME, "FunctionName" },
- { AXIS_NAME, "AxisName" },
- { LITERAL, "Literal" },
- { NUMBER, "Number" },
- { VARIABLE_REFERENCE, "VariableReference" },
- { -1, NULL }
-};
-
-static LookupEntry operatorTable [] =
-{
- { NONE, "xxNONExx" },
- //Operator tokens
- { AND, "and" },
- { OR, "or" },
- { MOD, "mod" },
- { DIV, "div" },
- { MULTIPLY, "*" },
- { DOUBLE_SLASH, "//" },
- { SLASH, "/" },
- { PIPE, "|" },
- { PLUS, "+" },
- { MINUS, "-" },
- { EQUALS, "=" },
- { NOT_EQUALS, "!=" },
- { LESS_THAN_EQUALS, "<=" },
- { LESS_THAN, "<" },
- { GREATER_THAN_EQUALS, ">=" },
- { GREATER_THAN, ">" },
- { -1, NULL }
-};
-
-
-/**
- *
- */
-class LexTok
-{
-public:
- LexTok(const LexTok &tok)
- {
- type = tok.type;
- location = tok.location;
- sval = tok.sval;
- dval = tok.dval;
- ival = tok.ival;
- }
- LexTok()
- { init(); }
- LexTok(int theType, int loc)
- { init(); type = theType; location = loc;}
- LexTok(int theType, int loc, const DOMString &val)
- { init(); type = theType; location = loc; sval = val; }
- LexTok(int theType, int loc, double val)
- { init(); type = theType; location = loc; dval = val; }
- LexTok(int theType, int loc, long val)
- { init(); type = theType; location = loc; ival = val; }
-
- void print()
- {
- if (type == OPERATOR)
- {
- char const *tokenStr = "unknown";
- for (LookupEntry const *entry = operatorTable; entry->sval ; entry++)
- {
- if (entry->ival == ival)
- {
- tokenStr = entry->sval;
- break;
- }
- }
- printf("(%s)\n", tokenStr);
- }
- else if (type == NODE_TYPE)
- {
- char const *tokenStr = "unknown";
- for (LookupEntry *entry = nodeTypeTable; entry->sval ; entry++)
- {
- if (entry->ival == ival)
- {
- tokenStr = entry->sval;
- break;
- }
- }
- printf("{{%s}}\n", tokenStr);
- }
- else if (type == AXIS_NAME)
- {
- char const *tokenStr = "unknown";
- for (LookupEntry *entry = axisNameTable; entry->sval ; entry++)
- {
- if (entry->ival == ival)
- {
- tokenStr = entry->sval;
- break;
- }
- }
- printf("{%s}\n", tokenStr);
- }
- else if (type == CHAR)
- printf("'%c'\n", (char)ival);
- else if (type == NAME_TEST)
- printf("\"%s\"\n", sval.c_str());
- else if (type == LITERAL)
- printf("L'%s'\n", sval.c_str());
- else if (type == FUNCTION_NAME)
- printf("%s()\n", sval.c_str());
- else if (type == NUMBER)
- printf("#%f\n", dval);
- else
- {
- char const *tokenStr = "unknown";
- for (LookupEntry *entry = exprTokenTable; entry->sval ; entry++)
- {
- if (entry->ival == type)
- {
- tokenStr = entry->sval;
- break;
- }
- }
- printf("%s\n", tokenStr);
- //printf("%s [%s/%f/%ld]\n", tokenStr, sval.c_str(), dval, ival);
- }
- }
-
- int getType()
- { return type; }
- int getLocation()
- { return location; }
- DOMString &getStringValue()
- { return sval; }
- double getDoubleValue()
- { return dval; }
- long getIntValue()
- { return ival; }
-
-private:
- void init()
- {
- type = NONE;
- location = 0;
- dval = 0.0;
- ival = 0;
- }
-
- int type;
- int location;
- DOMString sval;
- double dval;
- long ival;
-};
-
-
-
-
-
-//########################################################################
-//# P A R S E R
-//########################################################################
-
-class XPathParser
-{
-public:
-
- //#################################
- //# CONSTRUCTOR
- //#################################
-
- /**
- *
- */
- XPathParser() :
- debug(false),
- parsebuf(0),
- parselen(0),
- position(0),
- numberString(),
- number(0),
- lexicalTokens(),
- tokens()
- {
- }
-
- /**
- *
- */
- virtual ~XPathParser() {}
-
- /**
- *
- */
- bool getDebug()
- { return debug; }
-
- /**
- *
- */
- void setDebug(bool val)
- { debug = val; }
-
-
-
- /**
- * Normally not called directly unless for string parsing testing
- */
- bool parse(const DOMString &str);
-
- /**
- * This is the big one. Called by the xpath-dom api to fetch
- * nodes from a DOM tree.
- */
- NodeList evaluate(const NodePtr root, const DOMString &str);
-
-
-
-private:
-
- //#################################
- //# MESSAGES
- //#################################
-
- /**
- *
- */
- void trace(const char *fmt, ...)
- #ifdef G_GNUC_PRINTF
- G_GNUC_PRINTF(2, 3)
- #endif
- ;
-
- /**
- *
- */
- void traceStack(const char *name, int pos, int depth);
-
- /**
- *
- */
- void error(const char *fmt, ...)
- #ifdef G_GNUC_PRINTF
- G_GNUC_PRINTF(2, 3)
- #endif
- ;
-
- //#################################
- //# LEXICAL SCANNING
- //#################################
-
- /**
- * Add a lexical token of a given type to the list
- */
- void lexTokAdd(int type, int loc);
- void lexTokAdd(int type, int loc, const DOMString &val);
- void lexTokAdd(int type, int loc, double val);
- void lexTokAdd(int type, int loc, long val);
-
- /**
- *
- */
- void lexicalTokenDump();
-
- /**
- *
- */
- LexTok lexTok(int p);
-
- /**
- *
- */
- int lexTokType(int p);
-
- /**
- *
- */
- int peek(int p);
-
- /**
- *
- */
- int get(int p);
-
- /**
- *
- */
- int getword(int p, DOMString &str);
-
- /**
- *
- */
- int match(int p, const char *str);
-
- /**
- *
- */
- int skipwhite(int p);
-
- /**
- *
- */
- int getNumber(int p, double &dresult);
-
- /**
- *
- */
- int getLiteral(int p, DOMString &result);
-
- /**
- *
- */
- int getNameTest(int p0, DOMString &result);
-
- /**
- *
- */
- int getNCName(int p0, DOMString &result);
-
-
-
-
- /**
- *
- */
- int lexicalScan();
-
-
- //#################################
- //# GRAMMAR PARSING
- //#################################
-
- /**
- * Add a newly derived token to the token list;
- */
- void tokAdd(const Token &token);
-
- void tokAdd(int type);
-
- void tokAdd(int type, long val);
-
- void tokAdd(int type, double val);
-
- void tokAdd(int type, const DOMString &val);
-
-
- /**
- * The grammar definitions marked [1]-[39] are directly
- * from the W3C XPath grammar spacification.
- */
-
- /**
- * [1]
- */
- int getLocationPath(int p0, int depth);
-
- /**
- * [2]
- */
- int getAbsoluteLocationPath(int p0, int depth);
-
- /**
- * [3]
- */
- int getRelativeLocationPath(int p0, int depth);
-
- /**
- * [4]
- */
- int getStep(int p0, int depth);
-
- /**
- * [5]
- */
- int getAxisSpecifier(int p0, int depth);
-
- /**
- * [6]
- */
- int getAxisName(int p0, int depth);
-
- /**
- * [7]
- */
- int getNodeTest(int p0, int depth);
-
- /**
- * [8]
- */
- int getPredicate(int p0, int depth);
-
- /**
- * [9]
- */
- int getPredicateExpr(int p0, int depth);
-
- /**
- * [10]
- */
- int getAbbreviatedAbsoluteLocationPath(int p0, int depth);
- /**
- * [11]
- */
- int getAbbreviatedRelativeLocationPath(int p0, int depth);
- /**
- * [12]
- */
- int getAbbreviatedStep(int p0, int depth);
-
- /**
- * [13]
- */
- int getAbbreviatedAxisSpecifier(int p0, int depth);
-
- /**
- * [14]
- */
- int getExpr(int p0, int depth);
-
- /**
- * [15]
- */
- int getPrimaryExpr(int p0, int depth);
-
- /**
- * [16]
- */
- int getFunctionCall(int p0, int depth);
-
- /**
- * [17]
- */
- int getArgument(int p0, int depth);
-
- /**
- * [18]
- */
- int getUnionExpr(int p0, int depth);
-
- /**
- * [19]
- */
- int getPathExpr(int p0, int depth);
-
- /**
- * [20]
- */
- int getFilterExpr(int p0, int depth);
-
- /**
- * [21]
- */
- int getOrExpr(int p0, int depth);
-
- /**
- * [22]
- */
- int getAndExpr(int p0, int depth);
-
- /**
- * [23]
- */
- int getEqualityExpr(int p0, int depth);
-
- /**
- * [24]
- */
- int getRelationalExpr(int p0, int depth);
-
- /**
- * [25]
- */
- int getAdditiveExpr(int p0, int depth);
-
- /**
- * [26]
- */
- int getMultiplicativeExpr(int p0, int depth);
-
- /**
- * [27]
- */
- int getUnaryExpr(int p0, int depth);
-
- /**
- * [28]
- */
- int getExprToken(int p0, int depth);
-
- /**
- * [29]
- */
- int getLiteral(int p0, int depth);
-
- /**
- * [30]
- */
- int getNumber(int p0, int depth);
-
- /**
- * [31]
- */
- int getDigits(int p0, int depth);
-
- /**
- * [32]
- */
- int getOperator(int p0, int depth);
-
- /**
- * [33]
- */
- int getOperatorName(int p0, int depth);
-
- /**
- * [34]
- */
- int getMultiplyOperator(int p0, int depth);
-
- /**
- * [35]
- */
- int getFunctionName(int p0, int depth);
-
- /**
- * [36]
- */
- int getVariableReference(int p0, int depth);
-
- /**
- * [37]
- */
- int getNameTest(int p0, int depth);
-
- /**
- * [38]
- */
- int getNodeType(int p0, int depth);
-
- /**
- * [39]
- */
- int getExprWhitespace(int p0, int depth);
-
-
-
- //#################################
- //# DATA ITEMS
- //#################################
-
- /**
- *
- */
- bool debug;
-
- /**
- *
- */
- char *parsebuf;
-
- /**
- *
- */
- int parselen;
-
- /**
- *
- */
- int position;
-
- /**
- *
- */
- DOMString numberString;
-
- /**
- *
- */
- double number;
-
-
- /**
- * The result of the first lexical scan
- */
- std::vector<LexTok> lexicalTokens;
-
- /**
- * The result of parsing. If parsing was successful, then
- * this is executable via execute()
- */
- TokenList tokens;
-};
-
-
-} // namespace xpath
-} // namespace dom
-} // namespace w3c
-} // namespace org
-#endif // SEEN_XPATHPARSER_H
-//#########################################################################
-//# E N D O F F I L E
-//#########################################################################
diff --git a/src/dom/xpathtoken.cpp b/src/dom/xpathtoken.cpp
deleted file mode 100644
index 216c7a069..000000000
--- a/src/dom/xpathtoken.cpp
+++ /dev/null
@@ -1,1068 +0,0 @@
-/*
- * Phoebe DOM Implementation.
- *
- * This is a C++ approximation of the W3C DOM model, which follows
- * fairly closely the specifications in the various .idl files, copies of
- * which are provided for reference. Most important is this one:
- *
- * http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/idl-definitions.html
- *
- * Authors:
- * Bob Jamison
- *
- * Copyright (C) 2006-2008 Bob Jamison
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-
-#include "xpathtoken.h"
-#include <stdio.h>
-
-
-
-namespace org
-{
-namespace w3c
-{
-namespace dom
-{
-namespace xpath
-{
-
-
-
-//########################################################################
-//# X P A T H T O K E N
-//########################################################################
-
-//########################################################################
-//# X P A T H T O K E N T Y P E S
-//########################################################################
-
-
-
-//###########################
-//# V A L U E S
-//###########################
-
-/**
- * The following functions are called by a token's execute()
- * method. These functions are what differentiate one token
- * from another and give each its personality.
-*/
-
-static bool tokStr(Token &tok, Stack &stack)
-{
- StackItem item;
- item.sval = tok.sval;
- stack.push(item);
- return true;
-}
-
-static bool tokFloat(Token &tok, Stack &stack)
-{
- StackItem item;
- item.dval = tok.dval;
- stack.push(item);
- return true;
-}
-
-static bool tokInt(Token &tok, Stack &stack)
-{
- StackItem item;
- item.ival = tok.ival;
- stack.push(item);
- return true;
-}
-
-static bool tokAnd(Token &/*tok*/, Stack &stack)
-{
- StackItem item1 = stack.pop();
- StackItem item2 = stack.pop();
- item1.ival = item1.ival && item2.ival;
- stack.push(item1);
- return true;
-}
-
-static bool tokOr(Token &/*tok*/, Stack &stack)
-{
- StackItem item1 = stack.pop();
- StackItem item2 = stack.pop();
- item1.ival = item1.ival || item2.ival;
- stack.push(item1);
- return true;
-}
-
-static bool tokMod(Token &/*tok*/, Stack &stack)
-{
- StackItem item1 = stack.pop();
- StackItem item2 = stack.pop();
- item1.dval = fmod(item1.dval, item2.dval);
- stack.push(item1);
- return true;
-}
-
-
-static bool tokDiv(Token &/*tok*/, Stack &stack)
-{
- StackItem item1 = stack.pop();
- StackItem item2 = stack.pop();
- item1.dval /= item2.dval;
- stack.push(item1);
- return true;
-}
-
-static bool tokMul(Token &/*tok*/, Stack &stack)
-{
- StackItem item1 = stack.pop();
- StackItem item2 = stack.pop();
- item1.dval *= item2.dval;
- stack.push(item1);
- return true;
-}
-
-static bool tokPlus(Token &/*tok*/, Stack &stack)
-{
- StackItem item1 = stack.pop();
- StackItem item2 = stack.pop();
- item1.dval += item2.dval;
- stack.push(item1);
- return true;
-}
-
-static bool tokMinus(Token &/*tok*/, Stack &stack)
-{
- StackItem item1 = stack.pop();
- StackItem item2 = stack.pop();
- item1.dval -= item2.dval;
- stack.push(item1);
- return true;
-}
-
-
-static bool tokNeg(Token &/*tok*/, Stack &stack)
-{
- StackItem item = stack.pop();
- item.dval = -item.dval;
- item.ival = -item.ival;
- stack.push(item);
- return true;
-}
-
-
-static bool tokEquals(Token &/*tok*/, Stack &stack)
-{
- StackItem item1 = stack.pop();
- StackItem item2 = stack.pop();
- item1.ival = (item1.dval == item2.dval);
- stack.push(item1);
- return true;
-}
-
-
-static bool tokNotEquals(Token &/*tok*/, Stack &stack)
-{
- StackItem item1 = stack.pop();
- StackItem item2 = stack.pop();
- item1.ival = (item1.dval != item2.dval);
- stack.push(item1);
- return true;
-}
-
-
-static bool tokLessThan(Token &/*tok*/, Stack &stack)
-{
- StackItem item1 = stack.pop();
- StackItem item2 = stack.pop();
- item1.ival = (item1.dval < item2.dval);
- stack.push(item1);
- return true;
-}
-
-
-static bool tokLessThanEquals(Token &/*tok*/, Stack &stack)
-{
- StackItem item1 = stack.pop();
- StackItem item2 = stack.pop();
- item1.ival = (item1.dval <= item2.dval);
- stack.push(item1);
- return true;
-}
-
-
-static bool tokGreaterThanEquals(Token &/*tok*/, Stack &stack)
-{
- StackItem item1 = stack.pop();
- StackItem item2 = stack.pop();
- item1.ival = (item1.dval >= item2.dval);
- stack.push(item1);
- return true;
-}
-
-
-static bool tokGreaterThan(Token &/*tok*/, Stack &stack)
-{
- StackItem item1 = stack.pop();
- StackItem item2 = stack.pop();
- item1.ival = (item1.dval > item2.dval);
- stack.push(item1);
- return true;
-}
-
-
-
-
-
-
-//###########################
-//# X P A T H I T E M S
-//###########################
-
-static bool tokAbsolute(Token &/*tok*/, Stack &/*stack*/)
-{
- return true;
-}
-
-static bool tokRelative(Token &/*tok*/, Stack &/*stack*/)
-{
- return true;
-}
-
-static bool tokStep(Token &/*tok*/, Stack &/*stack*/)
-{
- return true;
-}
-
-static bool tokNameTest(Token &/*tok*/, Stack &/*stack*/)
-{
- return true;
-}
-
-static bool tokExpr(Token &/*tok*/, Stack &/*stack*/)
-{
- return true;
-}
-
-static bool tokUnion(Token &/*tok*/, Stack &/*stack*/)
-{
- return true;
-}
-
-
-
-
-//###########################
-//# A X I S
-//###########################
-
-
-static bool tokAxisAncestorOrSelf(Token &/*tok*/, Stack &/*stack*/)
-{
- return true;
-}
-
-
-static bool tokAxisAncestor(Token &/*tok*/, Stack &/*stack*/)
-{
- return true;
-}
-
-
-static bool tokAxisAttribute(Token &/*tok*/, Stack &/*stack*/)
-{
- return true;
-}
-
-
-static bool tokAxisChild(Token &/*tok*/, Stack &/*stack*/)
-{
- return true;
-}
-
-
-static bool tokAxisDescendantOrSelf(Token &/*tok*/, Stack &/*stack*/)
-{
- return true;
-}
-
-
-static bool tokAxisDescendant(Token &/*tok*/, Stack &/*stack*/)
-{
- return true;
-}
-
-
-static bool tokAxisFollowingSibling(Token &/*tok*/, Stack &/*stack*/)
-{
- return true;
-}
-
-
-static bool tokAxisFollowing(Token &/*tok*/, Stack &/*stack*/)
-{
- return true;
-}
-
-
-static bool tokAxisNamespace(Token &/*tok*/, Stack &/*stack*/)
-{
- return true;
-}
-
-
-static bool tokAxisParent(Token &/*tok*/, Stack &/*stack*/)
-{
- return true;
-}
-
-
-static bool tokAxisPrecedingSibling(Token &/*tok*/, Stack &/*stack*/)
-{
- return true;
-}
-
-
-static bool tokAxisPreceding(Token &/*tok*/, Stack &/*stack*/)
-{
- return true;
-}
-
-
-static bool tokAxisSelf(Token &/*tok*/, Stack &/*stack*/)
-{
- return true;
-}
-
-
-
-//###########################
-//# F U N C T I O N S
-//###########################
-
-
-static bool tokFuncLast(Token &/*tok*/, Stack &/*stack*/)
-{
- return true;
-}
-
-
-static bool tokFuncPosition(Token &/*tok*/, Stack &/*stack*/)
-{
- return true;
-}
-
-
-static bool tokFuncCount(Token &/*tok*/, Stack &/*stack*/)
-{
- return true;
-}
-
-
-static bool tokFuncId(Token &/*tok*/, Stack &/*stack*/)
-{
- return true;
-}
-
-
-static bool tokFuncLocalName(Token &/*tok*/, Stack &/*stack*/)
-{
- return true;
-}
-
-
-static bool tokFuncNamespaceUri(Token &/*tok*/, Stack &/*stack*/)
-{
- return true;
-}
-
-
-static bool tokFuncName(Token &/*tok*/, Stack &/*stack*/)
-{
- return true;
-}
-
-
-static bool tokFuncString(Token &/*tok*/, Stack &/*stack*/)
-{
- return true;
-}
-
-
-static bool tokFuncConcat(Token &/*tok*/, Stack &/*stack*/)
-{
- return true;
-}
-
-
-static bool tokFuncStartsWith(Token &/*tok*/, Stack &/*stack*/)
-{
- return true;
-}
-
-
-static bool tokFuncContains(Token &/*tok*/, Stack &/*stack*/)
-{
- return true;
-}
-
-
-static bool tokFuncSubstringBefore(Token &/*tok*/, Stack &/*stack*/)
-{
- return true;
-}
-
-
-static bool tokFuncSubstringAfter(Token &/*tok*/, Stack &/*stack*/)
-{
- return true;
-}
-
-
-static bool tokFuncSubstring(Token &/*tok*/, Stack &/*stack*/)
-{
- return true;
-}
-
-
-static bool tokFuncStringLength(Token &/*tok*/, Stack &/*stack*/)
-{
- return true;
-}
-
-
-static bool tokFuncNormalizeSpace(Token &/*tok*/, Stack &/*stack*/)
-{
- return true;
-}
-
-
-static bool tokFuncTranslate(Token &/*tok*/, Stack &/*stack*/)
-{
- return true;
-}
-
-
-static bool tokFuncBoolean(Token &/*tok*/, Stack &/*stack*/)
-{
- return true;
-}
-
-
-static bool tokFuncNot(Token &/*tok*/, Stack &/*stack*/)
-{
- return true;
-}
-
-
-static bool tokFuncTrue(Token &/*tok*/, Stack &/*stack*/)
-{
- return true;
-}
-
-
-static bool tokFuncFalse(Token &/*tok*/, Stack &/*stack*/)
-{
- return true;
-}
-
-
-static bool tokFuncLang(Token &/*tok*/, Stack &/*stack*/)
-{
- return true;
-}
-
-
-static bool tokFuncNumber(Token &/*tok*/, Stack &/*stack*/)
-{
- return true;
-}
-
-
-static bool tokFuncSum(Token &/*tok*/, Stack &/*stack*/)
-{
- return true;
-}
-
-
-static bool tokFuncFloor(Token &/*tok*/, Stack &/*stack*/)
-{
- return true;
-}
-
-
-static bool tokFuncCeiling(Token &/*tok*/, Stack &/*stack*/)
-{
- return true;
-}
-
-
-static bool tokFuncRound(Token &/*tok*/, Stack &/*stack*/)
-{
- return true;
-}
-
-
-
-/**
- * An entry for the token 'personality' table
- */
-typedef struct
-{
- int ival;
- char const *sval;
- TokenFunc tokenFunc;
-} TokenTableEntry;
-
-
-/**
- * The token personality table
- */
-static TokenTableEntry tokenTable[] =
-{
- //### primitives
- {
- Token::TOK_NOP,
- "nop",
- NULL
- },
- {
- Token::TOK_STR,
- "str",
- tokStr
- },
- {
- Token::TOK_INT,
- "int",
- tokInt
- },
- {
- Token::TOK_FLOAT,
- "float",
- tokFloat
- },
-
- //### operators
- {
- Token::TOK_AND,
- "and",
- tokAnd
- },
- {
- Token::TOK_OR,
- "or",
- tokOr
- },
- {
- Token::TOK_MOD,
- "mod",
- tokMod
- },
- {
- Token::TOK_DIV,
- "div",
- tokDiv
- },
- {
- Token::TOK_MUL,
- "multiply",
- tokMul
- },
- {
- Token::TOK_DOUBLE_SLASH,
- "double-slash",
- NULL
- },
- {
- Token::TOK_SLASH,
- "slash",
- NULL
- },
- {
- Token::TOK_PIPE,
- "pipe",
- NULL
- },
- {
- Token::TOK_PLUS,
- "plus",
- tokPlus
- },
- {
- Token::TOK_MINUS,
- "minus",
- tokMinus
- },
- {
- Token::TOK_NEG,
- "neg",
- tokNeg
- },
- {
- Token::TOK_EQUALS,
- "equals",
- tokEquals
- },
- {
- Token::TOK_NOT_EQUALS,
- "not-equals",
- tokNotEquals
- },
- {
- Token::TOK_LESS_THAN_EQUALS,
- "less-than-equals",
- tokLessThanEquals
- },
- {
- Token::TOK_LESS_THAN,
- "less-than",
- tokLessThan
- },
- {
- Token::TOK_GREATER_THAN_EQUALS,
- "greater-than-equals",
- tokGreaterThanEquals
- },
- {
- Token::TOK_GREATER_THAN,
- "greater-than",
- tokGreaterThan
- },
-
- //### path types
- {
- Token::TOK_ABSOLUTE,
- "absolute",
- tokAbsolute
- },
- {
- Token::TOK_RELATIVE,
- "relative",
- tokRelative
- },
- {
- Token::TOK_STEP,
- "step",
- tokStep
- },
- {
- Token::TOK_NAME_TEST,
- "name-test",
- tokNameTest
- },
- {
- Token::TOK_EXPR,
- "expr",
- tokExpr
- },
- {
- Token::TOK_UNION,
- "union",
- tokUnion
- },
-
- //### axis types
- {
- Token::TOK_AXIS_ANCESTOR_OR_SELF,
- "axis-ancestor-or-self",
- tokAxisAncestorOrSelf
- },
- {
- Token::TOK_AXIS_ANCESTOR,
- "axis-ancestor",
- tokAxisAncestor
- },
- {
- Token::TOK_AXIS_ATTRIBUTE,
- "axis-attribute",
- tokAxisAttribute
- },
- {
- Token::TOK_AXIS_CHILD,
- "axis-child",
- tokAxisChild
- },
- {
- Token::TOK_AXIS_DESCENDANT_OR_SELF,
- "axis-descendant-or-self",
- tokAxisDescendantOrSelf
- },
- {
- Token::TOK_AXIS_DESCENDANT,
- "axis-descendant",
- tokAxisDescendant
- },
- {
- Token::TOK_AXIS_FOLLOWING_SIBLING,
- "axis-following-sibling",
- tokAxisFollowingSibling
- },
- {
- Token::TOK_AXIS_FOLLOWING,
- "axis-following",
- tokAxisFollowing
- },
- {
- Token::TOK_AXIS_NAMESPACE,
- "axis-namespace",
- tokAxisNamespace
- },
- {
- Token::TOK_AXIS_PARENT,
- "axis-parent",
- tokAxisParent
- },
- {
- Token::TOK_AXIS_PRECEDING_SIBLING,
- "axis-preceding-sibling",
- tokAxisPrecedingSibling
- },
- {
- Token::TOK_AXIS_PRECEDING,
- "axis-preceding",
- tokAxisPreceding
- },
- {
- Token::TOK_AXIS_SELF,
- "axis-self",
- tokAxisSelf
- },
-
- //### function types
- {
- Token::TOK_FUNC_LAST,
- "func-last",
- tokFuncLast
- },
- {
- Token::TOK_FUNC_POSITION,
- "func-position",
- tokFuncPosition
- },
- {
- Token::TOK_FUNC_COUNT,
- "func-count",
- tokFuncCount
- },
- {
- Token::TOK_FUNC_ID,
- "func-id",
- tokFuncId
- },
- {
- Token::TOK_FUNC_LOCAL_NAME,
- "func-local-name",
- tokFuncLocalName
- },
- {
- Token::TOK_FUNC_NAMESPACE_URI,
- "func-namespace-uri",
- tokFuncNamespaceUri
- },
- {
- Token::TOK_FUNC_NAME,
- "func-name",
- tokFuncName
- },
- {
- Token::TOK_FUNC_STRING,
- "func-string",
- tokFuncString
- },
- {
- Token::TOK_FUNC_CONCAT,
- "func-concat",
- tokFuncConcat
- },
- {
- Token::TOK_FUNC_STARTS_WITH,
- "func-starts-with",
- tokFuncStartsWith
- },
- {
- Token::TOK_FUNC_CONTAINS,
- "func-contains",
- tokFuncContains
- },
- {
- Token::TOK_FUNC_SUBSTRING_BEFORE,
- "func-substring-before",
- tokFuncSubstringBefore
- },
- {
- Token::TOK_FUNC_SUBSTRING_AFTER,
- "func-substring-after",
- tokFuncSubstringAfter
- },
- {
- Token::TOK_FUNC_SUBSTRING,
- "func-substring",
- tokFuncSubstring
- },
- {
- Token::TOK_FUNC_STRING_LENGTH,
- "func-string-length",
- tokFuncStringLength
- },
- {
- Token::TOK_FUNC_NORMALIZE_SPACE,
- "func-normalize-space",
- tokFuncNormalizeSpace
- },
- {
- Token::TOK_FUNC_TRANSLATE,
- "func-translate",
- tokFuncTranslate
- },
- {
- Token::TOK_FUNC_BOOLEAN,
- "func-boolean",
- tokFuncBoolean
- },
- {
- Token::TOK_FUNC_NOT,
- "func-not",
- tokFuncNot
- },
- {
- Token::TOK_FUNC_TRUE,
- "func-true",
- tokFuncTrue
- },
- {
- Token::TOK_FUNC_FALSE,
- "func-false",
- tokFuncFalse
- },
- {
- Token::TOK_FUNC_LANG,
- "func-lang",
- tokFuncLang
- },
- {
- Token::TOK_FUNC_NUMBER,
- "func-number",
- tokFuncNumber
- },
- {
- Token::TOK_FUNC_SUM,
- "func-sum",
- tokFuncSum
- },
- {
- Token::TOK_FUNC_FLOOR,
- "func-floor",
- tokFuncFloor
- },
- {
- Token::TOK_FUNC_CEILING,
- "func-ceiling",
- tokFuncCeiling
- },
- {
- Token::TOK_FUNC_ROUND,
- "func-round",
- tokFuncRound
- },
-
- { -1,
- (char *)0,
- NULL
- }
-};
-
-
-/**
- * Return the string TokenType of this token
- * (in the .cpp file)
- */
-DOMString Token::getTypeString()
-{
- DOMString ret = "unknown";
- for (TokenTableEntry *entry = tokenTable ; entry->sval ; entry++)
- {
- if (entry->ival == type)
- {
- ret = entry->sval;
- break;
- }
- }
- return ret;
-}
-
-
-/**
- * Create a token of the given type, giving it
- * the data and personalities it needs
- */
-Token Token::create(int type, long ival,
- double dval, const DOMString &sval)
-{
- Token tok(type, ival, dval, sval);
- for (TokenTableEntry *entry = tokenTable ; entry->sval ; entry++)
- {
- if (entry->ival == type)
- {
- tok.tokenFunc = entry->tokenFunc;
- break;
- }
- }
-
- return tok;
-}
-
-
-
-
-
-
-
-
-//########################################################################
-//# X P A T H E X E C U T O R
-//########################################################################
-
-/**
- *
- */
-TokenExecutor::TokenExecutor() :
- tokenList (),
- nodeList ()
-{
-}
-
-
-/**
- *
- */
-TokenExecutor::TokenExecutor(const TokenExecutor &other) :
- tokenList (other.tokenList),
- nodeList ()
-{
- // assign(other);
-}
-
-
-/**
- *
- */
-TokenExecutor::~TokenExecutor()
-{
-}
-
-
-/**
- *
- */
-void TokenExecutor::assign(const TokenExecutor &other)
-{
- tokenList = other.tokenList;
-}
-
-
-
-
-/**
- * Execute a list upon a given node. For each Axis encountered,
- * get the nodes encountered so far, and execute the rest of the
- * list of tokens upon each of the nodes.
- */
-int TokenExecutor::execute(std::vector<Token> &tokens,
- int position,
- const NodePtr /*node*/,
- NodeList &result)
-{
- Stack stack(*this);
-
- NodeList contextNodes;
-
- int length = (int) tokens.size();
-
- for ( ; position < length ; position ++)
- {
- Token tok = tokens[position];
- if (tok.isAxis())
- {
- int pos2 = 0;
- //Do rest of tokens with the nodes we have found so far
- for (unsigned int i = 0 ; i<contextNodes.getLength() ; i++)
- {
- NodePtr contextNode = contextNodes.item(i);
- pos2 = execute(tokens, position, contextNode, result);
- if (pos2 < 0)
- {
- return -1;
- }
- }
- position = pos2;
- }
- else
- {
- if (!tok.execute(stack))
- {
- return -1;
- }
- }
-
- }//for
-
- return position;
-}
-
-
-/**
- * Execute the tokens in a TokenList upon a given node
- */
-bool TokenExecutor::execute(TokenList &tokenList,
- const NodePtr node,
- NodeList &result)
-{
-
- NodeList nodelist;
-
- std::vector<Token> &tokens = tokenList.getTokens();
- if (execute(tokens, 0, node, nodeList) < 0)
- {
- //error message
- return false;
- }
-
- result = nodeList;
-
- return true;
-}
-
-
-
-
-
-
-
-
-
-
-
-
-
-} // namespace xpath
-} // namespace dom
-} // namespace w3c
-} // namespace org
-//########################################################################
-//# E N D O F F I L E
-//########################################################################
-
-
-
diff --git a/src/dom/xpathtoken.h b/src/dom/xpathtoken.h
deleted file mode 100644
index cfd54298e..000000000
--- a/src/dom/xpathtoken.h
+++ /dev/null
@@ -1,672 +0,0 @@
-#ifndef SEEN_XPATHTOKEN_H
-#define SEEN_XPATHTOKEN_H
-
-/**
- * @file
- * Phoebe DOM Implementation.
- *
- * This is a C++ approximation of the W3C DOM model, which follows
- * fairly closely the specifications in the various .idl files, copies of
- * which are provided for reference. Most important is this one:
- *
- * http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407/idl-definitions.html
- */
-/*
- * Authors:
- * Bob Jamison
- *
- * Copyright (C) 2006 Bob Jamison
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-
-#include "dom.h"
-
-#include <math.h>
-
-#include <cstdio>
-#include <vector>
-
-namespace org
-{
-namespace w3c
-{
-namespace dom
-{
-namespace xpath
-{
-
-typedef org::w3c::dom::DOMString DOMString;
-
-
-class TokenExecutor;
-
-
-//########################################################################
-//# S T A C K I T E M
-//########################################################################
-
-
-/**
- * This represents a single value on the evaluation stack
- */
-class StackItem
-{
-public:
-
- /**
- * Constructor
- */
- StackItem()
- { init(); }
-
- /**
- * Copy constructor
- */
- StackItem(const StackItem &other)
- { assign(other); }
-
- /**
- * Destructor
- */
- virtual ~StackItem()
- {}
-
- /**
- *
- */
- StackItem &operator=(const StackItem &other)
- { assign(other); return *this; }
-
- //treat the stack item like an union of string, integer, and double
-
- /**
- * String value
- */
- DOMString sval;
-
- /**
- * Integer value
- */
- long ival;
-
- /**
- * Double value;
- */
- double dval;
-
-
-private:
-
- void init()
- {
- sval = "";
- ival = 0;
- dval = 0.0;
- }
-
- void assign(const StackItem &other)
- {
- sval = other.sval;
- ival = other.ival;
- dval = other.dval;
- }
-
-};
-
-
-
-//########################################################################
-//# X P A T H T O K E N
-//########################################################################
-
-class Token;
-class Stack;
-
-typedef bool (*TokenFunc)(Token &tok, Stack &stack);
-
-
-/**
- * This is a pseudocode-type class that executes itself on a stack,
- * much like stack-oriented languages such as FORTH or Postscript.
- * Each token can pop zero or more tokens off the stack, and push
- * zero or one token back onto it. When a list of tokens is completed,
- * a single stack value should be left on the stack.
- */
-class Token
-{
-public:
-
- /**
- * Token types. Look in xpathtoken.cpp's function table
- * to see how these types map to their respective
- * functionalities
- */
- typedef enum
- {
- //primitives
- TOK_NOP = 0,
- TOK_STR,
- TOK_INT,
- TOK_FLOAT,
- //operators
- TOK_AND,
- TOK_OR,
- TOK_MOD,
- TOK_DIV,
- TOK_MUL,
- TOK_DOUBLE_SLASH,
- TOK_SLASH,
- TOK_PIPE,
- TOK_PLUS,
- TOK_MINUS,
- TOK_NEG,
- TOK_EQUALS,
- TOK_NOT_EQUALS,
- TOK_LESS_THAN_EQUALS,
- TOK_LESS_THAN,
- TOK_GREATER_THAN_EQUALS,
- TOK_GREATER_THAN,
- //path types
- TOK_ABSOLUTE,
- TOK_RELATIVE,
- TOK_STEP,
- TOK_NAME_TEST,
- TOK_EXPR,
- TOK_UNION,
- //axis types
- TOK_AXIS_ANCESTOR_OR_SELF,
- TOK_AXIS_ANCESTOR,
- TOK_AXIS_ATTRIBUTE,
- TOK_AXIS_CHILD,
- TOK_AXIS_DESCENDANT_OR_SELF,
- TOK_AXIS_DESCENDANT,
- TOK_AXIS_FOLLOWING_SIBLING,
- TOK_AXIS_FOLLOWING,
- TOK_AXIS_NAMESPACE,
- TOK_AXIS_PARENT,
- TOK_AXIS_PRECEDING_SIBLING,
- TOK_AXIS_PRECEDING,
- TOK_AXIS_SELF,
- //function types
- TOK_FUNC_LAST,
- TOK_FUNC_POSITION,
- TOK_FUNC_COUNT,
- TOK_FUNC_ID,
- TOK_FUNC_LOCAL_NAME,
- TOK_FUNC_NAMESPACE_URI,
- TOK_FUNC_NAME,
- TOK_FUNC_STRING,
- TOK_FUNC_CONCAT,
- TOK_FUNC_STARTS_WITH,
- TOK_FUNC_CONTAINS,
- TOK_FUNC_SUBSTRING_BEFORE,
- TOK_FUNC_SUBSTRING_AFTER,
- TOK_FUNC_SUBSTRING,
- TOK_FUNC_STRING_LENGTH,
- TOK_FUNC_NORMALIZE_SPACE,
- TOK_FUNC_TRANSLATE,
- TOK_FUNC_BOOLEAN,
- TOK_FUNC_NOT,
- TOK_FUNC_TRUE,
- TOK_FUNC_FALSE,
- TOK_FUNC_LANG,
- TOK_FUNC_NUMBER,
- TOK_FUNC_SUM,
- TOK_FUNC_FLOOR,
- TOK_FUNC_CEILING,
- TOK_FUNC_ROUND,
- } TokenType;
-
-
-
-
- /**
- * Constructor with a NOP default type
- */
- Token()
- { init(); }
-
- /**
- * Constructor with a NOP default type
- */
- Token(int typeArg)
- { init(); type = typeArg; }
-
- /**
- * Constructor with a NOP default type
- */
- Token(int typeArg,
- long ivalArg, double dvalArg, const DOMString &svalArg)
- {
- init();
- type = typeArg,
- ival = ivalArg;
- dval = dvalArg;
- sval = svalArg;
- }
-
- /**
- * Copy constructor
- */
- Token(const Token &other)
- { assign(other); }
-
- /**
- * Assignment
- */
- Token &operator=(const Token &other)
- { assign(other); return *this; }
-
- /**
- * Destructor
- */
- virtual ~Token()
- {}
-
- /**
- * Return the enumerated TokenType of this token
- */
- virtual int getType()
- { return type; }
-
- /**
- * Return true if the type is one of the Axis types
- * above;
- */
- virtual bool isAxis()
- {
- return type>=TOK_AXIS_ANCESTOR_OR_SELF &&
- type <= TOK_AXIS_SELF;
- }
- /**
- * Return the string TokenType of this token
- */
- virtual DOMString getTypeString();
-
- /**
- * Let this token execute itself on the given stack,
- * possibly adding Nodes to the node list.
- */
- virtual bool execute(Stack &stack)
- {
- if (tokenFunc)
- return tokenFunc(*this, stack);
- return false;
- }
-
- /**
- * Print the contents of this token
- */
- virtual void dump()
- {
- printf("%s %s %f %ld\n",
- getTypeString().c_str(), sval.c_str(), dval, ival);
- }
-
- //treat the token like an union of string, integer, and double
-
- /**
- * String value
- */
- DOMString sval;
-
- /**
- * Integer value
- */
- long ival;
-
- /**
- * Double value;
- */
- double dval;
-
- /**
- *
- */
- static Token create(int type, long ival,
- double dval, const DOMString &sval);
-
- /**
- *
- */
- static Token create(int type)
- { return create(type, 0, 0.0, ""); }
-
- /**
- *
- */
- static Token create(int type, long val)
- { return create(type, val, 0.0, ""); }
-
- /**
- *
- */
- static Token create(int type, double val)
- { return create(type, 0, val, ""); }
-
- /**
- *
- */
- static Token create(int type, const DOMString &val)
- { return create(type, 0, 0.0, val); }
-
-
-
-protected:
-
- /**
- * The enmerated token type
- */
- int type;
-
- /**
- * The function that defines the behaviour of this token
- */
- TokenFunc tokenFunc;
-
-
-private:
-
- void init()
- {
- tokenFunc = NULL;
- type = TOK_NOP;
- ival = 0L;
- dval = 0.0;
- //sval = ""; //not necessary
- }
-
- void assign(const Token &other)
- {
- tokenFunc = other.tokenFunc;
- type = other.type;
- sval = other.sval;
- ival = other.ival;
- dval = other.dval;
- }
-
-
-};
-
-
-//########################################################################
-//# S T A C K
-//########################################################################
-
-/**
- *
- */
-class Stack
-{
-public:
-
- //# From 2.3, principal type of child axes
- typedef enum
- {
- AXIS_ATTRIBUTE,
- AXIS_NAMESPACE,
- AXIS_ELEMENT
- } PrincipalNodeType;
-
- /**
- * Constructor
- */
- Stack(TokenExecutor &par) : parent(par)
- { clear(); }
-
- /**
- * Copy constructor
- */
- Stack(const Stack &other) : parent(other.parent)
- { assign(other); }
-
- /**
- * Destructor
- */
- virtual ~Stack()
- {}
-
- /**
- *
- */
- Stack &operator=(const Stack &other)
- { assign(other); return *this; }
-
- /**
- *
- */
- void push(StackItem &item)
- { return stackItems.push_back(item); }
-
- /**
- *
- */
- StackItem pop()
- {
- if (stackItems.empty())
- {
- //TODO: error here
- StackItem item;
- return item;
- }
- std::vector<StackItem>::iterator iter =
- stackItems.end() - 1;
- StackItem item = *iter;
- stackItems.erase(iter);
- return item;
- }
-
- /**
- *
- */
- virtual void clear()
- {
- stackItems.clear();
- principalNodeType = AXIS_ELEMENT;
- }
-
-private:
-
- void assign(const Stack &other)
- {
- principalNodeType = other.principalNodeType;
- stackItems = other.stackItems;
- }
-
- int principalNodeType;
-
- std::vector<StackItem> stackItems;
-
- TokenExecutor &parent;
-
-};
-
-
-
-
-//########################################################################
-//# T O K E N L I S T
-//########################################################################
-
-/**
- *
- */
-class TokenList
-{
-public:
-
- /**
- *
- */
- TokenList()
- { init(); }
-
- /**
- *
- */
- TokenList(const TokenList &other)
- { assign(other); }
-
- /**
- *
- */
- TokenList &operator=(const TokenList &other)
- { assign(other); return *this; }
-
- /**
- *
- */
- virtual ~TokenList()
- { }
-
-
- /**
- *
- */
- virtual void add(const Token &token)
- { tokens.push_back(token); }
-
- /**
- *
- */
- virtual std::vector<Token> &getTokens()
- { return tokens; }
-
- /**
- *
- */
- virtual void dump()
- {
- for (unsigned int i=0 ; i<tokens.size() ; i++)
- {
- Token token = tokens[i];
- token.dump();
- }
- }
-
- /**
- *
- */
- virtual void clear()
- {
- tokens.clear();
- }
-
-private:
-
-
- void init()
- {
- clear();
- }
-
- void assign(const TokenList &other)
- {
- tokens = other.tokens;
- }
-
- std::vector<Token> tokens;
-
-
-};
-
-
-
-
-//########################################################################
-//# T O K E N E X E C U T O R
-//########################################################################
-
-
-/**
- * A token evaluator, with stack and axis context
- */
-class TokenExecutor
-{
-public:
-
- /**
- * Constructor
- */
- TokenExecutor();
-
- /**
- * Copy constructor
- */
- TokenExecutor(const TokenExecutor &other);
-
- /**
- * Destructor
- */
- virtual ~TokenExecutor();
-
- /**
- * Assign our values to those of the other
- */
- virtual void assign(const TokenExecutor &other);
-
-
- /**
- * Execute a list upon a given node. For each Axis encountered,
- * get the nodes encountered so far, and execute the rest of the
- * list of tokens upon each of the nodes.
- */
- int execute(std::vector<Token> &tokens,
- int position,
- const NodePtr node,
- NodeList &nodeList);
-
- /**
- * Execute a token list on the stack
- */
- bool execute(TokenList &list,
- const NodePtr node,
- NodeList &result);
-
-private:
-
- /**
- *
- */
- TokenList tokenList;
-
- /**
- *
- */
- NodeList nodeList;
-
-
-};
-
-
-
-
-} // namespace xpath
-} // namespace dom
-} // namespace w3c
-} // namespace org
-
-
-
-
-
-
-#endif // SEEN_XPATHTOKEN_H
-//########################################################################
-//# E N D O F F I L E
-//########################################################################
-
diff --git a/src/extension/internal/odf.cpp b/src/extension/internal/odf.cpp
index fcabcc4b2..52fabcf3c 100644
--- a/src/extension/internal/odf.cpp
+++ b/src/extension/internal/odf.cpp
@@ -77,12 +77,7 @@
#include "text-editing.h"
#include "util/units.h"
-
-//# DOM-specific includes
-#include "dom/dom.h"
-#include "dom/util/ziptool.h"
-//#include "dom/io/domstream.h"
-
+#include "uri.h"
#include "inkscape-version.h"
#include "document.h"
@@ -90,6 +85,7 @@
#include "io/inkscapestream.h"
#include "io/bufferstream.h"
+#include <util/ziptool.h>
#include <iomanip>
namespace Inkscape
{
@@ -98,7 +94,6 @@ namespace Extension
namespace Internal
{
//# Shorthand notation
-typedef org::w3c::dom::DOMString DOMString;
typedef Inkscape::IO::BufferOutputStream BufferOutputStream;
typedef Inkscape::IO::OutputStreamWriter OutputStreamWriter;
typedef Inkscape::IO::StringOutputStream StringOutputStream;
@@ -1026,6 +1021,7 @@ static void gatherText(Inkscape::XML::Node *node, Glib::ustring &buf)
}
+
/**
* FIRST PASS.
* Method descends into the repr tree, converting image, style, and gradient info
@@ -1086,10 +1082,9 @@ void OdfOutput::preprocess(ZipFile &zf, Inkscape::XML::Node *node)
imageTable[oldName] = newName;
Glib::ustring comment = "old name was: ";
comment.append(oldName);
- URI oldUri(oldName);
+ Inkscape::URI oldUri(oldName.c_str());
//# if relative to the documentURI, get proper path
- URI resUri = documentUri.resolve(oldUri);
- DOMString pathName = resUri.getNativePath();
+ std::string pathName = documentUri.getFullPath(oldUri.getFullPath(""));
ZipEntry *ze = zf.addFile(pathName, comment);
if (ze)
{
@@ -2105,9 +2100,7 @@ void OdfOutput::save(Inkscape::Extension::Output */*mod*/, SPDocument *doc, gcha
{
reset();
- documentUri = URI(filename);
- /* fixme: It looks like we really are using documentUri as a URI, so we ought to call
- * g_filename_to_uri for the URI constructor. */
+ documentUri = Inkscape::URI(filename);
ZipFile zf;
preprocess(zf, doc->rroot);
diff --git a/src/extension/internal/odf.h b/src/extension/internal/odf.h
index 6b915e347..f8712d5eb 100644
--- a/src/extension/internal/odf.h
+++ b/src/extension/internal/odf.h
@@ -23,18 +23,16 @@
#ifndef EXTENSION_INTERNAL_ODG_OUT_H
#define EXTENSION_INTERNAL_ODG_OUT_H
-#include <dom/dom.h>
#include <io/stringstream.h>
-#include <dom/uri.h>
+#include <util/ziptool.h>
#include "extension/implementation/implementation.h"
#include <xml/repr.h>
-
#include <string>
#include <map>
-#include <dom/util/ziptool.h>
+#include "uri.h"
#include "sp-item.h"
#include <glibmm/ustring.h>
@@ -46,7 +44,6 @@ namespace Extension
namespace Internal
{
-typedef org::w3c::dom::URI URI;
typedef Inkscape::IO::Writer Writer;
class StyleInfo
@@ -279,7 +276,7 @@ public:
private:
- URI documentUri;
+ Inkscape::URI documentUri;
void reset();
diff --git a/src/uri.cpp b/src/uri.cpp
index 89f6f33e4..e81d108c9 100644
--- a/src/uri.cpp
+++ b/src/uri.cpp
@@ -16,6 +16,11 @@
namespace Inkscape {
+URI::URI() {
+ const gchar *in = "";
+ _impl = Impl::create(xmlParseURI(in));
+}
+
URI::URI(const URI &uri) {
uri._impl->reference();
_impl = uri._impl;
diff --git a/src/uri.h b/src/uri.h
index 74820cb29..c6c2264cc 100644
--- a/src/uri.h
+++ b/src/uri.h
@@ -25,6 +25,9 @@ namespace Inkscape {
class URI {
public:
+ /* Blank constructor */
+ URI();
+
/**
* Copy constructor.
*/
diff --git a/src/util/Makefile_insert b/src/util/Makefile_insert
index 4066ffd5d..7169fa8f7 100644
--- a/src/util/Makefile_insert
+++ b/src/util/Makefile_insert
@@ -1,6 +1,8 @@
## Makefile.am fragment sourced by src/Makefile.am.
ink_common_sources += \
+ util/ziptool.h \
+ util/ziptool.cpp \
util/accumulators.h \
util/compose.hpp \
util/copy.h \
diff --git a/src/dom/util/ziptool.cpp b/src/util/ziptool.cpp
index cf024008f..cf024008f 100644
--- a/src/dom/util/ziptool.cpp
+++ b/src/util/ziptool.cpp
diff --git a/src/dom/util/ziptool.h b/src/util/ziptool.h
index dbae8ac60..dbae8ac60 100644
--- a/src/dom/util/ziptool.h
+++ b/src/util/ziptool.h