initial commit
|
@ -0,0 +1,35 @@
|
|||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 24
|
||||
/svn/!svn/ver/2080/trunk
|
||||
END
|
||||
LICENSE
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 32
|
||||
/svn/!svn/ver/2044/trunk/LICENSE
|
||||
END
|
||||
AUTHORS
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 32
|
||||
/svn/!svn/ver/1563/trunk/AUTHORS
|
||||
END
|
||||
CHANGES
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 32
|
||||
/svn/!svn/ver/2044/trunk/CHANGES
|
||||
END
|
||||
README
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 30
|
||||
/svn/!svn/ver/143/trunk/README
|
||||
END
|
||||
Makefile
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 33
|
||||
/svn/!svn/ver/2060/trunk/Makefile
|
||||
END
|
|
@ -0,0 +1,6 @@
|
|||
K 13
|
||||
svn:mergeinfo
|
||||
V 64
|
||||
/branches/fixtransforms:992-1070
|
||||
/branches/transformlist:897-933
|
||||
END
|
|
@ -0,0 +1,234 @@
|
|||
10
|
||||
|
||||
dir
|
||||
2080
|
||||
http://svg-edit.googlecode.com/svn/trunk
|
||||
http://svg-edit.googlecode.com/svn
|
||||
|
||||
|
||||
|
||||
2012-05-08T20:09:38.998857Z
|
||||
2080
|
||||
rusnakp
|
||||
has-props
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
eee81c28-f429-11dd-99c0-75d572ba1ddd
|
||||
|
||||
test
|
||||
dir
|
||||
|
||||
LICENSE
|
||||
file
|
||||
|
||||
|
||||
|
||||
|
||||
2012-03-23T10:42:16.000000Z
|
||||
2de10bee5aba2997d80b7a43eb148154
|
||||
2011-09-29T14:56:00.675535Z
|
||||
2044
|
||||
rusnakp
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
1087
|
||||
|
||||
AUTHORS
|
||||
file
|
||||
|
||||
|
||||
|
||||
|
||||
2012-03-23T10:42:16.000000Z
|
||||
8009158a7750de0de912d9355abb9ac6
|
||||
2010-05-03T23:29:13.086772Z
|
||||
1563
|
||||
rusnakp
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
995
|
||||
|
||||
editor
|
||||
dir
|
||||
|
||||
opera-widget
|
||||
dir
|
||||
|
||||
docs
|
||||
dir
|
||||
|
||||
chrome-app
|
||||
dir
|
||||
|
||||
README
|
||||
file
|
||||
|
||||
|
||||
|
||||
|
||||
2012-03-23T10:42:16.000000Z
|
||||
a08402165e55578ba5c7af29b0185a98
|
||||
2009-06-17T19:00:23.784445Z
|
||||
143
|
||||
rusnakp
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
417
|
||||
|
||||
clipart
|
||||
dir
|
||||
|
||||
build
|
||||
dir
|
||||
|
||||
wave
|
||||
dir
|
||||
|
||||
extras
|
||||
dir
|
||||
|
||||
CHANGES
|
||||
file
|
||||
|
||||
|
||||
|
||||
|
||||
2012-03-23T10:42:16.000000Z
|
||||
74ed2c78b092891646a49b81f7b7c89d
|
||||
2011-09-29T14:56:00.675535Z
|
||||
2044
|
||||
rusnakp
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
2666
|
||||
|
||||
firefox-extension
|
||||
dir
|
||||
|
||||
screencasts
|
||||
dir
|
||||
|
||||
Makefile
|
||||
file
|
||||
|
||||
|
||||
|
||||
|
||||
2012-03-23T10:42:16.000000Z
|
||||
3fdd50a53e633648a8413eda96a820b6
|
||||
2012-03-17T17:45:28.575273Z
|
||||
2060
|
||||
codedread
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
2783
|
||||
|
||||
examples
|
||||
dir
|
||||
|
|
@ -0,0 +1,22 @@
|
|||
Narendra Sisodiya <narendra.sisodiya@gmail.com>
|
||||
Pavol Rusnak <rusnakp@gmail.com>
|
||||
Jeff Schiller <codedread@gmail.com>
|
||||
Vidar Hokstad <vidar.hokstad@gmail.com>
|
||||
Alexis Deveria <adeveria@gmail.com>
|
||||
|
||||
Translation credits:
|
||||
|
||||
ar: Tarik Belaam <dubraise@gmail.com> (العربية)
|
||||
cs: Jan Ptacek <jan.ptacek@gmail.com> (Čeština)
|
||||
de: Reimar Bauer <rb.proj@googlemail.com> (Deutsch)
|
||||
es: Alicia Puerto <alicia.puerto.g@gmail.com> (Español)
|
||||
fa: Payman Delshad <payman@opera.com> (فارسی)
|
||||
fr: wormsxulla <wormsxulla@yahoo.com> (Français)
|
||||
fy: Wander Nauta <info@wandernauta.nl> (Frysk)
|
||||
hi: Tavish Naruka <tavishnaruka@gmail.com> (हिन्दी)
|
||||
ja: Dong <iwadon@yarhalla.jpn.org> (日本語)
|
||||
nl: Jaap Blom <jaap.blom@gmail.com> (Nederlands)
|
||||
ro: Christian Tzurcanu <christian.tzurcanu@gmail.com> (Româneşte)
|
||||
ru: Laurent Dufloux <laurent.dufloux@etu.upmc.fr> (Русский)
|
||||
sk: Pavol Rusnak <rusnakp@gmail.com> (Slovenčina)
|
||||
zh-TW: 黃瀚生 (Han Sheng Huang) <zenixls2@gmail.com> (台灣正體)
|
|
@ -0,0 +1,97 @@
|
|||
2.5 - June 15, 2010
|
||||
-------------------
|
||||
* Open Local Files (Firefox 3.6+ only)
|
||||
* Import SVG into Drawing (Firefox 3.6+ only)
|
||||
* Ability to create extensions/plugins
|
||||
* Main menu and overal interface improvements
|
||||
* Create and select elements outside the canvas
|
||||
* Base support for the svg:use element
|
||||
* Add/Edit Sub-paths
|
||||
* Multiple path segment selection
|
||||
* Radial Gradient support
|
||||
* Connector lines
|
||||
* Arrows & Markers
|
||||
* Smoother freehand paths
|
||||
* Foreign markup support (ForeignObject?/MathML)
|
||||
* Configurable options
|
||||
* File-loading options
|
||||
* Eye-dropper tool (copy element style)
|
||||
* Stroke linejoin and linecap options
|
||||
* Export to PNG
|
||||
* Blur tool
|
||||
* Page-align single elements
|
||||
* Inline text editing
|
||||
* Line draw snapping with Shift key
|
||||
|
||||
2.4 - January 11, 2010
|
||||
----------------------
|
||||
* Zoom
|
||||
* Layers
|
||||
* UI Localization
|
||||
* Wireframe Mode
|
||||
* Resizable UI (SVG icons)
|
||||
* Set background color and/or image (for tracing)
|
||||
* Convert Shapes to Paths
|
||||
* X, Y coordinates for all elements
|
||||
* Draggable Dialog boxes
|
||||
* Select Non-Adjacent Elements
|
||||
* Fixed-ratio resize
|
||||
* Automatic Tool Switching
|
||||
* Raster Images
|
||||
* Group elements
|
||||
* Add/Remove path nodes
|
||||
* Curved Paths
|
||||
* Floating point values for all attributes
|
||||
* Text fields for all attributes
|
||||
* Title element
|
||||
|
||||
2.3 - September 08, 2009
|
||||
------------------------
|
||||
* Align Objects
|
||||
* Rotate Objects
|
||||
* Clone Objects
|
||||
* Select Next/Prev Object
|
||||
* Edit SVG Source
|
||||
* Gradient picking
|
||||
* Polygon Mode (Path Editing, Phase 1)
|
||||
|
||||
2.2 - July 08, 2009
|
||||
-------------------
|
||||
* Multiselect Mode
|
||||
* Undo/Redo Actions
|
||||
* Resize Elements
|
||||
* Contextual tools for rect, circle, ellipse, line, text elements
|
||||
* Some updated button images
|
||||
* Stretched the UI to fit the browser window
|
||||
* Resizing of the SVG canvas
|
||||
* Upgraded to jPicker 1.0.8
|
||||
|
||||
2.1 - June 17, 2009
|
||||
-------------------
|
||||
* tooltips added to all UI elements
|
||||
* fix flyout menus
|
||||
* ask before clearing the drawing (suggested by martin.vidner)
|
||||
* control group, fill and stroke opacity
|
||||
* fix flyouts when using color picker
|
||||
* change license from GPLv2 to Apache License v2.0
|
||||
* replaced Farbtastic with jPicker, because of the license issues
|
||||
* removed dependency on svgcanvas.svg, now created in JavaScript
|
||||
* added Select tool
|
||||
* using jQuery hosted by Google instead of local version
|
||||
* allow dragging of elements
|
||||
* save SVG file to separate tab
|
||||
* create and edit text elements
|
||||
* context panel tools
|
||||
* change rect radius, font-family, font-size
|
||||
* added keystroke shortcuts for all tools
|
||||
* move to top/bottom
|
||||
|
||||
2.0 - June 03, 2009
|
||||
-------------------
|
||||
* rewritten SVG-edit, so now it uses OOP
|
||||
* draw ellipse, square
|
||||
* created HTML interface similar to Inkscape
|
||||
|
||||
1.0 - February 06, 2009
|
||||
-------------------
|
||||
* SVG-Edit released
|
|
@ -0,0 +1,19 @@
|
|||
Copyright (c) 2009-2011 by SVG-edit authors (see AUTHORS file)
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
|
@ -0,0 +1,97 @@
|
|||
NAME=svg-edit
|
||||
VERSION=2.6
|
||||
PACKAGE=$(NAME)-$(VERSION)
|
||||
MAKEDOCS=naturaldocs/NaturalDocs
|
||||
CLOSURE=build/tools/closure-compiler.jar
|
||||
ZIP=zip
|
||||
|
||||
# All files that will be compiled by the Closure compiler.
|
||||
|
||||
JS_FILES=\
|
||||
contextmenu/jquery.contextmenu.js \
|
||||
browser.js \
|
||||
svgtransformlist.js \
|
||||
math.js \
|
||||
units.js \
|
||||
svgutils.js \
|
||||
sanitize.js \
|
||||
history.js \
|
||||
select.js \
|
||||
draw.js \
|
||||
path.js \
|
||||
svgcanvas.js \
|
||||
svg-editor.js \
|
||||
contextmenu.js \
|
||||
locale/locale.js
|
||||
|
||||
JS_INPUT_FILES=$(addprefix editor/, $(JS_FILES))
|
||||
JS_BUILD_FILES=$(addprefix build/$(PACKAGE)/, $(JS_FILES))
|
||||
CLOSURE_JS_ARGS=$(addprefix --js , $(JS_INPUT_FILES))
|
||||
COMPILED_JS=editor/svgedit.compiled.js
|
||||
|
||||
all: release firefox opera
|
||||
|
||||
# The build directory relies on the JS being compiled.
|
||||
build/$(PACKAGE): $(COMPILED_JS)
|
||||
rm -rf config
|
||||
mkdir config
|
||||
if [ -x $(MAKEDOCS) ] ; then $(MAKEDOCS) -i editor/ -o html docs/ -p config/ -oft -r ; fi
|
||||
|
||||
# Make build directory and copy all editor contents into it
|
||||
mkdir -p build/$(PACKAGE)
|
||||
cp -r editor/* build/$(PACKAGE)
|
||||
|
||||
# Remove all hidden .svn directories
|
||||
-find build/$(PACKAGE) -name .svn -type d | xargs rm -rf {} \;
|
||||
|
||||
# Create the release version of the main HTML file.
|
||||
build/tools/ship.py --i=editor/svg-editor.html --on=svg_edit_release > build/$(PACKAGE)/svg-editor.html
|
||||
|
||||
# NOTE: Some files are not ready for the Closure compiler: (jquery)
|
||||
# NOTE: Our code safely compiles under SIMPLE_OPTIMIZATIONS
|
||||
# NOTE: Our code is *not* ready for ADVANCED_OPTIMIZATIONS
|
||||
# NOTE: WHITESPACE_ONLY and --formatting PRETTY_PRINT is helpful for debugging.
|
||||
$(COMPILED_JS):
|
||||
java -jar $(CLOSURE) \
|
||||
--compilation_level SIMPLE_OPTIMIZATIONS \
|
||||
$(CLOSURE_JS_ARGS) \
|
||||
--js_output_file $(COMPILED_JS)
|
||||
|
||||
compile: $(COMPILED_JS)
|
||||
|
||||
release: build/$(PACKAGE)
|
||||
cd build ; $(ZIP) $(PACKAGE).zip -r $(PACKAGE) ; cd ..
|
||||
tar -z -c -f build/$(PACKAGE)-src.tar.gz \
|
||||
--exclude='\.svn' \
|
||||
--exclude='build/*' \
|
||||
.
|
||||
|
||||
firefox: build/$(PACKAGE)
|
||||
mkdir -p build/firefox/content/editor
|
||||
cp -r firefox-extension/* build/firefox
|
||||
rm -rf build/firefox/content/.svn
|
||||
cp -r build/$(PACKAGE)/* build/firefox/content/editor
|
||||
rm -f build/firefox/content/editor/embedapi.js
|
||||
cd build/firefox ; $(ZIP) ../$(PACKAGE).xpi -r * ; cd ../..
|
||||
|
||||
opera: build/$(PACKAGE)
|
||||
mkdir -p build/opera/editor
|
||||
cp opera-widget/* build/opera
|
||||
cp -r build/$(PACKAGE)/* build/opera/editor
|
||||
cd build/opera ; $(ZIP) ../$(PACKAGE).wgt -r * ; cd ../..
|
||||
|
||||
chrome:
|
||||
mkdir -p build/svgedit_app
|
||||
cp -a chrome-app/* build/svgedit_app
|
||||
cd build ; $(ZIP) -r $(PACKAGE)-crx.zip svgedit_app ; rm -rf svgedit_app; cd ..
|
||||
|
||||
clean:
|
||||
rm -rf config
|
||||
rm -rf build/$(PACKAGE)
|
||||
rm -rf build/firefox
|
||||
rm -rf build/opera
|
||||
rm -rf build/$(PACKAGE).zip
|
||||
rm -rf build/$(PACKAGE)-src.tar.gz
|
||||
rm -rf build/$(PACKAGE).xpi
|
||||
rm -rf build/$(PACKAGE).wgt
|
||||
rm -rf $(COMPILED_JS)
|
|
@ -0,0 +1,21 @@
|
|||
SVG-edit, a web based SVG editor
|
||||
|
||||
http://code.google.com/p/svg-edit/
|
||||
|
||||
see AUTHORS file for authors
|
||||
|
||||
-----
|
||||
|
||||
SVG-edit contains code from these projects:
|
||||
|
||||
jQuery JavaScript Library v1.3.2
|
||||
http://jquery.com/
|
||||
Copyright (c) 2009 John Resig
|
||||
|
||||
jQuery js-Hotkeys
|
||||
http://code.google.com/p/js-hotkeys/
|
||||
Copyright (c) 2008 Tzury Bar Yochay
|
||||
|
||||
jPicker
|
||||
http://www.digitalmagicpro.com/jPicker/
|
||||
Copyright (c) 2009 Christopher T. Tillman
|
|
@ -0,0 +1,22 @@
|
|||
Narendra Sisodiya <narendra.sisodiya@gmail.com>
|
||||
Pavol Rusnak <rusnakp@gmail.com>
|
||||
Jeff Schiller <codedread@gmail.com>
|
||||
Vidar Hokstad <vidar.hokstad@gmail.com>
|
||||
Alexis Deveria <adeveria@gmail.com>
|
||||
|
||||
Translation credits:
|
||||
|
||||
ar: Tarik Belaam <dubraise@gmail.com> (العربية)
|
||||
cs: Jan Ptacek <jan.ptacek@gmail.com> (Čeština)
|
||||
de: Reimar Bauer <rb.proj@googlemail.com> (Deutsch)
|
||||
es: Alicia Puerto <alicia.puerto.g@gmail.com> (Español)
|
||||
fa: Payman Delshad <payman@opera.com> (فارسی)
|
||||
fr: wormsxulla <wormsxulla@yahoo.com> (Français)
|
||||
fy: Wander Nauta <info@wandernauta.nl> (Frysk)
|
||||
hi: Tavish Naruka <tavishnaruka@gmail.com> (हिन्दी)
|
||||
ja: Dong <iwadon@yarhalla.jpn.org> (日本語)
|
||||
nl: Jaap Blom <jaap.blom@gmail.com> (Nederlands)
|
||||
ro: Christian Tzurcanu <christian.tzurcanu@gmail.com> (Româneşte)
|
||||
ru: Laurent Dufloux <laurent.dufloux@etu.upmc.fr> (Русский)
|
||||
sk: Pavol Rusnak <rusnakp@gmail.com> (Slovenčina)
|
||||
zh-TW: 黃瀚生 (Han Sheng Huang) <zenixls2@gmail.com> (台灣正體)
|
|
@ -0,0 +1,97 @@
|
|||
2.5 - June 15, 2010
|
||||
-------------------
|
||||
* Open Local Files (Firefox 3.6+ only)
|
||||
* Import SVG into Drawing (Firefox 3.6+ only)
|
||||
* Ability to create extensions/plugins
|
||||
* Main menu and overal interface improvements
|
||||
* Create and select elements outside the canvas
|
||||
* Base support for the svg:use element
|
||||
* Add/Edit Sub-paths
|
||||
* Multiple path segment selection
|
||||
* Radial Gradient support
|
||||
* Connector lines
|
||||
* Arrows & Markers
|
||||
* Smoother freehand paths
|
||||
* Foreign markup support (ForeignObject?/MathML)
|
||||
* Configurable options
|
||||
* File-loading options
|
||||
* Eye-dropper tool (copy element style)
|
||||
* Stroke linejoin and linecap options
|
||||
* Export to PNG
|
||||
* Blur tool
|
||||
* Page-align single elements
|
||||
* Inline text editing
|
||||
* Line draw snapping with Shift key
|
||||
|
||||
2.4 - January 11, 2010
|
||||
----------------------
|
||||
* Zoom
|
||||
* Layers
|
||||
* UI Localization
|
||||
* Wireframe Mode
|
||||
* Resizable UI (SVG icons)
|
||||
* Set background color and/or image (for tracing)
|
||||
* Convert Shapes to Paths
|
||||
* X, Y coordinates for all elements
|
||||
* Draggable Dialog boxes
|
||||
* Select Non-Adjacent Elements
|
||||
* Fixed-ratio resize
|
||||
* Automatic Tool Switching
|
||||
* Raster Images
|
||||
* Group elements
|
||||
* Add/Remove path nodes
|
||||
* Curved Paths
|
||||
* Floating point values for all attributes
|
||||
* Text fields for all attributes
|
||||
* Title element
|
||||
|
||||
2.3 - September 08, 2009
|
||||
------------------------
|
||||
* Align Objects
|
||||
* Rotate Objects
|
||||
* Clone Objects
|
||||
* Select Next/Prev Object
|
||||
* Edit SVG Source
|
||||
* Gradient picking
|
||||
* Polygon Mode (Path Editing, Phase 1)
|
||||
|
||||
2.2 - July 08, 2009
|
||||
-------------------
|
||||
* Multiselect Mode
|
||||
* Undo/Redo Actions
|
||||
* Resize Elements
|
||||
* Contextual tools for rect, circle, ellipse, line, text elements
|
||||
* Some updated button images
|
||||
* Stretched the UI to fit the browser window
|
||||
* Resizing of the SVG canvas
|
||||
* Upgraded to jPicker 1.0.8
|
||||
|
||||
2.1 - June 17, 2009
|
||||
-------------------
|
||||
* tooltips added to all UI elements
|
||||
* fix flyout menus
|
||||
* ask before clearing the drawing (suggested by martin.vidner)
|
||||
* control group, fill and stroke opacity
|
||||
* fix flyouts when using color picker
|
||||
* change license from GPLv2 to Apache License v2.0
|
||||
* replaced Farbtastic with jPicker, because of the license issues
|
||||
* removed dependency on svgcanvas.svg, now created in JavaScript
|
||||
* added Select tool
|
||||
* using jQuery hosted by Google instead of local version
|
||||
* allow dragging of elements
|
||||
* save SVG file to separate tab
|
||||
* create and edit text elements
|
||||
* context panel tools
|
||||
* change rect radius, font-family, font-size
|
||||
* added keystroke shortcuts for all tools
|
||||
* move to top/bottom
|
||||
|
||||
2.0 - June 03, 2009
|
||||
-------------------
|
||||
* rewritten SVG-edit, so now it uses OOP
|
||||
* draw ellipse, square
|
||||
* created HTML interface similar to Inkscape
|
||||
|
||||
1.0 - February 06, 2009
|
||||
-------------------
|
||||
* SVG-Edit released
|
|
@ -0,0 +1,19 @@
|
|||
Copyright (c) 2009-2011 by SVG-edit authors (see AUTHORS file)
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
|
@ -0,0 +1,97 @@
|
|||
NAME=svg-edit
|
||||
VERSION=2.6
|
||||
PACKAGE=$(NAME)-$(VERSION)
|
||||
MAKEDOCS=naturaldocs/NaturalDocs
|
||||
CLOSURE=build/tools/closure-compiler.jar
|
||||
ZIP=zip
|
||||
|
||||
# All files that will be compiled by the Closure compiler.
|
||||
|
||||
JS_FILES=\
|
||||
contextmenu/jquery.contextmenu.js \
|
||||
browser.js \
|
||||
svgtransformlist.js \
|
||||
math.js \
|
||||
units.js \
|
||||
svgutils.js \
|
||||
sanitize.js \
|
||||
history.js \
|
||||
select.js \
|
||||
draw.js \
|
||||
path.js \
|
||||
svgcanvas.js \
|
||||
svg-editor.js \
|
||||
contextmenu.js \
|
||||
locale/locale.js
|
||||
|
||||
JS_INPUT_FILES=$(addprefix editor/, $(JS_FILES))
|
||||
JS_BUILD_FILES=$(addprefix build/$(PACKAGE)/, $(JS_FILES))
|
||||
CLOSURE_JS_ARGS=$(addprefix --js , $(JS_INPUT_FILES))
|
||||
COMPILED_JS=editor/svgedit.compiled.js
|
||||
|
||||
all: release firefox opera
|
||||
|
||||
# The build directory relies on the JS being compiled.
|
||||
build/$(PACKAGE): $(COMPILED_JS)
|
||||
rm -rf config
|
||||
mkdir config
|
||||
if [ -x $(MAKEDOCS) ] ; then $(MAKEDOCS) -i editor/ -o html docs/ -p config/ -oft -r ; fi
|
||||
|
||||
# Make build directory and copy all editor contents into it
|
||||
mkdir -p build/$(PACKAGE)
|
||||
cp -r editor/* build/$(PACKAGE)
|
||||
|
||||
# Remove all hidden .svn directories
|
||||
-find build/$(PACKAGE) -name .svn -type d | xargs rm -rf {} \;
|
||||
|
||||
# Create the release version of the main HTML file.
|
||||
build/tools/ship.py --i=editor/svg-editor.html --on=svg_edit_release > build/$(PACKAGE)/svg-editor.html
|
||||
|
||||
# NOTE: Some files are not ready for the Closure compiler: (jquery)
|
||||
# NOTE: Our code safely compiles under SIMPLE_OPTIMIZATIONS
|
||||
# NOTE: Our code is *not* ready for ADVANCED_OPTIMIZATIONS
|
||||
# NOTE: WHITESPACE_ONLY and --formatting PRETTY_PRINT is helpful for debugging.
|
||||
$(COMPILED_JS):
|
||||
java -jar $(CLOSURE) \
|
||||
--compilation_level SIMPLE_OPTIMIZATIONS \
|
||||
$(CLOSURE_JS_ARGS) \
|
||||
--js_output_file $(COMPILED_JS)
|
||||
|
||||
compile: $(COMPILED_JS)
|
||||
|
||||
release: build/$(PACKAGE)
|
||||
cd build ; $(ZIP) $(PACKAGE).zip -r $(PACKAGE) ; cd ..
|
||||
tar -z -c -f build/$(PACKAGE)-src.tar.gz \
|
||||
--exclude='\.svn' \
|
||||
--exclude='build/*' \
|
||||
.
|
||||
|
||||
firefox: build/$(PACKAGE)
|
||||
mkdir -p build/firefox/content/editor
|
||||
cp -r firefox-extension/* build/firefox
|
||||
rm -rf build/firefox/content/.svn
|
||||
cp -r build/$(PACKAGE)/* build/firefox/content/editor
|
||||
rm -f build/firefox/content/editor/embedapi.js
|
||||
cd build/firefox ; $(ZIP) ../$(PACKAGE).xpi -r * ; cd ../..
|
||||
|
||||
opera: build/$(PACKAGE)
|
||||
mkdir -p build/opera/editor
|
||||
cp opera-widget/* build/opera
|
||||
cp -r build/$(PACKAGE)/* build/opera/editor
|
||||
cd build/opera ; $(ZIP) ../$(PACKAGE).wgt -r * ; cd ../..
|
||||
|
||||
chrome:
|
||||
mkdir -p build/svgedit_app
|
||||
cp -a chrome-app/* build/svgedit_app
|
||||
cd build ; $(ZIP) -r $(PACKAGE)-crx.zip svgedit_app ; rm -rf svgedit_app; cd ..
|
||||
|
||||
clean:
|
||||
rm -rf config
|
||||
rm -rf build/$(PACKAGE)
|
||||
rm -rf build/firefox
|
||||
rm -rf build/opera
|
||||
rm -rf build/$(PACKAGE).zip
|
||||
rm -rf build/$(PACKAGE)-src.tar.gz
|
||||
rm -rf build/$(PACKAGE).xpi
|
||||
rm -rf build/$(PACKAGE).wgt
|
||||
rm -rf $(COMPILED_JS)
|
|
@ -0,0 +1,21 @@
|
|||
SVG-edit, a web based SVG editor
|
||||
|
||||
http://code.google.com/p/svg-edit/
|
||||
|
||||
see AUTHORS file for authors
|
||||
|
||||
-----
|
||||
|
||||
SVG-edit contains code from these projects:
|
||||
|
||||
jQuery JavaScript Library v1.3.2
|
||||
http://jquery.com/
|
||||
Copyright (c) 2009 John Resig
|
||||
|
||||
jQuery js-Hotkeys
|
||||
http://code.google.com/p/js-hotkeys/
|
||||
Copyright (c) 2008 Tzury Bar Yochay
|
||||
|
||||
jPicker
|
||||
http://www.digitalmagicpro.com/jPicker/
|
||||
Copyright (c) 2009 Christopher T. Tillman
|
|
@ -0,0 +1,5 @@
|
|||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 30
|
||||
/svn/!svn/ver/1934/trunk/build
|
||||
END
|
|
@ -0,0 +1,31 @@
|
|||
10
|
||||
|
||||
dir
|
||||
2080
|
||||
http://svg-edit.googlecode.com/svn/trunk/build
|
||||
http://svg-edit.googlecode.com/svn
|
||||
|
||||
|
||||
|
||||
2011-01-18T19:04:34.428452Z
|
||||
1934
|
||||
codedread
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
eee81c28-f429-11dd-99c0-75d572ba1ddd
|
||||
|
||||
tools
|
||||
dir
|
||||
|
|
@ -0,0 +1,35 @@
|
|||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 36
|
||||
/svn/!svn/ver/1934/trunk/build/tools
|
||||
END
|
||||
closure-compiler.jar
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 57
|
||||
/svn/!svn/ver/1833/trunk/build/tools/closure-compiler.jar
|
||||
END
|
||||
COPYING
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 44
|
||||
/svn/!svn/ver/1833/trunk/build/tools/COPYING
|
||||
END
|
||||
ship.py
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 44
|
||||
/svn/!svn/ver/1934/trunk/build/tools/ship.py
|
||||
END
|
||||
README
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 43
|
||||
/svn/!svn/ver/1833/trunk/build/tools/README
|
||||
END
|
||||
yuicompressor.jar
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 54
|
||||
/svn/!svn/ver/1480/trunk/build/tools/yuicompressor.jar
|
||||
END
|
|
@ -0,0 +1,198 @@
|
|||
10
|
||||
|
||||
dir
|
||||
2080
|
||||
http://svg-edit.googlecode.com/svn/trunk/build/tools
|
||||
http://svg-edit.googlecode.com/svn
|
||||
|
||||
|
||||
|
||||
2011-01-18T19:04:34.428452Z
|
||||
1934
|
||||
codedread
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
eee81c28-f429-11dd-99c0-75d572ba1ddd
|
||||
|
||||
closure-compiler.jar
|
||||
file
|
||||
|
||||
|
||||
|
||||
|
||||
2012-03-23T10:42:16.000000Z
|
||||
e805ba926e14ba85aa09334aac487533
|
||||
2010-10-28T16:47:39.333879Z
|
||||
1833
|
||||
codedread
|
||||
has-props
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
3939454
|
||||
|
||||
COPYING
|
||||
file
|
||||
|
||||
|
||||
|
||||
|
||||
2012-03-23T10:42:16.000000Z
|
||||
3b83ef96387f14655fc854ddc3c6bd57
|
||||
2010-10-28T16:47:39.333879Z
|
||||
1833
|
||||
codedread
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
11358
|
||||
|
||||
ship.py
|
||||
file
|
||||
|
||||
|
||||
|
||||
|
||||
2012-03-23T10:42:16.000000Z
|
||||
a646b846ec8b02ea86aa4b7179394963
|
||||
2011-01-18T19:04:34.428452Z
|
||||
1934
|
||||
codedread
|
||||
has-props
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
4264
|
||||
|
||||
README
|
||||
file
|
||||
|
||||
|
||||
|
||||
|
||||
2012-03-23T10:42:16.000000Z
|
||||
52caab2236380abcd7ed78f0c55d9213
|
||||
2010-10-28T16:47:39.333879Z
|
||||
1833
|
||||
codedread
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
7143
|
||||
|
||||
yuicompressor.jar
|
||||
file
|
||||
|
||||
|
||||
|
||||
|
||||
2012-03-23T10:42:16.000000Z
|
||||
15af1cac844bb711c44b19b66444c853
|
||||
2010-03-28T13:59:52.102843Z
|
||||
1480
|
||||
rusnakp
|
||||
has-props
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
851359
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
K 13
|
||||
svn:mime-type
|
||||
V 24
|
||||
application/octet-stream
|
||||
END
|
|
@ -0,0 +1,5 @@
|
|||
K 14
|
||||
svn:executable
|
||||
V 1
|
||||
*
|
||||
END
|
|
@ -0,0 +1,5 @@
|
|||
K 13
|
||||
svn:mime-type
|
||||
V 24
|
||||
application/octet-stream
|
||||
END
|
|
@ -0,0 +1,202 @@
|
|||
|
||||
Apache License
|
||||
Version 2.0, January 2004
|
||||
http://www.apache.org/licenses/
|
||||
|
||||
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
||||
|
||||
1. Definitions.
|
||||
|
||||
"License" shall mean the terms and conditions for use, reproduction,
|
||||
and distribution as defined by Sections 1 through 9 of this document.
|
||||
|
||||
"Licensor" shall mean the copyright owner or entity authorized by
|
||||
the copyright owner that is granting the License.
|
||||
|
||||
"Legal Entity" shall mean the union of the acting entity and all
|
||||
other entities that control, are controlled by, or are under common
|
||||
control with that entity. For the purposes of this definition,
|
||||
"control" means (i) the power, direct or indirect, to cause the
|
||||
direction or management of such entity, whether by contract or
|
||||
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
||||
outstanding shares, or (iii) beneficial ownership of such entity.
|
||||
|
||||
"You" (or "Your") shall mean an individual or Legal Entity
|
||||
exercising permissions granted by this License.
|
||||
|
||||
"Source" form shall mean the preferred form for making modifications,
|
||||
including but not limited to software source code, documentation
|
||||
source, and configuration files.
|
||||
|
||||
"Object" form shall mean any form resulting from mechanical
|
||||
transformation or translation of a Source form, including but
|
||||
not limited to compiled object code, generated documentation,
|
||||
and conversions to other media types.
|
||||
|
||||
"Work" shall mean the work of authorship, whether in Source or
|
||||
Object form, made available under the License, as indicated by a
|
||||
copyright notice that is included in or attached to the work
|
||||
(an example is provided in the Appendix below).
|
||||
|
||||
"Derivative Works" shall mean any work, whether in Source or Object
|
||||
form, that is based on (or derived from) the Work and for which the
|
||||
editorial revisions, annotations, elaborations, or other modifications
|
||||
represent, as a whole, an original work of authorship. For the purposes
|
||||
of this License, Derivative Works shall not include works that remain
|
||||
separable from, or merely link (or bind by name) to the interfaces of,
|
||||
the Work and Derivative Works thereof.
|
||||
|
||||
"Contribution" shall mean any work of authorship, including
|
||||
the original version of the Work and any modifications or additions
|
||||
to that Work or Derivative Works thereof, that is intentionally
|
||||
submitted to Licensor for inclusion in the Work by the copyright owner
|
||||
or by an individual or Legal Entity authorized to submit on behalf of
|
||||
the copyright owner. For the purposes of this definition, "submitted"
|
||||
means any form of electronic, verbal, or written communication sent
|
||||
to the Licensor or its representatives, including but not limited to
|
||||
communication on electronic mailing lists, source code control systems,
|
||||
and issue tracking systems that are managed by, or on behalf of, the
|
||||
Licensor for the purpose of discussing and improving the Work, but
|
||||
excluding communication that is conspicuously marked or otherwise
|
||||
designated in writing by the copyright owner as "Not a Contribution."
|
||||
|
||||
"Contributor" shall mean Licensor and any individual or Legal Entity
|
||||
on behalf of whom a Contribution has been received by Licensor and
|
||||
subsequently incorporated within the Work.
|
||||
|
||||
2. Grant of Copyright License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
copyright license to reproduce, prepare Derivative Works of,
|
||||
publicly display, publicly perform, sublicense, and distribute the
|
||||
Work and such Derivative Works in Source or Object form.
|
||||
|
||||
3. Grant of Patent License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
(except as stated in this section) patent license to make, have made,
|
||||
use, offer to sell, sell, import, and otherwise transfer the Work,
|
||||
where such license applies only to those patent claims licensable
|
||||
by such Contributor that are necessarily infringed by their
|
||||
Contribution(s) alone or by combination of their Contribution(s)
|
||||
with the Work to which such Contribution(s) was submitted. If You
|
||||
institute patent litigation against any entity (including a
|
||||
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
||||
or a Contribution incorporated within the Work constitutes direct
|
||||
or contributory patent infringement, then any patent licenses
|
||||
granted to You under this License for that Work shall terminate
|
||||
as of the date such litigation is filed.
|
||||
|
||||
4. Redistribution. You may reproduce and distribute copies of the
|
||||
Work or Derivative Works thereof in any medium, with or without
|
||||
modifications, and in Source or Object form, provided that You
|
||||
meet the following conditions:
|
||||
|
||||
(a) You must give any other recipients of the Work or
|
||||
Derivative Works a copy of this License; and
|
||||
|
||||
(b) You must cause any modified files to carry prominent notices
|
||||
stating that You changed the files; and
|
||||
|
||||
(c) You must retain, in the Source form of any Derivative Works
|
||||
that You distribute, all copyright, patent, trademark, and
|
||||
attribution notices from the Source form of the Work,
|
||||
excluding those notices that do not pertain to any part of
|
||||
the Derivative Works; and
|
||||
|
||||
(d) If the Work includes a "NOTICE" text file as part of its
|
||||
distribution, then any Derivative Works that You distribute must
|
||||
include a readable copy of the attribution notices contained
|
||||
within such NOTICE file, excluding those notices that do not
|
||||
pertain to any part of the Derivative Works, in at least one
|
||||
of the following places: within a NOTICE text file distributed
|
||||
as part of the Derivative Works; within the Source form or
|
||||
documentation, if provided along with the Derivative Works; or,
|
||||
within a display generated by the Derivative Works, if and
|
||||
wherever such third-party notices normally appear. The contents
|
||||
of the NOTICE file are for informational purposes only and
|
||||
do not modify the License. You may add Your own attribution
|
||||
notices within Derivative Works that You distribute, alongside
|
||||
or as an addendum to the NOTICE text from the Work, provided
|
||||
that such additional attribution notices cannot be construed
|
||||
as modifying the License.
|
||||
|
||||
You may add Your own copyright statement to Your modifications and
|
||||
may provide additional or different license terms and conditions
|
||||
for use, reproduction, or distribution of Your modifications, or
|
||||
for any such Derivative Works as a whole, provided Your use,
|
||||
reproduction, and distribution of the Work otherwise complies with
|
||||
the conditions stated in this License.
|
||||
|
||||
5. Submission of Contributions. Unless You explicitly state otherwise,
|
||||
any Contribution intentionally submitted for inclusion in the Work
|
||||
by You to the Licensor shall be under the terms and conditions of
|
||||
this License, without any additional terms or conditions.
|
||||
Notwithstanding the above, nothing herein shall supersede or modify
|
||||
the terms of any separate license agreement you may have executed
|
||||
with Licensor regarding such Contributions.
|
||||
|
||||
6. Trademarks. This License does not grant permission to use the trade
|
||||
names, trademarks, service marks, or product names of the Licensor,
|
||||
except as required for reasonable and customary use in describing the
|
||||
origin of the Work and reproducing the content of the NOTICE file.
|
||||
|
||||
7. Disclaimer of Warranty. Unless required by applicable law or
|
||||
agreed to in writing, Licensor provides the Work (and each
|
||||
Contributor provides its Contributions) on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||
implied, including, without limitation, any warranties or conditions
|
||||
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
||||
PARTICULAR PURPOSE. You are solely responsible for determining the
|
||||
appropriateness of using or redistributing the Work and assume any
|
||||
risks associated with Your exercise of permissions under this License.
|
||||
|
||||
8. Limitation of Liability. In no event and under no legal theory,
|
||||
whether in tort (including negligence), contract, or otherwise,
|
||||
unless required by applicable law (such as deliberate and grossly
|
||||
negligent acts) or agreed to in writing, shall any Contributor be
|
||||
liable to You for damages, including any direct, indirect, special,
|
||||
incidental, or consequential damages of any character arising as a
|
||||
result of this License or out of the use or inability to use the
|
||||
Work (including but not limited to damages for loss of goodwill,
|
||||
work stoppage, computer failure or malfunction, or any and all
|
||||
other commercial damages or losses), even if such Contributor
|
||||
has been advised of the possibility of such damages.
|
||||
|
||||
9. Accepting Warranty or Additional Liability. While redistributing
|
||||
the Work or Derivative Works thereof, You may choose to offer,
|
||||
and charge a fee for, acceptance of support, warranty, indemnity,
|
||||
or other liability obligations and/or rights consistent with this
|
||||
License. However, in accepting such obligations, You may act only
|
||||
on Your own behalf and on Your sole responsibility, not on behalf
|
||||
of any other Contributor, and only if You agree to indemnify,
|
||||
defend, and hold each Contributor harmless for any liability
|
||||
incurred by, or claims asserted against, such Contributor by reason
|
||||
of your accepting any such warranty or additional liability.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
APPENDIX: How to apply the Apache License to your work.
|
||||
|
||||
To apply the Apache License to your work, attach the following
|
||||
boilerplate notice, with the fields enclosed by brackets "[]"
|
||||
replaced with your own identifying information. (Don't include
|
||||
the brackets!) The text should be enclosed in the appropriate
|
||||
comment syntax for the file format. We also recommend that a
|
||||
file or class name and description of purpose be included on the
|
||||
same "printed page" as the copyright notice for easier
|
||||
identification within third-party archives.
|
||||
|
||||
Copyright [yyyy] [name of copyright owner]
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
|
@ -0,0 +1,289 @@
|
|||
/*
|
||||
* Copyright 2009 Google Inc.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
//
|
||||
// Contents
|
||||
//
|
||||
|
||||
The Closure Compiler performs checking, instrumentation, and
|
||||
optimizations on JavaScript code. The purpose of this README is to
|
||||
explain how to build and run the Closure Compiler.
|
||||
|
||||
The Closure Compiler requires Java 6 or higher.
|
||||
http://www.java.com/
|
||||
|
||||
|
||||
//
|
||||
// Building The Closure Compiler
|
||||
//
|
||||
|
||||
There are three ways to get a Closure Compiler executable.
|
||||
|
||||
1) Use one we built for you.
|
||||
|
||||
Pre-built Closure binaries can be found at
|
||||
http://code.google.com/p/closure-compiler/downloads/list
|
||||
|
||||
|
||||
2) Check out the source and build it with Apache Ant.
|
||||
|
||||
First, check out the full source tree of the Closure Compiler. There
|
||||
are instructions on how to do this at the project site.
|
||||
http://code.google.com/p/closure-compiler/source/checkout
|
||||
|
||||
Apache Ant is a cross-platform build tool.
|
||||
http://ant.apache.org/
|
||||
|
||||
At the root of the source tree, there is an Ant file named
|
||||
build.xml. To use it, navigate to the same directory and type the
|
||||
command
|
||||
|
||||
ant jar
|
||||
|
||||
This will produce a jar file called "build/compiler.jar".
|
||||
|
||||
|
||||
3) Check out the source and build it with Eclipse.
|
||||
|
||||
Eclipse is a cross-platform IDE.
|
||||
http://www.eclipse.org/
|
||||
|
||||
Under Eclipse's File menu, click "New > Project ..." and create a
|
||||
"Java Project." You will see an options screen. Give the project a
|
||||
name, select "Create project from existing source," and choose the
|
||||
root of the checked-out source tree as the existing directory. Verify
|
||||
that you are using JRE version 6 or higher.
|
||||
|
||||
Eclipse can use the build.xml file to discover rules. When you
|
||||
navigate to the build.xml file, you will see all the build rules in
|
||||
the "Outline" pane. Run the "jar" rule to build the compiler in
|
||||
build/compiler.jar.
|
||||
|
||||
|
||||
//
|
||||
// Running The Closure Compiler
|
||||
//
|
||||
|
||||
Once you have the jar binary, running the Closure Compiler is straightforward.
|
||||
|
||||
On the command line, type
|
||||
|
||||
java -jar compiler.jar
|
||||
|
||||
This starts the compiler in interactive mode. Type
|
||||
|
||||
var x = 17 + 25;
|
||||
|
||||
then hit "Enter", then hit "Ctrl-Z" (on Windows) or "Ctrl-D" (on Mac or Linux)
|
||||
and "Enter" again. The Compiler will respond:
|
||||
|
||||
var x=42;
|
||||
|
||||
The Closure Compiler has many options for reading input from a file,
|
||||
writing output to a file, checking your code, and running
|
||||
optimizations. To learn more, type
|
||||
|
||||
java -jar compiler.jar --help
|
||||
|
||||
You can read more detailed documentation about the many flags at
|
||||
http://code.google.com/closure/compiler/docs/gettingstarted_app.html
|
||||
|
||||
|
||||
//
|
||||
// Compiling Multiple Scripts
|
||||
//
|
||||
|
||||
If you have multiple scripts, you should compile them all together with
|
||||
one compile command.
|
||||
|
||||
java -jar compiler.jar --js=in1.js --js=in2.js ... --js_output_file=out.js
|
||||
|
||||
The Closure Compiler will concatenate the files in the order they're
|
||||
passed at the command line.
|
||||
|
||||
If you need to compile many, many scripts together, you may start to
|
||||
run into problems with managing dependencies between scripts. You
|
||||
should check out the Closure Library. It contains functions for
|
||||
enforcing dependencies between scripts, and a tool called calcdeps.py
|
||||
that knows how to give scripts to the Closure Compiler in the right
|
||||
order.
|
||||
|
||||
http://code.google.com/p/closure-library/
|
||||
|
||||
//
|
||||
// Licensing
|
||||
//
|
||||
|
||||
Unless otherwise stated, all source files are licensed under
|
||||
the Apache License, Version 2.0.
|
||||
|
||||
|
||||
-----
|
||||
Code under:
|
||||
src/com/google/javascript/rhino
|
||||
test/com/google/javascript/rhino
|
||||
|
||||
URL: http://www.mozilla.org/rhino
|
||||
Version: 1.5R3, with heavy modifications
|
||||
License: Netscape Public License and MPL / GPL dual license
|
||||
|
||||
Description: A partial copy of Mozilla Rhino. Mozilla Rhino is an
|
||||
implementation of JavaScript for the JVM. The JavaScript parser and
|
||||
the parse tree data structures were extracted and modified
|
||||
significantly for use by Google's JavaScript compiler.
|
||||
|
||||
Local Modifications: The packages have been renamespaced. All code not
|
||||
relavant to parsing has been removed. A JSDoc parser and static typing
|
||||
system have been added.
|
||||
|
||||
|
||||
-----
|
||||
Code in:
|
||||
lib/libtrunk_rhino_parser_jarjared.jar
|
||||
|
||||
Rhino
|
||||
URL: http://www.mozilla.org/rhino
|
||||
Version: Trunk
|
||||
License: Netscape Public License and MPL / GPL dual license
|
||||
|
||||
Description: Mozilla Rhino is an implementation of JavaScript for the JVM.
|
||||
|
||||
Local Modifications: None. We've used JarJar to renamespace the code
|
||||
post-compilation. See:
|
||||
http://code.google.com/p/jarjar/
|
||||
|
||||
|
||||
-----
|
||||
Code in:
|
||||
lib/args4j_deploy.jar
|
||||
|
||||
Args4j
|
||||
URL: https://args4j.dev.java.net/
|
||||
Version: 2.0.9
|
||||
License: MIT
|
||||
|
||||
Description:
|
||||
args4j is a small Java class library that makes it easy to parse command line
|
||||
options/arguments in your CUI application.
|
||||
|
||||
Local Modifications: None.
|
||||
|
||||
|
||||
-----
|
||||
Code in:
|
||||
lib/guava-r06.jar
|
||||
|
||||
Guava Libraries
|
||||
URL: http://code.google.com/p/guava-libraries/
|
||||
Version: R6
|
||||
License: Apache License 2.0
|
||||
|
||||
Description: Google's core Java libraries.
|
||||
|
||||
Local Modifications: None.
|
||||
|
||||
|
||||
-----
|
||||
Code in:
|
||||
lib/hamcrest-core-1.1.jar
|
||||
|
||||
Hamcrest
|
||||
URL: http://code.google.com/p/hamcrest
|
||||
License: BSD
|
||||
License File: LICENSE
|
||||
|
||||
Description:
|
||||
Provides a library of matcher objects (also known as constraints or
|
||||
predicates) allowing 'match' rules to be defined declaratively, to be used in
|
||||
other frameworks. Typical scenarios include testing frameworks, mocking
|
||||
libraries and UI validation rules.
|
||||
|
||||
Local modifications:
|
||||
The original jars contained both source code and compiled classes.
|
||||
|
||||
hamcrest-core-1.1.jar just contains the compiled classes.
|
||||
|
||||
|
||||
|
||||
-----
|
||||
Code in:
|
||||
lib/jsr305.jar
|
||||
|
||||
Annotations for software defect detection
|
||||
URL: http://code.google.com/p/jsr-305/
|
||||
Version: svn revision 47
|
||||
License: BSD License
|
||||
|
||||
Description: Annotations for software defect detection.
|
||||
|
||||
Local Modifications: None.
|
||||
|
||||
|
||||
----
|
||||
Code in:
|
||||
lib/junit.jar
|
||||
|
||||
JUnit
|
||||
URL: http://sourceforge.net/projects/junit/
|
||||
Version: 4.5
|
||||
License: Common Public License 1.0
|
||||
|
||||
Description: A framework for writing and running automated tests in Java.
|
||||
|
||||
Local Modifications: None.
|
||||
|
||||
|
||||
---
|
||||
Code in:
|
||||
lib/protobuf-java-2.3.0.jar
|
||||
|
||||
Protocol Buffers
|
||||
URL: http://code.google.com/p/protobuf/
|
||||
Version: 2.3.0
|
||||
License: New BSD License
|
||||
|
||||
Description: Supporting libraries for protocol buffers,
|
||||
an encoding of structured data.
|
||||
|
||||
Local Modifications: None
|
||||
|
||||
|
||||
---
|
||||
Code in:
|
||||
lib/ant_deploy.jar
|
||||
|
||||
URL: http://ant.apache.org/bindownload.cgi
|
||||
Version: 1.6.5
|
||||
License: Apache License 2.0
|
||||
Description:
|
||||
Ant is a Java based build tool. In theory it is kind of like "make"
|
||||
without make's wrinkles and with the full portability of pure java code.
|
||||
|
||||
Local Modifications:
|
||||
Modified apache-ant-1.6.5/bin/ant to look in the ant.runfiles directory
|
||||
|
||||
|
||||
---
|
||||
Code in:
|
||||
lib/json.jar
|
||||
URL: http://json.org/java/index.html
|
||||
Version: JSON version 2
|
||||
License: MIT license
|
||||
Description:
|
||||
JSON is a set of java files for use in transmitting data in JSON format.
|
||||
|
||||
Local Modifications: None
|
||||
|
|
@ -0,0 +1,155 @@
|
|||
#!/usr/bin/env python
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
# ship.py
|
||||
#
|
||||
# Licensed under the Apache 2 License as is the rest of the project
|
||||
# Copyright (c) 2011 Jeff Schiller
|
||||
#
|
||||
# This script has very little real-world application. It is only used in our pure-client web app
|
||||
# served on GoogleCode so we can have one HTML file, run a build script and generate a 'release'
|
||||
# version without having to maintain two separate HTML files. It does this by evaluating
|
||||
# 'processing comments' that are suspicously similar to IE conditional comments and then outputting
|
||||
# a new HTML file after evaluating particular variables.
|
||||
#
|
||||
# This script takes the following inputs:
|
||||
#
|
||||
# * a HTML file (--i=in.html)
|
||||
# * a series of flag names (--on=Foo --on=Bar)
|
||||
#
|
||||
# Example:
|
||||
#
|
||||
# in.html:
|
||||
# <!--{if foo}>
|
||||
# FOO!
|
||||
# <!{else}-->
|
||||
# BAR!
|
||||
# <!--{endif}-->
|
||||
#
|
||||
# $ ship.py --i in.html --on foo
|
||||
#
|
||||
# out.html:
|
||||
# <!--{if foo}-->
|
||||
# FOO!
|
||||
# <!--{else}>
|
||||
# BAR!
|
||||
# <!{endif}-->
|
||||
#
|
||||
# It has the following limitations:
|
||||
#
|
||||
# 1) Only if-else-endif are currently supported.
|
||||
# 2) All processing comments must be on one line with no other non-whitespace characters.
|
||||
# 3) Comments cannot be nested.
|
||||
|
||||
import optparse
|
||||
import os
|
||||
|
||||
inside_if = False
|
||||
last_if_true = False
|
||||
|
||||
_options_parser = optparse.OptionParser(
|
||||
usage='%prog --i input.html [--on flag1]',
|
||||
description=('Rewrites an HTML file based on conditional comments and flags'))
|
||||
_options_parser.add_option('--i',
|
||||
action='store', dest='input_html_file', help='Input HTML filename')
|
||||
_options_parser.add_option('--on',
|
||||
action='append', type='string', dest='enabled_flags',
|
||||
help='name of flag to enable')
|
||||
|
||||
def parse_args(args=None):
|
||||
options, rargs = _options_parser.parse_args(args)
|
||||
return options, (None, None)
|
||||
|
||||
def parseComment(line, line_num, enabled_flags):
|
||||
global inside_if
|
||||
global last_if_true
|
||||
|
||||
start = line.find('{')
|
||||
end = line.find('}')
|
||||
statement = line[start+1:end].strip()
|
||||
if statement.startswith('if '):
|
||||
if inside_if == True:
|
||||
print 'Fatal Error: Nested {if} found on line ' + str(line_num)
|
||||
print line
|
||||
quit()
|
||||
|
||||
# Evaluate whether the expression is true/false.
|
||||
# only one variable name allowed for now
|
||||
variable_name = statement[3:].strip()
|
||||
if variable_name in enabled_flags:
|
||||
last_if_true = True
|
||||
line = '<!--{if ' + variable_name + '}-->'
|
||||
else:
|
||||
last_if_true = False
|
||||
line = '<!--{if ' + variable_name + '}>'
|
||||
|
||||
inside_if = True
|
||||
|
||||
elif statement == 'else':
|
||||
if inside_if == False:
|
||||
print 'Fatal Error: {else} found without {if} on line ' + str(line_num)
|
||||
print line
|
||||
quit()
|
||||
if inside_if == 'else':
|
||||
print 'Fatal Error: Multiple {else} clauses found in the same if on line ' + str(line_num)
|
||||
print line
|
||||
quit()
|
||||
|
||||
if last_if_true:
|
||||
line = '<!--{else}>'
|
||||
else:
|
||||
line = '<!{else}-->'
|
||||
|
||||
# invert the logic so the endif clause is closed properly
|
||||
last_if_true = not last_if_true
|
||||
|
||||
# ensure we don't have two else statements in the same if
|
||||
inside_if = 'else'
|
||||
|
||||
elif statement == 'endif':
|
||||
if inside_if == False:
|
||||
print 'Fatal Error: {endif} found without {if} on line ' + str(line_num)
|
||||
print line
|
||||
quit()
|
||||
|
||||
if last_if_true:
|
||||
line = '<!--{endif}-->'
|
||||
else:
|
||||
line = '<!{endif}-->'
|
||||
|
||||
inside_if = False
|
||||
|
||||
return line
|
||||
|
||||
|
||||
def ship(inFileName, enabled_flags):
|
||||
# read in HTML file
|
||||
lines = file(inFileName, 'r').readlines()
|
||||
out_lines = []
|
||||
i = 0
|
||||
|
||||
# loop for each line of markup
|
||||
for line in lines:
|
||||
strline = line.strip()
|
||||
# if we find a comment, process it and print out
|
||||
if strline.startswith('<!--{') or strline.startswith('<!{'):
|
||||
# using the same indentation as the previous line
|
||||
start = line.find('<')
|
||||
out_lines.append(line[:start] \
|
||||
+ parseComment(strline, i, enabled_flags) \
|
||||
+ os.linesep)
|
||||
else: # else append line to the output list
|
||||
out_lines.append(line)
|
||||
i += 1
|
||||
|
||||
return ''.join(out_lines)
|
||||
|
||||
if __name__ == '__main__':
|
||||
options, (input, output) = parse_args()
|
||||
|
||||
if options.input_html_file != None:
|
||||
enabled_flags = []
|
||||
if options.enabled_flags != None:
|
||||
enabled_flags.extend(options.enabled_flags)
|
||||
out_file = ship(options.input_html_file, enabled_flags)
|
||||
print out_file
|
|
@ -0,0 +1,202 @@
|
|||
|
||||
Apache License
|
||||
Version 2.0, January 2004
|
||||
http://www.apache.org/licenses/
|
||||
|
||||
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
||||
|
||||
1. Definitions.
|
||||
|
||||
"License" shall mean the terms and conditions for use, reproduction,
|
||||
and distribution as defined by Sections 1 through 9 of this document.
|
||||
|
||||
"Licensor" shall mean the copyright owner or entity authorized by
|
||||
the copyright owner that is granting the License.
|
||||
|
||||
"Legal Entity" shall mean the union of the acting entity and all
|
||||
other entities that control, are controlled by, or are under common
|
||||
control with that entity. For the purposes of this definition,
|
||||
"control" means (i) the power, direct or indirect, to cause the
|
||||
direction or management of such entity, whether by contract or
|
||||
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
||||
outstanding shares, or (iii) beneficial ownership of such entity.
|
||||
|
||||
"You" (or "Your") shall mean an individual or Legal Entity
|
||||
exercising permissions granted by this License.
|
||||
|
||||
"Source" form shall mean the preferred form for making modifications,
|
||||
including but not limited to software source code, documentation
|
||||
source, and configuration files.
|
||||
|
||||
"Object" form shall mean any form resulting from mechanical
|
||||
transformation or translation of a Source form, including but
|
||||
not limited to compiled object code, generated documentation,
|
||||
and conversions to other media types.
|
||||
|
||||
"Work" shall mean the work of authorship, whether in Source or
|
||||
Object form, made available under the License, as indicated by a
|
||||
copyright notice that is included in or attached to the work
|
||||
(an example is provided in the Appendix below).
|
||||
|
||||
"Derivative Works" shall mean any work, whether in Source or Object
|
||||
form, that is based on (or derived from) the Work and for which the
|
||||
editorial revisions, annotations, elaborations, or other modifications
|
||||
represent, as a whole, an original work of authorship. For the purposes
|
||||
of this License, Derivative Works shall not include works that remain
|
||||
separable from, or merely link (or bind by name) to the interfaces of,
|
||||
the Work and Derivative Works thereof.
|
||||
|
||||
"Contribution" shall mean any work of authorship, including
|
||||
the original version of the Work and any modifications or additions
|
||||
to that Work or Derivative Works thereof, that is intentionally
|
||||
submitted to Licensor for inclusion in the Work by the copyright owner
|
||||
or by an individual or Legal Entity authorized to submit on behalf of
|
||||
the copyright owner. For the purposes of this definition, "submitted"
|
||||
means any form of electronic, verbal, or written communication sent
|
||||
to the Licensor or its representatives, including but not limited to
|
||||
communication on electronic mailing lists, source code control systems,
|
||||
and issue tracking systems that are managed by, or on behalf of, the
|
||||
Licensor for the purpose of discussing and improving the Work, but
|
||||
excluding communication that is conspicuously marked or otherwise
|
||||
designated in writing by the copyright owner as "Not a Contribution."
|
||||
|
||||
"Contributor" shall mean Licensor and any individual or Legal Entity
|
||||
on behalf of whom a Contribution has been received by Licensor and
|
||||
subsequently incorporated within the Work.
|
||||
|
||||
2. Grant of Copyright License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
copyright license to reproduce, prepare Derivative Works of,
|
||||
publicly display, publicly perform, sublicense, and distribute the
|
||||
Work and such Derivative Works in Source or Object form.
|
||||
|
||||
3. Grant of Patent License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
(except as stated in this section) patent license to make, have made,
|
||||
use, offer to sell, sell, import, and otherwise transfer the Work,
|
||||
where such license applies only to those patent claims licensable
|
||||
by such Contributor that are necessarily infringed by their
|
||||
Contribution(s) alone or by combination of their Contribution(s)
|
||||
with the Work to which such Contribution(s) was submitted. If You
|
||||
institute patent litigation against any entity (including a
|
||||
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
||||
or a Contribution incorporated within the Work constitutes direct
|
||||
or contributory patent infringement, then any patent licenses
|
||||
granted to You under this License for that Work shall terminate
|
||||
as of the date such litigation is filed.
|
||||
|
||||
4. Redistribution. You may reproduce and distribute copies of the
|
||||
Work or Derivative Works thereof in any medium, with or without
|
||||
modifications, and in Source or Object form, provided that You
|
||||
meet the following conditions:
|
||||
|
||||
(a) You must give any other recipients of the Work or
|
||||
Derivative Works a copy of this License; and
|
||||
|
||||
(b) You must cause any modified files to carry prominent notices
|
||||
stating that You changed the files; and
|
||||
|
||||
(c) You must retain, in the Source form of any Derivative Works
|
||||
that You distribute, all copyright, patent, trademark, and
|
||||
attribution notices from the Source form of the Work,
|
||||
excluding those notices that do not pertain to any part of
|
||||
the Derivative Works; and
|
||||
|
||||
(d) If the Work includes a "NOTICE" text file as part of its
|
||||
distribution, then any Derivative Works that You distribute must
|
||||
include a readable copy of the attribution notices contained
|
||||
within such NOTICE file, excluding those notices that do not
|
||||
pertain to any part of the Derivative Works, in at least one
|
||||
of the following places: within a NOTICE text file distributed
|
||||
as part of the Derivative Works; within the Source form or
|
||||
documentation, if provided along with the Derivative Works; or,
|
||||
within a display generated by the Derivative Works, if and
|
||||
wherever such third-party notices normally appear. The contents
|
||||
of the NOTICE file are for informational purposes only and
|
||||
do not modify the License. You may add Your own attribution
|
||||
notices within Derivative Works that You distribute, alongside
|
||||
or as an addendum to the NOTICE text from the Work, provided
|
||||
that such additional attribution notices cannot be construed
|
||||
as modifying the License.
|
||||
|
||||
You may add Your own copyright statement to Your modifications and
|
||||
may provide additional or different license terms and conditions
|
||||
for use, reproduction, or distribution of Your modifications, or
|
||||
for any such Derivative Works as a whole, provided Your use,
|
||||
reproduction, and distribution of the Work otherwise complies with
|
||||
the conditions stated in this License.
|
||||
|
||||
5. Submission of Contributions. Unless You explicitly state otherwise,
|
||||
any Contribution intentionally submitted for inclusion in the Work
|
||||
by You to the Licensor shall be under the terms and conditions of
|
||||
this License, without any additional terms or conditions.
|
||||
Notwithstanding the above, nothing herein shall supersede or modify
|
||||
the terms of any separate license agreement you may have executed
|
||||
with Licensor regarding such Contributions.
|
||||
|
||||
6. Trademarks. This License does not grant permission to use the trade
|
||||
names, trademarks, service marks, or product names of the Licensor,
|
||||
except as required for reasonable and customary use in describing the
|
||||
origin of the Work and reproducing the content of the NOTICE file.
|
||||
|
||||
7. Disclaimer of Warranty. Unless required by applicable law or
|
||||
agreed to in writing, Licensor provides the Work (and each
|
||||
Contributor provides its Contributions) on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||
implied, including, without limitation, any warranties or conditions
|
||||
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
||||
PARTICULAR PURPOSE. You are solely responsible for determining the
|
||||
appropriateness of using or redistributing the Work and assume any
|
||||
risks associated with Your exercise of permissions under this License.
|
||||
|
||||
8. Limitation of Liability. In no event and under no legal theory,
|
||||
whether in tort (including negligence), contract, or otherwise,
|
||||
unless required by applicable law (such as deliberate and grossly
|
||||
negligent acts) or agreed to in writing, shall any Contributor be
|
||||
liable to You for damages, including any direct, indirect, special,
|
||||
incidental, or consequential damages of any character arising as a
|
||||
result of this License or out of the use or inability to use the
|
||||
Work (including but not limited to damages for loss of goodwill,
|
||||
work stoppage, computer failure or malfunction, or any and all
|
||||
other commercial damages or losses), even if such Contributor
|
||||
has been advised of the possibility of such damages.
|
||||
|
||||
9. Accepting Warranty or Additional Liability. While redistributing
|
||||
the Work or Derivative Works thereof, You may choose to offer,
|
||||
and charge a fee for, acceptance of support, warranty, indemnity,
|
||||
or other liability obligations and/or rights consistent with this
|
||||
License. However, in accepting such obligations, You may act only
|
||||
on Your own behalf and on Your sole responsibility, not on behalf
|
||||
of any other Contributor, and only if You agree to indemnify,
|
||||
defend, and hold each Contributor harmless for any liability
|
||||
incurred by, or claims asserted against, such Contributor by reason
|
||||
of your accepting any such warranty or additional liability.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
APPENDIX: How to apply the Apache License to your work.
|
||||
|
||||
To apply the Apache License to your work, attach the following
|
||||
boilerplate notice, with the fields enclosed by brackets "[]"
|
||||
replaced with your own identifying information. (Don't include
|
||||
the brackets!) The text should be enclosed in the appropriate
|
||||
comment syntax for the file format. We also recommend that a
|
||||
file or class name and description of purpose be included on the
|
||||
same "printed page" as the copyright notice for easier
|
||||
identification within third-party archives.
|
||||
|
||||
Copyright [yyyy] [name of copyright owner]
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
|
@ -0,0 +1,289 @@
|
|||
/*
|
||||
* Copyright 2009 Google Inc.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
//
|
||||
// Contents
|
||||
//
|
||||
|
||||
The Closure Compiler performs checking, instrumentation, and
|
||||
optimizations on JavaScript code. The purpose of this README is to
|
||||
explain how to build and run the Closure Compiler.
|
||||
|
||||
The Closure Compiler requires Java 6 or higher.
|
||||
http://www.java.com/
|
||||
|
||||
|
||||
//
|
||||
// Building The Closure Compiler
|
||||
//
|
||||
|
||||
There are three ways to get a Closure Compiler executable.
|
||||
|
||||
1) Use one we built for you.
|
||||
|
||||
Pre-built Closure binaries can be found at
|
||||
http://code.google.com/p/closure-compiler/downloads/list
|
||||
|
||||
|
||||
2) Check out the source and build it with Apache Ant.
|
||||
|
||||
First, check out the full source tree of the Closure Compiler. There
|
||||
are instructions on how to do this at the project site.
|
||||
http://code.google.com/p/closure-compiler/source/checkout
|
||||
|
||||
Apache Ant is a cross-platform build tool.
|
||||
http://ant.apache.org/
|
||||
|
||||
At the root of the source tree, there is an Ant file named
|
||||
build.xml. To use it, navigate to the same directory and type the
|
||||
command
|
||||
|
||||
ant jar
|
||||
|
||||
This will produce a jar file called "build/compiler.jar".
|
||||
|
||||
|
||||
3) Check out the source and build it with Eclipse.
|
||||
|
||||
Eclipse is a cross-platform IDE.
|
||||
http://www.eclipse.org/
|
||||
|
||||
Under Eclipse's File menu, click "New > Project ..." and create a
|
||||
"Java Project." You will see an options screen. Give the project a
|
||||
name, select "Create project from existing source," and choose the
|
||||
root of the checked-out source tree as the existing directory. Verify
|
||||
that you are using JRE version 6 or higher.
|
||||
|
||||
Eclipse can use the build.xml file to discover rules. When you
|
||||
navigate to the build.xml file, you will see all the build rules in
|
||||
the "Outline" pane. Run the "jar" rule to build the compiler in
|
||||
build/compiler.jar.
|
||||
|
||||
|
||||
//
|
||||
// Running The Closure Compiler
|
||||
//
|
||||
|
||||
Once you have the jar binary, running the Closure Compiler is straightforward.
|
||||
|
||||
On the command line, type
|
||||
|
||||
java -jar compiler.jar
|
||||
|
||||
This starts the compiler in interactive mode. Type
|
||||
|
||||
var x = 17 + 25;
|
||||
|
||||
then hit "Enter", then hit "Ctrl-Z" (on Windows) or "Ctrl-D" (on Mac or Linux)
|
||||
and "Enter" again. The Compiler will respond:
|
||||
|
||||
var x=42;
|
||||
|
||||
The Closure Compiler has many options for reading input from a file,
|
||||
writing output to a file, checking your code, and running
|
||||
optimizations. To learn more, type
|
||||
|
||||
java -jar compiler.jar --help
|
||||
|
||||
You can read more detailed documentation about the many flags at
|
||||
http://code.google.com/closure/compiler/docs/gettingstarted_app.html
|
||||
|
||||
|
||||
//
|
||||
// Compiling Multiple Scripts
|
||||
//
|
||||
|
||||
If you have multiple scripts, you should compile them all together with
|
||||
one compile command.
|
||||
|
||||
java -jar compiler.jar --js=in1.js --js=in2.js ... --js_output_file=out.js
|
||||
|
||||
The Closure Compiler will concatenate the files in the order they're
|
||||
passed at the command line.
|
||||
|
||||
If you need to compile many, many scripts together, you may start to
|
||||
run into problems with managing dependencies between scripts. You
|
||||
should check out the Closure Library. It contains functions for
|
||||
enforcing dependencies between scripts, and a tool called calcdeps.py
|
||||
that knows how to give scripts to the Closure Compiler in the right
|
||||
order.
|
||||
|
||||
http://code.google.com/p/closure-library/
|
||||
|
||||
//
|
||||
// Licensing
|
||||
//
|
||||
|
||||
Unless otherwise stated, all source files are licensed under
|
||||
the Apache License, Version 2.0.
|
||||
|
||||
|
||||
-----
|
||||
Code under:
|
||||
src/com/google/javascript/rhino
|
||||
test/com/google/javascript/rhino
|
||||
|
||||
URL: http://www.mozilla.org/rhino
|
||||
Version: 1.5R3, with heavy modifications
|
||||
License: Netscape Public License and MPL / GPL dual license
|
||||
|
||||
Description: A partial copy of Mozilla Rhino. Mozilla Rhino is an
|
||||
implementation of JavaScript for the JVM. The JavaScript parser and
|
||||
the parse tree data structures were extracted and modified
|
||||
significantly for use by Google's JavaScript compiler.
|
||||
|
||||
Local Modifications: The packages have been renamespaced. All code not
|
||||
relavant to parsing has been removed. A JSDoc parser and static typing
|
||||
system have been added.
|
||||
|
||||
|
||||
-----
|
||||
Code in:
|
||||
lib/libtrunk_rhino_parser_jarjared.jar
|
||||
|
||||
Rhino
|
||||
URL: http://www.mozilla.org/rhino
|
||||
Version: Trunk
|
||||
License: Netscape Public License and MPL / GPL dual license
|
||||
|
||||
Description: Mozilla Rhino is an implementation of JavaScript for the JVM.
|
||||
|
||||
Local Modifications: None. We've used JarJar to renamespace the code
|
||||
post-compilation. See:
|
||||
http://code.google.com/p/jarjar/
|
||||
|
||||
|
||||
-----
|
||||
Code in:
|
||||
lib/args4j_deploy.jar
|
||||
|
||||
Args4j
|
||||
URL: https://args4j.dev.java.net/
|
||||
Version: 2.0.9
|
||||
License: MIT
|
||||
|
||||
Description:
|
||||
args4j is a small Java class library that makes it easy to parse command line
|
||||
options/arguments in your CUI application.
|
||||
|
||||
Local Modifications: None.
|
||||
|
||||
|
||||
-----
|
||||
Code in:
|
||||
lib/guava-r06.jar
|
||||
|
||||
Guava Libraries
|
||||
URL: http://code.google.com/p/guava-libraries/
|
||||
Version: R6
|
||||
License: Apache License 2.0
|
||||
|
||||
Description: Google's core Java libraries.
|
||||
|
||||
Local Modifications: None.
|
||||
|
||||
|
||||
-----
|
||||
Code in:
|
||||
lib/hamcrest-core-1.1.jar
|
||||
|
||||
Hamcrest
|
||||
URL: http://code.google.com/p/hamcrest
|
||||
License: BSD
|
||||
License File: LICENSE
|
||||
|
||||
Description:
|
||||
Provides a library of matcher objects (also known as constraints or
|
||||
predicates) allowing 'match' rules to be defined declaratively, to be used in
|
||||
other frameworks. Typical scenarios include testing frameworks, mocking
|
||||
libraries and UI validation rules.
|
||||
|
||||
Local modifications:
|
||||
The original jars contained both source code and compiled classes.
|
||||
|
||||
hamcrest-core-1.1.jar just contains the compiled classes.
|
||||
|
||||
|
||||
|
||||
-----
|
||||
Code in:
|
||||
lib/jsr305.jar
|
||||
|
||||
Annotations for software defect detection
|
||||
URL: http://code.google.com/p/jsr-305/
|
||||
Version: svn revision 47
|
||||
License: BSD License
|
||||
|
||||
Description: Annotations for software defect detection.
|
||||
|
||||
Local Modifications: None.
|
||||
|
||||
|
||||
----
|
||||
Code in:
|
||||
lib/junit.jar
|
||||
|
||||
JUnit
|
||||
URL: http://sourceforge.net/projects/junit/
|
||||
Version: 4.5
|
||||
License: Common Public License 1.0
|
||||
|
||||
Description: A framework for writing and running automated tests in Java.
|
||||
|
||||
Local Modifications: None.
|
||||
|
||||
|
||||
---
|
||||
Code in:
|
||||
lib/protobuf-java-2.3.0.jar
|
||||
|
||||
Protocol Buffers
|
||||
URL: http://code.google.com/p/protobuf/
|
||||
Version: 2.3.0
|
||||
License: New BSD License
|
||||
|
||||
Description: Supporting libraries for protocol buffers,
|
||||
an encoding of structured data.
|
||||
|
||||
Local Modifications: None
|
||||
|
||||
|
||||
---
|
||||
Code in:
|
||||
lib/ant_deploy.jar
|
||||
|
||||
URL: http://ant.apache.org/bindownload.cgi
|
||||
Version: 1.6.5
|
||||
License: Apache License 2.0
|
||||
Description:
|
||||
Ant is a Java based build tool. In theory it is kind of like "make"
|
||||
without make's wrinkles and with the full portability of pure java code.
|
||||
|
||||
Local Modifications:
|
||||
Modified apache-ant-1.6.5/bin/ant to look in the ant.runfiles directory
|
||||
|
||||
|
||||
---
|
||||
Code in:
|
||||
lib/json.jar
|
||||
URL: http://json.org/java/index.html
|
||||
Version: JSON version 2
|
||||
License: MIT license
|
||||
Description:
|
||||
JSON is a set of java files for use in transmitting data in JSON format.
|
||||
|
||||
Local Modifications: None
|
||||
|
|
@ -0,0 +1,155 @@
|
|||
#!/usr/bin/env python
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
# ship.py
|
||||
#
|
||||
# Licensed under the Apache 2 License as is the rest of the project
|
||||
# Copyright (c) 2011 Jeff Schiller
|
||||
#
|
||||
# This script has very little real-world application. It is only used in our pure-client web app
|
||||
# served on GoogleCode so we can have one HTML file, run a build script and generate a 'release'
|
||||
# version without having to maintain two separate HTML files. It does this by evaluating
|
||||
# 'processing comments' that are suspicously similar to IE conditional comments and then outputting
|
||||
# a new HTML file after evaluating particular variables.
|
||||
#
|
||||
# This script takes the following inputs:
|
||||
#
|
||||
# * a HTML file (--i=in.html)
|
||||
# * a series of flag names (--on=Foo --on=Bar)
|
||||
#
|
||||
# Example:
|
||||
#
|
||||
# in.html:
|
||||
# <!--{if foo}>
|
||||
# FOO!
|
||||
# <!{else}-->
|
||||
# BAR!
|
||||
# <!--{endif}-->
|
||||
#
|
||||
# $ ship.py --i in.html --on foo
|
||||
#
|
||||
# out.html:
|
||||
# <!--{if foo}-->
|
||||
# FOO!
|
||||
# <!--{else}>
|
||||
# BAR!
|
||||
# <!{endif}-->
|
||||
#
|
||||
# It has the following limitations:
|
||||
#
|
||||
# 1) Only if-else-endif are currently supported.
|
||||
# 2) All processing comments must be on one line with no other non-whitespace characters.
|
||||
# 3) Comments cannot be nested.
|
||||
|
||||
import optparse
|
||||
import os
|
||||
|
||||
inside_if = False
|
||||
last_if_true = False
|
||||
|
||||
_options_parser = optparse.OptionParser(
|
||||
usage='%prog --i input.html [--on flag1]',
|
||||
description=('Rewrites an HTML file based on conditional comments and flags'))
|
||||
_options_parser.add_option('--i',
|
||||
action='store', dest='input_html_file', help='Input HTML filename')
|
||||
_options_parser.add_option('--on',
|
||||
action='append', type='string', dest='enabled_flags',
|
||||
help='name of flag to enable')
|
||||
|
||||
def parse_args(args=None):
|
||||
options, rargs = _options_parser.parse_args(args)
|
||||
return options, (None, None)
|
||||
|
||||
def parseComment(line, line_num, enabled_flags):
|
||||
global inside_if
|
||||
global last_if_true
|
||||
|
||||
start = line.find('{')
|
||||
end = line.find('}')
|
||||
statement = line[start+1:end].strip()
|
||||
if statement.startswith('if '):
|
||||
if inside_if == True:
|
||||
print 'Fatal Error: Nested {if} found on line ' + str(line_num)
|
||||
print line
|
||||
quit()
|
||||
|
||||
# Evaluate whether the expression is true/false.
|
||||
# only one variable name allowed for now
|
||||
variable_name = statement[3:].strip()
|
||||
if variable_name in enabled_flags:
|
||||
last_if_true = True
|
||||
line = '<!--{if ' + variable_name + '}-->'
|
||||
else:
|
||||
last_if_true = False
|
||||
line = '<!--{if ' + variable_name + '}>'
|
||||
|
||||
inside_if = True
|
||||
|
||||
elif statement == 'else':
|
||||
if inside_if == False:
|
||||
print 'Fatal Error: {else} found without {if} on line ' + str(line_num)
|
||||
print line
|
||||
quit()
|
||||
if inside_if == 'else':
|
||||
print 'Fatal Error: Multiple {else} clauses found in the same if on line ' + str(line_num)
|
||||
print line
|
||||
quit()
|
||||
|
||||
if last_if_true:
|
||||
line = '<!--{else}>'
|
||||
else:
|
||||
line = '<!{else}-->'
|
||||
|
||||
# invert the logic so the endif clause is closed properly
|
||||
last_if_true = not last_if_true
|
||||
|
||||
# ensure we don't have two else statements in the same if
|
||||
inside_if = 'else'
|
||||
|
||||
elif statement == 'endif':
|
||||
if inside_if == False:
|
||||
print 'Fatal Error: {endif} found without {if} on line ' + str(line_num)
|
||||
print line
|
||||
quit()
|
||||
|
||||
if last_if_true:
|
||||
line = '<!--{endif}-->'
|
||||
else:
|
||||
line = '<!{endif}-->'
|
||||
|
||||
inside_if = False
|
||||
|
||||
return line
|
||||
|
||||
|
||||
def ship(inFileName, enabled_flags):
|
||||
# read in HTML file
|
||||
lines = file(inFileName, 'r').readlines()
|
||||
out_lines = []
|
||||
i = 0
|
||||
|
||||
# loop for each line of markup
|
||||
for line in lines:
|
||||
strline = line.strip()
|
||||
# if we find a comment, process it and print out
|
||||
if strline.startswith('<!--{') or strline.startswith('<!{'):
|
||||
# using the same indentation as the previous line
|
||||
start = line.find('<')
|
||||
out_lines.append(line[:start] \
|
||||
+ parseComment(strline, i, enabled_flags) \
|
||||
+ os.linesep)
|
||||
else: # else append line to the output list
|
||||
out_lines.append(line)
|
||||
i += 1
|
||||
|
||||
return ''.join(out_lines)
|
||||
|
||||
if __name__ == '__main__':
|
||||
options, (input, output) = parse_args()
|
||||
|
||||
if options.input_html_file != None:
|
||||
enabled_flags = []
|
||||
if options.enabled_flags != None:
|
||||
enabled_flags.extend(options.enabled_flags)
|
||||
out_file = ship(options.input_html_file, enabled_flags)
|
||||
print out_file
|
|
@ -0,0 +1,17 @@
|
|||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 35
|
||||
/svn/!svn/ver/2034/trunk/chrome-app
|
||||
END
|
||||
icon_128.png
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 48
|
||||
/svn/!svn/ver/2034/trunk/chrome-app/icon_128.png
|
||||
END
|
||||
manifest.json
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 49
|
||||
/svn/!svn/ver/2034/trunk/chrome-app/manifest.json
|
||||
END
|
|
@ -0,0 +1,96 @@
|
|||
10
|
||||
|
||||
dir
|
||||
2080
|
||||
http://svg-edit.googlecode.com/svn/trunk/chrome-app
|
||||
http://svg-edit.googlecode.com/svn
|
||||
|
||||
|
||||
|
||||
2011-06-01T12:53:49.721246Z
|
||||
2034
|
||||
rusnakp
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
eee81c28-f429-11dd-99c0-75d572ba1ddd
|
||||
|
||||
icon_128.png
|
||||
file
|
||||
|
||||
|
||||
|
||||
|
||||
2012-03-23T10:42:00.000000Z
|
||||
fef7580bb334bea87c43fafed8486965
|
||||
2011-06-01T12:53:49.721246Z
|
||||
2034
|
||||
rusnakp
|
||||
has-props
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
7756
|
||||
|
||||
manifest.json
|
||||
file
|
||||
|
||||
|
||||
|
||||
|
||||
2012-03-23T10:42:00.000000Z
|
||||
6b5b6b751ed24d0bd0864411d5458d0f
|
||||
2011-06-01T12:53:49.721246Z
|
||||
2034
|
||||
rusnakp
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
459
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
K 13
|
||||
svn:mime-type
|
||||
V 24
|
||||
application/octet-stream
|
||||
END
|
After Width: | Height: | Size: 7.6 KiB |
|
@ -0,0 +1,20 @@
|
|||
{
|
||||
"name": "SVG-edit",
|
||||
"description": "A fast, web-based, Javascript-driven SVG editor that works in any modern browser",
|
||||
"version": "2.6",
|
||||
"app": {
|
||||
"urls": [
|
||||
"*://svg-edit.googlecode.com/svn/tags/stable/"
|
||||
],
|
||||
"launch": {
|
||||
"web_url": "http://svg-edit.googlecode.com/svn/tags/stable/editor/svg-editor.html"
|
||||
}
|
||||
},
|
||||
"icons": {
|
||||
"128": "icon_128.png"
|
||||
},
|
||||
"permissions": [
|
||||
"unlimitedStorage",
|
||||
"notifications"
|
||||
]
|
||||
}
|
After Width: | Height: | Size: 7.6 KiB |
|
@ -0,0 +1,20 @@
|
|||
{
|
||||
"name": "SVG-edit",
|
||||
"description": "A fast, web-based, Javascript-driven SVG editor that works in any modern browser",
|
||||
"version": "2.6",
|
||||
"app": {
|
||||
"urls": [
|
||||
"*://svg-edit.googlecode.com/svn/tags/stable/"
|
||||
],
|
||||
"launch": {
|
||||
"web_url": "http://svg-edit.googlecode.com/svn/tags/stable/editor/svg-editor.html"
|
||||
}
|
||||
},
|
||||
"icons": {
|
||||
"128": "icon_128.png"
|
||||
},
|
||||
"permissions": [
|
||||
"unlimitedStorage",
|
||||
"notifications"
|
||||
]
|
||||
}
|
|
@ -0,0 +1,23 @@
|
|||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 32
|
||||
/svn/!svn/ver/1425/trunk/clipart
|
||||
END
|
||||
sun.svg
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 40
|
||||
/svn/!svn/ver/1422/trunk/clipart/sun.svg
|
||||
END
|
||||
moon.svg
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 41
|
||||
/svn/!svn/ver/1423/trunk/clipart/moon.svg
|
||||
END
|
||||
star.svg
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 41
|
||||
/svn/!svn/ver/1425/trunk/clipart/star.svg
|
||||
END
|
|
@ -0,0 +1,130 @@
|
|||
10
|
||||
|
||||
dir
|
||||
2080
|
||||
http://svg-edit.googlecode.com/svn/trunk/clipart
|
||||
http://svg-edit.googlecode.com/svn
|
||||
|
||||
|
||||
|
||||
2010-02-22T00:56:19.494745Z
|
||||
1425
|
||||
codedread
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
eee81c28-f429-11dd-99c0-75d572ba1ddd
|
||||
|
||||
sun.svg
|
||||
file
|
||||
|
||||
|
||||
|
||||
|
||||
2012-03-23T10:42:00.000000Z
|
||||
e84f3764dea650ed4a9a4daab566219d
|
||||
2010-02-21T03:27:10.850289Z
|
||||
1422
|
||||
codedread
|
||||
has-props
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
9448
|
||||
|
||||
moon.svg
|
||||
file
|
||||
|
||||
|
||||
|
||||
|
||||
2012-03-23T10:42:00.000000Z
|
||||
b945d5ecff42b1ec625bf5a5d11bef70
|
||||
2010-02-21T16:36:50.859552Z
|
||||
1423
|
||||
codedread
|
||||
has-props
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
1835
|
||||
|
||||
star.svg
|
||||
file
|
||||
|
||||
|
||||
|
||||
|
||||
2012-03-23T10:42:00.000000Z
|
||||
d33d80c6691c75c24a9f3d136f2d16bf
|
||||
2010-02-22T00:56:19.494745Z
|
||||
1425
|
||||
codedread
|
||||
has-props
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
500
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
K 13
|
||||
svn:mime-type
|
||||
V 13
|
||||
image/svg+xml
|
||||
END
|
|
@ -0,0 +1,5 @@
|
|||
K 13
|
||||
svn:mime-type
|
||||
V 13
|
||||
image/svg+xml
|
||||
END
|
|
@ -0,0 +1,5 @@
|
|||
K 13
|
||||
svn:mime-type
|
||||
V 13
|
||||
image/svg+xml
|
||||
END
|
|
@ -0,0 +1,13 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg width="100" xmlns="http://www.w3.org/2000/svg" height="100" viewBox="0 0 205.5 255.87">
|
||||
<g display="inline">
|
||||
<title>Layer 1</title>
|
||||
<path id="svg_1" d="m10.671,231.42c89.543,56.086,188.11-10.029,193.33-94.559-1.7286-101.53-92.171-150.4-160.16-128.01,35.129,15.844,73.4,62.729,73.871,88.013-3.4428,7.5157-5.8714,16.373,1.5286,18.844-2,12.857-18.486,33.571-21.043,40.643-2.5571,7.0714,2.2143,9.8443,5.4429,10.357,0.2,6.0586-4.4429,8.3572-5.3572,12.156-7.9,3.13-8.4714,9.9872-7.3286,14.844-19.714,18.571-20.571,27.143-80.286,37.714z" stroke="#000" stroke-width="5" fill="#f6c700"/>
|
||||
<path id="svg_3" d="m98.193,180.83c2.5851-3.421,7.4852,2.5632,7.1642,5.1572-0.32201,2.594-0.67928,4.0227-3.7143,5.2857" stroke="#000" stroke-width="5" fill="none"/>
|
||||
<path id="svg_4" d="m104.11,166.92c5.5357-0.49998,14.643,3.8472,17.75,2.37,3.1072-1.4771,3.3929-4.6686,2.3572-6.5129" stroke="#000" stroke-width="5" fill="none"/>
|
||||
<path id="svg_5" d="m125.64,171.49c-3.9286,8.2143-3.8572,18.987,4.2143,33.286" stroke="#000" stroke-width="2" fill="none"/>
|
||||
<path id="svg_6" d="m117.91,97.816c9.572,1.8,16.143-9.0571,20.8-10.101,3.057-1.0986,14.057,27.473,21.057,35.616" stroke="#000" stroke-width="5" fill="none"/>
|
||||
<path id="svg_7" d="m129.49,105.78c7.6428-3.6429,11.179,6.5357,12.607,10.929,1.4286,4.3928,7.1428,5.1071,10.857,5.5" stroke="#000" stroke-width="2" fill="none"/>
|
||||
<path id="svg_8" d="m133.91,114.75c0.87856-0.13215,1.6214,4.3107,2.5143,6.8236,1.2857-0.90571,0.82143-1.5129,1.3928-1.9771,0.96429-0.82143,1.6071,3.6657,2.3572,5.1429,4.8572-0.00001,5.4643,0.89286,5.4286,1.9286-3.25,0.21429-5.1786,0.67857-7.5,1.6071-3.7857,2.3214-6.0357,6.6072-7,5.4286-0.32143-1.5,3.3571-4.5357,4-5.4286-3.0714-5.1428-2.0714-13.393-1.1929-13.525z" stroke="#000" fill="#000"/>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 1.8 KiB |
|
@ -0,0 +1,4 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" height="100" width="100">
|
||||
<path id="svg_1" stroke-linejoin="round" d="M36.536,32.822c12.699-31.856,13.17-31.734,26.356-1.061,34.15,2.198,39.388,9.622,6.513,23.932,19.821,46.047-0.792,28.383-19.842,13.178-22.358,25.013-29.541,22.639-18.782-12.118-7.282-8.501-45.095-18.741,5.755-23.931z" fill-rule="evenodd" stroke="#000" stroke-linecap="round" stroke-miterlimit="4" stroke-width="5" fill="#FF0"/>
|
||||
</svg>
|
After Width: | Height: | Size: 500 B |
After Width: | Height: | Size: 9.2 KiB |
|
@ -0,0 +1,13 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg width="100" xmlns="http://www.w3.org/2000/svg" height="100" viewBox="0 0 205.5 255.87">
|
||||
<g display="inline">
|
||||
<title>Layer 1</title>
|
||||
<path id="svg_1" d="m10.671,231.42c89.543,56.086,188.11-10.029,193.33-94.559-1.7286-101.53-92.171-150.4-160.16-128.01,35.129,15.844,73.4,62.729,73.871,88.013-3.4428,7.5157-5.8714,16.373,1.5286,18.844-2,12.857-18.486,33.571-21.043,40.643-2.5571,7.0714,2.2143,9.8443,5.4429,10.357,0.2,6.0586-4.4429,8.3572-5.3572,12.156-7.9,3.13-8.4714,9.9872-7.3286,14.844-19.714,18.571-20.571,27.143-80.286,37.714z" stroke="#000" stroke-width="5" fill="#f6c700"/>
|
||||
<path id="svg_3" d="m98.193,180.83c2.5851-3.421,7.4852,2.5632,7.1642,5.1572-0.32201,2.594-0.67928,4.0227-3.7143,5.2857" stroke="#000" stroke-width="5" fill="none"/>
|
||||
<path id="svg_4" d="m104.11,166.92c5.5357-0.49998,14.643,3.8472,17.75,2.37,3.1072-1.4771,3.3929-4.6686,2.3572-6.5129" stroke="#000" stroke-width="5" fill="none"/>
|
||||
<path id="svg_5" d="m125.64,171.49c-3.9286,8.2143-3.8572,18.987,4.2143,33.286" stroke="#000" stroke-width="2" fill="none"/>
|
||||
<path id="svg_6" d="m117.91,97.816c9.572,1.8,16.143-9.0571,20.8-10.101,3.057-1.0986,14.057,27.473,21.057,35.616" stroke="#000" stroke-width="5" fill="none"/>
|
||||
<path id="svg_7" d="m129.49,105.78c7.6428-3.6429,11.179,6.5357,12.607,10.929,1.4286,4.3928,7.1428,5.1071,10.857,5.5" stroke="#000" stroke-width="2" fill="none"/>
|
||||
<path id="svg_8" d="m133.91,114.75c0.87856-0.13215,1.6214,4.3107,2.5143,6.8236,1.2857-0.90571,0.82143-1.5129,1.3928-1.9771,0.96429-0.82143,1.6071,3.6657,2.3572,5.1429,4.8572-0.00001,5.4643,0.89286,5.4286,1.9286-3.25,0.21429-5.1786,0.67857-7.5,1.6071-3.7857,2.3214-6.0357,6.6072-7,5.4286-0.32143-1.5,3.3571-4.5357,4-5.4286-3.0714-5.1428-2.0714-13.393-1.1929-13.525z" stroke="#000" fill="#000"/>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 1.8 KiB |
|
@ -0,0 +1,4 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" height="100" width="100">
|
||||
<path id="svg_1" stroke-linejoin="round" d="M36.536,32.822c12.699-31.856,13.17-31.734,26.356-1.061,34.15,2.198,39.388,9.622,6.513,23.932,19.821,46.047-0.792,28.383-19.842,13.178-22.358,25.013-29.541,22.639-18.782-12.118-7.282-8.501-45.095-18.741,5.755-23.931z" fill-rule="evenodd" stroke="#000" stroke-linecap="round" stroke-miterlimit="4" stroke-width="5" fill="#FF0"/>
|
||||
</svg>
|
After Width: | Height: | Size: 500 B |
After Width: | Height: | Size: 9.2 KiB |
|
@ -0,0 +1,11 @@
|
|||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 29
|
||||
/svn/!svn/ver/1621/trunk/docs
|
||||
END
|
||||
index.html
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 40
|
||||
/svn/!svn/ver/1621/trunk/docs/index.html
|
||||
END
|
|
@ -0,0 +1,77 @@
|
|||
10
|
||||
|
||||
dir
|
||||
2080
|
||||
http://svg-edit.googlecode.com/svn/trunk/docs
|
||||
http://svg-edit.googlecode.com/svn
|
||||
|
||||
|
||||
|
||||
2010-07-01T20:14:12.878000Z
|
||||
1621
|
||||
adeveria
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
eee81c28-f429-11dd-99c0-75d572ba1ddd
|
||||
|
||||
files
|
||||
dir
|
||||
|
||||
styles
|
||||
dir
|
||||
|
||||
search
|
||||
dir
|
||||
|
||||
javascript
|
||||
dir
|
||||
|
||||
index
|
||||
dir
|
||||
|
||||
index.html
|
||||
file
|
||||
|
||||
|
||||
|
||||
|
||||
2012-03-23T10:42:00.000000Z
|
||||
878ecacad20d226bdd284cd4fee8827c
|
||||
2010-07-01T20:14:12.878000Z
|
||||
1621
|
||||
adeveria
|
||||
has-props
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
94
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
K 13
|
||||
svn:mime-type
|
||||
V 9
|
||||
text/html
|
||||
END
|
|
@ -0,0 +1 @@
|
|||
<html><head><meta http-equiv="Refresh" CONTENT="0; URL=files/svgcanvas-js.html"></head></html>
|
|
@ -0,0 +1,11 @@
|
|||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 35
|
||||
/svn/!svn/ver/1620/trunk/docs/files
|
||||
END
|
||||
svgcanvas-js.html
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 53
|
||||
/svn/!svn/ver/1620/trunk/docs/files/svgcanvas-js.html
|
||||
END
|
|
@ -0,0 +1,62 @@
|
|||
10
|
||||
|
||||
dir
|
||||
2080
|
||||
http://svg-edit.googlecode.com/svn/trunk/docs/files
|
||||
http://svg-edit.googlecode.com/svn
|
||||
|
||||
|
||||
|
||||
2010-06-30T18:27:36.402448Z
|
||||
1620
|
||||
adeveria
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
eee81c28-f429-11dd-99c0-75d572ba1ddd
|
||||
|
||||
svgcanvas-js.html
|
||||
file
|
||||
|
||||
|
||||
|
||||
|
||||
2012-03-23T10:42:00.000000Z
|
||||
974cd2f187f619f9c4a74901acc81683
|
||||
2010-06-30T18:27:36.402448Z
|
||||
1620
|
||||
adeveria
|
||||
has-props
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
284514
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
K 13
|
||||
svn:mime-type
|
||||
V 9
|
||||
text/html
|
||||
END
|
|
@ -0,0 +1 @@
|
|||
<html><head><meta http-equiv="Refresh" CONTENT="0; URL=files/svgcanvas-js.html"></head></html>
|
|
@ -0,0 +1,23 @@
|
|||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 35
|
||||
/svn/!svn/ver/1620/trunk/docs/index
|
||||
END
|
||||
General.html
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 48
|
||||
/svn/!svn/ver/1620/trunk/docs/index/General.html
|
||||
END
|
||||
Files.html
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 46
|
||||
/svn/!svn/ver/1607/trunk/docs/index/Files.html
|
||||
END
|
||||
Functions.html
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 50
|
||||
/svn/!svn/ver/1620/trunk/docs/index/Functions.html
|
||||
END
|
|
@ -0,0 +1,130 @@
|
|||
10
|
||||
|
||||
dir
|
||||
2080
|
||||
http://svg-edit.googlecode.com/svn/trunk/docs/index
|
||||
http://svg-edit.googlecode.com/svn
|
||||
|
||||
|
||||
|
||||
2010-06-30T18:27:36.402448Z
|
||||
1620
|
||||
adeveria
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
eee81c28-f429-11dd-99c0-75d572ba1ddd
|
||||
|
||||
General.html
|
||||
file
|
||||
|
||||
|
||||
|
||||
|
||||
2012-03-23T10:42:00.000000Z
|
||||
1114df08520941319c3d6839987b2f93
|
||||
2010-06-30T18:27:36.402448Z
|
||||
1620
|
||||
adeveria
|
||||
has-props
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
32026
|
||||
|
||||
Files.html
|
||||
file
|
||||
|
||||
|
||||
|
||||
|
||||
2012-03-23T10:42:00.000000Z
|
||||
8ec3c1d6f6115ad83dd6f54d99fc2e5e
|
||||
2010-06-18T20:35:47.590209Z
|
||||
1607
|
||||
adeveria
|
||||
has-props
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
8185
|
||||
|
||||
Functions.html
|
||||
file
|
||||
|
||||
|
||||
|
||||
|
||||
2012-03-23T10:42:00.000000Z
|
||||
a03cd6779b63949940317f97c5bb895e
|
||||
2010-06-30T18:27:36.402448Z
|
||||
1620
|
||||
adeveria
|
||||
has-props
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
30774
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
K 13
|
||||
svn:mime-type
|
||||
V 9
|
||||
text/html
|
||||
END
|
|
@ -0,0 +1,5 @@
|
|||
K 13
|
||||
svn:mime-type
|
||||
V 9
|
||||
text/html
|
||||
END
|
|
@ -0,0 +1,5 @@
|
|||
K 13
|
||||
svn:mime-type
|
||||
V 9
|
||||
text/html
|
||||
END
|
|
@ -0,0 +1,37 @@
|
|||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
|
||||
|
||||
<html><head><title>File Index</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
|
||||
if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
|
||||
|
||||
<!-- Generated by Natural Docs, version 1.4 -->
|
||||
<!-- http://www.naturaldocs.org -->
|
||||
|
||||
<!-- saved from url=(0026)http://www.naturaldocs.org -->
|
||||
|
||||
|
||||
|
||||
|
||||
<div id=Index><div class=IPageTitle>File Index</div><div class=INavigationBar>$#! · 0-9 · A · B · C · D · E · F · G · H · I · J · K · L · <a href="#M">M</a> · N · O · P · Q · R · <a href="#S">S</a> · T · U · V · W · X · Y · Z</div><table border=0 cellspacing=0 cellpadding=0><tr><td class=IHeading id=IFirstHeading><a name="M"></a>M</td><td></td></tr><tr><td class=ISymbolPrefix id=IOnlySymbolPrefix> </td><td class=IEntry><span class=ISymbol>my_svgcanvas.js</span><div class=ISubIndex><a href="../files/editor/my_svgcanvas-js.html#my_svgcanvas.js" class=IFile>editor/<wbr>my_svgcanvas.js</a><a href="../files/editor_old/my_svgcanvas-js.html#my_svgcanvas.js" class=IFile>editor_old/<wbr>my_svgcanvas.js</a></div></td></tr><tr><td class=IHeading><a name="S"></a>S</td><td></td></tr><tr><td class=ISymbolPrefix id=IFirstSymbolPrefix> </td><td class=IEntry><span class=ISymbol>svgcanvas-latest copy.js</span><div class=ISubIndex><a href="../files/editor/svgcanvas-latest_copy-js.html#svgcanvas-latest_copy.js" class=IFile>editor/<wbr>svgcanvas-latest copy.js</a><a href="../files/editor_old/svgcanvas-latest_copy-js.html#svgcanvas-latest_copy.js" class=IFile>editor_old/<wbr>svgcanvas-latest copy.js</a></div></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><span class=ISymbol>svgcanvas-mine.js</span><div class=ISubIndex><a href="../files/editor/svgcanvas-mine-js.html#svgcanvas-mine.js" class=IFile>editor/<wbr>svgcanvas-mine.js</a><a href="../files/editor_old/svgcanvas-mine-js.html#svgcanvas-mine.js" class=IFile>editor_old/<wbr>svgcanvas-mine.js</a></div></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><span class=ISymbol>svgcanvas-textanchor-experiment.js</span><div class=ISubIndex><a href="../files/editor/svgcanvas-textanchor-experiment-js.html#svgcanvas-textanchor-experiment.js" class=IFile>editor/<wbr>svgcanvas-textanchor-experiment.js</a><a href="../files/editor_old/svgcanvas-textanchor-experiment-js.html#svgcanvas-textanchor-experiment.js" class=IFile>editor_old/<wbr>svgcanvas-textanchor-experiment.js</a></div></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><span class=ISymbol>svgcanvas.js</span><div class=ISubIndex><a href="../files/editor/svgcanvas-js.html#svgcanvas.js" class=IFile>editor/<wbr>svgcanvas.js</a><a href="../files/editor_old/svgcanvas-js.html#svgcanvas.js" class=IFile>editor_old/<wbr>svgcanvas.js</a></div></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><span class=ISymbol>svgcanvas_subpaths.js</span><div class=ISubIndex><a href="../files/editor/svgcanvas_subpaths-js.html#svgcanvas_subpaths.js" class=IFile>editor/<wbr>svgcanvas_subpaths.js</a><a href="../files/editor_old/svgcanvas_subpaths-js.html#svgcanvas_subpaths.js" class=IFile>editor_old/<wbr>svgcanvas_subpaths.js</a></div></td></tr><tr><td class=ISymbolPrefix id=ILastSymbolPrefix> </td><td class=IEntry><span class=ISymbol>svgcanvas_temp.js</span><div class=ISubIndex><a href="../files/editor/svgcanvas_temp-js.html#svgcanvas_temp.js" class=IFile>editor/<wbr>svgcanvas_temp.js</a><a href="../files/editor_old/svgcanvas_temp-js.html#svgcanvas_temp.js" class=IFile>editor_old/<wbr>svgcanvas_temp.js</a></div></td></tr></table>
|
||||
<!--START_ND_TOOLTIPS-->
|
||||
<!--END_ND_TOOLTIPS-->
|
||||
|
||||
|
||||
<!--START_ND_TOOLTIPS-->
|
||||
<!--END_ND_TOOLTIPS-->
|
||||
|
||||
</div><!--Index-->
|
||||
|
||||
|
||||
<div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
|
||||
|
||||
|
||||
<div id=Menu><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">Editor</a><div class=MGroupContent id=MGroupContent1><div class=MEntry><div class=MFile><a href="../files/editor/my_svgcanvas-js.html">my_svgcanvas.js</a></div></div><div class=MEntry><div class=MFile><a href="../files/editor/extensions/ext-foreignobject-js.html">setForeignString(xmlString, elt)</a></div></div><div class=MEntry><div class=MFile><a href="../files/editor/svgcanvas-latest_copy-js.html">svgcanvas-latest copy.js</a></div></div><div class=MEntry><div class=MFile><a href="../files/editor/svgcanvas-mine-js.html">svgcanvas-mine.js</a></div></div><div class=MEntry><div class=MFile><a href="../files/editor/svgcanvas-textanchor-experiment-js.html">svgcanvas-textanchor-experiment.js</a></div></div><div class=MEntry><div class=MFile><a href="../files/editor/svgcanvas-js.html">svgcanvas.js</a></div></div><div class=MEntry><div class=MFile><a href="../files/editor/svgcanvas_subpaths-js.html">svgcanvas_subpaths.js</a></div></div><div class=MEntry><div class=MFile><a href="../files/editor/svgcanvas_temp-js.html">svgcanvas_temp.js</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent2')">Editor_old</a><div class=MGroupContent id=MGroupContent2><div class=MEntry><div class=MFile><a href="../files/editor_old/my_svgcanvas-js.html">my_svgcanvas.js</a></div></div><div class=MEntry><div class=MFile><a href="../files/editor_old/extensions/ext-foreignobject-js.html">setForeignString(xmlString, elt)</a></div></div><div class=MEntry><div class=MFile><a href="../files/editor_old/svgcanvas-latest_copy-js.html">svgcanvas-latest copy.js</a></div></div><div class=MEntry><div class=MFile><a href="../files/editor_old/svgcanvas-mine-js.html">svgcanvas-mine.js</a></div></div><div class=MEntry><div class=MFile><a href="../files/editor_old/svgcanvas-textanchor-experiment-js.html">svgcanvas-textanchor-experiment.js</a></div></div><div class=MEntry><div class=MFile><a href="../files/editor_old/svgcanvas-js.html">svgcanvas.js</a></div></div><div class=MEntry><div class=MFile><a href="../files/editor_old/svgcanvas_subpaths-js.html">svgcanvas_subpaths.js</a></div></div><div class=MEntry><div class=MFile><a href="../files/editor_old/svgcanvas_temp-js.html">svgcanvas_temp.js</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent3')">Index</a><div class=MGroupContent id=MGroupContent3><div class=MEntry><div class=MIndex><a href="General.html">Everything</a></div></div><div class=MEntry><div class=MIndex id=MSelected>Files</div></div><div class=MEntry><div class=MIndex><a href="Functions.html">Functions</a></div></div></div></div></div><script type="text/javascript"><!--
|
||||
var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
|
||||
--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option id=MSearchEverything selected value="General">Everything</option><option value="Files">Files</option><option value="Functions">Functions</option></select></div></div><!--Menu-->
|
||||
|
||||
|
||||
<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
|
||||
|
||||
|
||||
<script language=JavaScript><!--
|
||||
if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
|
|
@ -0,0 +1,37 @@
|
|||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
|
||||
|
||||
<html><head><title>File Index</title><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script><script language=JavaScript src="../javascript/searchdata.js"></script></head><body class="IndexPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
|
||||
if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
|
||||
|
||||
<!-- Generated by Natural Docs, version 1.4 -->
|
||||
<!-- http://www.naturaldocs.org -->
|
||||
|
||||
<!-- saved from url=(0026)http://www.naturaldocs.org -->
|
||||
|
||||
|
||||
|
||||
|
||||
<div id=Index><div class=IPageTitle>File Index</div><div class=INavigationBar>$#! · 0-9 · A · B · C · D · E · F · G · H · I · J · K · L · <a href="#M">M</a> · N · O · P · Q · R · <a href="#S">S</a> · T · U · V · W · X · Y · Z</div><table border=0 cellspacing=0 cellpadding=0><tr><td class=IHeading id=IFirstHeading><a name="M"></a>M</td><td></td></tr><tr><td class=ISymbolPrefix id=IOnlySymbolPrefix> </td><td class=IEntry><span class=ISymbol>my_svgcanvas.js</span><div class=ISubIndex><a href="../files/editor/my_svgcanvas-js.html#my_svgcanvas.js" class=IFile>editor/<wbr>my_svgcanvas.js</a><a href="../files/editor_old/my_svgcanvas-js.html#my_svgcanvas.js" class=IFile>editor_old/<wbr>my_svgcanvas.js</a></div></td></tr><tr><td class=IHeading><a name="S"></a>S</td><td></td></tr><tr><td class=ISymbolPrefix id=IFirstSymbolPrefix> </td><td class=IEntry><span class=ISymbol>svgcanvas-latest copy.js</span><div class=ISubIndex><a href="../files/editor/svgcanvas-latest_copy-js.html#svgcanvas-latest_copy.js" class=IFile>editor/<wbr>svgcanvas-latest copy.js</a><a href="../files/editor_old/svgcanvas-latest_copy-js.html#svgcanvas-latest_copy.js" class=IFile>editor_old/<wbr>svgcanvas-latest copy.js</a></div></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><span class=ISymbol>svgcanvas-mine.js</span><div class=ISubIndex><a href="../files/editor/svgcanvas-mine-js.html#svgcanvas-mine.js" class=IFile>editor/<wbr>svgcanvas-mine.js</a><a href="../files/editor_old/svgcanvas-mine-js.html#svgcanvas-mine.js" class=IFile>editor_old/<wbr>svgcanvas-mine.js</a></div></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><span class=ISymbol>svgcanvas-textanchor-experiment.js</span><div class=ISubIndex><a href="../files/editor/svgcanvas-textanchor-experiment-js.html#svgcanvas-textanchor-experiment.js" class=IFile>editor/<wbr>svgcanvas-textanchor-experiment.js</a><a href="../files/editor_old/svgcanvas-textanchor-experiment-js.html#svgcanvas-textanchor-experiment.js" class=IFile>editor_old/<wbr>svgcanvas-textanchor-experiment.js</a></div></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><span class=ISymbol>svgcanvas.js</span><div class=ISubIndex><a href="../files/editor/svgcanvas-js.html#svgcanvas.js" class=IFile>editor/<wbr>svgcanvas.js</a><a href="../files/editor_old/svgcanvas-js.html#svgcanvas.js" class=IFile>editor_old/<wbr>svgcanvas.js</a></div></td></tr><tr><td class=ISymbolPrefix> </td><td class=IEntry><span class=ISymbol>svgcanvas_subpaths.js</span><div class=ISubIndex><a href="../files/editor/svgcanvas_subpaths-js.html#svgcanvas_subpaths.js" class=IFile>editor/<wbr>svgcanvas_subpaths.js</a><a href="../files/editor_old/svgcanvas_subpaths-js.html#svgcanvas_subpaths.js" class=IFile>editor_old/<wbr>svgcanvas_subpaths.js</a></div></td></tr><tr><td class=ISymbolPrefix id=ILastSymbolPrefix> </td><td class=IEntry><span class=ISymbol>svgcanvas_temp.js</span><div class=ISubIndex><a href="../files/editor/svgcanvas_temp-js.html#svgcanvas_temp.js" class=IFile>editor/<wbr>svgcanvas_temp.js</a><a href="../files/editor_old/svgcanvas_temp-js.html#svgcanvas_temp.js" class=IFile>editor_old/<wbr>svgcanvas_temp.js</a></div></td></tr></table>
|
||||
<!--START_ND_TOOLTIPS-->
|
||||
<!--END_ND_TOOLTIPS-->
|
||||
|
||||
|
||||
<!--START_ND_TOOLTIPS-->
|
||||
<!--END_ND_TOOLTIPS-->
|
||||
|
||||
</div><!--Index-->
|
||||
|
||||
|
||||
<div id=Footer><a href="http://www.naturaldocs.org">Generated by Natural Docs</a></div><!--Footer-->
|
||||
|
||||
|
||||
<div id=Menu><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent1')">Editor</a><div class=MGroupContent id=MGroupContent1><div class=MEntry><div class=MFile><a href="../files/editor/my_svgcanvas-js.html">my_svgcanvas.js</a></div></div><div class=MEntry><div class=MFile><a href="../files/editor/extensions/ext-foreignobject-js.html">setForeignString(xmlString, elt)</a></div></div><div class=MEntry><div class=MFile><a href="../files/editor/svgcanvas-latest_copy-js.html">svgcanvas-latest copy.js</a></div></div><div class=MEntry><div class=MFile><a href="../files/editor/svgcanvas-mine-js.html">svgcanvas-mine.js</a></div></div><div class=MEntry><div class=MFile><a href="../files/editor/svgcanvas-textanchor-experiment-js.html">svgcanvas-textanchor-experiment.js</a></div></div><div class=MEntry><div class=MFile><a href="../files/editor/svgcanvas-js.html">svgcanvas.js</a></div></div><div class=MEntry><div class=MFile><a href="../files/editor/svgcanvas_subpaths-js.html">svgcanvas_subpaths.js</a></div></div><div class=MEntry><div class=MFile><a href="../files/editor/svgcanvas_temp-js.html">svgcanvas_temp.js</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent2')">Editor_old</a><div class=MGroupContent id=MGroupContent2><div class=MEntry><div class=MFile><a href="../files/editor_old/my_svgcanvas-js.html">my_svgcanvas.js</a></div></div><div class=MEntry><div class=MFile><a href="../files/editor_old/extensions/ext-foreignobject-js.html">setForeignString(xmlString, elt)</a></div></div><div class=MEntry><div class=MFile><a href="../files/editor_old/svgcanvas-latest_copy-js.html">svgcanvas-latest copy.js</a></div></div><div class=MEntry><div class=MFile><a href="../files/editor_old/svgcanvas-mine-js.html">svgcanvas-mine.js</a></div></div><div class=MEntry><div class=MFile><a href="../files/editor_old/svgcanvas-textanchor-experiment-js.html">svgcanvas-textanchor-experiment.js</a></div></div><div class=MEntry><div class=MFile><a href="../files/editor_old/svgcanvas-js.html">svgcanvas.js</a></div></div><div class=MEntry><div class=MFile><a href="../files/editor_old/svgcanvas_subpaths-js.html">svgcanvas_subpaths.js</a></div></div><div class=MEntry><div class=MFile><a href="../files/editor_old/svgcanvas_temp-js.html">svgcanvas_temp.js</a></div></div></div></div></div><div class=MEntry><div class=MGroup><a href="javascript:ToggleMenu('MGroupContent3')">Index</a><div class=MGroupContent id=MGroupContent3><div class=MEntry><div class=MIndex><a href="General.html">Everything</a></div></div><div class=MEntry><div class=MIndex id=MSelected>Files</div></div><div class=MEntry><div class=MIndex><a href="Functions.html">Functions</a></div></div></div></div></div><script type="text/javascript"><!--
|
||||
var searchPanel = new SearchPanel("searchPanel", "HTML", "../search");
|
||||
--></script><div id=MSearchPanel class=MSearchPanelInactive><input type=text id=MSearchField value=Search onFocus="searchPanel.OnSearchFieldFocus(true)" onBlur="searchPanel.OnSearchFieldFocus(false)" onKeyUp="searchPanel.OnSearchFieldChange()"><select id=MSearchType onFocus="searchPanel.OnSearchTypeFocus(true)" onBlur="searchPanel.OnSearchTypeFocus(false)" onChange="searchPanel.OnSearchTypeChange()"><option id=MSearchEverything selected value="General">Everything</option><option value="Files">Files</option><option value="Functions">Functions</option></select></div></div><!--Menu-->
|
||||
|
||||
|
||||
<div id=MSearchResultsWindow><iframe src="" frameborder=0 name=MSearchResults id=MSearchResults></iframe><a href="javascript:searchPanel.CloseResultsWindow()" id=MSearchResultsWindowClose>Close</a></div>
|
||||
|
||||
|
||||
<script language=JavaScript><!--
|
||||
if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
|
|
@ -0,0 +1,17 @@
|
|||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 40
|
||||
/svn/!svn/ver/1620/trunk/docs/javascript
|
||||
END
|
||||
main.js
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 47
|
||||
/svn/!svn/ver/791/trunk/docs/javascript/main.js
|
||||
END
|
||||
searchdata.js
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 54
|
||||
/svn/!svn/ver/1620/trunk/docs/javascript/searchdata.js
|
||||
END
|
|
@ -0,0 +1,96 @@
|
|||
10
|
||||
|
||||
dir
|
||||
2080
|
||||
http://svg-edit.googlecode.com/svn/trunk/docs/javascript
|
||||
http://svg-edit.googlecode.com/svn
|
||||
|
||||
|
||||
|
||||
2010-06-30T18:27:36.402448Z
|
||||
1620
|
||||
adeveria
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
eee81c28-f429-11dd-99c0-75d572ba1ddd
|
||||
|
||||
main.js
|
||||
file
|
||||
|
||||
|
||||
|
||||
|
||||
2012-03-23T10:42:00.000000Z
|
||||
39bb24d13aa826d1a11285cfa91a0d69
|
||||
2009-10-09T19:16:58.262697Z
|
||||
791
|
||||
codedread
|
||||
has-props
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
25346
|
||||
|
||||
searchdata.js
|
||||
file
|
||||
|
||||
|
||||
|
||||
|
||||
2012-03-23T10:42:00.000000Z
|
||||
5c026a814862059225b0d10f1ef421dc
|
||||
2010-06-30T18:27:36.402448Z
|
||||
1620
|
||||
adeveria
|
||||
has-props
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
2170
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
K 13
|
||||
svn:mime-type
|
||||
V 15
|
||||
text/javascript
|
||||
END
|
|
@ -0,0 +1,5 @@
|
|||
K 13
|
||||
svn:mime-type
|
||||
V 15
|
||||
text/javascript
|
||||
END
|
|
@ -0,0 +1,836 @@
|
|||
// This file is part of Natural Docs, which is Copyright (C) 2003-2008 Greg Valure
|
||||
// Natural Docs is licensed under the GPL
|
||||
|
||||
|
||||
//
|
||||
// Browser Styles
|
||||
// ____________________________________________________________________________
|
||||
|
||||
var agt=navigator.userAgent.toLowerCase();
|
||||
var browserType;
|
||||
var browserVer;
|
||||
|
||||
if (agt.indexOf("opera") != -1)
|
||||
{
|
||||
browserType = "Opera";
|
||||
|
||||
if (agt.indexOf("opera 7") != -1 || agt.indexOf("opera/7") != -1)
|
||||
{ browserVer = "Opera7"; }
|
||||
else if (agt.indexOf("opera 8") != -1 || agt.indexOf("opera/8") != -1)
|
||||
{ browserVer = "Opera8"; }
|
||||
else if (agt.indexOf("opera 9") != -1 || agt.indexOf("opera/9") != -1)
|
||||
{ browserVer = "Opera9"; }
|
||||
}
|
||||
|
||||
else if (agt.indexOf("applewebkit") != -1)
|
||||
{
|
||||
browserType = "Safari";
|
||||
|
||||
if (agt.indexOf("version/3") != -1)
|
||||
{ browserVer = "Safari3"; }
|
||||
else if (agt.indexOf("safari/4") != -1)
|
||||
{ browserVer = "Safari2"; }
|
||||
}
|
||||
|
||||
else if (agt.indexOf("khtml") != -1)
|
||||
{
|
||||
browserType = "Konqueror";
|
||||
}
|
||||
|
||||
else if (agt.indexOf("msie") != -1)
|
||||
{
|
||||
browserType = "IE";
|
||||
|
||||
if (agt.indexOf("msie 6") != -1)
|
||||
{ browserVer = "IE6"; }
|
||||
else if (agt.indexOf("msie 7") != -1)
|
||||
{ browserVer = "IE7"; }
|
||||
}
|
||||
|
||||
else if (agt.indexOf("gecko") != -1)
|
||||
{
|
||||
browserType = "Firefox";
|
||||
|
||||
if (agt.indexOf("rv:1.7") != -1)
|
||||
{ browserVer = "Firefox1"; }
|
||||
else if (agt.indexOf("rv:1.8)") != -1 || agt.indexOf("rv:1.8.0") != -1)
|
||||
{ browserVer = "Firefox15"; }
|
||||
else if (agt.indexOf("rv:1.8.1") != -1)
|
||||
{ browserVer = "Firefox2"; }
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
// Support Functions
|
||||
// ____________________________________________________________________________
|
||||
|
||||
|
||||
function GetXPosition(item)
|
||||
{
|
||||
var position = 0;
|
||||
|
||||
if (item.offsetWidth != null)
|
||||
{
|
||||
while (item != document.body && item != null)
|
||||
{
|
||||
position += item.offsetLeft;
|
||||
item = item.offsetParent;
|
||||
};
|
||||
};
|
||||
|
||||
return position;
|
||||
};
|
||||
|
||||
|
||||
function GetYPosition(item)
|
||||
{
|
||||
var position = 0;
|
||||
|
||||
if (item.offsetWidth != null)
|
||||
{
|
||||
while (item != document.body && item != null)
|
||||
{
|
||||
position += item.offsetTop;
|
||||
item = item.offsetParent;
|
||||
};
|
||||
};
|
||||
|
||||
return position;
|
||||
};
|
||||
|
||||
|
||||
function MoveToPosition(item, x, y)
|
||||
{
|
||||
// Opera 5 chokes on the px extension, so it can use the Microsoft one instead.
|
||||
|
||||
if (item.style.left != null)
|
||||
{
|
||||
item.style.left = x + "px";
|
||||
item.style.top = y + "px";
|
||||
}
|
||||
else if (item.style.pixelLeft != null)
|
||||
{
|
||||
item.style.pixelLeft = x;
|
||||
item.style.pixelTop = y;
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
//
|
||||
// Menu
|
||||
// ____________________________________________________________________________
|
||||
|
||||
|
||||
function ToggleMenu(id)
|
||||
{
|
||||
if (!window.document.getElementById)
|
||||
{ return; };
|
||||
|
||||
var display = window.document.getElementById(id).style.display;
|
||||
|
||||
if (display == "none")
|
||||
{ display = "block"; }
|
||||
else
|
||||
{ display = "none"; }
|
||||
|
||||
window.document.getElementById(id).style.display = display;
|
||||
}
|
||||
|
||||
function HideAllBut(ids, max)
|
||||
{
|
||||
if (document.getElementById)
|
||||
{
|
||||
ids.sort( function(a,b) { return a - b; } );
|
||||
var number = 1;
|
||||
|
||||
while (number < max)
|
||||
{
|
||||
if (ids.length > 0 && number == ids[0])
|
||||
{ ids.shift(); }
|
||||
else
|
||||
{
|
||||
document.getElementById("MGroupContent" + number).style.display = "none";
|
||||
};
|
||||
|
||||
number++;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
// Tooltips
|
||||
// ____________________________________________________________________________
|
||||
|
||||
|
||||
var tooltipTimer = 0;
|
||||
|
||||
function ShowTip(event, tooltipID, linkID)
|
||||
{
|
||||
if (tooltipTimer)
|
||||
{ clearTimeout(tooltipTimer); };
|
||||
|
||||
var docX = event.clientX + window.pageXOffset;
|
||||
var docY = event.clientY + window.pageYOffset;
|
||||
|
||||
var showCommand = "ReallyShowTip('" + tooltipID + "', '" + linkID + "', " + docX + ", " + docY + ")";
|
||||
|
||||
tooltipTimer = setTimeout(showCommand, 1000);
|
||||
}
|
||||
|
||||
function ReallyShowTip(tooltipID, linkID, docX, docY)
|
||||
{
|
||||
tooltipTimer = 0;
|
||||
|
||||
var tooltip;
|
||||
var link;
|
||||
|
||||
if (document.getElementById)
|
||||
{
|
||||
tooltip = document.getElementById(tooltipID);
|
||||
link = document.getElementById(linkID);
|
||||
}
|
||||
/* else if (document.all)
|
||||
{
|
||||
tooltip = eval("document.all['" + tooltipID + "']");
|
||||
link = eval("document.all['" + linkID + "']");
|
||||
}
|
||||
*/
|
||||
if (tooltip)
|
||||
{
|
||||
var left = GetXPosition(link);
|
||||
var top = GetYPosition(link);
|
||||
top += link.offsetHeight;
|
||||
|
||||
|
||||
// The fallback method is to use the mouse X and Y relative to the document. We use a separate if and test if its a number
|
||||
// in case some browser snuck through the above if statement but didn't support everything.
|
||||
|
||||
if (!isFinite(top) || top == 0)
|
||||
{
|
||||
left = docX;
|
||||
top = docY;
|
||||
}
|
||||
|
||||
// Some spacing to get it out from under the cursor.
|
||||
|
||||
top += 10;
|
||||
|
||||
// Make sure the tooltip doesnt get smushed by being too close to the edge, or in some browsers, go off the edge of the
|
||||
// page. We do it here because Konqueror does get offsetWidth right even if it doesnt get the positioning right.
|
||||
|
||||
if (tooltip.offsetWidth != null)
|
||||
{
|
||||
var width = tooltip.offsetWidth;
|
||||
var docWidth = document.body.clientWidth;
|
||||
|
||||
if (left + width > docWidth)
|
||||
{ left = docWidth - width - 1; }
|
||||
|
||||
// If there's a horizontal scroll bar we could go past zero because it's using the page width, not the window width.
|
||||
if (left < 0)
|
||||
{ left = 0; };
|
||||
}
|
||||
|
||||
MoveToPosition(tooltip, left, top);
|
||||
tooltip.style.visibility = "visible";
|
||||
}
|
||||
}
|
||||
|
||||
function HideTip(tooltipID)
|
||||
{
|
||||
if (tooltipTimer)
|
||||
{
|
||||
clearTimeout(tooltipTimer);
|
||||
tooltipTimer = 0;
|
||||
}
|
||||
|
||||
var tooltip;
|
||||
|
||||
if (document.getElementById)
|
||||
{ tooltip = document.getElementById(tooltipID); }
|
||||
else if (document.all)
|
||||
{ tooltip = eval("document.all['" + tooltipID + "']"); }
|
||||
|
||||
if (tooltip)
|
||||
{ tooltip.style.visibility = "hidden"; }
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
// Blockquote fix for IE
|
||||
// ____________________________________________________________________________
|
||||
|
||||
|
||||
function NDOnLoad()
|
||||
{
|
||||
if (browserVer == "IE6")
|
||||
{
|
||||
var scrollboxes = document.getElementsByTagName('blockquote');
|
||||
|
||||
if (scrollboxes.item(0))
|
||||
{
|
||||
NDDoResize();
|
||||
window.onresize=NDOnResize;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
var resizeTimer = 0;
|
||||
|
||||
function NDOnResize()
|
||||
{
|
||||
if (resizeTimer != 0)
|
||||
{ clearTimeout(resizeTimer); };
|
||||
|
||||
resizeTimer = setTimeout(NDDoResize, 250);
|
||||
};
|
||||
|
||||
|
||||
function NDDoResize()
|
||||
{
|
||||
var scrollboxes = document.getElementsByTagName('blockquote');
|
||||
|
||||
var i;
|
||||
var item;
|
||||
|
||||
i = 0;
|
||||
while (item = scrollboxes.item(i))
|
||||
{
|
||||
item.style.width = 100;
|
||||
i++;
|
||||
};
|
||||
|
||||
i = 0;
|
||||
while (item = scrollboxes.item(i))
|
||||
{
|
||||
item.style.width = item.parentNode.offsetWidth;
|
||||
i++;
|
||||
};
|
||||
|
||||
clearTimeout(resizeTimer);
|
||||
resizeTimer = 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* ________________________________________________________________________________________________________
|
||||
|
||||
Class: SearchPanel
|
||||
________________________________________________________________________________________________________
|
||||
|
||||
A class handling everything associated with the search panel.
|
||||
|
||||
Parameters:
|
||||
|
||||
name - The name of the global variable that will be storing this instance. Is needed to be able to set timeouts.
|
||||
mode - The mode the search is going to work in. Pass <NaturalDocs::Builder::Base->CommandLineOption()>, so the
|
||||
value will be something like "HTML" or "FramedHTML".
|
||||
|
||||
________________________________________________________________________________________________________
|
||||
*/
|
||||
|
||||
|
||||
function SearchPanel(name, mode, resultsPath)
|
||||
{
|
||||
if (!name || !mode || !resultsPath)
|
||||
{ alert("Incorrect parameters to SearchPanel."); };
|
||||
|
||||
|
||||
// Group: Variables
|
||||
// ________________________________________________________________________
|
||||
|
||||
/*
|
||||
var: name
|
||||
The name of the global variable that will be storing this instance of the class.
|
||||
*/
|
||||
this.name = name;
|
||||
|
||||
/*
|
||||
var: mode
|
||||
The mode the search is going to work in, such as "HTML" or "FramedHTML".
|
||||
*/
|
||||
this.mode = mode;
|
||||
|
||||
/*
|
||||
var: resultsPath
|
||||
The relative path from the current HTML page to the results page directory.
|
||||
*/
|
||||
this.resultsPath = resultsPath;
|
||||
|
||||
/*
|
||||
var: keyTimeout
|
||||
The timeout used between a keystroke and when a search is performed.
|
||||
*/
|
||||
this.keyTimeout = 0;
|
||||
|
||||
/*
|
||||
var: keyTimeoutLength
|
||||
The length of <keyTimeout> in thousandths of a second.
|
||||
*/
|
||||
this.keyTimeoutLength = 500;
|
||||
|
||||
/*
|
||||
var: lastSearchValue
|
||||
The last search string executed, or an empty string if none.
|
||||
*/
|
||||
this.lastSearchValue = "";
|
||||
|
||||
/*
|
||||
var: lastResultsPage
|
||||
The last results page. The value is only relevant if <lastSearchValue> is set.
|
||||
*/
|
||||
this.lastResultsPage = "";
|
||||
|
||||
/*
|
||||
var: deactivateTimeout
|
||||
|
||||
The timeout used between when a control is deactivated and when the entire panel is deactivated. Is necessary
|
||||
because a control may be deactivated in favor of another control in the same panel, in which case it should stay
|
||||
active.
|
||||
*/
|
||||
this.deactivateTimout = 0;
|
||||
|
||||
/*
|
||||
var: deactivateTimeoutLength
|
||||
The length of <deactivateTimeout> in thousandths of a second.
|
||||
*/
|
||||
this.deactivateTimeoutLength = 200;
|
||||
|
||||
|
||||
|
||||
|
||||
// Group: DOM Elements
|
||||
// ________________________________________________________________________
|
||||
|
||||
|
||||
// Function: DOMSearchField
|
||||
this.DOMSearchField = function()
|
||||
{ return document.getElementById("MSearchField"); };
|
||||
|
||||
// Function: DOMSearchType
|
||||
this.DOMSearchType = function()
|
||||
{ return document.getElementById("MSearchType"); };
|
||||
|
||||
// Function: DOMPopupSearchResults
|
||||
this.DOMPopupSearchResults = function()
|
||||
{ return document.getElementById("MSearchResults"); };
|
||||
|
||||
// Function: DOMPopupSearchResultsWindow
|
||||
this.DOMPopupSearchResultsWindow = function()
|
||||
{ return document.getElementById("MSearchResultsWindow"); };
|
||||
|
||||
// Function: DOMSearchPanel
|
||||
this.DOMSearchPanel = function()
|
||||
{ return document.getElementById("MSearchPanel"); };
|
||||
|
||||
|
||||
|
||||
|
||||
// Group: Event Handlers
|
||||
// ________________________________________________________________________
|
||||
|
||||
|
||||
/*
|
||||
Function: OnSearchFieldFocus
|
||||
Called when focus is added or removed from the search field.
|
||||
*/
|
||||
this.OnSearchFieldFocus = function(isActive)
|
||||
{
|
||||
this.Activate(isActive);
|
||||
};
|
||||
|
||||
|
||||
/*
|
||||
Function: OnSearchFieldChange
|
||||
Called when the content of the search field is changed.
|
||||
*/
|
||||
this.OnSearchFieldChange = function()
|
||||
{
|
||||
if (this.keyTimeout)
|
||||
{
|
||||
clearTimeout(this.keyTimeout);
|
||||
this.keyTimeout = 0;
|
||||
};
|
||||
|
||||
var searchValue = this.DOMSearchField().value.replace(/ +/g, "");
|
||||
|
||||
if (searchValue != this.lastSearchValue)
|
||||
{
|
||||
if (searchValue != "")
|
||||
{
|
||||
this.keyTimeout = setTimeout(this.name + ".Search()", this.keyTimeoutLength);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (this.mode == "HTML")
|
||||
{ this.DOMPopupSearchResultsWindow().style.display = "none"; };
|
||||
this.lastSearchValue = "";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
/*
|
||||
Function: OnSearchTypeFocus
|
||||
Called when focus is added or removed from the search type.
|
||||
*/
|
||||
this.OnSearchTypeFocus = function(isActive)
|
||||
{
|
||||
this.Activate(isActive);
|
||||
};
|
||||
|
||||
|
||||
/*
|
||||
Function: OnSearchTypeChange
|
||||
Called when the search type is changed.
|
||||
*/
|
||||
this.OnSearchTypeChange = function()
|
||||
{
|
||||
var searchValue = this.DOMSearchField().value.replace(/ +/g, "");
|
||||
|
||||
if (searchValue != "")
|
||||
{
|
||||
this.Search();
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
|
||||
// Group: Action Functions
|
||||
// ________________________________________________________________________
|
||||
|
||||
|
||||
/*
|
||||
Function: CloseResultsWindow
|
||||
Closes the results window.
|
||||
*/
|
||||
this.CloseResultsWindow = function()
|
||||
{
|
||||
this.DOMPopupSearchResultsWindow().style.display = "none";
|
||||
this.Activate(false, true);
|
||||
};
|
||||
|
||||
|
||||
/*
|
||||
Function: Search
|
||||
Performs a search.
|
||||
*/
|
||||
this.Search = function()
|
||||
{
|
||||
this.keyTimeout = 0;
|
||||
|
||||
var searchValue = this.DOMSearchField().value.replace(/^ +/, "");
|
||||
var searchTopic = this.DOMSearchType().value;
|
||||
|
||||
var pageExtension = searchValue.substr(0,1);
|
||||
|
||||
if (pageExtension.match(/^[a-z]/i))
|
||||
{ pageExtension = pageExtension.toUpperCase(); }
|
||||
else if (pageExtension.match(/^[0-9]/))
|
||||
{ pageExtension = 'Numbers'; }
|
||||
else
|
||||
{ pageExtension = "Symbols"; };
|
||||
|
||||
var resultsPage;
|
||||
var resultsPageWithSearch;
|
||||
var hasResultsPage;
|
||||
|
||||
// indexSectionsWithContent is defined in searchdata.js
|
||||
if (indexSectionsWithContent[searchTopic][pageExtension] == true)
|
||||
{
|
||||
resultsPage = this.resultsPath + '/' + searchTopic + pageExtension + '.html';
|
||||
resultsPageWithSearch = resultsPage+'?'+escape(searchValue);
|
||||
hasResultsPage = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
resultsPage = this.resultsPath + '/NoResults.html';
|
||||
resultsPageWithSearch = resultsPage;
|
||||
hasResultsPage = false;
|
||||
};
|
||||
|
||||
var resultsFrame;
|
||||
if (this.mode == "HTML")
|
||||
{ resultsFrame = window.frames.MSearchResults; }
|
||||
else if (this.mode == "FramedHTML")
|
||||
{ resultsFrame = window.top.frames['Content']; };
|
||||
|
||||
|
||||
if (resultsPage != this.lastResultsPage ||
|
||||
|
||||
// Bug in IE. If everything becomes hidden in a run, none of them will be able to be reshown in the next for some
|
||||
// reason. It counts the right number of results, and you can even read the display as "block" after setting it, but it
|
||||
// just doesn't work in IE 6 or IE 7. So if we're on the right page but the previous search had no results, reload the
|
||||
// page anyway to get around the bug.
|
||||
(browserType == "IE" && hasResultsPage &&
|
||||
(!resultsFrame.searchResults || resultsFrame.searchResults.lastMatchCount == 0)) )
|
||||
|
||||
{
|
||||
resultsFrame.location.href = resultsPageWithSearch;
|
||||
}
|
||||
|
||||
// So if the results page is right and there's no IE bug, reperform the search on the existing page. We have to check if there
|
||||
// are results because NoResults.html doesn't have any JavaScript, and it would be useless to do anything on that page even
|
||||
// if it did.
|
||||
else if (hasResultsPage)
|
||||
{
|
||||
// We need to check if this exists in case the frame is present but didn't finish loading.
|
||||
if (resultsFrame.searchResults)
|
||||
{ resultsFrame.searchResults.Search(searchValue); }
|
||||
|
||||
// Otherwise just reload instead of waiting.
|
||||
else
|
||||
{ resultsFrame.location.href = resultsPageWithSearch; };
|
||||
};
|
||||
|
||||
|
||||
var domPopupSearchResultsWindow = this.DOMPopupSearchResultsWindow();
|
||||
|
||||
if (this.mode == "HTML" && domPopupSearchResultsWindow.style.display != "block")
|
||||
{
|
||||
var domSearchType = this.DOMSearchType();
|
||||
|
||||
var left = GetXPosition(domSearchType);
|
||||
var top = GetYPosition(domSearchType) + domSearchType.offsetHeight;
|
||||
|
||||
MoveToPosition(domPopupSearchResultsWindow, left, top);
|
||||
domPopupSearchResultsWindow.style.display = 'block';
|
||||
};
|
||||
|
||||
|
||||
this.lastSearchValue = searchValue;
|
||||
this.lastResultsPage = resultsPage;
|
||||
};
|
||||
|
||||
|
||||
|
||||
// Group: Activation Functions
|
||||
// Functions that handle whether the entire panel is active or not.
|
||||
// ________________________________________________________________________
|
||||
|
||||
|
||||
/*
|
||||
Function: Activate
|
||||
|
||||
Activates or deactivates the search panel, resetting things to their default values if necessary. You can call this on every
|
||||
control's OnBlur() and it will handle not deactivating the entire panel when focus is just switching between them transparently.
|
||||
|
||||
Parameters:
|
||||
|
||||
isActive - Whether you're activating or deactivating the panel.
|
||||
ignoreDeactivateDelay - Set if you're positive the action will deactivate the panel and thus want to skip the delay.
|
||||
*/
|
||||
this.Activate = function(isActive, ignoreDeactivateDelay)
|
||||
{
|
||||
// We want to ignore isActive being false while the results window is open.
|
||||
if (isActive || (this.mode == "HTML" && this.DOMPopupSearchResultsWindow().style.display == "block"))
|
||||
{
|
||||
if (this.inactivateTimeout)
|
||||
{
|
||||
clearTimeout(this.inactivateTimeout);
|
||||
this.inactivateTimeout = 0;
|
||||
};
|
||||
|
||||
this.DOMSearchPanel().className = 'MSearchPanelActive';
|
||||
|
||||
var searchField = this.DOMSearchField();
|
||||
|
||||
if (searchField.value == 'Search')
|
||||
{ searchField.value = ""; }
|
||||
}
|
||||
else if (!ignoreDeactivateDelay)
|
||||
{
|
||||
this.inactivateTimeout = setTimeout(this.name + ".InactivateAfterTimeout()", this.inactivateTimeoutLength);
|
||||
}
|
||||
else
|
||||
{
|
||||
this.InactivateAfterTimeout();
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
/*
|
||||
Function: InactivateAfterTimeout
|
||||
|
||||
Called by <inactivateTimeout>, which is set by <Activate()>. Inactivation occurs on a timeout because a control may
|
||||
receive OnBlur() when focus is really transferring to another control in the search panel. In this case we don't want to
|
||||
actually deactivate the panel because not only would that cause a visible flicker but it could also reset the search value.
|
||||
So by doing it on a timeout instead, there's a short period where the second control's OnFocus() can cancel the deactivation.
|
||||
*/
|
||||
this.InactivateAfterTimeout = function()
|
||||
{
|
||||
this.inactivateTimeout = 0;
|
||||
|
||||
this.DOMSearchPanel().className = 'MSearchPanelInactive';
|
||||
this.DOMSearchField().value = "Search";
|
||||
|
||||
this.lastSearchValue = "";
|
||||
this.lastResultsPage = "";
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
/* ________________________________________________________________________________________________________
|
||||
|
||||
Class: SearchResults
|
||||
_________________________________________________________________________________________________________
|
||||
|
||||
The class that handles everything on the search results page.
|
||||
_________________________________________________________________________________________________________
|
||||
*/
|
||||
|
||||
|
||||
function SearchResults(name, mode)
|
||||
{
|
||||
/*
|
||||
var: mode
|
||||
The mode the search is going to work in, such as "HTML" or "FramedHTML".
|
||||
*/
|
||||
this.mode = mode;
|
||||
|
||||
/*
|
||||
var: lastMatchCount
|
||||
The number of matches from the last run of <Search()>.
|
||||
*/
|
||||
this.lastMatchCount = 0;
|
||||
|
||||
|
||||
/*
|
||||
Function: Toggle
|
||||
Toggles the visibility of the passed element ID.
|
||||
*/
|
||||
this.Toggle = function(id)
|
||||
{
|
||||
if (this.mode == "FramedHTML")
|
||||
{ return; };
|
||||
|
||||
var parentElement = document.getElementById(id);
|
||||
|
||||
var element = parentElement.firstChild;
|
||||
|
||||
while (element && element != parentElement)
|
||||
{
|
||||
if (element.nodeName == 'DIV' && element.className == 'ISubIndex')
|
||||
{
|
||||
if (element.style.display == 'block')
|
||||
{ element.style.display = "none"; }
|
||||
else
|
||||
{ element.style.display = 'block'; }
|
||||
};
|
||||
|
||||
if (element.nodeName == 'DIV' && element.hasChildNodes())
|
||||
{ element = element.firstChild; }
|
||||
else if (element.nextSibling)
|
||||
{ element = element.nextSibling; }
|
||||
else
|
||||
{
|
||||
do
|
||||
{
|
||||
element = element.parentNode;
|
||||
}
|
||||
while (element && element != parentElement && !element.nextSibling);
|
||||
|
||||
if (element && element != parentElement)
|
||||
{ element = element.nextSibling; };
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
/*
|
||||
Function: Search
|
||||
|
||||
Searches for the passed string. If there is no parameter, it takes it from the URL query.
|
||||
|
||||
Always returns true, since other documents may try to call it and that may or may not be possible.
|
||||
*/
|
||||
this.Search = function(search)
|
||||
{
|
||||
if (!search)
|
||||
{
|
||||
search = window.location.search;
|
||||
search = search.substring(1); // Remove the leading ?
|
||||
search = unescape(search);
|
||||
};
|
||||
|
||||
search = search.replace(/^ +/, "");
|
||||
search = search.replace(/ +$/, "");
|
||||
search = search.toLowerCase();
|
||||
|
||||
if (search.match(/[^a-z0-9]/)) // Just a little speedup so it doesn't have to go through the below unnecessarily.
|
||||
{
|
||||
search = search.replace(/\_/g, "_und");
|
||||
search = search.replace(/\ +/gi, "_spc");
|
||||
search = search.replace(/\~/g, "_til");
|
||||
search = search.replace(/\!/g, "_exc");
|
||||
search = search.replace(/\@/g, "_att");
|
||||
search = search.replace(/\#/g, "_num");
|
||||
search = search.replace(/\$/g, "_dol");
|
||||
search = search.replace(/\%/g, "_pct");
|
||||
search = search.replace(/\^/g, "_car");
|
||||
search = search.replace(/\&/g, "_amp");
|
||||
search = search.replace(/\*/g, "_ast");
|
||||
search = search.replace(/\(/g, "_lpa");
|
||||
search = search.replace(/\)/g, "_rpa");
|
||||
search = search.replace(/\-/g, "_min");
|
||||
search = search.replace(/\+/g, "_plu");
|
||||
search = search.replace(/\=/g, "_equ");
|
||||
search = search.replace(/\{/g, "_lbc");
|
||||
search = search.replace(/\}/g, "_rbc");
|
||||
search = search.replace(/\[/g, "_lbk");
|
||||
search = search.replace(/\]/g, "_rbk");
|
||||
search = search.replace(/\:/g, "_col");
|
||||
search = search.replace(/\;/g, "_sco");
|
||||
search = search.replace(/\"/g, "_quo");
|
||||
search = search.replace(/\'/g, "_apo");
|
||||
search = search.replace(/\</g, "_lan");
|
||||
search = search.replace(/\>/g, "_ran");
|
||||
search = search.replace(/\,/g, "_com");
|
||||
search = search.replace(/\./g, "_per");
|
||||
search = search.replace(/\?/g, "_que");
|
||||
search = search.replace(/\//g, "_sla");
|
||||
search = search.replace(/[^a-z0-9\_]i/gi, "_zzz");
|
||||
};
|
||||
|
||||
var resultRows = document.getElementsByTagName("div");
|
||||
var matches = 0;
|
||||
|
||||
var i = 0;
|
||||
while (i < resultRows.length)
|
||||
{
|
||||
var row = resultRows.item(i);
|
||||
|
||||
if (row.className == "SRResult")
|
||||
{
|
||||
var rowMatchName = row.id.toLowerCase();
|
||||
rowMatchName = rowMatchName.replace(/^sr\d*_/, '');
|
||||
|
||||
if (search.length <= rowMatchName.length && rowMatchName.substr(0, search.length) == search)
|
||||
{
|
||||
row.style.display = "block";
|
||||
matches++;
|
||||
}
|
||||
else
|
||||
{ row.style.display = "none"; };
|
||||
};
|
||||
|
||||
i++;
|
||||
};
|
||||
|
||||
document.getElementById("Searching").style.display="none";
|
||||
|
||||
if (matches == 0)
|
||||
{ document.getElementById("NoMatches").style.display="block"; }
|
||||
else
|
||||
{ document.getElementById("NoMatches").style.display="none"; }
|
||||
|
||||
this.lastMatchCount = matches;
|
||||
|
||||
return true;
|
||||
};
|
||||
};
|
||||
|
|
@ -0,0 +1,122 @@
|
|||
var indexSectionsWithContent = {
|
||||
"General": {
|
||||
"Symbols": false,
|
||||
"Numbers": false,
|
||||
"A": true,
|
||||
"B": false,
|
||||
"C": true,
|
||||
"D": true,
|
||||
"E": false,
|
||||
"F": true,
|
||||
"G": true,
|
||||
"H": true,
|
||||
"I": true,
|
||||
"J": false,
|
||||
"K": false,
|
||||
"L": true,
|
||||
"M": true,
|
||||
"N": false,
|
||||
"O": true,
|
||||
"P": false,
|
||||
"Q": false,
|
||||
"R": true,
|
||||
"S": true,
|
||||
"T": false,
|
||||
"U": false,
|
||||
"V": false,
|
||||
"W": false,
|
||||
"X": false,
|
||||
"Y": false,
|
||||
"Z": false
|
||||
},
|
||||
"Functions": {
|
||||
"Symbols": false,
|
||||
"Numbers": false,
|
||||
"A": true,
|
||||
"B": true,
|
||||
"C": true,
|
||||
"D": true,
|
||||
"E": true,
|
||||
"F": true,
|
||||
"G": true,
|
||||
"H": true,
|
||||
"I": true,
|
||||
"J": false,
|
||||
"K": false,
|
||||
"L": true,
|
||||
"M": true,
|
||||
"N": false,
|
||||
"O": false,
|
||||
"P": true,
|
||||
"Q": false,
|
||||
"R": true,
|
||||
"S": true,
|
||||
"T": true,
|
||||
"U": true,
|
||||
"V": false,
|
||||
"W": true,
|
||||
"X": false,
|
||||
"Y": false,
|
||||
"Z": false
|
||||
},
|
||||
"Interfaces": {
|
||||
"Symbols": false,
|
||||
"Numbers": false,
|
||||
"A": false,
|
||||
"B": false,
|
||||
"C": false,
|
||||
"D": false,
|
||||
"E": false,
|
||||
"F": false,
|
||||
"G": false,
|
||||
"H": false,
|
||||
"I": false,
|
||||
"J": false,
|
||||
"K": false,
|
||||
"L": false,
|
||||
"M": false,
|
||||
"N": false,
|
||||
"O": false,
|
||||
"P": false,
|
||||
"Q": false,
|
||||
"R": false,
|
||||
"S": true,
|
||||
"T": false,
|
||||
"U": false,
|
||||
"V": false,
|
||||
"W": false,
|
||||
"X": false,
|
||||
"Y": false,
|
||||
"Z": false
|
||||
},
|
||||
"Classes": {
|
||||
"Symbols": false,
|
||||
"Numbers": false,
|
||||
"A": false,
|
||||
"B": false,
|
||||
"C": false,
|
||||
"D": false,
|
||||
"E": false,
|
||||
"F": false,
|
||||
"G": false,
|
||||
"H": false,
|
||||
"I": false,
|
||||
"J": false,
|
||||
"K": false,
|
||||
"L": false,
|
||||
"M": false,
|
||||
"N": false,
|
||||
"O": false,
|
||||
"P": false,
|
||||
"Q": false,
|
||||
"R": false,
|
||||
"S": true,
|
||||
"T": false,
|
||||
"U": false,
|
||||
"V": false,
|
||||
"W": false,
|
||||
"X": false,
|
||||
"Y": false,
|
||||
"Z": false
|
||||
}
|
||||
}
|
|
@ -0,0 +1,836 @@
|
|||
// This file is part of Natural Docs, which is Copyright (C) 2003-2008 Greg Valure
|
||||
// Natural Docs is licensed under the GPL
|
||||
|
||||
|
||||
//
|
||||
// Browser Styles
|
||||
// ____________________________________________________________________________
|
||||
|
||||
var agt=navigator.userAgent.toLowerCase();
|
||||
var browserType;
|
||||
var browserVer;
|
||||
|
||||
if (agt.indexOf("opera") != -1)
|
||||
{
|
||||
browserType = "Opera";
|
||||
|
||||
if (agt.indexOf("opera 7") != -1 || agt.indexOf("opera/7") != -1)
|
||||
{ browserVer = "Opera7"; }
|
||||
else if (agt.indexOf("opera 8") != -1 || agt.indexOf("opera/8") != -1)
|
||||
{ browserVer = "Opera8"; }
|
||||
else if (agt.indexOf("opera 9") != -1 || agt.indexOf("opera/9") != -1)
|
||||
{ browserVer = "Opera9"; }
|
||||
}
|
||||
|
||||
else if (agt.indexOf("applewebkit") != -1)
|
||||
{
|
||||
browserType = "Safari";
|
||||
|
||||
if (agt.indexOf("version/3") != -1)
|
||||
{ browserVer = "Safari3"; }
|
||||
else if (agt.indexOf("safari/4") != -1)
|
||||
{ browserVer = "Safari2"; }
|
||||
}
|
||||
|
||||
else if (agt.indexOf("khtml") != -1)
|
||||
{
|
||||
browserType = "Konqueror";
|
||||
}
|
||||
|
||||
else if (agt.indexOf("msie") != -1)
|
||||
{
|
||||
browserType = "IE";
|
||||
|
||||
if (agt.indexOf("msie 6") != -1)
|
||||
{ browserVer = "IE6"; }
|
||||
else if (agt.indexOf("msie 7") != -1)
|
||||
{ browserVer = "IE7"; }
|
||||
}
|
||||
|
||||
else if (agt.indexOf("gecko") != -1)
|
||||
{
|
||||
browserType = "Firefox";
|
||||
|
||||
if (agt.indexOf("rv:1.7") != -1)
|
||||
{ browserVer = "Firefox1"; }
|
||||
else if (agt.indexOf("rv:1.8)") != -1 || agt.indexOf("rv:1.8.0") != -1)
|
||||
{ browserVer = "Firefox15"; }
|
||||
else if (agt.indexOf("rv:1.8.1") != -1)
|
||||
{ browserVer = "Firefox2"; }
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
// Support Functions
|
||||
// ____________________________________________________________________________
|
||||
|
||||
|
||||
function GetXPosition(item)
|
||||
{
|
||||
var position = 0;
|
||||
|
||||
if (item.offsetWidth != null)
|
||||
{
|
||||
while (item != document.body && item != null)
|
||||
{
|
||||
position += item.offsetLeft;
|
||||
item = item.offsetParent;
|
||||
};
|
||||
};
|
||||
|
||||
return position;
|
||||
};
|
||||
|
||||
|
||||
function GetYPosition(item)
|
||||
{
|
||||
var position = 0;
|
||||
|
||||
if (item.offsetWidth != null)
|
||||
{
|
||||
while (item != document.body && item != null)
|
||||
{
|
||||
position += item.offsetTop;
|
||||
item = item.offsetParent;
|
||||
};
|
||||
};
|
||||
|
||||
return position;
|
||||
};
|
||||
|
||||
|
||||
function MoveToPosition(item, x, y)
|
||||
{
|
||||
// Opera 5 chokes on the px extension, so it can use the Microsoft one instead.
|
||||
|
||||
if (item.style.left != null)
|
||||
{
|
||||
item.style.left = x + "px";
|
||||
item.style.top = y + "px";
|
||||
}
|
||||
else if (item.style.pixelLeft != null)
|
||||
{
|
||||
item.style.pixelLeft = x;
|
||||
item.style.pixelTop = y;
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
//
|
||||
// Menu
|
||||
// ____________________________________________________________________________
|
||||
|
||||
|
||||
function ToggleMenu(id)
|
||||
{
|
||||
if (!window.document.getElementById)
|
||||
{ return; };
|
||||
|
||||
var display = window.document.getElementById(id).style.display;
|
||||
|
||||
if (display == "none")
|
||||
{ display = "block"; }
|
||||
else
|
||||
{ display = "none"; }
|
||||
|
||||
window.document.getElementById(id).style.display = display;
|
||||
}
|
||||
|
||||
function HideAllBut(ids, max)
|
||||
{
|
||||
if (document.getElementById)
|
||||
{
|
||||
ids.sort( function(a,b) { return a - b; } );
|
||||
var number = 1;
|
||||
|
||||
while (number < max)
|
||||
{
|
||||
if (ids.length > 0 && number == ids[0])
|
||||
{ ids.shift(); }
|
||||
else
|
||||
{
|
||||
document.getElementById("MGroupContent" + number).style.display = "none";
|
||||
};
|
||||
|
||||
number++;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
// Tooltips
|
||||
// ____________________________________________________________________________
|
||||
|
||||
|
||||
var tooltipTimer = 0;
|
||||
|
||||
function ShowTip(event, tooltipID, linkID)
|
||||
{
|
||||
if (tooltipTimer)
|
||||
{ clearTimeout(tooltipTimer); };
|
||||
|
||||
var docX = event.clientX + window.pageXOffset;
|
||||
var docY = event.clientY + window.pageYOffset;
|
||||
|
||||
var showCommand = "ReallyShowTip('" + tooltipID + "', '" + linkID + "', " + docX + ", " + docY + ")";
|
||||
|
||||
tooltipTimer = setTimeout(showCommand, 1000);
|
||||
}
|
||||
|
||||
function ReallyShowTip(tooltipID, linkID, docX, docY)
|
||||
{
|
||||
tooltipTimer = 0;
|
||||
|
||||
var tooltip;
|
||||
var link;
|
||||
|
||||
if (document.getElementById)
|
||||
{
|
||||
tooltip = document.getElementById(tooltipID);
|
||||
link = document.getElementById(linkID);
|
||||
}
|
||||
/* else if (document.all)
|
||||
{
|
||||
tooltip = eval("document.all['" + tooltipID + "']");
|
||||
link = eval("document.all['" + linkID + "']");
|
||||
}
|
||||
*/
|
||||
if (tooltip)
|
||||
{
|
||||
var left = GetXPosition(link);
|
||||
var top = GetYPosition(link);
|
||||
top += link.offsetHeight;
|
||||
|
||||
|
||||
// The fallback method is to use the mouse X and Y relative to the document. We use a separate if and test if its a number
|
||||
// in case some browser snuck through the above if statement but didn't support everything.
|
||||
|
||||
if (!isFinite(top) || top == 0)
|
||||
{
|
||||
left = docX;
|
||||
top = docY;
|
||||
}
|
||||
|
||||
// Some spacing to get it out from under the cursor.
|
||||
|
||||
top += 10;
|
||||
|
||||
// Make sure the tooltip doesnt get smushed by being too close to the edge, or in some browsers, go off the edge of the
|
||||
// page. We do it here because Konqueror does get offsetWidth right even if it doesnt get the positioning right.
|
||||
|
||||
if (tooltip.offsetWidth != null)
|
||||
{
|
||||
var width = tooltip.offsetWidth;
|
||||
var docWidth = document.body.clientWidth;
|
||||
|
||||
if (left + width > docWidth)
|
||||
{ left = docWidth - width - 1; }
|
||||
|
||||
// If there's a horizontal scroll bar we could go past zero because it's using the page width, not the window width.
|
||||
if (left < 0)
|
||||
{ left = 0; };
|
||||
}
|
||||
|
||||
MoveToPosition(tooltip, left, top);
|
||||
tooltip.style.visibility = "visible";
|
||||
}
|
||||
}
|
||||
|
||||
function HideTip(tooltipID)
|
||||
{
|
||||
if (tooltipTimer)
|
||||
{
|
||||
clearTimeout(tooltipTimer);
|
||||
tooltipTimer = 0;
|
||||
}
|
||||
|
||||
var tooltip;
|
||||
|
||||
if (document.getElementById)
|
||||
{ tooltip = document.getElementById(tooltipID); }
|
||||
else if (document.all)
|
||||
{ tooltip = eval("document.all['" + tooltipID + "']"); }
|
||||
|
||||
if (tooltip)
|
||||
{ tooltip.style.visibility = "hidden"; }
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
// Blockquote fix for IE
|
||||
// ____________________________________________________________________________
|
||||
|
||||
|
||||
function NDOnLoad()
|
||||
{
|
||||
if (browserVer == "IE6")
|
||||
{
|
||||
var scrollboxes = document.getElementsByTagName('blockquote');
|
||||
|
||||
if (scrollboxes.item(0))
|
||||
{
|
||||
NDDoResize();
|
||||
window.onresize=NDOnResize;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
var resizeTimer = 0;
|
||||
|
||||
function NDOnResize()
|
||||
{
|
||||
if (resizeTimer != 0)
|
||||
{ clearTimeout(resizeTimer); };
|
||||
|
||||
resizeTimer = setTimeout(NDDoResize, 250);
|
||||
};
|
||||
|
||||
|
||||
function NDDoResize()
|
||||
{
|
||||
var scrollboxes = document.getElementsByTagName('blockquote');
|
||||
|
||||
var i;
|
||||
var item;
|
||||
|
||||
i = 0;
|
||||
while (item = scrollboxes.item(i))
|
||||
{
|
||||
item.style.width = 100;
|
||||
i++;
|
||||
};
|
||||
|
||||
i = 0;
|
||||
while (item = scrollboxes.item(i))
|
||||
{
|
||||
item.style.width = item.parentNode.offsetWidth;
|
||||
i++;
|
||||
};
|
||||
|
||||
clearTimeout(resizeTimer);
|
||||
resizeTimer = 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* ________________________________________________________________________________________________________
|
||||
|
||||
Class: SearchPanel
|
||||
________________________________________________________________________________________________________
|
||||
|
||||
A class handling everything associated with the search panel.
|
||||
|
||||
Parameters:
|
||||
|
||||
name - The name of the global variable that will be storing this instance. Is needed to be able to set timeouts.
|
||||
mode - The mode the search is going to work in. Pass <NaturalDocs::Builder::Base->CommandLineOption()>, so the
|
||||
value will be something like "HTML" or "FramedHTML".
|
||||
|
||||
________________________________________________________________________________________________________
|
||||
*/
|
||||
|
||||
|
||||
function SearchPanel(name, mode, resultsPath)
|
||||
{
|
||||
if (!name || !mode || !resultsPath)
|
||||
{ alert("Incorrect parameters to SearchPanel."); };
|
||||
|
||||
|
||||
// Group: Variables
|
||||
// ________________________________________________________________________
|
||||
|
||||
/*
|
||||
var: name
|
||||
The name of the global variable that will be storing this instance of the class.
|
||||
*/
|
||||
this.name = name;
|
||||
|
||||
/*
|
||||
var: mode
|
||||
The mode the search is going to work in, such as "HTML" or "FramedHTML".
|
||||
*/
|
||||
this.mode = mode;
|
||||
|
||||
/*
|
||||
var: resultsPath
|
||||
The relative path from the current HTML page to the results page directory.
|
||||
*/
|
||||
this.resultsPath = resultsPath;
|
||||
|
||||
/*
|
||||
var: keyTimeout
|
||||
The timeout used between a keystroke and when a search is performed.
|
||||
*/
|
||||
this.keyTimeout = 0;
|
||||
|
||||
/*
|
||||
var: keyTimeoutLength
|
||||
The length of <keyTimeout> in thousandths of a second.
|
||||
*/
|
||||
this.keyTimeoutLength = 500;
|
||||
|
||||
/*
|
||||
var: lastSearchValue
|
||||
The last search string executed, or an empty string if none.
|
||||
*/
|
||||
this.lastSearchValue = "";
|
||||
|
||||
/*
|
||||
var: lastResultsPage
|
||||
The last results page. The value is only relevant if <lastSearchValue> is set.
|
||||
*/
|
||||
this.lastResultsPage = "";
|
||||
|
||||
/*
|
||||
var: deactivateTimeout
|
||||
|
||||
The timeout used between when a control is deactivated and when the entire panel is deactivated. Is necessary
|
||||
because a control may be deactivated in favor of another control in the same panel, in which case it should stay
|
||||
active.
|
||||
*/
|
||||
this.deactivateTimout = 0;
|
||||
|
||||
/*
|
||||
var: deactivateTimeoutLength
|
||||
The length of <deactivateTimeout> in thousandths of a second.
|
||||
*/
|
||||
this.deactivateTimeoutLength = 200;
|
||||
|
||||
|
||||
|
||||
|
||||
// Group: DOM Elements
|
||||
// ________________________________________________________________________
|
||||
|
||||
|
||||
// Function: DOMSearchField
|
||||
this.DOMSearchField = function()
|
||||
{ return document.getElementById("MSearchField"); };
|
||||
|
||||
// Function: DOMSearchType
|
||||
this.DOMSearchType = function()
|
||||
{ return document.getElementById("MSearchType"); };
|
||||
|
||||
// Function: DOMPopupSearchResults
|
||||
this.DOMPopupSearchResults = function()
|
||||
{ return document.getElementById("MSearchResults"); };
|
||||
|
||||
// Function: DOMPopupSearchResultsWindow
|
||||
this.DOMPopupSearchResultsWindow = function()
|
||||
{ return document.getElementById("MSearchResultsWindow"); };
|
||||
|
||||
// Function: DOMSearchPanel
|
||||
this.DOMSearchPanel = function()
|
||||
{ return document.getElementById("MSearchPanel"); };
|
||||
|
||||
|
||||
|
||||
|
||||
// Group: Event Handlers
|
||||
// ________________________________________________________________________
|
||||
|
||||
|
||||
/*
|
||||
Function: OnSearchFieldFocus
|
||||
Called when focus is added or removed from the search field.
|
||||
*/
|
||||
this.OnSearchFieldFocus = function(isActive)
|
||||
{
|
||||
this.Activate(isActive);
|
||||
};
|
||||
|
||||
|
||||
/*
|
||||
Function: OnSearchFieldChange
|
||||
Called when the content of the search field is changed.
|
||||
*/
|
||||
this.OnSearchFieldChange = function()
|
||||
{
|
||||
if (this.keyTimeout)
|
||||
{
|
||||
clearTimeout(this.keyTimeout);
|
||||
this.keyTimeout = 0;
|
||||
};
|
||||
|
||||
var searchValue = this.DOMSearchField().value.replace(/ +/g, "");
|
||||
|
||||
if (searchValue != this.lastSearchValue)
|
||||
{
|
||||
if (searchValue != "")
|
||||
{
|
||||
this.keyTimeout = setTimeout(this.name + ".Search()", this.keyTimeoutLength);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (this.mode == "HTML")
|
||||
{ this.DOMPopupSearchResultsWindow().style.display = "none"; };
|
||||
this.lastSearchValue = "";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
/*
|
||||
Function: OnSearchTypeFocus
|
||||
Called when focus is added or removed from the search type.
|
||||
*/
|
||||
this.OnSearchTypeFocus = function(isActive)
|
||||
{
|
||||
this.Activate(isActive);
|
||||
};
|
||||
|
||||
|
||||
/*
|
||||
Function: OnSearchTypeChange
|
||||
Called when the search type is changed.
|
||||
*/
|
||||
this.OnSearchTypeChange = function()
|
||||
{
|
||||
var searchValue = this.DOMSearchField().value.replace(/ +/g, "");
|
||||
|
||||
if (searchValue != "")
|
||||
{
|
||||
this.Search();
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
|
||||
// Group: Action Functions
|
||||
// ________________________________________________________________________
|
||||
|
||||
|
||||
/*
|
||||
Function: CloseResultsWindow
|
||||
Closes the results window.
|
||||
*/
|
||||
this.CloseResultsWindow = function()
|
||||
{
|
||||
this.DOMPopupSearchResultsWindow().style.display = "none";
|
||||
this.Activate(false, true);
|
||||
};
|
||||
|
||||
|
||||
/*
|
||||
Function: Search
|
||||
Performs a search.
|
||||
*/
|
||||
this.Search = function()
|
||||
{
|
||||
this.keyTimeout = 0;
|
||||
|
||||
var searchValue = this.DOMSearchField().value.replace(/^ +/, "");
|
||||
var searchTopic = this.DOMSearchType().value;
|
||||
|
||||
var pageExtension = searchValue.substr(0,1);
|
||||
|
||||
if (pageExtension.match(/^[a-z]/i))
|
||||
{ pageExtension = pageExtension.toUpperCase(); }
|
||||
else if (pageExtension.match(/^[0-9]/))
|
||||
{ pageExtension = 'Numbers'; }
|
||||
else
|
||||
{ pageExtension = "Symbols"; };
|
||||
|
||||
var resultsPage;
|
||||
var resultsPageWithSearch;
|
||||
var hasResultsPage;
|
||||
|
||||
// indexSectionsWithContent is defined in searchdata.js
|
||||
if (indexSectionsWithContent[searchTopic][pageExtension] == true)
|
||||
{
|
||||
resultsPage = this.resultsPath + '/' + searchTopic + pageExtension + '.html';
|
||||
resultsPageWithSearch = resultsPage+'?'+escape(searchValue);
|
||||
hasResultsPage = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
resultsPage = this.resultsPath + '/NoResults.html';
|
||||
resultsPageWithSearch = resultsPage;
|
||||
hasResultsPage = false;
|
||||
};
|
||||
|
||||
var resultsFrame;
|
||||
if (this.mode == "HTML")
|
||||
{ resultsFrame = window.frames.MSearchResults; }
|
||||
else if (this.mode == "FramedHTML")
|
||||
{ resultsFrame = window.top.frames['Content']; };
|
||||
|
||||
|
||||
if (resultsPage != this.lastResultsPage ||
|
||||
|
||||
// Bug in IE. If everything becomes hidden in a run, none of them will be able to be reshown in the next for some
|
||||
// reason. It counts the right number of results, and you can even read the display as "block" after setting it, but it
|
||||
// just doesn't work in IE 6 or IE 7. So if we're on the right page but the previous search had no results, reload the
|
||||
// page anyway to get around the bug.
|
||||
(browserType == "IE" && hasResultsPage &&
|
||||
(!resultsFrame.searchResults || resultsFrame.searchResults.lastMatchCount == 0)) )
|
||||
|
||||
{
|
||||
resultsFrame.location.href = resultsPageWithSearch;
|
||||
}
|
||||
|
||||
// So if the results page is right and there's no IE bug, reperform the search on the existing page. We have to check if there
|
||||
// are results because NoResults.html doesn't have any JavaScript, and it would be useless to do anything on that page even
|
||||
// if it did.
|
||||
else if (hasResultsPage)
|
||||
{
|
||||
// We need to check if this exists in case the frame is present but didn't finish loading.
|
||||
if (resultsFrame.searchResults)
|
||||
{ resultsFrame.searchResults.Search(searchValue); }
|
||||
|
||||
// Otherwise just reload instead of waiting.
|
||||
else
|
||||
{ resultsFrame.location.href = resultsPageWithSearch; };
|
||||
};
|
||||
|
||||
|
||||
var domPopupSearchResultsWindow = this.DOMPopupSearchResultsWindow();
|
||||
|
||||
if (this.mode == "HTML" && domPopupSearchResultsWindow.style.display != "block")
|
||||
{
|
||||
var domSearchType = this.DOMSearchType();
|
||||
|
||||
var left = GetXPosition(domSearchType);
|
||||
var top = GetYPosition(domSearchType) + domSearchType.offsetHeight;
|
||||
|
||||
MoveToPosition(domPopupSearchResultsWindow, left, top);
|
||||
domPopupSearchResultsWindow.style.display = 'block';
|
||||
};
|
||||
|
||||
|
||||
this.lastSearchValue = searchValue;
|
||||
this.lastResultsPage = resultsPage;
|
||||
};
|
||||
|
||||
|
||||
|
||||
// Group: Activation Functions
|
||||
// Functions that handle whether the entire panel is active or not.
|
||||
// ________________________________________________________________________
|
||||
|
||||
|
||||
/*
|
||||
Function: Activate
|
||||
|
||||
Activates or deactivates the search panel, resetting things to their default values if necessary. You can call this on every
|
||||
control's OnBlur() and it will handle not deactivating the entire panel when focus is just switching between them transparently.
|
||||
|
||||
Parameters:
|
||||
|
||||
isActive - Whether you're activating or deactivating the panel.
|
||||
ignoreDeactivateDelay - Set if you're positive the action will deactivate the panel and thus want to skip the delay.
|
||||
*/
|
||||
this.Activate = function(isActive, ignoreDeactivateDelay)
|
||||
{
|
||||
// We want to ignore isActive being false while the results window is open.
|
||||
if (isActive || (this.mode == "HTML" && this.DOMPopupSearchResultsWindow().style.display == "block"))
|
||||
{
|
||||
if (this.inactivateTimeout)
|
||||
{
|
||||
clearTimeout(this.inactivateTimeout);
|
||||
this.inactivateTimeout = 0;
|
||||
};
|
||||
|
||||
this.DOMSearchPanel().className = 'MSearchPanelActive';
|
||||
|
||||
var searchField = this.DOMSearchField();
|
||||
|
||||
if (searchField.value == 'Search')
|
||||
{ searchField.value = ""; }
|
||||
}
|
||||
else if (!ignoreDeactivateDelay)
|
||||
{
|
||||
this.inactivateTimeout = setTimeout(this.name + ".InactivateAfterTimeout()", this.inactivateTimeoutLength);
|
||||
}
|
||||
else
|
||||
{
|
||||
this.InactivateAfterTimeout();
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
/*
|
||||
Function: InactivateAfterTimeout
|
||||
|
||||
Called by <inactivateTimeout>, which is set by <Activate()>. Inactivation occurs on a timeout because a control may
|
||||
receive OnBlur() when focus is really transferring to another control in the search panel. In this case we don't want to
|
||||
actually deactivate the panel because not only would that cause a visible flicker but it could also reset the search value.
|
||||
So by doing it on a timeout instead, there's a short period where the second control's OnFocus() can cancel the deactivation.
|
||||
*/
|
||||
this.InactivateAfterTimeout = function()
|
||||
{
|
||||
this.inactivateTimeout = 0;
|
||||
|
||||
this.DOMSearchPanel().className = 'MSearchPanelInactive';
|
||||
this.DOMSearchField().value = "Search";
|
||||
|
||||
this.lastSearchValue = "";
|
||||
this.lastResultsPage = "";
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
/* ________________________________________________________________________________________________________
|
||||
|
||||
Class: SearchResults
|
||||
_________________________________________________________________________________________________________
|
||||
|
||||
The class that handles everything on the search results page.
|
||||
_________________________________________________________________________________________________________
|
||||
*/
|
||||
|
||||
|
||||
function SearchResults(name, mode)
|
||||
{
|
||||
/*
|
||||
var: mode
|
||||
The mode the search is going to work in, such as "HTML" or "FramedHTML".
|
||||
*/
|
||||
this.mode = mode;
|
||||
|
||||
/*
|
||||
var: lastMatchCount
|
||||
The number of matches from the last run of <Search()>.
|
||||
*/
|
||||
this.lastMatchCount = 0;
|
||||
|
||||
|
||||
/*
|
||||
Function: Toggle
|
||||
Toggles the visibility of the passed element ID.
|
||||
*/
|
||||
this.Toggle = function(id)
|
||||
{
|
||||
if (this.mode == "FramedHTML")
|
||||
{ return; };
|
||||
|
||||
var parentElement = document.getElementById(id);
|
||||
|
||||
var element = parentElement.firstChild;
|
||||
|
||||
while (element && element != parentElement)
|
||||
{
|
||||
if (element.nodeName == 'DIV' && element.className == 'ISubIndex')
|
||||
{
|
||||
if (element.style.display == 'block')
|
||||
{ element.style.display = "none"; }
|
||||
else
|
||||
{ element.style.display = 'block'; }
|
||||
};
|
||||
|
||||
if (element.nodeName == 'DIV' && element.hasChildNodes())
|
||||
{ element = element.firstChild; }
|
||||
else if (element.nextSibling)
|
||||
{ element = element.nextSibling; }
|
||||
else
|
||||
{
|
||||
do
|
||||
{
|
||||
element = element.parentNode;
|
||||
}
|
||||
while (element && element != parentElement && !element.nextSibling);
|
||||
|
||||
if (element && element != parentElement)
|
||||
{ element = element.nextSibling; };
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
/*
|
||||
Function: Search
|
||||
|
||||
Searches for the passed string. If there is no parameter, it takes it from the URL query.
|
||||
|
||||
Always returns true, since other documents may try to call it and that may or may not be possible.
|
||||
*/
|
||||
this.Search = function(search)
|
||||
{
|
||||
if (!search)
|
||||
{
|
||||
search = window.location.search;
|
||||
search = search.substring(1); // Remove the leading ?
|
||||
search = unescape(search);
|
||||
};
|
||||
|
||||
search = search.replace(/^ +/, "");
|
||||
search = search.replace(/ +$/, "");
|
||||
search = search.toLowerCase();
|
||||
|
||||
if (search.match(/[^a-z0-9]/)) // Just a little speedup so it doesn't have to go through the below unnecessarily.
|
||||
{
|
||||
search = search.replace(/\_/g, "_und");
|
||||
search = search.replace(/\ +/gi, "_spc");
|
||||
search = search.replace(/\~/g, "_til");
|
||||
search = search.replace(/\!/g, "_exc");
|
||||
search = search.replace(/\@/g, "_att");
|
||||
search = search.replace(/\#/g, "_num");
|
||||
search = search.replace(/\$/g, "_dol");
|
||||
search = search.replace(/\%/g, "_pct");
|
||||
search = search.replace(/\^/g, "_car");
|
||||
search = search.replace(/\&/g, "_amp");
|
||||
search = search.replace(/\*/g, "_ast");
|
||||
search = search.replace(/\(/g, "_lpa");
|
||||
search = search.replace(/\)/g, "_rpa");
|
||||
search = search.replace(/\-/g, "_min");
|
||||
search = search.replace(/\+/g, "_plu");
|
||||
search = search.replace(/\=/g, "_equ");
|
||||
search = search.replace(/\{/g, "_lbc");
|
||||
search = search.replace(/\}/g, "_rbc");
|
||||
search = search.replace(/\[/g, "_lbk");
|
||||
search = search.replace(/\]/g, "_rbk");
|
||||
search = search.replace(/\:/g, "_col");
|
||||
search = search.replace(/\;/g, "_sco");
|
||||
search = search.replace(/\"/g, "_quo");
|
||||
search = search.replace(/\'/g, "_apo");
|
||||
search = search.replace(/\</g, "_lan");
|
||||
search = search.replace(/\>/g, "_ran");
|
||||
search = search.replace(/\,/g, "_com");
|
||||
search = search.replace(/\./g, "_per");
|
||||
search = search.replace(/\?/g, "_que");
|
||||
search = search.replace(/\//g, "_sla");
|
||||
search = search.replace(/[^a-z0-9\_]i/gi, "_zzz");
|
||||
};
|
||||
|
||||
var resultRows = document.getElementsByTagName("div");
|
||||
var matches = 0;
|
||||
|
||||
var i = 0;
|
||||
while (i < resultRows.length)
|
||||
{
|
||||
var row = resultRows.item(i);
|
||||
|
||||
if (row.className == "SRResult")
|
||||
{
|
||||
var rowMatchName = row.id.toLowerCase();
|
||||
rowMatchName = rowMatchName.replace(/^sr\d*_/, '');
|
||||
|
||||
if (search.length <= rowMatchName.length && rowMatchName.substr(0, search.length) == search)
|
||||
{
|
||||
row.style.display = "block";
|
||||
matches++;
|
||||
}
|
||||
else
|
||||
{ row.style.display = "none"; };
|
||||
};
|
||||
|
||||
i++;
|
||||
};
|
||||
|
||||
document.getElementById("Searching").style.display="none";
|
||||
|
||||
if (matches == 0)
|
||||
{ document.getElementById("NoMatches").style.display="block"; }
|
||||
else
|
||||
{ document.getElementById("NoMatches").style.display="none"; }
|
||||
|
||||
this.lastMatchCount = matches;
|
||||
|
||||
return true;
|
||||
};
|
||||
};
|
||||
|
|
@ -0,0 +1,122 @@
|
|||
var indexSectionsWithContent = {
|
||||
"General": {
|
||||
"Symbols": false,
|
||||
"Numbers": false,
|
||||
"A": true,
|
||||
"B": false,
|
||||
"C": true,
|
||||
"D": true,
|
||||
"E": false,
|
||||
"F": true,
|
||||
"G": true,
|
||||
"H": true,
|
||||
"I": true,
|
||||
"J": false,
|
||||
"K": false,
|
||||
"L": true,
|
||||
"M": true,
|
||||
"N": false,
|
||||
"O": true,
|
||||
"P": false,
|
||||
"Q": false,
|
||||
"R": true,
|
||||
"S": true,
|
||||
"T": false,
|
||||
"U": false,
|
||||
"V": false,
|
||||
"W": false,
|
||||
"X": false,
|
||||
"Y": false,
|
||||
"Z": false
|
||||
},
|
||||
"Functions": {
|
||||
"Symbols": false,
|
||||
"Numbers": false,
|
||||
"A": true,
|
||||
"B": true,
|
||||
"C": true,
|
||||
"D": true,
|
||||
"E": true,
|
||||
"F": true,
|
||||
"G": true,
|
||||
"H": true,
|
||||
"I": true,
|
||||
"J": false,
|
||||
"K": false,
|
||||
"L": true,
|
||||
"M": true,
|
||||
"N": false,
|
||||
"O": false,
|
||||
"P": true,
|
||||
"Q": false,
|
||||
"R": true,
|
||||
"S": true,
|
||||
"T": true,
|
||||
"U": true,
|
||||
"V": false,
|
||||
"W": true,
|
||||
"X": false,
|
||||
"Y": false,
|
||||
"Z": false
|
||||
},
|
||||
"Interfaces": {
|
||||
"Symbols": false,
|
||||
"Numbers": false,
|
||||
"A": false,
|
||||
"B": false,
|
||||
"C": false,
|
||||
"D": false,
|
||||
"E": false,
|
||||
"F": false,
|
||||
"G": false,
|
||||
"H": false,
|
||||
"I": false,
|
||||
"J": false,
|
||||
"K": false,
|
||||
"L": false,
|
||||
"M": false,
|
||||
"N": false,
|
||||
"O": false,
|
||||
"P": false,
|
||||
"Q": false,
|
||||
"R": false,
|
||||
"S": true,
|
||||
"T": false,
|
||||
"U": false,
|
||||
"V": false,
|
||||
"W": false,
|
||||
"X": false,
|
||||
"Y": false,
|
||||
"Z": false
|
||||
},
|
||||
"Classes": {
|
||||
"Symbols": false,
|
||||
"Numbers": false,
|
||||
"A": false,
|
||||
"B": false,
|
||||
"C": false,
|
||||
"D": false,
|
||||
"E": false,
|
||||
"F": false,
|
||||
"G": false,
|
||||
"H": false,
|
||||
"I": false,
|
||||
"J": false,
|
||||
"K": false,
|
||||
"L": false,
|
||||
"M": false,
|
||||
"N": false,
|
||||
"O": false,
|
||||
"P": false,
|
||||
"Q": false,
|
||||
"R": false,
|
||||
"S": true,
|
||||
"T": false,
|
||||
"U": false,
|
||||
"V": false,
|
||||
"W": false,
|
||||
"X": false,
|
||||
"Y": false,
|
||||
"Z": false
|
||||
}
|
||||
}
|
|
@ -0,0 +1,125 @@
|
|||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 36
|
||||
/svn/!svn/ver/1620/trunk/docs/search
|
||||
END
|
||||
FunctionsD.html
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 52
|
||||
/svn/!svn/ver/1620/trunk/docs/search/FunctionsD.html
|
||||
END
|
||||
GeneralA.html
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 50
|
||||
/svn/!svn/ver/1620/trunk/docs/search/GeneralA.html
|
||||
END
|
||||
FunctionsG.html
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 52
|
||||
/svn/!svn/ver/1620/trunk/docs/search/FunctionsG.html
|
||||
END
|
||||
GeneralC.html
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 50
|
||||
/svn/!svn/ver/1620/trunk/docs/search/GeneralC.html
|
||||
END
|
||||
GeneralD.html
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 50
|
||||
/svn/!svn/ver/1620/trunk/docs/search/GeneralD.html
|
||||
END
|
||||
GeneralF.html
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 50
|
||||
/svn/!svn/ver/1620/trunk/docs/search/GeneralF.html
|
||||
END
|
||||
GeneralG.html
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 50
|
||||
/svn/!svn/ver/1620/trunk/docs/search/GeneralG.html
|
||||
END
|
||||
FilesS.html
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 48
|
||||
/svn/!svn/ver/1607/trunk/docs/search/FilesS.html
|
||||
END
|
||||
FunctionsM.html
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 52
|
||||
/svn/!svn/ver/1619/trunk/docs/search/FunctionsM.html
|
||||
END
|
||||
FunctionsO.html
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 51
|
||||
/svn/!svn/ver/820/trunk/docs/search/FunctionsO.html
|
||||
END
|
||||
GeneralL.html
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 50
|
||||
/svn/!svn/ver/1619/trunk/docs/search/GeneralL.html
|
||||
END
|
||||
FunctionsR.html
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 52
|
||||
/svn/!svn/ver/1620/trunk/docs/search/FunctionsR.html
|
||||
END
|
||||
GeneralM.html
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 50
|
||||
/svn/!svn/ver/1619/trunk/docs/search/GeneralM.html
|
||||
END
|
||||
FunctionsS.html
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 52
|
||||
/svn/!svn/ver/1620/trunk/docs/search/FunctionsS.html
|
||||
END
|
||||
GeneralO.html
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 49
|
||||
/svn/!svn/ver/820/trunk/docs/search/GeneralO.html
|
||||
END
|
||||
NoResults.html
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 50
|
||||
/svn/!svn/ver/791/trunk/docs/search/NoResults.html
|
||||
END
|
||||
GeneralR.html
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 50
|
||||
/svn/!svn/ver/1620/trunk/docs/search/GeneralR.html
|
||||
END
|
||||
GeneralS.html
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 50
|
||||
/svn/!svn/ver/1620/trunk/docs/search/GeneralS.html
|
||||
END
|
||||
FunctionsA.html
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 52
|
||||
/svn/!svn/ver/1620/trunk/docs/search/FunctionsA.html
|
||||
END
|
||||
FunctionsC.html
|
||||
K 25
|
||||
svn:wc:ra_dav:version-url
|
||||
V 52
|
||||
/svn/!svn/ver/1620/trunk/docs/search/FunctionsC.html
|
||||
END
|
|
@ -0,0 +1,708 @@
|
|||
10
|
||||
|
||||
dir
|
||||
2080
|
||||
http://svg-edit.googlecode.com/svn/trunk/docs/search
|
||||
http://svg-edit.googlecode.com/svn
|
||||
|
||||
|
||||
|
||||
2010-06-30T18:27:36.402448Z
|
||||
1620
|
||||
adeveria
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
eee81c28-f429-11dd-99c0-75d572ba1ddd
|
||||
|
||||
FunctionsD.html
|
||||
file
|
||||
|
||||
|
||||
|
||||
|
||||
2012-03-23T10:42:00.000000Z
|
||||
96a3b3f9d03b1e9483c2cf7298ff422a
|
||||
2010-06-30T18:27:36.402448Z
|
||||
1620
|
||||
adeveria
|
||||
has-props
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
1972
|
||||
|
||||
GeneralA.html
|
||||
file
|
||||
|
||||
|
||||
|
||||
|
||||
2012-03-23T10:42:00.000000Z
|
||||
2a22cbc6cd60a4c32d57e96432a29015
|
||||
2010-06-30T18:27:36.402448Z
|
||||
1620
|
||||
adeveria
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
3911
|
||||
|
||||
FunctionsG.html
|
||||
file
|
||||
|
||||
|
||||
|
||||
|
||||
2012-03-23T10:42:00.000000Z
|
||||
f08dd46f073c1c86e10d55e3a0f63d02
|
||||
2010-06-30T18:27:36.402448Z
|
||||
1620
|
||||
adeveria
|
||||
has-props
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
11251
|
||||
|
||||
GeneralC.html
|
||||
file
|
||||
|
||||
|
||||
|
||||
|
||||
2012-03-23T10:42:00.000000Z
|
||||
2d80d7688cf59e3a611797fc8c61e2d8
|
||||
2010-06-30T18:27:36.402448Z
|
||||
1620
|
||||
adeveria
|
||||
has-props
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
4296
|
||||
|
||||
GeneralD.html
|
||||
file
|
||||
|
||||
|
||||
|
||||
|
||||
2012-03-23T10:42:00.000000Z
|
||||
1e9e5113f43416280f7069d7f5a90ead
|
||||
2010-06-30T18:27:36.402448Z
|
||||
1620
|
||||
adeveria
|
||||
has-props
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
2217
|
||||
|
||||
GeneralF.html
|
||||
file
|
||||
|
||||
|
||||
|
||||
|
||||
2012-03-23T10:42:00.000000Z
|
||||
ca1d5c1ad22f05f2be17834d8366065b
|
||||
2010-06-30T18:27:36.402448Z
|
||||
1620
|
||||
adeveria
|
||||
has-props
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
2582
|
||||
|
||||
GeneralG.html
|
||||
file
|
||||
|
||||
|
||||
|
||||
|
||||
2012-03-23T10:42:00.000000Z
|
||||
f08dd46f073c1c86e10d55e3a0f63d02
|
||||
2010-06-30T18:27:36.402448Z
|
||||
1620
|
||||
adeveria
|
||||
has-props
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
11251
|
||||
|
||||
FilesS.html
|
||||
file
|
||||
|
||||
|
||||
|
||||
|
||||
2012-03-23T10:42:00.000000Z
|
||||
14fdc973925cc4fadd6dd9bdd1d57f44
|
||||
2010-06-18T20:35:47.590209Z
|
||||
1607
|
||||
adeveria
|
||||
has-props
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
4328
|
||||
|
||||
FunctionsM.html
|
||||
file
|
||||
|
||||
|
||||
|
||||
|
||||
2012-03-23T10:42:00.000000Z
|
||||
47c3445c7304d556d0ae30b4debb5f17
|
||||
2010-06-29T20:43:44.997466Z
|
||||
1619
|
||||
adeveria
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
2741
|
||||
|
||||
FunctionsO.html
|
||||
file
|
||||
|
||||
|
||||
|
||||
|
||||
2012-03-23T10:42:00.000000Z
|
||||
0870505c26889be0fdca5e9f484324d5
|
||||
2009-10-14T02:50:07.046639Z
|
||||
820
|
||||
codedread
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
1399
|
||||
|
||||
GeneralL.html
|
||||
file
|
||||
|
||||
|
||||
|
||||
|
||||
2012-03-23T10:42:00.000000Z
|
||||
6935dd2f610df26893b81cc216d20823
|
||||
2010-06-29T20:43:44.997466Z
|
||||
1619
|
||||
adeveria
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
1704
|
||||
|
||||
FunctionsR.html
|
||||
file
|
||||
|
||||
|
||||
|
||||
|
||||
2012-03-23T10:42:00.000000Z
|
||||
e436dcd5ed72a036dc63345d72b39090
|
||||
2010-06-30T18:27:36.402448Z
|
||||
1620
|
||||
adeveria
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
4825
|
||||
|
||||
GeneralM.html
|
||||
file
|
||||
|
||||
|
||||
|
||||
|
||||
2012-03-23T10:42:00.000000Z
|
||||
47c3445c7304d556d0ae30b4debb5f17
|
||||
2010-06-29T20:43:44.997466Z
|
||||
1619
|
||||
adeveria
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
2741
|
||||
|
||||
FunctionsS.html
|
||||
file
|
||||
|
||||
|
||||
|
||||
|
||||
2012-03-23T10:42:00.000000Z
|
||||
efc4f65c00aee8ef9a53d532f181f847
|
||||
2010-06-30T18:27:36.402448Z
|
||||
1620
|
||||
adeveria
|
||||
has-props
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
11152
|
||||
|
||||
GeneralO.html
|
||||
file
|
||||
|
||||
|
||||
|
||||
|
||||
2012-03-23T10:42:00.000000Z
|
||||
0870505c26889be0fdca5e9f484324d5
|
||||
2009-10-14T02:50:07.046639Z
|
||||
820
|
||||
codedread
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
1399
|
||||
|
||||
NoResults.html
|
||||
file
|
||||
|
||||
|
||||
|
||||
|
||||
2012-03-23T10:42:00.000000Z
|
||||
a17ce9c877c33f155c3c31a5155f15bd
|
||||
2009-10-09T19:16:58.262697Z
|
||||
791
|
||||
codedread
|
||||
has-props
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
857
|
||||
|
||||
GeneralR.html
|
||||
file
|
||||
|
||||
|
||||
|
||||
|
||||
2012-03-23T10:42:00.000000Z
|
||||
e436dcd5ed72a036dc63345d72b39090
|
||||
2010-06-30T18:27:36.402448Z
|
||||
1620
|
||||
adeveria
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
4825
|
||||
|
||||
GeneralS.html
|
||||
file
|
||||
|
||||
|
||||
|
||||
|
||||
2012-03-23T10:42:00.000000Z
|
||||
acbf07fdab02ffc5e730edda9e4468fb
|
||||
2010-06-30T18:27:36.402448Z
|
||||
1620
|
||||
adeveria
|
||||
has-props
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
12074
|
||||
|
||||
FunctionsA.html
|
||||
file
|
||||
|
||||
|
||||
|
||||
|
||||
2012-03-23T10:42:00.000000Z
|
||||
9725a0addc914ae609d4d523bd5f3b8f
|
||||
2010-06-30T18:27:36.402448Z
|
||||
1620
|
||||
adeveria
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
3648
|
||||
|
||||
FunctionsC.html
|
||||
file
|
||||
|
||||
|
||||
|
||||
|
||||
2012-03-23T10:42:00.000000Z
|
||||
2d80d7688cf59e3a611797fc8c61e2d8
|
||||
2010-06-30T18:27:36.402448Z
|
||||
1620
|
||||
adeveria
|
||||
has-props
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
4296
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
K 13
|
||||
svn:mime-type
|
||||
V 9
|
||||
text/html
|
||||
END
|
|
@ -0,0 +1,5 @@
|
|||
K 13
|
||||
svn:mime-type
|
||||
V 9
|
||||
text/html
|
||||
END
|
|
@ -0,0 +1,5 @@
|
|||
K 13
|
||||
svn:mime-type
|
||||
V 9
|
||||
text/html
|
||||
END
|
|
@ -0,0 +1,5 @@
|
|||
K 13
|
||||
svn:mime-type
|
||||
V 9
|
||||
text/html
|
||||
END
|
|
@ -0,0 +1,5 @@
|
|||
K 13
|
||||
svn:mime-type
|
||||
V 9
|
||||
text/html
|
||||
END
|
|
@ -0,0 +1,5 @@
|
|||
K 13
|
||||
svn:mime-type
|
||||
V 9
|
||||
text/html
|
||||
END
|
|
@ -0,0 +1,5 @@
|
|||
K 13
|
||||
svn:mime-type
|
||||
V 9
|
||||
text/html
|
||||
END
|
|
@ -0,0 +1,5 @@
|
|||
K 13
|
||||
svn:mime-type
|
||||
V 9
|
||||
text/html
|
||||
END
|
|
@ -0,0 +1,5 @@
|
|||
K 13
|
||||
svn:mime-type
|
||||
V 9
|
||||
text/html
|
||||
END
|
|
@ -0,0 +1,5 @@
|
|||
K 13
|
||||
svn:mime-type
|
||||
V 9
|
||||
text/html
|
||||
END
|
|
@ -0,0 +1,5 @@
|
|||
K 13
|
||||
svn:mime-type
|
||||
V 9
|
||||
text/html
|
||||
END
|
|
@ -0,0 +1,20 @@
|
|||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
|
||||
|
||||
<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
|
||||
if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
|
||||
|
||||
<!-- Generated by Natural Docs, version 1.4 -->
|
||||
<!-- http://www.naturaldocs.org -->
|
||||
|
||||
<!-- saved from url=(0026)http://www.naturaldocs.org -->
|
||||
|
||||
|
||||
|
||||
|
||||
<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_svgcanvas_minlatest_spccopy_perjs><div class=IEntry><a href="javascript:searchResults.Toggle('SR_svgcanvas_minlatest_spccopy_perjs')" class=ISymbol>svgcanvas-latest copy.js</a><div class=ISubIndex><a href="../files/editor/svgcanvas-latest_copy-js.html#svgcanvas-latest_copy.js" target=_parent class=IFile>editor/<wbr>svgcanvas-latest copy.js</a><a href="../files/editor_old/svgcanvas-latest_copy-js.html#svgcanvas-latest_copy.js" target=_parent class=IFile>editor_old/<wbr>svgcanvas-latest copy.js</a></div></div></div><div class=SRResult id=SR_svgcanvas_minmine_perjs><div class=IEntry><a href="javascript:searchResults.Toggle('SR_svgcanvas_minmine_perjs')" class=ISymbol>svgcanvas-mine.js</a><div class=ISubIndex><a href="../files/editor/svgcanvas-mine-js.html#svgcanvas-mine.js" target=_parent class=IFile>editor/<wbr>svgcanvas-mine.js</a><a href="../files/editor_old/svgcanvas-mine-js.html#svgcanvas-mine.js" target=_parent class=IFile>editor_old/<wbr>svgcanvas-mine.js</a></div></div></div><div class=SRResult id=SR_svgcanvas_mintextanchor_minexperiment_perjs><div class=IEntry><a href="javascript:searchResults.Toggle('SR_svgcanvas_mintextanchor_minexperiment_perjs')" class=ISymbol>svgcanvas-textanchor-experiment.js</a><div class=ISubIndex><a href="../files/editor/svgcanvas-textanchor-experiment-js.html#svgcanvas-textanchor-experiment.js" target=_parent class=IFile>editor/<wbr>svgcanvas-textanchor-experiment.js</a><a href="../files/editor_old/svgcanvas-textanchor-experiment-js.html#svgcanvas-textanchor-experiment.js" target=_parent class=IFile>editor_old/<wbr>svgcanvas-textanchor-experiment.js</a></div></div></div><div class=SRResult id=SR_svgcanvas_perjs><div class=IEntry><a href="javascript:searchResults.Toggle('SR_svgcanvas_perjs')" class=ISymbol>svgcanvas.js</a><div class=ISubIndex><a href="../files/editor/svgcanvas-js.html#svgcanvas.js" target=_parent class=IFile>editor/<wbr>svgcanvas.js</a><a href="../files/editor_old/svgcanvas-js.html#svgcanvas.js" target=_parent class=IFile>editor_old/<wbr>svgcanvas.js</a></div></div></div><div class=SRResult id=SR_svgcanvas_undsubpaths_perjs><div class=IEntry><a href="javascript:searchResults.Toggle('SR_svgcanvas_undsubpaths_perjs')" class=ISymbol>svgcanvas_subpaths.js</a><div class=ISubIndex><a href="../files/editor/svgcanvas_subpaths-js.html#svgcanvas_subpaths.js" target=_parent class=IFile>editor/<wbr>svgcanvas_subpaths.js</a><a href="../files/editor_old/svgcanvas_subpaths-js.html#svgcanvas_subpaths.js" target=_parent class=IFile>editor_old/<wbr>svgcanvas_subpaths.js</a></div></div></div><div class=SRResult id=SR_svgcanvas_undtemp_perjs><div class=IEntry><a href="javascript:searchResults.Toggle('SR_svgcanvas_undtemp_perjs')" class=ISymbol>svgcanvas_temp.js</a><div class=ISubIndex><a href="../files/editor/svgcanvas_temp-js.html#svgcanvas_temp.js" target=_parent class=IFile>editor/<wbr>svgcanvas_temp.js</a><a href="../files/editor_old/svgcanvas_temp-js.html#svgcanvas_temp.js" target=_parent class=IFile>editor_old/<wbr>svgcanvas_temp.js</a></div></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
|
||||
document.getElementById("Loading").style.display="none";
|
||||
document.getElementById("NoMatches").style.display="none";
|
||||
var searchResults = new SearchResults("searchResults", "HTML");
|
||||
searchResults.Search();
|
||||
--></script></div><script language=JavaScript><!--
|
||||
if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
|
|
@ -0,0 +1,20 @@
|
|||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
|
||||
|
||||
<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
|
||||
if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
|
||||
|
||||
<!-- Generated by Natural Docs, version 1.4 -->
|
||||
<!-- http://www.naturaldocs.org -->
|
||||
|
||||
<!-- saved from url=(0026)http://www.naturaldocs.org -->
|
||||
|
||||
|
||||
|
||||
|
||||
<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_addCommandToHistory><div class=IEntry><a href="../files/svgcanvas-js.html#SvgCanvas.addCommandToHistory" target=_parent class=ISymbol>addCommandToHistory</a>, <span class=IParent>SvgCanvas</span></div></div><div class=SRResult id=SR_addExtension><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.addExtension" target=_parent class=ISymbol>addExtension</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_addSubCommand><div class=IEntry><a href="../files/svgcanvas-js.html#SvgCanvas.BatchCommand.addSubCommand" target=_parent class=ISymbol>addSubCommand</a>, <span class=IParent>SvgCanvas.<wbr>BatchCommand</span></div></div><div class=SRResult id=SR_addSvgElementFromJson><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.addSvgElementFromJson" target=_parent class=ISymbol>addSvgElementFromJson</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_addToSelection><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.addToSelection" target=_parent class=ISymbol>addToSelection</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_alignSelectedElements><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.alignSelectedElements" target=_parent class=ISymbol>alignSelectedElements</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_apply><div class=IEntry><a href="javascript:searchResults.Toggle('SR_apply')" class=ISymbol>apply</a><div class=ISubIndex><a href="../files/svgcanvas-js.html#SvgCanvas.BatchCommand.apply" target=_parent class=IParent>SvgCanvas.<wbr>BatchCommand</a><a href="../files/svgcanvas-js.html#SvgCanvas.ChangeElementCommand.apply" target=_parent class=IParent>SvgCanvas.<wbr>ChangeElementCommand</a><a href="../files/svgcanvas-js.html#SvgCanvas.InsertElementCommand.apply" target=_parent class=IParent>SvgCanvas.<wbr>InsertElementCommand</a><a href="../files/svgcanvas-js.html#SvgCanvas.RemoveElementCommand.apply" target=_parent class=IParent>SvgCanvas.<wbr>RemoveElementCommand</a></div></div></div><div class=SRResult id=SR_assignAttributes><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.assignAttributes" target=_parent class=ISymbol>assignAttributes</a>, <span class=IParent>SelectorManager</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
|
||||
document.getElementById("Loading").style.display="none";
|
||||
document.getElementById("NoMatches").style.display="none";
|
||||
var searchResults = new SearchResults("searchResults", "HTML");
|
||||
searchResults.Search();
|
||||
--></script></div><script language=JavaScript><!--
|
||||
if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
|
|
@ -0,0 +1,20 @@
|
|||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
|
||||
|
||||
<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
|
||||
if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
|
||||
|
||||
<!-- Generated by Natural Docs, version 1.4 -->
|
||||
<!-- http://www.naturaldocs.org -->
|
||||
|
||||
<!-- saved from url=(0026)http://www.naturaldocs.org -->
|
||||
|
||||
|
||||
|
||||
|
||||
<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_ChangeElementCommand><div class=IEntry><a href="../files/svgcanvas-js.html#SvgCanvas.ChangeElementCommand" target=_parent class=ISymbol>ChangeElementCommand</a>, <span class=IParent>SvgCanvas</span></div></div><div class=SRResult id=SR_changeSelectedAttribute><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.changeSelectedAttribute" target=_parent class=ISymbol>changeSelectedAttribute</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_changeSelectedAttributeNoUndo><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.changeSelectedAttributeNoUndo" target=_parent class=ISymbol>changeSelectedAttributeNoUndo</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_cleanupElement><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.cleanupElement" target=_parent class=ISymbol>cleanupElement</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_clear><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.clear" target=_parent class=ISymbol>clear</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_clearSelection><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.clearSelection" target=_parent class=ISymbol>clearSelection</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_cloneSelectedElements><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.cloneSelectedElements" target=_parent class=ISymbol>cloneSelectedElements</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_convertToNum><div class=IEntry><a href="../files/svgcanvas-js.html#SvgCanvas.convertToNum" target=_parent class=ISymbol>convertToNum</a>, <span class=IParent>SvgCanvas</span></div></div><div class=SRResult id=SR_convertToPath><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.convertToPath" target=_parent class=ISymbol>convertToPath</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_convertToXMLReferences><div class=IEntry><a href="../files/svgcanvas-js.html#SvgCanvas.Utils.convertToXMLReferences" target=_parent class=ISymbol>convertToXMLReferences</a>, <span class=IParent>SvgCanvas.<wbr>Utils</span></div></div><div class=SRResult id=SR_copyElem><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.copyElem" target=_parent class=ISymbol>copyElem</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_createLayer><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.createLayer" target=_parent class=ISymbol>createLayer</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_cycleElement><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.cycleElement" target=_parent class=ISymbol>cycleElement</a>, <span class=IParent>SelectorManager</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
|
||||
document.getElementById("Loading").style.display="none";
|
||||
document.getElementById("NoMatches").style.display="none";
|
||||
var searchResults = new SearchResults("searchResults", "HTML");
|
||||
searchResults.Search();
|
||||
--></script></div><script language=JavaScript><!--
|
||||
if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
|
|
@ -0,0 +1,20 @@
|
|||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
|
||||
|
||||
<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
|
||||
if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
|
||||
|
||||
<!-- Generated by Natural Docs, version 1.4 -->
|
||||
<!-- http://www.naturaldocs.org -->
|
||||
|
||||
<!-- saved from url=(0026)http://www.naturaldocs.org -->
|
||||
|
||||
|
||||
|
||||
|
||||
<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_decode64><div class=IEntry><a href="../files/svgcanvas-js.html#SvgCanvas.Utils.decode64" target=_parent class=ISymbol>decode64</a>, <span class=IParent>SvgCanvas.<wbr>Utils</span></div></div><div class=SRResult id=SR_deleteCurrentLayer><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.deleteCurrentLayer" target=_parent class=ISymbol>deleteCurrentLayer</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_deleteSelectedElements><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.deleteSelectedElements" target=_parent class=ISymbol>deleteSelectedElements</a>, <span class=IParent>SelectorManager</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
|
||||
document.getElementById("Loading").style.display="none";
|
||||
document.getElementById("NoMatches").style.display="none";
|
||||
var searchResults = new SearchResults("searchResults", "HTML");
|
||||
searchResults.Search();
|
||||
--></script></div><script language=JavaScript><!--
|
||||
if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
|
|
@ -0,0 +1,20 @@
|
|||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
|
||||
|
||||
<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
|
||||
if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
|
||||
|
||||
<!-- Generated by Natural Docs, version 1.4 -->
|
||||
<!-- http://www.naturaldocs.org -->
|
||||
|
||||
<!-- saved from url=(0026)http://www.naturaldocs.org -->
|
||||
|
||||
|
||||
|
||||
|
||||
<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_matrixMultiply><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.matrixMultiply" target=_parent class=ISymbol>matrixMultiply</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_MoveElementCommand><div class=IEntry><a href="../files/svgcanvas-js.html#SvgCanvas.MoveElementCommand" target=_parent class=ISymbol>MoveElementCommand</a>, <span class=IParent>SvgCanvas</span></div></div><div class=SRResult id=SR_moveSelectedElements><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.moveSelectedElements" target=_parent class=ISymbol>moveSelectedElements</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_moveSelectedToLayer><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.moveSelectedToLayer" target=_parent class=ISymbol>moveSelectedToLayer</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_moveToBottomSelectedElement><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.moveToBottomSelectedElement" target=_parent class=ISymbol>moveToBottomSelectedElement</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_moveToTopSelectedElement><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.moveToTopSelectedElement" target=_parent class=ISymbol>moveToTopSelectedElement</a>, <span class=IParent>SelectorManager</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
|
||||
document.getElementById("Loading").style.display="none";
|
||||
document.getElementById("NoMatches").style.display="none";
|
||||
var searchResults = new SearchResults("searchResults", "HTML");
|
||||
searchResults.Search();
|
||||
--></script></div><script language=JavaScript><!--
|
||||
if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
|
|
@ -0,0 +1,20 @@
|
|||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
|
||||
|
||||
<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
|
||||
if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
|
||||
|
||||
<!-- Generated by Natural Docs, version 1.4 -->
|
||||
<!-- http://www.naturaldocs.org -->
|
||||
|
||||
<!-- saved from url=(0026)http://www.naturaldocs.org -->
|
||||
|
||||
|
||||
|
||||
|
||||
<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_open><div class=IEntry><a href="../files/svgcanvas-js.html#open" target=_parent class=ISymbol>open</a></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
|
||||
document.getElementById("Loading").style.display="none";
|
||||
document.getElementById("NoMatches").style.display="none";
|
||||
var searchResults = new SearchResults("searchResults", "HTML");
|
||||
searchResults.Search();
|
||||
--></script></div><script language=JavaScript><!--
|
||||
if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
|
|
@ -0,0 +1,20 @@
|
|||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
|
||||
|
||||
<html><head><link rel="stylesheet" type="text/css" href="../styles/main.css"><script language=JavaScript src="../javascript/main.js"></script></head><body class="PopupSearchResultsPage" onLoad="NDOnLoad()"><script language=JavaScript><!--
|
||||
if (browserType) {document.write("<div class=" + browserType + ">");if (browserVer) {document.write("<div class=" + browserVer + ">"); }}// --></script>
|
||||
|
||||
<!-- Generated by Natural Docs, version 1.4 -->
|
||||
<!-- http://www.naturaldocs.org -->
|
||||
|
||||
<!-- saved from url=(0026)http://www.naturaldocs.org -->
|
||||
|
||||
|
||||
|
||||
|
||||
<div id=Index><div class=SRStatus id=Loading>Loading...</div><table border=0 cellspacing=0 cellpadding=0><div class=SRResult id=SR_rasterExport><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.rasterExport" target=_parent class=ISymbol>rasterExport</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_recalculateAllSelectedDimensions><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.recalculateAllSelectedDimensions" target=_parent class=ISymbol>recalculateAllSelectedDimensions</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_recalculateDimensions><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.recalculateDimensions" target=_parent class=ISymbol>recalculateDimensions</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_rectsIntersect><div class=IEntry><a href="../files/svgcanvas-js.html#SvgCanvas.rectsIntersect" target=_parent class=ISymbol>rectsIntersect</a>, <span class=IParent>SvgCanvas</span></div></div><div class=SRResult id=SR_redo><div class=IEntry><a href="../files/svgcanvas-js.html#SvgCanvas.undoMgr.redo" target=_parent class=ISymbol>redo</a>, <span class=IParent>SvgCanvas.<wbr>undoMgr</span></div></div><div class=SRResult id=SR_releaseSelector><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.SelectorManager.releaseSelector" target=_parent class=ISymbol>releaseSelector</a>, <span class=IParent>SelectorManager.<wbr>SelectorManager</span></div></div><div class=SRResult id=SR_remapElement><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.remapElement" target=_parent class=ISymbol>remapElement</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_RemoveElementCommand><div class=IEntry><a href="../files/svgcanvas-js.html#SvgCanvas.RemoveElementCommand" target=_parent class=ISymbol>RemoveElementCommand</a>, <span class=IParent>SvgCanvas</span></div></div><div class=SRResult id=SR_removeFromSelection><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.removeFromSelection" target=_parent class=ISymbol>removeFromSelection</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_removeUnusedDefElems><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.removeUnusedDefElems" target=_parent class=ISymbol>removeUnusedDefElems</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_renameCurrentLayer><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.renameCurrentLayer" target=_parent class=ISymbol>renameCurrentLayer</a>, <span class=IParent>SelectorManager</span></div></div><div class=SRResult id=SR_requestSelector><div class=IEntry><a href="../files/svgcanvas-js.html#SelectorManager.SelectorManager.requestSelector" target=_parent class=ISymbol>requestSelector</a>, <span class=IParent>SelectorManager.<wbr>SelectorManager</span></div></div><div class=SRResult id=SR_reset><div class=IEntry><a href="../files/svgcanvas-js.html#Selector.Selector.reset" target=_parent class=ISymbol>reset</a>, <span class=IParent>Selector.<wbr>Selector</span></div></div><div class=SRResult id=SR_resetUndoStack><div class=IEntry><a href="../files/svgcanvas-js.html#SvgCanvas.resetUndoStack" target=_parent class=ISymbol>resetUndoStack</a>, <span class=IParent>SvgCanvas</span></div></div><div class=SRResult id=SR_resize><div class=IEntry><a href="../files/svgcanvas-js.html#Selector.Selector.resize" target=_parent class=ISymbol>resize</a>, <span class=IParent>Selector.<wbr>Selector</span></div></div></table><div class=SRStatus id=Searching>Searching...</div><div class=SRStatus id=NoMatches>No Matches</div><script type="text/javascript"><!--
|
||||
document.getElementById("Loading").style.display="none";
|
||||
document.getElementById("NoMatches").style.display="none";
|
||||
var searchResults = new SearchResults("searchResults", "HTML");
|
||||
searchResults.Search();
|
||||
--></script></div><script language=JavaScript><!--
|
||||
if (browserType) {if (browserVer) {document.write("</div>"); }document.write("</div>");}// --></script></body></html>
|