summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--build-lx.xml2
-rw-r--r--build.xml13
-rw-r--r--configure.ac1
-rw-r--r--share/extensions/Makefile.am350
-rw-r--r--share/extensions/hpgl_decoder.py1
-rw-r--r--share/extensions/hpgl_encoder.py25
-rw-r--r--share/extensions/hpgl_input.py1
-rw-r--r--share/extensions/hpgl_output.inx15
-rwxr-xr-xshare/extensions/hpgl_output.py11
-rw-r--r--share/extensions/plotter.inx19
-rw-r--r--share/extensions/plotter.py34
-rwxr-xr-xshare/extensions/test/hpgl_output.test.py4
-rw-r--r--src/Makefile.am3
-rw-r--r--src/color-profile.cpp14
-rw-r--r--src/conn-avoid-ref.h1
-rw-r--r--src/connection-pool.h2
-rw-r--r--src/display/nr-filter-image.cpp5
-rw-r--r--src/document-private.h3
-rw-r--r--src/document-undo.h5
-rw-r--r--src/document.cpp42
-rw-r--r--src/document.h3
-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/javafx-out.cpp4
-rw-r--r--src/extension/internal/odf.cpp19
-rw-r--r--src/extension/internal/odf.h9
-rw-r--r--src/filters/image.cpp2
-rw-r--r--src/menus-skeleton.h2
-rw-r--r--src/sp-conn-end-pair.cpp7
-rw-r--r--src/sp-item-transform.cpp11
-rw-r--r--src/sp-object.h8
-rw-r--r--src/ui/dialog/Makefile_insert2
-rw-r--r--src/ui/dialog/dialog-manager.cpp3
-rw-r--r--src/ui/dialog/filter-effects-dialog.cpp5
-rw-r--r--src/ui/dialog/swatches.cpp103
-rw-r--r--src/ui/dialog/swatches.h2
-rw-r--r--src/ui/dialog/tags.cpp2
-rw-r--r--src/ui/widget/Makefile_insert4
-rw-r--r--src/uri-references.cpp32
-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
-rw-r--r--src/verbs.cpp5
-rw-r--r--src/widgets/arc-toolbar.cpp42
-rw-r--r--src/widgets/arc-toolbar.h4
-rw-r--r--src/widgets/box3d-toolbar.cpp42
-rw-r--r--src/widgets/box3d-toolbar.h5
-rw-r--r--src/widgets/calligraphy-toolbar.cpp31
-rw-r--r--src/widgets/calligraphy-toolbar.h4
-rw-r--r--src/widgets/connector-toolbar.cpp51
-rw-r--r--src/widgets/connector-toolbar.h4
-rw-r--r--src/widgets/dropper-toolbar.cpp34
-rw-r--r--src/widgets/dropper-toolbar.h4
-rw-r--r--src/widgets/eraser-toolbar.cpp39
-rw-r--r--src/widgets/eraser-toolbar.h4
-rw-r--r--src/widgets/font-selector.cpp4
-rw-r--r--src/widgets/gradient-toolbar.cpp54
-rw-r--r--src/widgets/gradient-toolbar.h4
-rw-r--r--src/widgets/lpe-toolbar.cpp51
-rw-r--r--src/widgets/lpe-toolbar.h4
-rw-r--r--src/widgets/measure-toolbar.cpp31
-rw-r--r--src/widgets/measure-toolbar.h4
-rw-r--r--src/widgets/mesh-toolbar.h4
-rw-r--r--src/widgets/node-toolbar.cpp47
-rw-r--r--src/widgets/node-toolbar.h4
-rw-r--r--src/widgets/paintbucket-toolbar.cpp39
-rw-r--r--src/widgets/paintbucket-toolbar.h4
-rw-r--r--src/widgets/pencil-toolbar.cpp51
-rw-r--r--src/widgets/pencil-toolbar.h4
-rw-r--r--src/widgets/rect-toolbar.cpp43
-rw-r--r--src/widgets/rect-toolbar.h4
-rw-r--r--src/widgets/select-toolbar.cpp54
-rw-r--r--src/widgets/select-toolbar.h4
-rw-r--r--src/widgets/spiral-toolbar.cpp43
-rw-r--r--src/widgets/spiral-toolbar.h4
-rw-r--r--src/widgets/spray-toolbar.cpp34
-rw-r--r--src/widgets/spray-toolbar.h4
-rw-r--r--src/widgets/star-toolbar.cpp40
-rw-r--r--src/widgets/star-toolbar.h4
-rw-r--r--src/widgets/text-toolbar.cpp61
-rw-r--r--src/widgets/text-toolbar.h4
-rw-r--r--src/widgets/tweak-toolbar.cpp30
-rw-r--r--src/widgets/tweak-toolbar.h4
-rw-r--r--src/widgets/zoom-toolbar.cpp30
-rw-r--r--src/widgets/zoom-toolbar.h4
137 files changed, 578 insertions, 65190 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/configure.ac b/configure.ac
index dbffcfbde..0d32691f8 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1047,7 +1047,6 @@ src/check-header-compile
src/debug/makefile
src/dialogs/makefile
src/display/makefile
-src/dom/makefile
src/extension/implementation/makefile
src/extension/internal/makefile
src/extension/makefile
diff --git a/share/extensions/Makefile.am b/share/extensions/Makefile.am
index c107f7646..41ddd576f 100644
--- a/share/extensions/Makefile.am
+++ b/share/extensions/Makefile.am
@@ -15,176 +15,9 @@ moduledir = $(datadir)/inkscape/extensions
# If you remove an extension from here, either add it to EXTRA_DIST
# below, or remove all mention of it from po/inkscape.pot as well.
-extensions = \
- addnodes.py \
- bezmisc.py \
- chardataeffect.py\
- color_blackandwhite.py\
- color_brighter.py\
- color_custom.py\
- color_darker.py\
- color_desaturate.py\
- coloreffect.py\
- color_grayscale.py\
- color_HSL_adjust.py\
- color_lesshue.py\
- color_lesslight.py\
- color_lesssaturation.py\
- color_morehue.py\
- color_morelight.py\
- color_moresaturation.py\
- color_negative.py\
- color_randomize.py\
- color_removeblue.py\
- color_removegreen.py\
- color_removered.py\
- color_rgbbarrel.py\
- color_replace.py\
- convert2dashes.py\
- cspsubdiv.py \
- cubicsuperpath.py \
- dia2svg.sh \
- dimension.py \
- dm2svg.py \
- dots.py \
- draw_from_triangle.py \
- dxf_input.py \
- dxf_outlines.py \
- dxf_templates.py \
- edge3d.py \
- embedimage.py \
- embed_raster_in_svg.pl \
- empty_page.py \
- eqtexsvg.py \
- export_gimp_palette.py \
- extractimage.py \
- extrude.py \
- ffgeom.py\
- fig2dev-ext.py \
- flatten.py \
- foldablebox.py \
- fractalize.py \
- funcplot.py \
- render_gears.py \
- render_gear_rack.py \
- gcodetools.py\
- generate_voronoi.py \
- gimp_xcf.py \
- grid_cartesian.py \
- grid_isometric.py \
- grid_polar.py \
- guides_creator.py \
- guillotine.py \
- handles.py \
- hershey.py \
- hersheydata.py \
- hpgl_decoder.py \
- hpgl_encoder.py \
- hpgl_input.py \
- hpgl_output.py \
- ink2canvas.py \
- inkex.py \
- inkscape_follow_link.py \
- inkwebeffect.py \
- interp.py \
- interp_att_g.py \
- jessyInk_autoTexts.py \
- jessyInk_effects.py \
- jessyInk_export.py \
- jessyInk_install.py \
- jessyInk_keyBindings.py \
- jessyInk_masterSlide.py \
- jessyInk_mouseHandler.py \
- jessyInk_summary.py \
- jessyInk_transitions.py \
- jessyInk_uninstall.py \
- jessyInk_video.py \
- jessyInk_view.py \
- launch_webbrowser.py \
- layers2svgfont.py \
- svgfont2layers.py \
- layout_nup.py \
- layout_nup_pageframe.py \
- lindenmayer.py \
- lorem_ipsum.py \
- markers_strokepaint.py \
- measure.py \
- motion.py \
- new_glyph_layer.py \
- next_glyph_layer.py \
- previous_glyph_layer.py \
- param_curves.py \
- pathalongpath.py\
- pathscatter.py\
- pathmodifier.py\
- perfectboundcover.py \
- perspective.py \
- pixelsnap.py \
- plotter.py \
- plt_output.py \
- polyhedron_3d.py \
- printing_marks.py \
- ps2dxf.sh \
- ps2pdf-ext.py \
- pturtle.py \
- radiusrand.py \
- replace_font.py \
- restack.py \
- render_barcode.py \
- render_barcode_datamatrix.py \
- render_barcode_qrcode.py \
- render_alphabetsoup.py \
- render_alphabetsoup_config.py \
- rtree.py \
- rubberstretch.py\
- run_command.py \
- scour.py \
- scour.inkscape.py \
- setup_typography_canvas.py \
- simplepath.py \
- simplepath.rb \
- simplestyle.py \
- simpletransform.py \
- sk1_output.py \
- sk2svg.sh \
- spirograph.py\
- split.py \
- straightseg.py \
- summersnight.py \
- svgcalendar.py \
- svg_regex.py \
- svg_and_media_zip_output.py \
- synfig_fileformat.py \
- synfig_output.py \
- synfig_prepare.py \
- text_extract.py \
- svg_transform.py \
- tar_layers.py \
- text_uppercase.py \
- text_lowercase.py \
- text_sentencecase.py \
- text_titlecase.py \
- text_flipcase.py \
- text_randomcase.py \
- text_braille.py \
- text_merge.py \
- triangle.py \
- uniconv-ext.py \
- uniconv_output.py \
- voronoi.py \
- voronoi2svg.py \
- webslicer_create_group.py \
- webslicer_create_rect.py \
- webslicer_effect.py \
- webslicer_export.py \
- web-set-att.py \
- web-transmit-att.py \
- whirl.py \
- wireframe_sphere.py \
- wmf_output.py \
- yocto_css.py
+module_DATA = $(wildcard $(extensiondir)/*.py)
-otherstuff = \
+otherstuff_DATA = \
fontfix.conf \
inkweb.js \
jessyInk.js \
@@ -197,184 +30,7 @@ otherstuff = \
svg2xaml.xsl \
xaml2svg.xsl
-modules = \
- addnodes.inx \
- ai_input.inx \
- aisvg.inx \
- ccx_input.inx \
- cdr_input.inx \
- cdt_input.inx \
- cgm_input.inx \
- cmx_input.inx \
- color_blackandwhite.inx\
- color_brighter.inx\
- color_custom.inx \
- color_darker.inx\
- color_desaturate.inx\
- color_grayscale.inx\
- color_HSL_adjust.inx\
- color_lesshue.inx\
- color_lesslight.inx\
- color_lesssaturation.inx\
- color_morehue.inx\
- color_morelight.inx\
- color_moresaturation.inx\
- color_negative.inx\
- color_randomize.inx\
- color_removeblue.inx\
- color_removegreen.inx\
- color_removered.inx\
- color_rgbbarrel.inx\
- color_replace.inx\
- convert2dashes.inx\
- dhw_input.inx \
- dia.inx \
- dimension.inx \
- dots.inx \
- draw_from_triangle.inx \
- dxf_input.inx \
- dxf_outlines.inx \
- dxf_output.inx \
- edge3d.inx \
- embedimage.inx \
- embedselectedimages.inx \
- empty_page.inx \
- eps_input.inx \
- eqtexsvg.inx \
- export_gimp_palette.inx \
- extractimage.inx \
- extrude.inx \
- fig_input.inx \
- flatten.inx \
- foldablebox.inx \
- fractalize.inx \
- funcplot.inx \
- render_gears.inx \
- render_gear_rack.inx \
- gcodetools_about.inx\
- gcodetools_area.inx\
- gcodetools_check_for_updates.inx\
- gcodetools_dxf_points.inx\
- gcodetools_engraving.inx\
- gcodetools_graffiti.inx\
- gcodetools_lathe.inx\
- gcodetools_orientation_points.inx\
- gcodetools_path_to_gcode.inx\
- gcodetools_prepare_path_for_plasma.inx\
- gcodetools_tools_library.inx\
- generate_voronoi.inx \
- gimp_xcf.inx \
- grid_cartesian.inx \
- grid_isometric.inx \
- grid_polar.inx \
- guides_creator.inx \
- guillotine.inx \
- handles.inx \
- hershey.inx \
- hpgl_input.inx \
- hpgl_output.inx \
- ink2canvas.inx \
- inkscape_follow_link.inx \
- inkscape_help_askaquestion.inx \
- inkscape_help_commandline.inx \
- inkscape_help_faq.inx\
- inkscape_help_manual.inx \
- inkscape_help_relnotes.inx \
- inkscape_help_reportabug.inx \
- inkscape_help_svgspec.inx \
- inkscape_help_keys.inx \
- interp.inx \
- interp_att_g.inx \
- jessyInk_autoTexts.inx \
- jessyInk_effects.inx \
- jessyInk_export.inx \
- jessyInk_install.inx \
- jessyInk_keyBindings.inx \
- jessyInk_masterSlide.inx \
- jessyInk_mouseHandler.inx \
- jessyInk_summary.inx \
- jessyInk_transitions.inx \
- jessyInk_uninstall.inx \
- jessyInk_video.inx \
- jessyInk_view.inx \
- layers2svgfont.inx \
- svgfont2layers.inx \
- layout_nup.inx \
- lindenmayer.inx \
- lorem_ipsum.inx \
- markers_strokepaint.inx \
- measure.inx \
- motion.inx \
- new_glyph_layer.inx \
- next_glyph_layer.inx \
- previous_glyph_layer.inx \
- param_curves.inx \
- pathalongpath.inx\
- pathscatter.inx\
- perfectboundcover.inx \
- perspective.inx \
- pixelsnap.inx \
- plotter.inx \
- plt_input.inx \
- plt_output.inx \
- polyhedron_3d.inx \
- printing_marks.inx \
- ps_input.inx \
- radiusrand.inx \
- render_barcode.inx \
- render_barcode_datamatrix.inx \
- render_barcode_qrcode.inx \
- render_alphabetsoup.inx \
- replace_font.inx \
- restack.inx \
- rubberstretch.inx \
- rtree.inx \
- scour.inx \
- setup_typography_canvas.inx \
- sk_input.inx \
- sk1_input.inx \
- sk1_output.inx \
- spirograph.inx \
- split.inx \
- straightseg.inx \
- summersnight.inx \
- svg2fxg.inx \
- svg2xaml.inx \
- svg_and_media_zip_output.inx \
- svgcalendar.inx \
- synfig_output.inx \
- tar_layers.inx \
- text_extract.inx \
- text_uppercase.inx\
- text_lowercase.inx \
- text_sentencecase.inx \
- text_titlecase.inx \
- text_flipcase.inx \
- text_randomcase.inx \
- text_braille.inx \
- text_merge.inx \
- triangle.inx \
- voronoi2svg.inx \
- webslicer_create_group.inx \
- webslicer_create_rect.inx \
- webslicer_export.inx \
- web-set-att.inx \
- web-transmit-att.inx \
- whirl.inx \
- wireframe_sphere.inx \
- wmf_input.inx \
- wmf_output.inx \
- xaml2svg.inx
-
-
-extension_SCRIPTS = \
- $(extensions)
-
-otherstuff_DATA = \
- $(otherstuff)
-
-module_DATA = \
- $(modules)
+module_DATA = $(wildcard $(moduledir)/*.inx)
EXTRA_DIST = \
$(extension_SCRIPTS) $(otherstuff_DATA) $(module_DATA)
diff --git a/share/extensions/hpgl_decoder.py b/share/extensions/hpgl_decoder.py
index 2401a5612..c195b21e3 100644
--- a/share/extensions/hpgl_decoder.py
+++ b/share/extensions/hpgl_decoder.py
@@ -25,7 +25,6 @@ from StringIO import StringIO
import inkex
-# TODO: Unittests
class hpglDecoder:
def __init__(self, hpglString, options):
diff --git a/share/extensions/hpgl_encoder.py b/share/extensions/hpgl_encoder.py
index 42c3bb821..3d0b1bb7f 100644
--- a/share/extensions/hpgl_encoder.py
+++ b/share/extensions/hpgl_encoder.py
@@ -33,7 +33,6 @@ import simplestyle
import simpletransform
-# TODO: Unittests
class hpglEncoder:
PI = math.pi
TWO_PI = PI * 2
@@ -50,13 +49,9 @@ class hpglEncoder:
"mirrorY":bool
"center":bool
"flat":float
- "useOvercut":bool
"overcut":float
- "useToolOffset":bool
"toolOffset":float
"precut":bool
- "offsetX":float
- "offsetY":float
"autoAlign":bool
"debug":bool
'''
@@ -70,15 +65,18 @@ class hpglEncoder:
self.sizeY = 'False'
self.dryRun = True
self.lastPoint = [0, 0, 0]
+ self.offsetX = 0
+ self.offsetY = 0
self.scaleX = self.options.resolutionX / effect.unittouu("1.0in") # dots per inch to dots per user unit
self.scaleY = self.options.resolutionY / effect.unittouu("1.0in") # dots per inch to dots per user unit
scaleXY = (self.scaleX + self.scaleY) / 2
- self.offsetX = effect.unittouu(str(self.options.offsetX) + "mm") * self.scaleX # mm to dots (plotter coordinate system)
- self.offsetY = effect.unittouu(str(self.options.offsetY) + "mm") * self.scaleY # mm to dots
- self.overcut = effect.unittouu(str(self.options.overcut) + "mm") * scaleXY # mm to dots
+ self.overcut = effect.unittouu(str(self.options.overcut) + "mm") * scaleXY # mm to dots (plotter coordinate system)
self.toolOffset = effect.unittouu(str(self.options.toolOffset) + "mm") * scaleXY # mm to dots
self.flat = self.options.flat / (1016 / ((self.options.resolutionX + self.options.resolutionY) / 2)) # scale flatness to resolution
- self.toolOffsetFlat = self.flat / self.toolOffset * 4.5 # scale flatness to offset
+ if self.toolOffset > 0.0:
+ self.toolOffsetFlat = self.flat / self.toolOffset * 4.5 # scale flatness to offset
+ else:
+ self.toolOffsetFlat = 0.0
self.mirrorX = 1.0
if self.options.mirrorX:
self.mirrorX = -1.0
@@ -150,7 +148,7 @@ class hpglEncoder:
self.offsetX += self.docHeight * self.scaleY
if self.options.orientation == '180':
self.offsetX += self.docWidth * self.scaleX
- if not self.options.center and self.options.useToolOffset:
+ if not self.options.center and self.toolOffset > 0.0:
self.offsetX += self.toolOffset
self.offsetY += self.toolOffset
# initialize transformation matrix and cache
@@ -166,7 +164,7 @@ class hpglEncoder:
self.hpgl += ';VS%d' % self.options.speed
# add move to zero point and precut
self.processOffset('PU', 0, 0)
- if self.options.useToolOffset and self.options.precut:
+ if self.toolOffset > 0.0 and self.options.precut:
if self.options.center:
# TODO: get this FU to work or remove precut functionality
'''
@@ -237,7 +235,6 @@ class hpglEncoder:
# path to HPGL commands
oldPosX = 0.0
oldPosY = 0.0
- # TODO: Plot smallest parts first to avid plotter dragging parts of foil around (on text)
for singlePath in path:
cmd = 'PU'
for singlePathPoint in singlePath:
@@ -249,7 +246,7 @@ class hpglEncoder:
oldPosX = posX
oldPosY = posY
# perform overcut
- if self.options.useOvercut and not self.dryRun:
+ if self.overcut > 0.0 and not self.dryRun:
# check if last and first points are the same, otherwise the path is not closed and no overcut can be performed
if int(round(oldPosX)) == int(round(singlePath[0][1][0])) and int(round(oldPosY)) == int(round(singlePath[0][1][1])):
overcutLength = 0
@@ -284,7 +281,7 @@ class hpglEncoder:
def processOffset(self, cmd, posX, posY):
# calculate offset correction (or dont)
- if not self.options.useToolOffset or self.dryRun:
+ if self.toolOffset == 0.0 or self.dryRun:
self.storePoint(cmd, posX, posY)
else:
# insert data into cache
diff --git a/share/extensions/hpgl_input.py b/share/extensions/hpgl_input.py
index 93dd5a6c2..d85a5edd6 100644
--- a/share/extensions/hpgl_input.py
+++ b/share/extensions/hpgl_input.py
@@ -28,7 +28,6 @@ import sys
inkex.localize()
-# TODO: Unittests
# parse options
parser = inkex.optparse.OptionParser(usage='usage: %prog [options] HPGLfile', option_class=inkex.InkOption)
parser.add_option('--resolutionX', action='store', type='float', dest='resolutionX', default=1016.0, help='Resolution X (dpi)')
diff --git a/share/extensions/hpgl_output.inx b/share/extensions/hpgl_output.inx
index bb0809386..d16cc55e5 100644
--- a/share/extensions/hpgl_output.inx
+++ b/share/extensions/hpgl_output.inx
@@ -8,7 +8,7 @@
<dependency type="executable" location="extensions">inkex.py</dependency>
<_param name="introduction" type="description">Please make sure that all objects you want to save are converted to paths. Please use the plotter extension (Extensions menu) to plot directly over a serial connection.</_param>
<param name="tab" type="notebook">
- <page name="plotter" _gui-text="Plotter Settings">
+ <page name="plotter" _gui-text="Plotter Settings ">
<param name="resolutionX" type="float" min="1.0" max="4096.0" precision="1" _gui-text="Resolution X (dpi)" _gui-description="The amount of steps the plotter moves if it moves for 1 inch on the X axis. (Default: 1016.0)">1016.0</param>
<param name="resolutionY" type="float" min="1.0" max="4096.0" precision="1" _gui-text="Resolution Y (dpi)" _gui-description="The amount of steps the plotter moves if it moves for 1 inch on the Y axis. (Default: 1016.0)">1016.0</param>
<param name="pen" type="int" min="0" max="99" _gui-text="Pen number" _gui-description="The number of the pen (tool) to use. (Standard: '1')">1</param>
@@ -24,18 +24,11 @@
<param name="mirrorY" type="boolean" _gui-text="Mirror Y axis" _gui-description="Check this to mirror the Y axis. (Default: Unchecked)">false</param>
<param name="center" type="boolean" _gui-text="Center zero point" _gui-description="Check this if your plotter uses a centered zero point. (Default: Unchecked)">false</param>
</page>
- <page name="overcutToolOffset" _gui-text="Overcut &#x26; Tool Offset">
- <param name="useOvercut" type="boolean" _gui-text="Use overcut" _gui-description="Check this to use overcut, if not checked the 'Overcut' parameter is unused. (Default: Checked)">true</param>
- <param name="overcut" type="float" min="0.0" max="100.0" precision="2" _gui-text="Overcut (mm)" _gui-description="The distance in mm that will be cut over the starting point of the path to prevent open paths. (Default: 1.00)">1.00</param>
- <param name="space" type="description">&#xa0;</param>
- <param name="useToolOffset" type="boolean" _gui-text="Use tool offset correction" _gui-description="Check this to use the tool offset correction, if not checked the 'Tool offset' and 'Precut' parameters are unused. (Default: Checked)">true</param>
- <param name="toolOffset" type="float" min="0.0" max="20.0" precision="2" _gui-text="Tool offset (mm)" _gui-description="The offset from the tool tip to the tool axis in mm. (Default: 0.25)">0.25</param>
+ <page name="overcutToolOffset" _gui-text="Plot Features ">
+ <param name="overcut" type="float" min="0.0" max="100.0" precision="2" _gui-text="Overcut (mm)" _gui-description="The distance in mm that will be cut over the starting point of the path to prevent open paths, set to 0.0 to omit command. (Default: 1.00)">1.00</param>
+ <param name="toolOffset" type="float" min="0.0" max="20.0" precision="2" _gui-text="Tool offset (mm)" _gui-description="The offset from the tool tip to the tool axis in mm, set to 0.0 to omit command. (Default: 0.25)">0.25</param>
<param name="precut" type="boolean" _gui-text="Use precut" _gui-description="Check this to cut a small line before the real drawing starts to correctly align the tool orientation. (Default: Checked)">true</param>
- </page>
- <page name="misc" _gui-text="Miscellaneous">
<param name="flat" type="float" min="0.1" max="10.0" precision="1" _gui-text="Curve flatness" _gui-description="Curves are divided into lines, this number controls how fine the curves will be reproduced, the smaller the finer. (Default: '1.2')">1.2</param>
- <param name="offsetX" type="float" min="-10000.0" max="10000.0" precision="2" _gui-text="X offset (mm)" _gui-description="Shifts your drawing on the X axis in mm. (Default: '0.00')">0.00</param>
- <param name="offsetY" type="float" min="-10000.0" max="10000.0" precision="2" _gui-text="Y offset (mm)" _gui-description="Shifts your drawing on the Y axis in mm. (Default: '0.00')">0.00</param>
<param name="autoAlign" type="boolean" _gui-text="Auto align" _gui-description="Check this to auto align the drawing to the zero point (Plus the tool offset if used). If unchecked you have to make sure that all parts of your drawing are within the document border! (Default: Checked)">true</param>
</page>
</param>
diff --git a/share/extensions/hpgl_output.py b/share/extensions/hpgl_output.py
index 02157eb95..5b5521926 100755
--- a/share/extensions/hpgl_output.py
+++ b/share/extensions/hpgl_output.py
@@ -26,8 +26,7 @@ import inkex
inkex.localize()
-# TODO: Unittests
-class MyEffect(inkex.Effect):
+class HpglOutput(inkex.Effect):
def __init__(self):
inkex.Effect.__init__(self)
@@ -41,14 +40,10 @@ class MyEffect(inkex.Effect):
self.OptionParser.add_option('--mirrorX', action='store', type='inkbool', dest='mirrorX', default='FALSE', help='Mirror X axis')
self.OptionParser.add_option('--mirrorY', action='store', type='inkbool', dest='mirrorY', default='FALSE', help='Mirror Y axis')
self.OptionParser.add_option('--center', action='store', type='inkbool', dest='center', default='FALSE', help='Center zero point')
- self.OptionParser.add_option('--flat', action='store', type='float', dest='flat', default=1.2, help='Curve flatness')
- self.OptionParser.add_option('--useOvercut', action='store', type='inkbool', dest='useOvercut', default='TRUE', help='Use overcut')
self.OptionParser.add_option('--overcut', action='store', type='float', dest='overcut', default=1.0, help='Overcut (mm)')
- self.OptionParser.add_option('--useToolOffset', action='store', type='inkbool', dest='useToolOffset', default='TRUE', help='Correct tool offset')
self.OptionParser.add_option('--toolOffset', action='store', type='float', dest='toolOffset', default=0.25, help='Tool offset (mm)')
self.OptionParser.add_option('--precut', action='store', type='inkbool', dest='precut', default='TRUE', help='Use precut')
- self.OptionParser.add_option('--offsetX', action='store', type='float', dest='offsetX', default=0.0, help='X offset (mm)')
- self.OptionParser.add_option('--offsetY', action='store', type='float', dest='offsetY', default=0.0, help='Y offset (mm)')
+ self.OptionParser.add_option('--flat', action='store', type='float', dest='flat', default=1.2, help='Curve flatness')
self.OptionParser.add_option('--autoAlign', action='store', type='inkbool', dest='autoAlign', default='TRUE', help='Auto align')
def effect(self):
@@ -74,7 +69,7 @@ class MyEffect(inkex.Effect):
if __name__ == '__main__':
# start extension
- e = MyEffect()
+ e = HpglOutput()
e.affect()
# vim: expandtab shiftwidth=4 tabstop=8 softtabstop=4 fileencoding=utf-8 textwidth=99 \ No newline at end of file
diff --git a/share/extensions/plotter.inx b/share/extensions/plotter.inx
index c8f009140..fc620f8a3 100644
--- a/share/extensions/plotter.inx
+++ b/share/extensions/plotter.inx
@@ -8,7 +8,7 @@
<dependency type="executable" location="extensions">inkex.py</dependency>
<_param name="introduction" type="description">Please make sure that all objects you want to plot are converted to paths.</_param>
<param name="tab" type="notebook">
- <page name="misc" _gui-text="Connection">
+ <page name="misc" _gui-text="Connection Settings ">
<param name="serialPort" type="string" _gui-text="Serial port" _gui-description="The port of your serial connection, on Windows something like 'COM1', on Linux something like: '/dev/ttyUSB0'. (Default: COM1)">COM1</param>
<param name="serialBaudRate" type="optiongroup" appearance="minimal" _gui-text="Serial baud rate" _gui-description="The Baud rate of your serial connection. (Default: 9600)">
<option value="9600">9600</option>
@@ -43,7 +43,7 @@
<_param name="serialHelp" type="description">This can be a physical serial connection or a USB-to-Serial bridge. Ask your plotter manufacturer for drivers if needed.</_param>
<_param name="parallelHelp" type="description">Parallel (LPT) connections are not supported.</_param>
</page>
- <page name="plotter" _gui-text="Plotter Settings">
+ <page name="plotter" _gui-text="Plotter Settings ">
<param name="resolutionX" type="float" min="1.0" max="4096.0" precision="1" _gui-text="Resolution X (dpi)" _gui-description="The amount of steps the plotter moves if it moves for 1 inch on the X axis. (Default: 1016.0)">1016.0</param>
<param name="resolutionY" type="float" min="1.0" max="4096.0" precision="1" _gui-text="Resolution Y (dpi)" _gui-description="The amount of steps the plotter moves if it moves for 1 inch on the Y axis. (Default: 1016.0)">1016.0</param>
<param name="pen" type="int" min="0" max="99" _gui-text="Pen number" _gui-description="The number of the pen (tool) to use. (Standard: '1')">1</param>
@@ -59,25 +59,18 @@
<param name="mirrorY" type="boolean" _gui-text="Mirror Y axis" _gui-description="Check this to mirror the Y axis. (Default: Unchecked)">false</param>
<param name="center" type="boolean" _gui-text="Center zero point" _gui-description="Check this if your plotter uses a centered zero point. (Default: Unchecked)">false</param>
</page>
- <page name="overcutToolOffset" _gui-text="Overcut &#x26; Tool Offset">
- <param name="useOvercut" type="boolean" _gui-text="Use overcut" _gui-description="Check this to use overcut, if not checked the 'Overcut' parameter is unused. (Default: Checked)">true</param>
- <param name="overcut" type="float" min="0.0" max="100.0" precision="2" _gui-text="Overcut (mm)" _gui-description="The distance in mm that will be cut over the starting point of the path to prevent open paths. (Default: 1.00)">1.00</param>
- <param name="space" type="description">&#xa0;</param>
- <param name="useToolOffset" type="boolean" _gui-text="Use tool offset correction" _gui-description="Check this to use the tool offset correction, if not checked the 'Tool offset' and 'Precut' parameters are unused. (Default: Checked)">true</param>
- <param name="toolOffset" type="float" min="0.0" max="20.0" precision="2" _gui-text="Tool offset (mm)" _gui-description="The offset from the tool tip to the tool axis in mm. (Default: 0.25)">0.25</param>
+ <page name="misc" _gui-text="Plot Features ">
+ <param name="overcut" type="float" min="0.0" max="100.0" precision="2" _gui-text="Overcut (mm)" _gui-description="The distance in mm that will be cut over the starting point of the path to prevent open paths, set to 0.0 to omit command. (Default: 1.00)">1.00</param>
+ <param name="toolOffset" type="float" min="0.0" max="20.0" precision="2" _gui-text="Tool offset (mm)" _gui-description="The offset from the tool tip to the tool axis in mm, set to 0.0 to omit command. (Default: 0.25)">0.25</param>
<param name="precut" type="boolean" _gui-text="Use precut" _gui-description="Check this to cut a small line before the real drawing starts to correctly align the tool orientation. (Default: Checked)">true</param>
- </page>
- <page name="misc" _gui-text="Miscellaneous">
<param name="flat" type="float" min="0.1" max="10.0" precision="1" _gui-text="Curve flatness" _gui-description="Curves are divided into lines, this number controls how fine the curves will be reproduced, the smaller the finer. (Default: '1.2')">1.2</param>
- <param name="offsetX" type="float" min="-10000.0" max="10000.0" precision="2" _gui-text="X offset (mm)" _gui-description="Shifts your drawing on the X axis in mm. (Default: '0.00')">0.00</param>
- <param name="offsetY" type="float" min="-10000.0" max="10000.0" precision="2" _gui-text="Y offset (mm)" _gui-description="Shifts your drawing on the Y axis in mm. (Default: '0.00')">0.00</param>
<param name="autoAlign" type="boolean" _gui-text="Auto align" _gui-description="Check this to auto align the drawing to the zero point (Plus the tool offset if used). If unchecked you have to make sure that all parts of your drawing are within the document border! (Default: Checked)">true</param>
<param name="space" type="description">&#xa0;</param>
<param name="debug" type="boolean" _gui-text="Show debug information" _gui-description="Check this to get verbose information about the plot without actually sending something to the plotter (A.k.a. data dump). (Default: Unchecked)">false</param>
</page>
</param>
<_param name="settingsHelp" type="description">All these settings depend on the plotter you use, for more information please consult the manual or homepage for your plotter.</_param>
- <effect needs-live-preview="false">
+ <effect needs-live-preview="false" needs-document="true">
<object-type>path</object-type>
<effects-menu>
<submenu _name="Export"/>
diff --git a/share/extensions/plotter.py b/share/extensions/plotter.py
index 67d40a92a..be59f604b 100644
--- a/share/extensions/plotter.py
+++ b/share/extensions/plotter.py
@@ -30,8 +30,7 @@ import inkex
inkex.localize()
-# TODO: Unittests
-class MyEffect(inkex.Effect):
+class Plot(inkex.Effect):
def __init__(self):
inkex.Effect.__init__(self)
@@ -49,14 +48,10 @@ class MyEffect(inkex.Effect):
self.OptionParser.add_option('--mirrorX', action='store', type='inkbool', dest='mirrorX', default='FALSE', help='Mirror X axis')
self.OptionParser.add_option('--mirrorY', action='store', type='inkbool', dest='mirrorY', default='FALSE', help='Mirror Y axis')
self.OptionParser.add_option('--center', action='store', type='inkbool', dest='center', default='FALSE', help='Center zero point')
- self.OptionParser.add_option('--flat', action='store', type='float', dest='flat', default=1.2, help='Curve flatness')
- self.OptionParser.add_option('--useOvercut', action='store', type='inkbool', dest='useOvercut', default='TRUE', help='Use overcut')
self.OptionParser.add_option('--overcut', action='store', type='float', dest='overcut', default=1.0, help='Overcut (mm)')
- self.OptionParser.add_option('--useToolOffset', action='store', type='inkbool', dest='useToolOffset', default='TRUE', help='Correct tool offset')
self.OptionParser.add_option('--toolOffset', action='store', type='float', dest='toolOffset', default=0.25, help='Tool offset (mm)')
self.OptionParser.add_option('--precut', action='store', type='inkbool', dest='precut', default='TRUE', help='Use precut')
- self.OptionParser.add_option('--offsetX', action='store', type='float', dest='offsetX', default=0.0, help='X offset (mm)')
- self.OptionParser.add_option('--offsetY', action='store', type='float', dest='offsetY', default=0.0, help='Y offset (mm)')
+ self.OptionParser.add_option('--flat', action='store', type='float', dest='flat', default=1.2, help='Curve flatness')
self.OptionParser.add_option('--autoAlign', action='store', type='inkbool', dest='autoAlign', default='TRUE', help='Auto align')
self.OptionParser.add_option('--debug', action='store', type='inkbool', dest='debug', default='FALSE', help='Show debug information')
@@ -75,16 +70,17 @@ class MyEffect(inkex.Effect):
raise ValueError, ('', type, value), traceback
# TODO: Get preview to work. This requires some work on the C++ side to be able to determine if it is
# a preview or a final run. (Remember to set <effect needs-live-preview='false'> to true)
- # This outcommented code has a user unit issue (getSvg produces px, docWidth could be mm or something else)
'''
- # reparse data for preview
- self.options.showMovements = True
- self.options.docWidth = float(self.unittouu(self.document.getroot().get('width')))
- self.options.docHeight = float(self.unittouu(self.document.getroot().get('height')))
- myHpglDecoder = hpgl_decoder.hpglDecoder(self.hpgl, self.options)
- doc, warnings = myHpglDecoder.getSvg()
- # deliver document to inkscape
- self.document = doc
+ if MAGIC:
+ # reparse data for preview
+ self.options.showMovements = True
+ self.options.docWidth = self.uutounit(self.unittouu(self.document.getroot().get('width')), "px")
+ self.options.docHeight = self.uutounit(self.unittouu(self.document.getroot().get('height')), "px")
+ myHpglDecoder = hpgl_decoder.hpglDecoder(self.hpgl, self.options)
+ doc, warnings = myHpglDecoder.getSvg()
+ # deliver document to inkscape
+ self.document = doc
+ else:
'''
# convert to other formats
if self.options.commandLanguage == 'DMPL':
@@ -174,14 +170,10 @@ class MyEffect(inkex.Effect):
inkex.errormsg(' Mirror X axis: ' + str(self.options.mirrorX))
inkex.errormsg(' Mirror Y axis: ' + str(self.options.mirrorY))
inkex.errormsg(' Center zero point: ' + str(self.options.center))
- inkex.errormsg(' Use overcut: ' + str(self.options.useOvercut))
inkex.errormsg(' Overcut (mm): ' + str(self.options.overcut))
- inkex.errormsg(' Use tool offset correction: ' + str(self.options.useToolOffset))
inkex.errormsg(' Tool offset (mm): ' + str(self.options.toolOffset))
inkex.errormsg(' Use precut: ' + str(self.options.precut))
inkex.errormsg(' Curve flatness: ' + str(self.options.flat))
- inkex.errormsg(' X offset (mm): ' + str(self.options.offsetX))
- inkex.errormsg(' Y offset (mm): ' + str(self.options.offsetY))
inkex.errormsg(' Auto align: ' + str(self.options.autoAlign))
inkex.errormsg(' Show debug information: ' + str(self.options.debug))
inkex.errormsg("\nDocument properties:\n")
@@ -216,7 +208,7 @@ class MyEffect(inkex.Effect):
if __name__ == '__main__':
# start extension
- e = MyEffect()
+ e = Plot()
e.affect()
# vim: expandtab shiftwidth=4 tabstop=8 softtabstop=4 fileencoding=utf-8 textwidth=99 \ No newline at end of file
diff --git a/share/extensions/test/hpgl_output.test.py b/share/extensions/test/hpgl_output.test.py
index 4d9500b1e..19fdeb661 100755
--- a/share/extensions/test/hpgl_output.test.py
+++ b/share/extensions/test/hpgl_output.test.py
@@ -12,13 +12,13 @@ sys.path.append('..') # this line allows to import the extension code
import unittest
from hpgl_output import *
-class MyEffectBasicTest(unittest.TestCase):
+class HPGLOuputBasicTest(unittest.TestCase):
#def setUp(self):
def test_run_without_parameters(self):
args = [ 'minimal-blank.svg' ]
- e = MyEffect()
+ e = HpglOutput()
e.affect( args, False )
#self.assertEqual( e.something, 'some value', 'A commentary about that.' )
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/conn-avoid-ref.h b/src/conn-avoid-ref.h
index 30b380eb7..ce364abf1 100644
--- a/src/conn-avoid-ref.h
+++ b/src/conn-avoid-ref.h
@@ -19,6 +19,7 @@
#include <sigc++/connection.h>
class SPDesktop;
+class SPObject;
class SPItem;
namespace Avoid { class ShapeRef; }
diff --git a/src/connection-pool.h b/src/connection-pool.h
index e4e8f5c5e..b1ac6f07a 100644
--- a/src/connection-pool.h
+++ b/src/connection-pool.h
@@ -1,8 +1,10 @@
#ifndef CONNECTION_POOL_H
#define CONNECTION_POOL_H
+#include <map>
#include <glib-object.h>
#include <stddef.h>
+#include <string>
#include <sigc++/sigc++.h>
namespace Inkscape
diff --git a/src/display/nr-filter-image.cpp b/src/display/nr-filter-image.cpp
index 154d1ab32..179ba0e0a 100644
--- a/src/display/nr-filter-image.cpp
+++ b/src/display/nr-filter-image.cpp
@@ -114,7 +114,7 @@ void FilterImage::render_cairo(FilterSlot &slot)
// dc.scale(scaleX, scaleY); No scaling should be done
Geom::IntRect render_rect = area.roundOutwards();
- dc.translate(render_rect.min());
+// dc.translate(render_rect.min()); This seems incorrect
// Update to renderable state
drawing.update(render_rect);
@@ -174,7 +174,8 @@ void FilterImage::render_cairo(FilterSlot &slot)
sa.width(), sa.height());
// For the moment, we'll assume that any image is in sRGB color space
- set_cairo_surface_ci(out, SP_CSS_COLOR_INTERPOLATION_SRGB);
+ // set_cairo_surface_ci(out, SP_CSS_COLOR_INTERPOLATION_SRGB);
+ // This seemed like a sensible thing to do but it breaks filters-displace-01-f.svg
cairo_t *ct = cairo_create(out);
cairo_translate(ct, -sa.min()[Geom::X], -sa.min()[Geom::Y]);
diff --git a/src/document-private.h b/src/document-private.h
index 065101174..4560aa28f 100644
--- a/src/document-private.h
+++ b/src/document-private.h
@@ -52,6 +52,7 @@ struct SPDocumentPrivate {
GHashTable *resources;
ResourcesChangedSignalMap resources_changed_signals;
+ sigc::signal<void> destroySignal;
SPDocument::ModifiedSignal modified_signal;
SPDocument::URISetSignal uri_set_signal;
SPDocument::ResizedSignal resized_signal;
@@ -60,7 +61,7 @@ struct SPDocumentPrivate {
SPDocument::CommitSignal commit_signal;
/* Undo/Redo state */
- bool sensitive: true; /* If we save actions to undo stack */
+ bool sensitive; /* If we save actions to undo stack */
Inkscape::XML::Event * partial; /* partial undo log when interrupted */
int history_size;
GSList * undo; /* Undo stack of reprs */
diff --git a/src/document-undo.h b/src/document-undo.h
index f19ba9bb2..38e575a34 100644
--- a/src/document-undo.h
+++ b/src/document-undo.h
@@ -1,9 +1,14 @@
#ifndef SEEN_SP_DOCUMENT_UNDO_H
#define SEEN_SP_DOCUMENT_UNDO_H
+namespace Glib {
+ class ustring;
+}
+
typedef struct _GObject GObject;
class SPDesktop;
+class SPDocument;
namespace Inkscape {
diff --git a/src/document.cpp b/src/document.cpp
index 112503320..d71fd97df 100644
--- a/src/document.cpp
+++ b/src/document.cpp
@@ -92,20 +92,20 @@ SPDocument::SPDocument() :
keepalive(FALSE),
virgin(TRUE),
modified_since_save(FALSE),
- rdoc(0),
- rroot(0),
- root(0),
+ rdoc(NULL),
+ rroot(NULL),
+ root(NULL),
style_cascade(cr_cascade_new(NULL, NULL, NULL)),
- uri(0),
- base(0),
- name(0),
- priv(0), // reset in ctor
+ uri(NULL),
+ base(NULL),
+ name(NULL),
+ priv(NULL), // reset in ctor
actionkey(),
modified_id(0),
rerouting_handler_id(0),
- profileManager(0), // deferred until after other initialization
+ profileManager(NULL), // deferred until after other initialization
router(new Avoid::Router(Avoid::PolyLineRouting|Avoid::OrthogonalRouting)),
- _collection_queue(0),
+ _collection_queue(NULL),
oldSignalsConnected(false),
current_persp3d(NULL),
current_persp3d_impl(NULL),
@@ -124,7 +124,7 @@ SPDocument::SPDocument() :
p->resources = g_hash_table_new(g_str_hash, g_str_equal);
- p->sensitive = FALSE;
+ p->sensitive = false;
p->partial = NULL;
p->history_size = 0;
p->undo = NULL;
@@ -141,6 +141,8 @@ SPDocument::SPDocument() :
}
SPDocument::~SPDocument() {
+ priv->destroySignal.emit();
+
// kill/unhook this first
if ( profileManager ) {
delete profileManager;
@@ -230,6 +232,11 @@ SPDocument::~SPDocument() {
//delete this->_whiteboard_session_manager;
}
+sigc::connection SPDocument::connectDestroy(sigc::signal<void>::slot_type slot)
+{
+ return priv->destroySignal.connect(slot);
+}
+
SPDefs *SPDocument::getDefs()
{
if (!root) {
@@ -504,8 +511,7 @@ SPDocument *SPDocument::createChildDoc(std::string const &uri)
*/
SPDocument *SPDocument::createNewDoc(gchar const *uri, unsigned int keepalive, bool make_new, SPDocument *parent)
{
- SPDocument *doc;
- Inkscape::XML::Document *rdoc;
+ Inkscape::XML::Document *rdoc = NULL;
gchar *base = NULL;
gchar *name = NULL;
@@ -547,7 +553,7 @@ SPDocument *SPDocument::createNewDoc(gchar const *uri, unsigned int keepalive, b
//# These should be set by now
g_assert(name);
- doc = createDoc(rdoc, uri, base, name, keepalive, parent);
+ SPDocument *doc = createDoc(rdoc, uri, base, name, keepalive, parent);
g_free(base);
g_free(name);
@@ -557,7 +563,7 @@ SPDocument *SPDocument::createNewDoc(gchar const *uri, unsigned int keepalive, b
SPDocument *SPDocument::createNewDocFromMem(gchar const *buffer, gint length, unsigned int keepalive)
{
- SPDocument *doc = 0;
+ SPDocument *doc = NULL;
Inkscape::XML::Document *rdoc = sp_repr_read_mem(buffer, length, SP_SVG_NS_URI);
if ( rdoc ) {
@@ -755,7 +761,7 @@ void SPDocument::setBase( gchar const* base )
{
if (this->base) {
g_free(this->base);
- this->base = 0;
+ this->base = NULL;
}
if (base) {
this->base = g_strdup(base);
@@ -764,9 +770,9 @@ void SPDocument::setBase( gchar const* base )
void SPDocument::do_change_uri(gchar const *const filename, bool const rebase)
{
- gchar *new_base = 0;
- gchar *new_name = 0;
- gchar *new_uri = 0;
+ gchar *new_base = NULL;
+ gchar *new_name = NULL;
+ gchar *new_uri = NULL;
if (filename) {
#ifndef WIN32
diff --git a/src/document.h b/src/document.h
index e5567d3b6..ee903449d 100644
--- a/src/document.h
+++ b/src/document.h
@@ -85,6 +85,9 @@ public:
SPDocument();
virtual ~SPDocument();
+ sigc::connection connectDestroy(sigc::signal<void>::slot_type slot);
+
+
unsigned int keepalive : 1;
unsigned int virgin : 1; ///< Has the document never been touched?
unsigned int modified_since_save : 1;
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/javafx-out.cpp b/src/extension/internal/javafx-out.cpp
index 035a6f0aa..e51e8d539 100644
--- a/src/extension/internal/javafx-out.cpp
+++ b/src/extension/internal/javafx-out.cpp
@@ -396,12 +396,14 @@ bool JavaFXOutput::doStyle(SPStyle *style)
}
else if (fill.isPaintserver()){
if (fill.value.href && fill.value.href->getURI() ){
- String uri = fill.value.href->getURI()->toString();
+ gchar *str = fill.value.href->getURI()->toString();
+ String uri = (str ? str : "");
/* trim the anchor '#' from the front */
if (uri.size() > 0 && uri[0]=='#') {
uri = uri.substr(1);
}
out(" fill: %s()\n", sanatize(uri).c_str());
+ g_free(str);
}
}
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/filters/image.cpp b/src/filters/image.cpp
index 9a1b85911..6e50a0e3c 100644
--- a/src/filters/image.cpp
+++ b/src/filters/image.cpp
@@ -134,7 +134,7 @@ void SPFeImage::set(unsigned int key, gchar const *value) {
this->requestModified(SP_OBJECT_MODIFIED_FLAG);
break;
} else {
- g_warning("SVG element URI was not found in the document while loading this");
+ g_warning("SVG element URI was not found in the document while loading this: %s", value);
}
}
// catches either MalformedURIException or UnsupportedURIException
diff --git a/src/menus-skeleton.h b/src/menus-skeleton.h
index 855b7774b..422609390 100644
--- a/src/menus-skeleton.h
+++ b/src/menus-skeleton.h
@@ -180,6 +180,8 @@ static char const menus_skeleton[] =
" </submenu>\n"
" <submenu name=\"" N_("_Object") "\">\n"
" <verb verb-id=\"DialogObjects\" />\n"
+" <verb verb-id=\"DialogTags\" />\n"
+" <separator/>\n"
" <verb verb-id=\"DialogFillStroke\" />\n"
" <verb verb-id=\"DialogObjectProperties\" />\n"
" <verb verb-id=\"DialogSymbols\" />\n"
diff --git a/src/sp-conn-end-pair.cpp b/src/sp-conn-end-pair.cpp
index 52a421550..dbd4f2e94 100644
--- a/src/sp-conn-end-pair.cpp
+++ b/src/sp-conn-end-pair.cpp
@@ -171,8 +171,11 @@ SPConnEndPair::writeRepr(Inkscape::XML::Node *const repr) const
{
char const * const attr_strs[] = {"inkscape:connection-start", "inkscape:connection-end"};
for (unsigned handle_ix = 0; handle_ix < 2; ++handle_ix) {
- if (this->_connEnd[handle_ix]->ref.getURI()) {
- repr->setAttribute(attr_strs[handle_ix], this->_connEnd[handle_ix]->ref.getURI()->toString());
+ const Inkscape::URI* U = this->_connEnd[handle_ix]->ref.getURI();
+ if (U) {
+ gchar *str = U->toString();
+ repr->setAttribute(attr_strs[handle_ix], str);
+ g_free(str);
}
}
repr->setAttribute("inkscape:connector-curvature", Glib::Ascii::dtostr(_connCurvature).c_str());
diff --git a/src/sp-item-transform.cpp b/src/sp-item-transform.cpp
index 1ab8edd51..086da56ff 100644
--- a/src/sp-item-transform.cpp
+++ b/src/sp-item-transform.cpp
@@ -115,7 +115,6 @@ Geom::Affine get_scale_transform_for_uniform_stroke(Geom::Rect const &bbox_visua
gdouble w0 = bbox_visual.width(); // will return a value >= 0, as required further down the road
gdouble h0 = bbox_visual.height();
- gdouble r0 = sqrt(stroke_x*stroke_y); // r0 is redundant, used only for those cases where stroke_x = stroke_y
// We also know the width and height of the new visual bounding box
gdouble w1 = x1 - x0; // can have any sign
@@ -132,6 +131,16 @@ Geom::Affine get_scale_transform_for_uniform_stroke(Geom::Rect const &bbox_visua
h1 = fabs(h1);
// w0 and h0 will always be positive due to the definition of the width() and height() methods.
+ // Check whether the stroke is negative; i.e. the geometric bounding box is larger than the visual bounding box, which
+ // occurs for example for clipped objects (see launchpad bug #811819)
+ if (stroke_x < 0 || stroke_y < 0) {
+ Geom::Affine direct = Geom::Scale(flip_x * w1 / w0, flip_y* h1 / h0); // Scaling of the visual bounding box
+ // How should we handle the stroke width scaling of clipped object? I don't know if we can/should handle this,
+ // so for now we simply return the direct scaling
+ return (p2o * direct * o2n);
+ }
+ gdouble r0 = sqrt(stroke_x*stroke_y); // r0 is redundant, used only for those cases where stroke_x = stroke_y
+
// We will now try to calculate the affine transformation required to transform the first visual bounding box into
// the second one, while accounting for strokewidth
diff --git a/src/sp-object.h b/src/sp-object.h
index 4f7ef3f4c..e10f46793 100644
--- a/src/sp-object.h
+++ b/src/sp-object.h
@@ -686,18 +686,18 @@ public:
unsigned getPosition();
- gchar const * getAttribute(gchar const *name,SPException *ex=0) const;
+ gchar const * getAttribute(gchar const *name,SPException *ex=NULL) const;
void appendChild(Inkscape::XML::Node *child);
- void addChild(Inkscape::XML::Node *child,Inkscape::XML::Node *prev=0);
+ void addChild(Inkscape::XML::Node *child,Inkscape::XML::Node *prev=NULL);
/**
* Call virtual set() function of object.
*/
void setKeyValue(unsigned int key, gchar const *value);
- void setAttribute(gchar const *key, gchar const *value, SPException *ex=0);
+ void setAttribute(gchar const *key, gchar const *value, SPException *ex=NULL);
/**
* Read value of key attribute from XML node into object.
@@ -706,7 +706,7 @@ public:
gchar const *getTagName(SPException *ex) const;
- void removeAttribute(gchar const *key, SPException *ex=0);
+ void removeAttribute(gchar const *key, SPException *ex=NULL);
/**
* Returns an object style property.
diff --git a/src/ui/dialog/Makefile_insert b/src/ui/dialog/Makefile_insert
index 1cf667f2a..bdb1abcda 100644
--- a/src/ui/dialog/Makefile_insert
+++ b/src/ui/dialog/Makefile_insert
@@ -113,4 +113,6 @@ ink_common_sources += \
ui/dialog/lpe-powerstroke-properties.h \
ui/dialog/objects.cpp \
ui/dialog/objects.h \
+ ui/dialog/tags.cpp \
+ ui/dialog/tags.h \
$(inkboard_dialogs)
diff --git a/src/ui/dialog/dialog-manager.cpp b/src/ui/dialog/dialog-manager.cpp
index bbb55ceee..bbfea8cf0 100644
--- a/src/ui/dialog/dialog-manager.cpp
+++ b/src/ui/dialog/dialog-manager.cpp
@@ -55,6 +55,7 @@
#include "ui/dialog/clonetiler.h"
#include "ui/dialog/svg-fonts-dialog.h"
#include "ui/dialog/objects.h"
+#include "ui/dialog/tags.h"
namespace Inkscape {
namespace UI {
@@ -110,6 +111,7 @@ DialogManager::DialogManager() {
registerFactory("InkscapePreferences", &create<InkscapePreferences, FloatingBehavior>);
registerFactory("LayersPanel", &create<LayersPanel, FloatingBehavior>);
registerFactory("ObjectsPanel", &create<ObjectsPanel, FloatingBehavior>);
+ registerFactory("TagsPanel", &create<TagsPanel, FloatingBehavior>);
registerFactory("LivePathEffect", &create<LivePathEffectEditor, FloatingBehavior>);
registerFactory("Memory", &create<Memory, FloatingBehavior>);
registerFactory("Messages", &create<Messages, FloatingBehavior>);
@@ -145,6 +147,7 @@ DialogManager::DialogManager() {
registerFactory("InkscapePreferences", &create<InkscapePreferences, DockBehavior>);
registerFactory("LayersPanel", &create<LayersPanel, DockBehavior>);
registerFactory("ObjectsPanel", &create<ObjectsPanel, DockBehavior>);
+ registerFactory("TagsPanel", &create<TagsPanel, FloatingBehavior>);
registerFactory("LivePathEffect", &create<LivePathEffectEditor, DockBehavior>);
registerFactory("Memory", &create<Memory, DockBehavior>);
registerFactory("Messages", &create<Messages, DockBehavior>);
diff --git a/src/ui/dialog/filter-effects-dialog.cpp b/src/ui/dialog/filter-effects-dialog.cpp
index b763776c6..65bebbd14 100644
--- a/src/ui/dialog/filter-effects-dialog.cpp
+++ b/src/ui/dialog/filter-effects-dialog.cpp
@@ -1430,7 +1430,10 @@ void FilterEffectsDialog::FilterModifier::on_document_replaced(SPDesktop * /*des
if (_resource_changed) {
_resource_changed.disconnect();
}
- _resource_changed = document->connectResourcesChanged("filter",sigc::mem_fun(*this, &FilterModifier::update_filters));
+ if (document)
+ {
+ _resource_changed = document->connectResourcesChanged("filter",sigc::mem_fun(*this, &FilterModifier::update_filters));
+ }
update_filters();
}
diff --git a/src/ui/dialog/swatches.cpp b/src/ui/dialog/swatches.cpp
index 807618b4d..5e77a28ab 100644
--- a/src/ui/dialog/swatches.cpp
+++ b/src/ui/dialog/swatches.cpp
@@ -745,10 +745,11 @@ void SwatchesPanel::setDesktop( SPDesktop* desktop )
class DocTrack
{
public:
- DocTrack(SPDocument *doc, sigc::connection &gradientRsrcChanged, sigc::connection &defsChanged, sigc::connection &defsModified) :
- doc(doc->doRef()),
+ DocTrack(SPDocument *doc, sigc::connection &docDestroy, sigc::connection &gradientRsrcChanged, sigc::connection &defsChanged, sigc::connection &defsModified) :
+ doc(doc),
updatePending(false),
lastGradientUpdate(0.0),
+ docDestroy(docDestroy),
gradientRsrcChanged(gradientRsrcChanged),
defsChanged(defsChanged),
defsModified(defsModified)
@@ -773,10 +774,10 @@ public:
}
}
if (doc) {
+ docDestroy.disconnect();
gradientRsrcChanged.disconnect();
defsChanged.disconnect();
defsModified.disconnect();
- doc->doUnref();
doc = NULL;
}
}
@@ -797,6 +798,7 @@ public:
SPDocument *doc;
bool updatePending;
double lastGradientUpdate;
+ sigc::connection docDestroy;
sigc::connection gradientRsrcChanged;
sigc::connection defsChanged;
sigc::connection defsModified;
@@ -892,11 +894,12 @@ void SwatchesPanel::_trackDocument( SwatchesPanel *panel, SPDocument *document )
}
docPerPanel[panel] = document;
if (!found) {
+ sigc::connection conn0 = document->connectDestroy(sigc::bind(sigc::ptr_fun(&SwatchesPanel::handleDocumentDestroy), document));
sigc::connection conn1 = document->connectResourcesChanged( "gradient", sigc::bind(sigc::ptr_fun(&SwatchesPanel::handleGradientsChange), document) );
sigc::connection conn2 = document->getDefs()->connectRelease( sigc::hide(sigc::bind(sigc::ptr_fun(&SwatchesPanel::handleDefsModified), document)) );
sigc::connection conn3 = document->getDefs()->connectModified( sigc::hide(sigc::hide(sigc::bind(sigc::ptr_fun(&SwatchesPanel::handleDefsModified), document))) );
- DocTrack *dt = new DocTrack(document, conn1, conn2, conn3);
+ DocTrack *dt = new DocTrack(document, conn0, conn1, conn2, conn3);
docTrackings.push_back(dt);
if (docPalettes.find(document) == docPalettes.end()) {
@@ -925,11 +928,13 @@ static void recalcSwatchContents(SPDocument* doc,
{
std::vector<SPGradient*> newList;
- const GSList *gradients = doc->getResourceList("gradient");
- for (const GSList *item = gradients; item; item = item->next) {
- SPGradient* grad = SP_GRADIENT(item->data);
- if ( grad->isSwatch() ) {
- newList.push_back(SP_GRADIENT(item->data));
+ if (doc) {
+ const GSList *gradients = doc->getResourceList("gradient");
+ for (const GSList *item = gradients; item; item = item->next) {
+ SPGradient* grad = SP_GRADIENT(item->data);
+ if ( grad->isSwatch() ) {
+ newList.push_back(SP_GRADIENT(item->data));
+ }
}
}
@@ -968,6 +973,37 @@ static void recalcSwatchContents(SPDocument* doc,
}
}
+void SwatchesPanel::handleDocumentDestroy(SPDocument *document)
+{
+ if (document) {
+ for (std::vector<DocTrack*>::iterator it = docTrackings.begin(); it != docTrackings.end(); ++it){
+ if ((*it)->doc == document) {
+ delete *it;
+ docTrackings.erase(it);
+ break;
+ }
+ }
+
+ if (docPalettes.find(document) != docPalettes.end()) {
+ docPalettes.erase(document);
+ }
+
+ for (std::map<SwatchesPanel*, SPDocument*>::iterator it = docPerPanel.begin(); it != docPerPanel.end(); ++it) {
+ if (it->second == document) {
+ SwatchesPanel* swp = it->first;
+ std::vector<SwatchPage*> pages = swp->_getSwatchSets();
+ if ((swp->_currentIndex >= static_cast<int>(pages.size())) && (pages.size() > 0))
+ {
+ swp->_setSelectedIndex(swp->_getSwatchSets().size() - 1);
+ }
+ swp->_rebuild();
+ docPerPanel.erase(it);
+ break;
+ }
+ }
+ }
+}
+
void SwatchesPanel::handleGradientsChange(SPDocument *document)
{
SwatchPage *docPalette = (docPalettes.find(document) != docPalettes.end()) ? docPalettes[document] : 0;
@@ -1142,38 +1178,45 @@ void SwatchesPanel::_handleAction( int setId, int itemId )
switch( setId ) {
case 3:
{
- std::vector<SwatchPage*> pages = _getSwatchSets();
- if ( itemId >= 0 && itemId < static_cast<int>(pages.size()) ) {
- _currentIndex = itemId;
+ _setSelectedIndex(itemId);
+ }
+ break;
+ }
+}
- if ( !_prefs_path.empty() ) {
- Inkscape::Preferences *prefs = Inkscape::Preferences::get();
- prefs->setString(_prefs_path + "/palette", pages[_currentIndex]->_name);
- }
+void SwatchesPanel::_setSelectedIndex( int index )
+{
+ std::vector<SwatchPage*> pages = _getSwatchSets();
+ if ( index >= 0 && index < static_cast<int>(pages.size()) ) {
+ _currentIndex = index;
- _rebuild();
- }
+ if ( !_prefs_path.empty() ) {
+ Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+ prefs->setString(_prefs_path + "/palette", pages[_currentIndex]->_name);
}
- break;
+
+ _rebuild();
}
}
void SwatchesPanel::_rebuild()
{
std::vector<SwatchPage*> pages = _getSwatchSets();
- SwatchPage* curr = pages[_currentIndex];
- _holder->clear();
+ if (_currentIndex < static_cast<int>(pages.size())) {
+ SwatchPage* curr = pages[_currentIndex];
+ _holder->clear();
- if ( curr->_prefWidth > 0 ) {
- _holder->setColumnPref( curr->_prefWidth );
- }
- _holder->freezeUpdates();
- // TODO restore once 'clear' works _holder->addPreview(_clear);
- _holder->addPreview(_remove);
- for ( boost::ptr_vector<ColorItem>::iterator it = curr->_colors.begin(); it != curr->_colors.end(); ++it) {
- _holder->addPreview(&*it);
+ if ( curr->_prefWidth > 0 ) {
+ _holder->setColumnPref( curr->_prefWidth );
+ }
+ _holder->freezeUpdates();
+ // TODO restore once 'clear' works _holder->addPreview(_clear);
+ _holder->addPreview(_remove);
+ for ( boost::ptr_vector<ColorItem>::iterator it = curr->_colors.begin(); it != curr->_colors.end(); ++it) {
+ _holder->addPreview(&*it);
+ }
+ _holder->thawUpdates();
}
- _holder->thawUpdates();
}
} //namespace Dialogs
diff --git a/src/ui/dialog/swatches.h b/src/ui/dialog/swatches.h
index ca4c1687d..3abb81d98 100644
--- a/src/ui/dialog/swatches.h
+++ b/src/ui/dialog/swatches.h
@@ -43,11 +43,13 @@ public:
virtual int getSelectedIndex() {return _currentIndex;} // temporary
protected:
+ static void handleDocumentDestroy(SPDocument *document);
static void handleGradientsChange(SPDocument *document);
virtual void _updateFromSelection();
virtual void _handleAction( int setId, int itemId );
virtual void _setDocument( SPDocument *document );
+ virtual void _setSelectedIndex( int index );
virtual void _rebuild();
virtual std::vector<SwatchPage*> _getSwatchSets() const;
diff --git a/src/ui/dialog/tags.cpp b/src/ui/dialog/tags.cpp
index f994b571f..116f9eb0b 100644
--- a/src/ui/dialog/tags.cpp
+++ b/src/ui/dialog/tags.cpp
@@ -42,7 +42,7 @@
#include "xml/node-observer.h"
#include "xml/repr.h"
#include "sp-root.h"
-#include "event-context.h"
+//#include "event-context.h"
#include "selection.h"
#include "dialogs/dialog-events.h"
#include "widgets/sp-color-notebook.h"
diff --git a/src/ui/widget/Makefile_insert b/src/ui/widget/Makefile_insert
index 2c543c5cc..196004df1 100644
--- a/src/ui/widget/Makefile_insert
+++ b/src/ui/widget/Makefile_insert
@@ -89,4 +89,6 @@ ink_common_sources += \
ui/widget/layertypeicon.cpp \
ui/widget/layertypeicon.h \
ui/widget/insertordericon.cpp \
- ui/widget/insertordericon.h
+ ui/widget/insertordericon.h \
+ ui/widget/addtoicon.cpp \
+ ui/widget/addtoicon.h
diff --git a/src/uri-references.cpp b/src/uri-references.cpp
index ea8078b28..1da890c56 100644
--- a/src/uri-references.cpp
+++ b/src/uri-references.cpp
@@ -56,19 +56,33 @@ void URIReference::attach(const URI &uri) throw(BadURIException)
document = _owner_document;
}
+ // createChildDoc() assumes that the referenced file is an SVG.
+ // PNG and JPG files are allowed (in the case of feImage).
+ gchar *filename = uri.toString();
+ bool skip = false;
+ if( g_str_has_suffix( filename, ".jpg" ) ||
+ g_str_has_suffix( filename, ".JPG" ) ||
+ g_str_has_suffix( filename, ".png" ) ||
+ g_str_has_suffix( filename, ".PNG" ) ) {
+ skip = true;
+ }
+
// The path contains references to seperate document files to load.
- if(document && uri.getPath()) {
+ if(document && uri.getPath() && !skip ) {
std::string base = document->getBase() ? document->getBase() : "";
std::string path = uri.getFullPath(base);
- if(!path.empty())
+ if(!path.empty()) {
document = document->createChildDoc(path);
- else
+ } else {
document = NULL;
+ }
}
if(!document) {
- g_warning("Can't get document for referenced URI: %s", uri.toString());
+ g_warning("Can't get document for referenced URI: %s", filename);
+ g_free( filename );
return;
}
+ g_free( filename );
gchar const *fragment = uri.getFragment();
if ( !uri.isRelative() || uri.getQuery() || !fragment ) {
@@ -79,7 +93,7 @@ void URIReference::attach(const URI &uri) throw(BadURIException)
/* for now this handles the minimal xpointer form that SVG 1.0
* requires of us
*/
- gchar *id;
+ gchar *id = NULL;
if (!strncmp(fragment, "xpointer(", 9)) {
/* FIXME !!! this is wasteful */
/* FIXME: It looks as though this is including "))" in the id. I suggest moving
@@ -101,9 +115,7 @@ void URIReference::attach(const URI &uri) throw(BadURIException)
/* FIXME !!! validate id as an NCName somewhere */
- if (_uri) {
- delete _uri;
- }
+ delete _uri;
_uri = new URI(uri);
_connection.disconnect();
@@ -160,7 +172,7 @@ void URIReference::_release(SPObject *obj)
SPObject* sp_css_uri_reference_resolve( SPDocument *document, const gchar *uri )
{
- SPObject* ref = 0;
+ SPObject* ref = NULL;
if ( document && uri && ( strncmp(uri, "url(", 4) == 0 ) ) {
gchar *trimmed = extract_uri( uri );
@@ -176,7 +188,7 @@ SPObject* sp_css_uri_reference_resolve( SPDocument *document, const gchar *uri )
SPObject *
sp_uri_reference_resolve (SPDocument *document, const gchar *uri)
{
- SPObject* ref = 0;
+ SPObject* ref = NULL;
if ( uri && (*uri == '#') ) {
ref = document->getObjectById( uri + 1 );
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
diff --git a/src/verbs.cpp b/src/verbs.cpp
index b5c5abe13..9c0908e93 100644
--- a/src/verbs.cpp
+++ b/src/verbs.cpp
@@ -2043,6 +2043,9 @@ void DialogVerb::perform(SPAction *action, void *data)
case SP_VERB_DIALOG_OBJECTS:
dt->_dlg_mgr->showDialog("ObjectsPanel");
break;
+ case SP_VERB_DIALOG_TAGS:
+ dt->_dlg_mgr->showDialog("TagsPanel");
+ break;
case SP_VERB_DIALOG_LIVE_PATH_EFFECT:
dt->_dlg_mgr->showDialog("LivePathEffect");
break;
@@ -2863,6 +2866,8 @@ Verb *Verb::_base_verbs[] = {
N_("View Layers"), INKSCAPE_ICON("dialog-layers")),
new DialogVerb(SP_VERB_DIALOG_OBJECTS, "DialogObjects", N_("Object_s..."),
N_("View Objects"), INKSCAPE_ICON("dialog-layers")),
+ new DialogVerb(SP_VERB_DIALOG_TAGS, "DialogObjects", N_("Ta_gs..."),
+ N_("View Tags"), INKSCAPE_ICON("edit-select-all-layers")),
new DialogVerb(SP_VERB_DIALOG_LIVE_PATH_EFFECT, "DialogLivePathEffect", N_("Path E_ffects ..."),
N_("Manage, edit, and apply path effects"), NULL),
new DialogVerb(SP_VERB_DIALOG_FILTER_EFFECTS, "DialogFilterEffects", N_("Filter _Editor..."),
diff --git a/src/widgets/arc-toolbar.cpp b/src/widgets/arc-toolbar.cpp
index 69b540762..ca6810c81 100644
--- a/src/widgets/arc-toolbar.cpp
+++ b/src/widgets/arc-toolbar.cpp
@@ -28,37 +28,27 @@
# include "config.h"
#endif
-#include "ui/widget/spinbutton.h"
#include <glibmm/i18n.h>
-#include "toolbox.h"
#include "arc-toolbar.h"
-
-#include "../desktop.h"
-#include "../desktop-handles.h"
+#include "desktop-handles.h"
+#include "desktop.h"
#include "document-undo.h"
-#include "../verbs.h"
-#include "../inkscape.h"
-#include "../selection-chemistry.h"
-#include "../selection.h"
-
-#include "../ege-adjustment-action.h"
-#include "../ege-output-action.h"
-#include "../ege-select-one-action.h"
-#include "../ink-action.h"
-#include "../ink-comboboxentry-action.h"
-
-#include "../widgets/button.h"
-#include "../widgets/spinbutton-events.h"
-#include "../widgets/spw-utilities.h"
-#include "../widgets/widget-sizes.h"
-#include "../xml/node-event-vector.h"
-#include "../xml/repr.h"
+#include "ege-adjustment-action.h"
+#include "ege-output-action.h"
+#include "ege-select-one-action.h"
+#include "ink-action.h"
+#include "mod360.h"
+#include "preferences.h"
+#include "selection.h"
+#include "sp-ellipse.h"
+#include "toolbox.h"
+#include "ui/icon-names.h"
#include "ui/uxmanager.h"
-#include "../ui/icon-names.h"
-#include "ui/tools/pen-tool.h"
-#include "../sp-ellipse.h"
-#include "../mod360.h"
+#include "verbs.h"
+#include "widgets/spinbutton-events.h"
+#include "xml/node-event-vector.h"
+#include "xml/repr.h"
using Inkscape::UI::UXManager;
using Inkscape::DocumentUndo;
diff --git a/src/widgets/arc-toolbar.h b/src/widgets/arc-toolbar.h
index dba2fcd5a..ca1319631 100644
--- a/src/widgets/arc-toolbar.h
+++ b/src/widgets/arc-toolbar.h
@@ -27,9 +27,11 @@
* Released under GNU GPL, read the file 'COPYING' for more information
*/
-#include <gtk/gtk.h>
class SPDesktop;
+typedef struct _GtkActionGroup GtkActionGroup;
+typedef struct _GObject GObject;
+
void sp_arc_toolbox_prep(SPDesktop *desktop, GtkActionGroup* mainActions, GObject* holder);
#endif /* !SEEN_ARC_TOOLBAR_H */
diff --git a/src/widgets/box3d-toolbar.cpp b/src/widgets/box3d-toolbar.cpp
index 32516bbfb..6d6b86c4d 100644
--- a/src/widgets/box3d-toolbar.cpp
+++ b/src/widgets/box3d-toolbar.cpp
@@ -28,40 +28,24 @@
# include "config.h"
#endif
-#include "ui/widget/spinbutton.h"
#include <glibmm/i18n.h>
-#include "toolbox.h"
#include "box3d-toolbar.h"
-
-#include "../desktop.h"
-#include "../desktop-handles.h"
+#include "box3d.h"
+#include "desktop-handles.h"
+#include "desktop.h"
#include "document-undo.h"
-#include "../verbs.h"
-#include "../inkscape.h"
-#include "../selection-chemistry.h"
-#include "../selection.h"
-
-#include "../ege-adjustment-action.h"
-#include "../ege-output-action.h"
-#include "../ege-select-one-action.h"
-#include "../ink-action.h"
-#include "../ink-comboboxentry-action.h"
-
-#include "../widgets/button.h"
-#include "../widgets/spinbutton-events.h"
-#include "../widgets/spw-utilities.h"
-#include "../widgets/widget-sizes.h"
-#include "../xml/node-event-vector.h"
-#include "../xml/repr.h"
+#include "document.h"
+#include "ege-adjustment-action.h"
+#include "ink-action.h"
+#include "inkscape.h"
+#include "persp3d.h"
+#include "selection.h"
+#include "toolbox.h"
+#include "ui/icon-names.h"
#include "ui/uxmanager.h"
-
-#include "../ui/icon-names.h"
-
-#include "ui/tools/pen-tool.h"
-
-#include "ui/tools/box3d-tool.h"
-#include "../box3d.h"
+#include "verbs.h"
+#include "xml/node-event-vector.h"
using Inkscape::UI::UXManager;
using Inkscape::DocumentUndo;
diff --git a/src/widgets/box3d-toolbar.h b/src/widgets/box3d-toolbar.h
index d80934b01..cba9ca2d8 100644
--- a/src/widgets/box3d-toolbar.h
+++ b/src/widgets/box3d-toolbar.h
@@ -27,9 +27,12 @@
* Released under GNU GPL, read the file 'COPYING' for more information
*/
-#include <gtk/gtk.h>
+
class SPDesktop;
+typedef struct _GtkActionGroup GtkActionGroup;
+typedef struct _GObject GObject;
+
void box3d_toolbox_prep(SPDesktop *desktop, GtkActionGroup* mainActions, GObject* holder);
#endif /* !SEEN_BOX3D_TOOLBAR_H */
diff --git a/src/widgets/calligraphy-toolbar.cpp b/src/widgets/calligraphy-toolbar.cpp
index 73484d1b5..9c0393cd9 100644
--- a/src/widgets/calligraphy-toolbar.cpp
+++ b/src/widgets/calligraphy-toolbar.cpp
@@ -30,34 +30,17 @@
#include "ui/dialog/calligraphic-profile-rename.h"
#include <glibmm/i18n.h>
-
-#include "toolbox.h"
#include "calligraphy-toolbar.h"
-#include "../desktop.h"
-#include "../desktop-handles.h"
+#include "desktop.h"
#include "document-undo.h"
-#include "../verbs.h"
-#include "../inkscape.h"
-
-#include "../ege-adjustment-action.h"
-#include "../ege-output-action.h"
-#include "../ege-select-one-action.h"
-#include "../ink-action.h"
-#include "../ink-comboboxentry-action.h"
-
-#include "../widgets/button.h"
-#include "../widgets/spinbutton-events.h"
-#include "ui/widget/spinbutton.h"
-#include "../widgets/spw-utilities.h"
-#include "../widgets/widget-sizes.h"
-//#include "../xml/attribute-record.h"
-#include "../xml/node-event-vector.h"
-#include "../xml/repr.h"
+#include "ege-adjustment-action.h"
+#include "ege-select-one-action.h"
+#include "ink-action.h"
+#include "preferences.h"
+#include "toolbox.h"
+#include "ui/icon-names.h"
#include "ui/uxmanager.h"
-#include "../ui/icon-names.h"
-
-#include "ui/tools/pen-tool.h"
using Inkscape::UI::UXManager;
using Inkscape::DocumentUndo;
diff --git a/src/widgets/calligraphy-toolbar.h b/src/widgets/calligraphy-toolbar.h
index 9650e03b1..e3caa19ee 100644
--- a/src/widgets/calligraphy-toolbar.h
+++ b/src/widgets/calligraphy-toolbar.h
@@ -27,9 +27,11 @@
* Released under GNU GPL, read the file 'COPYING' for more information
*/
-#include <gtk/gtk.h>
class SPDesktop;
+typedef struct _GtkActionGroup GtkActionGroup;
+typedef struct _GObject GObject;
+
void sp_calligraphy_toolbox_prep(SPDesktop *desktop, GtkActionGroup* mainActions, GObject* holder);
void update_presets_list(GObject *tbl);
diff --git a/src/widgets/connector-toolbar.cpp b/src/widgets/connector-toolbar.cpp
index 7230f521c..a0965721f 100644
--- a/src/widgets/connector-toolbar.cpp
+++ b/src/widgets/connector-toolbar.cpp
@@ -28,48 +28,33 @@
# include "config.h"
#endif
-
-#include "ui/widget/spinbutton.h"
-#include "toolbox.h"
#include "connector-toolbar.h"
-
-#include "../desktop.h"
-#include "../desktop-handles.h"
+#include "conn-avoid-ref.h"
+#include "desktop-handles.h"
+#include "desktop.h"
#include "document-undo.h"
-#include "../verbs.h"
-#include "../inkscape.h"
-#include "../selection-chemistry.h"
-#include "../selection.h"
-
-#include "../ege-adjustment-action.h"
-#include "../ege-output-action.h"
-#include "../ege-select-one-action.h"
-#include "../ink-action.h"
-#include "../ink-comboboxentry-action.h"
-
-#include "../widgets/button.h"
-#include "../widgets/spinbutton-events.h"
-#include "../widgets/spw-utilities.h"
-#include "../widgets/widget-sizes.h"
-#include "../xml/node-event-vector.h"
-#include "../xml/repr.h"
-#include "ui/uxmanager.h"
-#include "../ui/icon-names.h"
-#include "ui/tools/pen-tool.h"
-#include "../sp-namedview.h"
-#include "../conn-avoid-ref.h"
+#include "ege-adjustment-action.h"
+#include "graphlayout.h"
+#include "ink-action.h"
+#include "inkscape.h"
+#include "preferences.h"
+#include "selection.h"
+#include "sp-namedview.h"
+#include "sp-path.h"
+#include "toolbox.h"
+#include "ui/icon-names.h"
#include "ui/tools/connector-tool.h"
-#include "../graphlayout.h"
-#include "../sp-path.h"
-
+#include "ui/uxmanager.h"
+#include "verbs.h"
+#include "widgets/spinbutton-events.h"
+#include "xml/node-event-vector.h"
+#include "xml/repr.h"
using Inkscape::UI::UXManager;
using Inkscape::DocumentUndo;
using Inkscape::UI::ToolboxFactory;
using Inkscape::UI::PrefPusher;
-
-
//#########################
//## Connector ##
//#########################
diff --git a/src/widgets/connector-toolbar.h b/src/widgets/connector-toolbar.h
index 2ab26e56c..180c11e0f 100644
--- a/src/widgets/connector-toolbar.h
+++ b/src/widgets/connector-toolbar.h
@@ -27,9 +27,11 @@
* Released under GNU GPL, read the file 'COPYING' for more information
*/
-#include <gtk/gtk.h>
class SPDesktop;
+typedef struct _GtkActionGroup GtkActionGroup;
+typedef struct _GObject GObject;
+
void sp_connector_toolbox_prep(SPDesktop *desktop, GtkActionGroup* mainActions, GObject* holder);
#endif /* !SEEN_CONNECTOR_TOOLBAR_H */
diff --git a/src/widgets/dropper-toolbar.cpp b/src/widgets/dropper-toolbar.cpp
index 991489b86..478d0c1a4 100644
--- a/src/widgets/dropper-toolbar.cpp
+++ b/src/widgets/dropper-toolbar.cpp
@@ -28,40 +28,16 @@
# include "config.h"
#endif
-#include "ui/widget/spinbutton.h"
#include <glibmm/i18n.h>
-#include "toolbox.h"
-#include "dropper-toolbar.h"
-#include "../desktop.h"
-#include "../document-private.h"
+#include "dropper-toolbar.h"
#include "document-undo.h"
-#include "../verbs.h"
-#include "../inkscape.h"
-#include "../selection-chemistry.h"
-#include "../selection.h"
-#include "../ege-adjustment-action.h"
-#include "../ege-output-action.h"
-#include "../ege-select-one-action.h"
-#include "../ink-action.h"
-#include "../ink-comboboxentry-action.h"
+#include "ege-output-action.h"
+#include "ink-action.h"
+#include "preferences.h"
+#include "widgets/spinbutton-events.h"
-#include "../widgets/button.h"
-#include "../widgets/spinbutton-events.h"
-#include "../widgets/spw-utilities.h"
-#include "../widgets/widget-sizes.h"
-#include "../xml/node-event-vector.h"
-#include "../xml/repr.h"
-#include "ui/uxmanager.h"
-#include "../ui/icon-names.h"
-#include "ui/tools/pen-tool.h"
-#include "../tools-switch.h"
-
-using Inkscape::UI::UXManager;
using Inkscape::DocumentUndo;
-using Inkscape::UI::ToolboxFactory;
-using Inkscape::UI::PrefPusher;
-
//########################
//## Dropper ##
diff --git a/src/widgets/dropper-toolbar.h b/src/widgets/dropper-toolbar.h
index aa2116daf..8d5ea2d0a 100644
--- a/src/widgets/dropper-toolbar.h
+++ b/src/widgets/dropper-toolbar.h
@@ -27,9 +27,11 @@
* Released under GNU GPL, read the file 'COPYING' for more information
*/
-#include <gtk/gtk.h>
class SPDesktop;
+typedef struct _GtkActionGroup GtkActionGroup;
+typedef struct _GObject GObject;
+
void sp_dropper_toolbox_prep(SPDesktop *desktop, GtkActionGroup* mainActions, GObject* holder);
#endif /* !SEEN_DROPPER_TOOLBAR_H */
diff --git a/src/widgets/eraser-toolbar.cpp b/src/widgets/eraser-toolbar.cpp
index 5e09521c9..14e7cbf4e 100644
--- a/src/widgets/eraser-toolbar.cpp
+++ b/src/widgets/eraser-toolbar.cpp
@@ -28,37 +28,20 @@
# include "config.h"
#endif
-#include "ui/widget/spinbutton.h"
#include <glibmm/i18n.h>
-#include "toolbox.h"
-#include "eraser-toolbar.h"
-#include "calligraphy-toolbar.h"
-#include "../desktop.h"
-#include "../desktop-handles.h"
+#include "eraser-toolbar.h"
+#include "calligraphy-toolbar.h" // TODO: needed for update_presets_list
+#include "desktop-handles.h"
+#include "desktop.h"
#include "document-undo.h"
-#include "../verbs.h"
-#include "../inkscape.h"
-#include "../selection-chemistry.h"
-#include "../selection.h"
-#include "../ege-adjustment-action.h"
-#include "../ege-output-action.h"
-#include "../ege-select-one-action.h"
-#include "../ink-action.h"
-#include "../ink-comboboxentry-action.h"
-
-#include "../widgets/button.h"
-#include "../widgets/spinbutton-events.h"
-#include "../widgets/spw-utilities.h"
-#include "../widgets/widget-sizes.h"
-#include "../xml/node-event-vector.h"
-#include "../xml/repr.h"
-#include "ui/uxmanager.h"
-#include "../ui/icon-names.h"
-#include "ui/tools/pen-tool.h"
-
-
-using Inkscape::UI::UXManager;
+#include "ege-adjustment-action.h"
+#include "ege-select-one-action.h"
+#include "ink-action.h"
+#include "preferences.h"
+#include "toolbox.h"
+#include "ui/icon-names.h"
+
using Inkscape::DocumentUndo;
using Inkscape::UI::ToolboxFactory;
using Inkscape::UI::PrefPusher;
diff --git a/src/widgets/eraser-toolbar.h b/src/widgets/eraser-toolbar.h
index b1bb3a3fa..3c88d344e 100644
--- a/src/widgets/eraser-toolbar.h
+++ b/src/widgets/eraser-toolbar.h
@@ -27,9 +27,11 @@
* Released under GNU GPL, read the file 'COPYING' for more information
*/
-#include <gtk/gtk.h>
class SPDesktop;
+typedef struct _GtkActionGroup GtkActionGroup;
+typedef struct _GObject GObject;
+
void sp_eraser_toolbox_prep(SPDesktop *desktop, GtkActionGroup* mainActions, GObject* holder);
#endif /* !SEEN_ERASOR_TOOLBAR_H */
diff --git a/src/widgets/font-selector.cpp b/src/widgets/font-selector.cpp
index 5f9098d44..0e862638c 100644
--- a/src/widgets/font-selector.cpp
+++ b/src/widgets/font-selector.cpp
@@ -295,7 +295,7 @@ static void sp_font_selector_family_select_row(GtkTreeSelection *selection,
// Next get family name with its style list
gchar *family;
- GList *list=0;
+ GList *list=NULL;
gtk_tree_model_get (model, &iter, 0, &family, 1, &list, -1);
// Find best style match for selected family with current style (e.g. of selected text).
@@ -418,7 +418,7 @@ static void sp_font_selector_emit_set (SPFontSelector *fsel)
GtkTreeModel *model_style;
GtkTreeIter iter_family;
GtkTreeIter iter_style;
- char *family=0, *style=0;
+ char *family=NULL, *style=NULL;
//We need to check this here since most GtkTreeModel operations are not atomic
//See GtkListStore documenation, Chapter "Atomic Operations" --mderezynski
diff --git a/src/widgets/gradient-toolbar.cpp b/src/widgets/gradient-toolbar.cpp
index 4bed3101d..4fda44c8d 100644
--- a/src/widgets/gradient-toolbar.cpp
+++ b/src/widgets/gradient-toolbar.cpp
@@ -17,47 +17,31 @@
#endif
#include "ui/widget/color-preview.h"
-#include "verbs.h"
-
-#include "macros.h"
-#include "widgets/button.h"
-#include "widgets/widget-sizes.h"
-#include "widgets/spw-utilities.h"
-#include "widgets/spinbutton-events.h"
-#include "widgets/gradient-vector.h"
-#include "widgets/gradient-image.h"
-#include "style.h"
-
-#include "preferences.h"
-#include "document-private.h"
-#include "document-undo.h"
-#include "desktop.h"
-#include "desktop-handles.h"
#include <glibmm/i18n.h>
-
-#include "ui/tools/gradient-tool.h"
+#include "desktop-handles.h"
+#include "desktop.h"
+#include "document-undo.h"
+#include "document.h"
+#include "ege-adjustment-action.h"
+#include "ege-select-one-action.h"
+#include "gradient-chemistry.h"
#include "gradient-drag.h"
+#include "gradient-toolbar.h"
+#include "ink-action.h"
+#include "macros.h"
+#include "preferences.h"
+#include "selection.h"
+#include "sp-defs.h"
#include "sp-linear-gradient.h"
#include "sp-radial-gradient.h"
-#include "gradient-chemistry.h"
-#include "gradient-selector.h"
-#include "selection.h"
-#include "ui/icon-names.h"
-
-#include "../ege-adjustment-action.h"
-#include "../ege-output-action.h"
-#include "../ege-select-one-action.h"
-#include "../ink-action.h"
-#include "../ink-comboboxentry-action.h"
-
#include "sp-stop.h"
-#include "svg/css-ostringstream.h"
-#include "svg/svg-color.h"
-#include "desktop-style.h"
-#include "ui/tools/gradient-tool.h"
-#include "gradient-toolbar.h"
-
+#include "style.h"
#include "toolbox.h"
+#include "ui/icon-names.h"
+#include "ui/tools/gradient-tool.h"
+#include "verbs.h"
+#include "widgets/gradient-image.h"
+#include "widgets/gradient-vector.h"
using Inkscape::DocumentUndo;
using Inkscape::UI::ToolboxFactory;
diff --git a/src/widgets/gradient-toolbar.h b/src/widgets/gradient-toolbar.h
index 74cfb2886..38afb743b 100644
--- a/src/widgets/gradient-toolbar.h
+++ b/src/widgets/gradient-toolbar.h
@@ -12,9 +12,11 @@
* Released under GNU GPL, read the file 'COPYING' for more information
*/
-#include <gtk/gtk.h>
class SPDesktop;
+typedef struct _GtkActionGroup GtkActionGroup;
+typedef struct _GObject GObject;
+
void sp_gradient_toolbox_prep(SPDesktop * /*desktop*/, GtkActionGroup* mainActions, GObject* holder);
#endif /* !SEEN_GRADIENT_TOOLBAR_H */
diff --git a/src/widgets/lpe-toolbar.cpp b/src/widgets/lpe-toolbar.cpp
index 559f3fc3c..e9e5af912 100644
--- a/src/widgets/lpe-toolbar.cpp
+++ b/src/widgets/lpe-toolbar.cpp
@@ -29,50 +29,29 @@
#endif
#include "live_effects/lpe-line_segment.h"
-
-#include "toolbox.h"
#include "lpe-toolbar.h"
-
-#include "../desktop.h"
-#include "../desktop-handles.h"
+#include "connection-pool.h"
+#include "desktop-handles.h"
+#include "desktop.h"
#include "document-undo.h"
-#include "../verbs.h"
-#include "../inkscape.h"
-#include "../connection-pool.h"
-#include "../selection-chemistry.h"
-#include "../selection.h"
-#include "../ege-adjustment-action.h"
-#include "../ege-output-action.h"
-#include "../ege-select-one-action.h"
-#include "../ink-action.h"
-#include "../ink-comboboxentry-action.h"
-#include "../widgets/button.h"
-#include "../widgets/spinbutton-events.h"
-#include "ui/widget/spinbutton.h"
-#include "../widgets/spw-utilities.h"
-#include "../widgets/widget-sizes.h"
-#include "../xml/node-event-vector.h"
-#include "../xml/repr.h"
-#include "ui/uxmanager.h"
-#include "../ui/icon-names.h"
-#include "../helper/action.h"
-#include "../helper/action-context.h"
-#include "util/units.h"
-#include "ui/widget/unit-tracker.h"
-#include "ui/tools/pen-tool.h"
-#include "../sp-namedview.h"
-#include "../tools-switch.h"
-#include "../live_effects/effect.h"
-#include "../live_effects/lpe-angle_bisector.h"
+#include "ege-select-one-action.h"
+#include "helper/action-context.h"
+#include "helper/action.h"
+#include "ink-action.h"
+#include "live_effects/effect.h"
+#include "preferences.h"
+#include "selection.h"
+#include "sp-namedview.h"
+#include "tools-switch.h"
#include "ui/tools/lpe-tool.h"
+#include "ui/widget/unit-tracker.h"
+#include "util/units.h"
+#include "verbs.h"
using Inkscape::UI::Widget::UnitTracker;
using Inkscape::Util::Unit;
using Inkscape::Util::Quantity;
-using Inkscape::UI::UXManager;
using Inkscape::DocumentUndo;
-using Inkscape::UI::ToolboxFactory;
-using Inkscape::UI::PrefPusher;
using Inkscape::UI::Tools::ToolBase;
using Inkscape::UI::Tools::LpeTool;
diff --git a/src/widgets/lpe-toolbar.h b/src/widgets/lpe-toolbar.h
index 1796f8027..3db2bcb65 100644
--- a/src/widgets/lpe-toolbar.h
+++ b/src/widgets/lpe-toolbar.h
@@ -27,9 +27,11 @@
* Released under GNU GPL, read the file 'COPYING' for more information
*/
-#include <gtk/gtk.h>
class SPDesktop;
+typedef struct _GtkActionGroup GtkActionGroup;
+typedef struct _GObject GObject;
+
void sp_lpetool_toolbox_prep(SPDesktop *desktop, GtkActionGroup* mainActions, GObject* holder);
#endif /* !SEEN_LPE_TOOLBAR_H */
diff --git a/src/widgets/measure-toolbar.cpp b/src/widgets/measure-toolbar.cpp
index a75dd7600..46d3bd4e0 100644
--- a/src/widgets/measure-toolbar.cpp
+++ b/src/widgets/measure-toolbar.cpp
@@ -28,37 +28,20 @@
# include "config.h"
#endif
-#include "ui/widget/spinbutton.h"
#include <glibmm/i18n.h>
-#include "toolbox.h"
-#include "measure-toolbar.h"
-#include "../desktop.h"
-#include "../desktop-handles.h"
+#include "measure-toolbar.h"
+#include "desktop-handles.h"
+#include "desktop.h"
#include "document-undo.h"
-#include "../verbs.h"
-#include "../inkscape.h"
-#include "../selection-chemistry.h"
-#include "../selection.h"
-#include "../ege-adjustment-action.h"
-#include "../ege-output-action.h"
-#include "../ege-select-one-action.h"
-#include "../ink-action.h"
-#include "../ink-comboboxentry-action.h"
-#include "../widgets/button.h"
-#include "../widgets/spinbutton-events.h"
-#include "../widgets/spw-utilities.h"
-#include "../widgets/widget-sizes.h"
-#include "../xml/repr.h"
-#include "ui/uxmanager.h"
-#include "../ui/icon-names.h"
-#include "ui/tools/pen-tool.h"
-#include "../sp-namedview.h"
+#include "ege-adjustment-action.h"
+#include "ege-output-action.h"
+#include "preferences.h"
+#include "toolbox.h"
#include "ui/widget/unit-tracker.h"
using Inkscape::UI::Widget::UnitTracker;
using Inkscape::Util::Unit;
-using Inkscape::UI::UXManager;
using Inkscape::DocumentUndo;
using Inkscape::UI::ToolboxFactory;
using Inkscape::UI::PrefPusher;
diff --git a/src/widgets/measure-toolbar.h b/src/widgets/measure-toolbar.h
index 4b90ccb9f..aff0a209b 100644
--- a/src/widgets/measure-toolbar.h
+++ b/src/widgets/measure-toolbar.h
@@ -27,9 +27,11 @@
* Released under GNU GPL, read the file 'COPYING' for more information
*/
-#include <gtk/gtk.h>
class SPDesktop;
+typedef struct _GtkActionGroup GtkActionGroup;
+typedef struct _GObject GObject;
+
void sp_measure_toolbox_prep(SPDesktop *desktop, GtkActionGroup* mainActions, GObject* holder);
#endif /* !SEEN_MEASURE_TOOLBAR_H */
diff --git a/src/widgets/mesh-toolbar.h b/src/widgets/mesh-toolbar.h
index f84cff59b..fd3f4b4b7 100644
--- a/src/widgets/mesh-toolbar.h
+++ b/src/widgets/mesh-toolbar.h
@@ -14,9 +14,11 @@
* Released under GNU GPL, read the file 'COPYING' for more information
*/
-#include <gtk/gtk.h>
class SPDesktop;
+typedef struct _GtkActionGroup GtkActionGroup;
+typedef struct _GObject GObject;
+
void sp_mesh_toolbox_prep( SPDesktop * /*desktop*/, GtkActionGroup* mainActions, GObject* holder);
#endif /* !SEEN_MESH_TOOLBAR_H */
diff --git a/src/widgets/node-toolbar.cpp b/src/widgets/node-toolbar.cpp
index a4ea52287..53161857a 100644
--- a/src/widgets/node-toolbar.cpp
+++ b/src/widgets/node-toolbar.cpp
@@ -28,45 +28,32 @@
# include "config.h"
#endif
-#include "ui/widget/spinbutton.h"
+#include "ui/tool/multi-path-manipulator.h"
#include <glibmm/i18n.h>
-#include "toolbox.h"
#include "node-toolbar.h"
-
-#include "../desktop.h"
-#include "../desktop-handles.h"
+#include "connection-pool.h"
+#include "desktop-handles.h"
+#include "desktop.h"
#include "document-undo.h"
-#include "../verbs.h"
-#include "../inkscape.h"
-#include "../connection-pool.h"
-#include "../selection-chemistry.h"
-#include "../selection.h"
-#include "../ege-adjustment-action.h"
-#include "../ege-output-action.h"
-#include "../ege-select-one-action.h"
-#include "../ink-action.h"
-#include "../ink-comboboxentry-action.h"
-#include "../widgets/button.h"
-#include "../widgets/spinbutton-events.h"
-#include "../widgets/spw-utilities.h"
-#include "../widgets/widget-sizes.h"
-#include "../xml/attribute-record.h"
-#include "../xml/node-event-vector.h"
-#include "../xml/repr.h"
-#include "ui/uxmanager.h"
-#include "../ui/tool/control-point-selection.h"
+#include "ege-adjustment-action.h"
+#include "ink-action.h"
+#include "inkscape.h"
+#include "preferences.h"
+#include "selection-chemistry.h"
+#include "selection.h"
+#include "sp-namedview.h"
+#include "toolbox.h"
+#include "ui/icon-names.h"
+#include "ui/tool/control-point-selection.h"
#include "ui/tools/node-tool.h"
-#include "../ui/tool/multi-path-manipulator.h"
-#include "../ui/icon-names.h"
-#include "util/units.h"
#include "ui/widget/unit-tracker.h"
-#include "ui/tools/lpe-tool.h"
-#include "../sp-namedview.h"
+#include "util/units.h"
+#include "verbs.h"
+#include "widgets/widget-sizes.h"
using Inkscape::UI::Widget::UnitTracker;
using Inkscape::Util::Unit;
using Inkscape::Util::Quantity;
-using Inkscape::UI::UXManager;
using Inkscape::DocumentUndo;
using Inkscape::UI::ToolboxFactory;
using Inkscape::UI::PrefPusher;
diff --git a/src/widgets/node-toolbar.h b/src/widgets/node-toolbar.h
index dcccf1712..1f2a3f6b7 100644
--- a/src/widgets/node-toolbar.h
+++ b/src/widgets/node-toolbar.h
@@ -27,9 +27,11 @@
* Released under GNU GPL, read the file 'COPYING' for more information
*/
-#include <gtk/gtk.h>
class SPDesktop;
+typedef struct _GtkActionGroup GtkActionGroup;
+typedef struct _GObject GObject;
+
void sp_node_toolbox_prep(SPDesktop *desktop, GtkActionGroup* mainActions, GObject* holder);
#endif /* !SEEN_SELECT_TOOLBAR_H */
diff --git a/src/widgets/paintbucket-toolbar.cpp b/src/widgets/paintbucket-toolbar.cpp
index a9962b209..e20811de8 100644
--- a/src/widgets/paintbucket-toolbar.cpp
+++ b/src/widgets/paintbucket-toolbar.cpp
@@ -28,40 +28,20 @@
# include "config.h"
#endif
-#include "ui/widget/spinbutton.h"
#include <glibmm/i18n.h>
-#include "toolbox.h"
-#include "paintbucket-toolbar.h"
-#include "../desktop.h"
-#include "../desktop-handles.h"
+#include "paintbucket-toolbar.h"
+#include "desktop.h"
#include "document-undo.h"
-#include "../verbs.h"
-#include "../inkscape.h"
-#include "../connection-pool.h"
-#include "../selection-chemistry.h"
-#include "../selection.h"
-#include "../ege-adjustment-action.h"
-#include "../ege-output-action.h"
-#include "../ege-select-one-action.h"
-#include "../ink-action.h"
-#include "../ink-comboboxentry-action.h"
-#include "../widgets/button.h"
-#include "../widgets/spinbutton-events.h"
-#include "../widgets/spw-utilities.h"
-#include "../widgets/widget-sizes.h"
-#include "../xml/node-event-vector.h"
-#include "../xml/repr.h"
+#include "ege-adjustment-action.h"
+#include "ege-select-one-action.h"
+#include "preferences.h"
+#include "toolbox.h"
+#include "ui/icon-names.h"
+#include "ui/tools/flood-tool.h"
#include "ui/uxmanager.h"
-#include "../ui/icon-names.h"
-#include "util/units.h"
#include "ui/widget/unit-tracker.h"
-#include "ui/tools/pen-tool.h"
-#include "../sp-namedview.h"
-#include "ui/tools/flood-tool.h"
-
-#include <gtk/gtk.h>
-
+#include "util/units.h"
using Inkscape::UI::Widget::UnitTracker;
using Inkscape::UI::UXManager;
@@ -71,7 +51,6 @@ using Inkscape::UI::PrefPusher;
using Inkscape::Util::unit_table;
-
//#########################
//## Paintbucket ##
//#########################
diff --git a/src/widgets/paintbucket-toolbar.h b/src/widgets/paintbucket-toolbar.h
index fe25c7fe2..9e6d6194a 100644
--- a/src/widgets/paintbucket-toolbar.h
+++ b/src/widgets/paintbucket-toolbar.h
@@ -27,9 +27,11 @@
* Released under GNU GPL, read the file 'COPYING' for more information
*/
-#include <gtk/gtk.h>
class SPDesktop;
+typedef struct _GtkActionGroup GtkActionGroup;
+typedef struct _GObject GObject;
+
void sp_paintbucket_toolbox_prep(SPDesktop *desktop, GtkActionGroup* mainActions, GObject* holder);
#endif /* !SEEN_PAINTBUCKET_TOOLBAR_H */
diff --git a/src/widgets/pencil-toolbar.cpp b/src/widgets/pencil-toolbar.cpp
index eb55f9219..6598e995a 100644
--- a/src/widgets/pencil-toolbar.cpp
+++ b/src/widgets/pencil-toolbar.cpp
@@ -28,56 +28,27 @@
# include "config.h"
#endif
-#include "ui/widget/spinbutton.h"
#include <glibmm/i18n.h>
-#include "toolbox.h"
-#include "pencil-toolbar.h"
-#include "../desktop.h"
-#include "../desktop-handles.h"
-#include "../desktop-style.h"
-#include "../document-private.h"
+#include "pencil-toolbar.h"
+#include "desktop.h"
#include "document-undo.h"
-#include "../verbs.h"
-#include "../inkscape.h"
-//#include "../interface.h"
-//#include "../connection-pool.h"
-#include "../selection-chemistry.h"
-#include "../selection.h"
-
-#include <gtk/gtk.h>
-
-#include "../ege-adjustment-action.h"
-#include "../ege-output-action.h"
-#include "../ege-select-one-action.h"
-#include "../ink-action.h"
-#include "../ink-comboboxentry-action.h"
-
-#include "../widgets/button.h"
-#include "../widgets/spinbutton-events.h"
-#include "../widgets/spw-utilities.h"
-#include "../widgets/widget-sizes.h"
-//#include "../xml/attribute-record.h"
-#include "../xml/node-event-vector.h"
-#include "../xml/repr.h"
-#include "ui/uxmanager.h"
-
-//#include "../ui/tool/control-point-selection.h"
-//#include "ui/tools/node-tool.h"
-//#include "../ui/tool/multi-path-manipulator.h"
-#include "../ui/icon-names.h"
-
+#include "ege-adjustment-action.h"
+#include "ege-select-one-action.h"
+#include "ink-action.h"
+#include "preferences.h"
+#include "toolbox.h"
+#include "tools-switch.h"
+#include "ui/icon-names.h"
#include "ui/tools/pen-tool.h"
-//#include "../sp-namedview.h"
-#include "../tools-switch.h"
+#include "ui/uxmanager.h"
+#include "widgets/spinbutton-events.h"
using Inkscape::UI::UXManager;
using Inkscape::DocumentUndo;
using Inkscape::UI::ToolboxFactory;
using Inkscape::UI::PrefPusher;
-
-
//########################
//## Pen/Pencil ##
//########################
diff --git a/src/widgets/pencil-toolbar.h b/src/widgets/pencil-toolbar.h
index 14f1e8930..c01b7d591 100644
--- a/src/widgets/pencil-toolbar.h
+++ b/src/widgets/pencil-toolbar.h
@@ -27,9 +27,11 @@
* Released under GNU GPL, read the file 'COPYING' for more information
*/
-#include <gtk/gtk.h>
class SPDesktop;
+typedef struct _GtkActionGroup GtkActionGroup;
+typedef struct _GObject GObject;
+
void sp_pencil_toolbox_prep(SPDesktop *desktop, GtkActionGroup* mainActions, GObject* holder);
void sp_pen_toolbox_prep(SPDesktop * /*desktop*/, GtkActionGroup* mainActions, GObject* holder);
diff --git a/src/widgets/rect-toolbar.cpp b/src/widgets/rect-toolbar.cpp
index f5a509db3..6996786e3 100644
--- a/src/widgets/rect-toolbar.cpp
+++ b/src/widgets/rect-toolbar.cpp
@@ -28,36 +28,29 @@
# include "config.h"
#endif
-#include "ui/widget/spinbutton.h"
#include <glibmm/i18n.h>
-#include "toolbox.h"
-#include "rect-toolbar.h"
-#include "../desktop.h"
-#include "../desktop-handles.h"
+#include "rect-toolbar.h"
+#include "desktop-handles.h"
+#include "desktop.h"
#include "document-undo.h"
-#include "../verbs.h"
-#include "../inkscape.h"
-#include "../selection-chemistry.h"
-#include "../selection.h"
-#include "../ege-adjustment-action.h"
-#include "../ege-output-action.h"
-#include "../ege-select-one-action.h"
-#include "../ink-action.h"
-#include "../ink-comboboxentry-action.h"
-#include "../widgets/button.h"
-#include "../widgets/spinbutton-events.h"
-#include "../widgets/spw-utilities.h"
-#include "../widgets/widget-sizes.h"
-#include "../xml/node-event-vector.h"
-#include "../xml/repr.h"
+#include "ege-adjustment-action.h"
+#include "ege-output-action.h"
+#include "ink-action.h"
+#include "inkscape.h"
+#include "preferences.h"
+#include "selection.h"
+#include "sp-namedview.h"
+#include "sp-rect.h"
+#include "toolbox.h"
+#include "ui/icon-names.h"
#include "ui/uxmanager.h"
-#include "../ui/icon-names.h"
-#include "util/units.h"
#include "ui/widget/unit-tracker.h"
-#include "ui/tools/pen-tool.h"
-#include "../sp-namedview.h"
-#include "../sp-rect.h"
+#include "util/units.h"
+#include "verbs.h"
+#include "widgets/widget-sizes.h"
+#include "xml/node-event-vector.h"
+#include "xml/repr.h"
using Inkscape::UI::Widget::UnitTracker;
using Inkscape::UI::UXManager;
diff --git a/src/widgets/rect-toolbar.h b/src/widgets/rect-toolbar.h
index e123c095b..f89903c6c 100644
--- a/src/widgets/rect-toolbar.h
+++ b/src/widgets/rect-toolbar.h
@@ -27,9 +27,11 @@
* Released under GNU GPL, read the file 'COPYING' for more information
*/
-#include <gtk/gtk.h>
class SPDesktop;
+typedef struct _GtkActionGroup GtkActionGroup;
+typedef struct _GObject GObject;
+
void sp_rect_toolbox_prep(SPDesktop *desktop, GtkActionGroup* mainActions, GObject* holder);
#endif /* !SEEN_RECT_TOOLBAR_H */
diff --git a/src/widgets/select-toolbar.cpp b/src/widgets/select-toolbar.cpp
index 1cd4347d6..284e436bf 100644
--- a/src/widgets/select-toolbar.cpp
+++ b/src/widgets/select-toolbar.cpp
@@ -16,44 +16,36 @@
# include "config.h"
#endif
-#include "ui/widget/spinbutton.h"
-#include <gtk/gtk.h>
-
-#include "widgets/button.h"
-#include "widgets/spw-utilities.h"
-#include "widgets/widget-sizes.h"
-#include "widgets/spinbutton-events.h"
-#include "widgets/icon.h"
-#include "widgets/sp-widget.h"
+#include <2geom/rect.h>
-#include "preferences.h"
-#include "selection-chemistry.h"
-#include "document.h"
-#include "document-undo.h"
-#include "inkscape.h"
-#include "desktop-style.h"
-#include "desktop.h"
-#include "desktop-handles.h"
-#include "sp-namedview.h"
-#include "toolbox.h"
+#include "ui/widget/spinbutton.h"
#include <glibmm/i18n.h>
-#include "helper/action.h"
+#include "select-toolbar.h"
+#include "desktop-handles.h"
+#include "desktop.h"
+#include "display/sp-canvas.h"
+#include "document-undo.h"
+#include "document.h"
+#include "ege-adjustment-action.h"
#include "helper/action-context.h"
-#include "util/units.h"
+#include "helper/action.h"
+#include "ink-action.h"
#include "inkscape.h"
-#include "verbs.h"
-#include "selection.h"
+#include "message-stack.h"
+#include "preferences.h"
#include "selection-chemistry.h"
+#include "selection.h"
#include "sp-item-transform.h"
-#include "message-stack.h"
-#include "display/sp-canvas.h"
-#include "ui/widget/unit-tracker.h"
-#include "ege-adjustment-action.h"
-#include "ege-output-action.h"
-#include "ink-action.h"
-#include <2geom/rect.h>
+#include "sp-namedview.h"
+#include "toolbox.h"
#include "ui/icon-names.h"
-#include "select-toolbar.h"
+#include "ui/widget/unit-tracker.h"
+#include "util/units.h"
+#include "verbs.h"
+#include "widgets/icon.h"
+#include "widgets/sp-widget.h"
+#include "widgets/spw-utilities.h"
+#include "widgets/widget-sizes.h"
using Inkscape::UI::Widget::UnitTracker;
using Inkscape::Util::Unit;
diff --git a/src/widgets/select-toolbar.h b/src/widgets/select-toolbar.h
index e3573da66..b900a0615 100644
--- a/src/widgets/select-toolbar.h
+++ b/src/widgets/select-toolbar.h
@@ -14,9 +14,11 @@
* Released under GNU GPL, read the file 'COPYING' for more information
*/
-#include <gtk/gtk.h>
class SPDesktop;
+typedef struct _GtkActionGroup GtkActionGroup;
+typedef struct _GObject GObject;
+
void sp_select_toolbox_prep(SPDesktop *desktop, GtkActionGroup* mainActions, GObject* holder);
diff --git a/src/widgets/spiral-toolbar.cpp b/src/widgets/spiral-toolbar.cpp
index b95c1c41e..710be9440 100644
--- a/src/widgets/spiral-toolbar.cpp
+++ b/src/widgets/spiral-toolbar.cpp
@@ -28,43 +28,32 @@
# include "config.h"
#endif
-#include "ui/widget/spinbutton.h"
#include <glibmm/i18n.h>
-#include "toolbox.h"
-#include "spiral-toolbar.h"
-#include "../desktop.h"
-#include "../desktop-handles.h"
+#include "spiral-toolbar.h"
+#include "desktop-handles.h"
+#include "desktop.h"
#include "document-undo.h"
-#include "../verbs.h"
-#include "../inkscape.h"
-#include "../selection-chemistry.h"
-#include "../selection.h"
-#include "../ege-adjustment-action.h"
-#include "../ege-output-action.h"
-#include "../ege-select-one-action.h"
-#include "../ink-action.h"
-#include "../ink-comboboxentry-action.h"
-#include "../widgets/button.h"
-#include "../widgets/spinbutton-events.h"
-#include "../widgets/spw-utilities.h"
-#include "../widgets/widget-sizes.h"
-#include "../xml/node-event-vector.h"
-#include "../xml/repr.h"
+#include "ege-adjustment-action.h"
+#include "ege-output-action.h"
+#include "ink-action.h"
+#include "preferences.h"
+#include "selection.h"
+#include "sp-spiral.h"
+#include "toolbox.h"
+#include "ui/icon-names.h"
#include "ui/uxmanager.h"
-#include "../ui/icon-names.h"
-#include "ui/tools/pen-tool.h"
-#include "../sp-spiral.h"
+#include "verbs.h"
+#include "widgets/spinbutton-events.h"
+#include "xml/node-event-vector.h"
+#include "xml/node.h"
+#include "xml/repr.h"
using Inkscape::UI::UXManager;
using Inkscape::DocumentUndo;
using Inkscape::UI::ToolboxFactory;
using Inkscape::UI::PrefPusher;
-
-
-
-
//########################
//## Spiral ##
//########################
diff --git a/src/widgets/spiral-toolbar.h b/src/widgets/spiral-toolbar.h
index 194b54bce..3372ea224 100644
--- a/src/widgets/spiral-toolbar.h
+++ b/src/widgets/spiral-toolbar.h
@@ -27,9 +27,11 @@
* Released under GNU GPL, read the file 'COPYING' for more information
*/
-#include <gtk/gtk.h>
class SPDesktop;
+typedef struct _GtkActionGroup GtkActionGroup;
+typedef struct _GObject GObject;
+
void sp_spiral_toolbox_prep(SPDesktop *desktop, GtkActionGroup* mainActions, GObject* holder);
#endif /* !SEEN_SPIRAL_TOOLBAR_H */
diff --git a/src/widgets/spray-toolbar.cpp b/src/widgets/spray-toolbar.cpp
index 49406d564..cf56b3255 100644
--- a/src/widgets/spray-toolbar.cpp
+++ b/src/widgets/spray-toolbar.cpp
@@ -28,34 +28,18 @@
# include "config.h"
#endif
-#include "ui/widget/spinbutton.h"
#include <glibmm/i18n.h>
-#include "toolbox.h"
-#include "spray-toolbar.h"
-#include "../desktop.h"
-#include "../desktop-handles.h"
+#include "spray-toolbar.h"
+#include "desktop.h"
#include "document-undo.h"
-#include "../verbs.h"
-#include "../inkscape.h"
-#include "../selection-chemistry.h"
-#include "../selection.h"
-#include "../ege-adjustment-action.h"
-#include "../ege-output-action.h"
-#include "../ege-select-one-action.h"
-#include "../ink-action.h"
-#include "../ink-comboboxentry-action.h"
-#include "../widgets/button.h"
-#include "../widgets/spinbutton-events.h"
-#include "../widgets/spw-utilities.h"
-#include "../widgets/widget-sizes.h"
-#include "../xml/repr.h"
-#include "ui/uxmanager.h"
-#include "../ui/icon-names.h"
-#include "ui/tools/pen-tool.h"
-#include "ui/tools/spray-tool.h"
-
-using Inkscape::UI::UXManager;
+#include "ege-adjustment-action.h"
+#include "ege-select-one-action.h"
+#include "ink-action.h"
+#include "preferences.h"
+#include "toolbox.h"
+#include "ui/icon-names.h"
+
using Inkscape::DocumentUndo;
using Inkscape::UI::ToolboxFactory;
using Inkscape::UI::PrefPusher;
diff --git a/src/widgets/spray-toolbar.h b/src/widgets/spray-toolbar.h
index 170b6bb8e..d1d5c7b4c 100644
--- a/src/widgets/spray-toolbar.h
+++ b/src/widgets/spray-toolbar.h
@@ -27,9 +27,11 @@
* Released under GNU GPL, read the file 'COPYING' for more information
*/
-#include <gtk/gtk.h>
class SPDesktop;
+typedef struct _GtkActionGroup GtkActionGroup;
+typedef struct _GObject GObject;
+
void sp_spray_toolbox_prep(SPDesktop *desktop, GtkActionGroup* mainActions, GObject* holder);
#endif /* !SEEN_SELECT_TOOLBAR_H */
diff --git a/src/widgets/star-toolbar.cpp b/src/widgets/star-toolbar.cpp
index 28b2c7e0c..7a7d0dc71 100644
--- a/src/widgets/star-toolbar.cpp
+++ b/src/widgets/star-toolbar.cpp
@@ -28,34 +28,26 @@
# include "config.h"
#endif
-#include "ui/widget/spinbutton.h"
#include <glibmm/i18n.h>
-#include "toolbox.h"
-#include "star-toolbar.h"
-#include "../desktop.h"
-#include "../desktop-handles.h"
+#include "star-toolbar.h"
+#include "desktop-handles.h"
+#include "desktop.h"
#include "document-undo.h"
-#include "../verbs.h"
-#include "../inkscape.h"
-#include "../selection-chemistry.h"
-#include "../selection.h"
-#include "../ege-adjustment-action.h"
-#include "../ege-output-action.h"
-#include "../ege-select-one-action.h"
-#include "../ink-action.h"
-#include "../ink-comboboxentry-action.h"
-#include "../widgets/button.h"
-#include "../widgets/spinbutton-events.h"
-#include "../widgets/spw-utilities.h"
-#include "../widgets/widget-sizes.h"
-#include "../xml/node-event-vector.h"
-#include "../xml/repr.h"
+#include "ege-adjustment-action.h"
+#include "ege-output-action.h"
+#include "ege-select-one-action.h"
+#include "ink-action.h"
+#include "selection.h"
+#include "sp-star.h"
+#include "toolbox.h"
+#include "ui/icon-names.h"
#include "ui/uxmanager.h"
-#include "../ui/icon-names.h"
-#include "ui/tools/pen-tool.h"
-#include "../sp-star.h"
-
+#include "verbs.h"
+#include "widgets/../preferences.h"
+#include "xml/node-event-vector.h"
+#include "xml/node.h"
+#include "xml/repr.h"
using Inkscape::UI::UXManager;
using Inkscape::DocumentUndo;
diff --git a/src/widgets/star-toolbar.h b/src/widgets/star-toolbar.h
index 6f91d5570..aa0db785c 100644
--- a/src/widgets/star-toolbar.h
+++ b/src/widgets/star-toolbar.h
@@ -27,9 +27,11 @@
* Released under GNU GPL, read the file 'COPYING' for more information
*/
-#include <gtk/gtk.h>
class SPDesktop;
+typedef struct _GtkActionGroup GtkActionGroup;
+typedef struct _GObject GObject;
+
void sp_star_toolbox_prep(SPDesktop *desktop, GtkActionGroup* mainActions, GObject* holder);
#endif /* !SEEN_SELECT_TOOLBAR_H */
diff --git a/src/widgets/text-toolbar.cpp b/src/widgets/text-toolbar.cpp
index 6d5d54871..349fefa12 100644
--- a/src/widgets/text-toolbar.cpp
+++ b/src/widgets/text-toolbar.cpp
@@ -28,48 +28,35 @@
# include "config.h"
#endif
-#include "ui/widget/spinbutton.h"
+#include "libnrtype/font-lister.h"
#include <glibmm/i18n.h>
-#include "toolbox.h"
#include "text-toolbar.h"
-
-#include "../desktop.h"
-#include "../desktop-handles.h"
-#include "../desktop-style.h"
+#include "connection-pool.h"
+#include "desktop-handles.h"
+#include "desktop-style.h"
+#include "desktop.h"
#include "document-undo.h"
-#include "../sp-root.h"
-#include "../verbs.h"
-#include "../inkscape.h"
-#include "../connection-pool.h"
-#include "../selection-chemistry.h"
-#include "../selection.h"
-#include "../ege-adjustment-action.h"
-#include "../ege-output-action.h"
-#include "../ege-select-one-action.h"
-#include "../ink-action.h"
-#include "../ink-comboboxentry-action.h"
-#include "../widgets/button.h"
-#include "../widgets/spinbutton-events.h"
-#include "../widgets/spw-utilities.h"
-#include "../widgets/widget-sizes.h"
-#include "../xml/node-event-vector.h"
-#include "../xml/repr.h"
-#include "ui/uxmanager.h"
-#include "../ui/icon-names.h"
-#include "ui/tools/pen-tool.h"
-#include "../sp-namedview.h"
-#include "../svg/css-ostringstream.h"
-#include "../sp-flowtext.h"
-#include "../sp-text.h"
-#include "../style.h"
-#include "../libnrtype/font-lister.h"
-#include "../libnrtype/font-instance.h"
+#include "document.h"
+#include "ege-adjustment-action.h"
+#include "ege-select-one-action.h"
+#include "ink-action.h"
+#include "ink-comboboxentry-action.h"
+#include "inkscape.h"
+#include "preferences.h"
+#include "selection-chemistry.h"
+#include "selection.h"
+#include "sp-flowtext.h"
+#include "sp-root.h"
+#include "sp-text.h"
+#include "style.h"
+#include "svg/css-ostringstream.h"
+#include "text-editing.h"
+#include "toolbox.h"
+#include "ui/icon-names.h"
#include "ui/tools/text-tool.h"
-#include "../text-editing.h"
-#include "widgets/font-selector.h"
-
+#include "verbs.h"
+#include "xml/repr.h"
-using Inkscape::UI::UXManager;
using Inkscape::DocumentUndo;
using Inkscape::UI::ToolboxFactory;
using Inkscape::UI::PrefPusher;
diff --git a/src/widgets/text-toolbar.h b/src/widgets/text-toolbar.h
index 68158d201..86a1cad21 100644
--- a/src/widgets/text-toolbar.h
+++ b/src/widgets/text-toolbar.h
@@ -27,9 +27,11 @@
* Released under GNU GPL, read the file 'COPYING' for more information
*/
-#include <gtk/gtk.h>
class SPDesktop;
+typedef struct _GtkActionGroup GtkActionGroup;
+typedef struct _GObject GObject;
+
void sp_text_toolbox_prep(SPDesktop *desktop, GtkActionGroup* mainActions, GObject* holder);
#endif /* !SEEN_TEXT_TOOLBAR_H */
diff --git a/src/widgets/tweak-toolbar.cpp b/src/widgets/tweak-toolbar.cpp
index 6999b057d..050d7fb5e 100644
--- a/src/widgets/tweak-toolbar.cpp
+++ b/src/widgets/tweak-toolbar.cpp
@@ -30,32 +30,18 @@
#include "ui/widget/spinbutton.h"
#include <glibmm/i18n.h>
-#include "toolbox.h"
#include "tweak-toolbar.h"
-
-#include "../desktop.h"
-#include "../desktop-handles.h"
+#include "desktop.h"
#include "document-undo.h"
-#include "../verbs.h"
-#include "../inkscape.h"
-#include "../selection-chemistry.h"
-#include "../selection.h"
-#include "../ege-adjustment-action.h"
-#include "../ege-output-action.h"
-#include "../ege-select-one-action.h"
-#include "../ink-action.h"
-#include "../ink-comboboxentry-action.h"
-#include "../widgets/button.h"
-#include "../widgets/spinbutton-events.h"
-#include "../widgets/spw-utilities.h"
-#include "../widgets/widget-sizes.h"
-#include "../xml/repr.h"
-#include "ui/uxmanager.h"
-#include "../ui/icon-names.h"
-#include "ui/tools/pen-tool.h"
+#include "ege-adjustment-action.h"
+#include "ege-output-action.h"
+#include "ege-select-one-action.h"
+#include "ink-action.h"
+#include "preferences.h"
+#include "toolbox.h"
+#include "ui/icon-names.h"
#include "ui/tools/tweak-tool.h"
-using Inkscape::UI::UXManager;
using Inkscape::DocumentUndo;
using Inkscape::UI::ToolboxFactory;
using Inkscape::UI::PrefPusher;
diff --git a/src/widgets/tweak-toolbar.h b/src/widgets/tweak-toolbar.h
index 6f840f2c1..1a65a0844 100644
--- a/src/widgets/tweak-toolbar.h
+++ b/src/widgets/tweak-toolbar.h
@@ -27,9 +27,11 @@
* Released under GNU GPL, read the file 'COPYING' for more information
*/
-#include <gtk/gtk.h>
class SPDesktop;
+typedef struct _GtkActionGroup GtkActionGroup;
+typedef struct _GObject GObject;
+
void sp_tweak_toolbox_prep(SPDesktop *desktop, GtkActionGroup* mainActions, GObject* holder);
#endif /* !SEEN_SELECT_TOOLBAR_H */
diff --git a/src/widgets/zoom-toolbar.cpp b/src/widgets/zoom-toolbar.cpp
index a5ab6e211..79feef86d 100644
--- a/src/widgets/zoom-toolbar.cpp
+++ b/src/widgets/zoom-toolbar.cpp
@@ -28,38 +28,8 @@
# include "config.h"
#endif
-#include "ui/widget/spinbutton.h"
-#include "toolbox.h"
#include "zoom-toolbar.h"
-#include "../desktop.h"
-#include "../desktop-handles.h"
-#include "document-undo.h"
-#include "../verbs.h"
-#include "../inkscape.h"
-#include "../selection-chemistry.h"
-#include "../selection.h"
-#include "../ege-adjustment-action.h"
-#include "../ege-output-action.h"
-#include "../ege-select-one-action.h"
-#include "../ink-action.h"
-#include "../ink-comboboxentry-action.h"
-#include "../widgets/button.h"
-#include "../widgets/spinbutton-events.h"
-#include "../widgets/spw-utilities.h"
-#include "../widgets/widget-sizes.h"
-#include "../xml/repr.h"
-#include "ui/uxmanager.h"
-#include "../ui/icon-names.h"
-#include "ui/tools/pen-tool.h"
-#include "ui/tools/tweak-tool.h"
-
-
-using Inkscape::UI::UXManager;
-using Inkscape::DocumentUndo;
-using Inkscape::UI::ToolboxFactory;
-using Inkscape::UI::PrefPusher;
-
//########################
//## Zoom Toolbox ##
//########################
diff --git a/src/widgets/zoom-toolbar.h b/src/widgets/zoom-toolbar.h
index b8d6a42af..45d979066 100644
--- a/src/widgets/zoom-toolbar.h
+++ b/src/widgets/zoom-toolbar.h
@@ -27,9 +27,11 @@
* Released under GNU GPL, read the file 'COPYING' for more information
*/
-#include <gtk/gtk.h>
class SPDesktop;
+typedef struct _GtkActionGroup GtkActionGroup;
+typedef struct _GObject GObject;
+
void sp_zoom_toolbox_prep(SPDesktop *desktop, GtkActionGroup* mainActions, GObject* holder);
#endif /* !SEEN_ZOOM_TOOLBAR_H */