changeset 396:42af39088fd4

renamed SVG-editor to SvgEditor
author Reimar Bauer <rb.proj AT googlemail DOT com>
date Mon, 24 Aug 2009 22:56:05 +0200
parents 7c95f95f03fd
children 0fc829b55df6
files data/plugin/action/SVG-editor.py data/plugin/action/SvgEditor.py
diffstat 2 files changed, 323 insertions(+), 321 deletions(-) [+]
line wrap: on
line diff
--- a/data/plugin/action/SVG-editor.py	Mon Aug 24 18:08:26 2009 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,321 +0,0 @@
-# -*- coding: iso-8859-1 -*-
-"""
-    MoinMoin - SVG-editor
-
-    This action is used to call svg-edit, (http://code.google.com/p/svg-edit/) 
-    it is just a thin wrapper around it.
-    svg-edit pre alpha is called (this is currently a mockup for an implementation in moin-2.0)
-
-    @copyright: 2009 by MoinMoin:ReimarBauer
-    @license: GNU GPL, see COPYING for details.
-"""
-from MoinMoin import config, wikiutil
-from MoinMoin.action import AttachFile
-
-
-def execute(pagename, request):
-    target = request.values.get('target', 'example.svg')
-    filecontent = ''
-    if AttachFile.exists(request, pagename, target):
-        fpath = AttachFile.getFilename(request, pagename, target).encode(config.charset)
-        filecontent = file(fpath, 'r').readlines()
-        filecontent = ''.join(filecontent[1:])
-        filecontent = filecontent.encode('base_64')
-
-    do = request.values.get('do', '')
-    if do == 'save':
-        filecontent = request.values.get('svg_data', '')
-        target = request.values.get('target', 'example.svg')
-        if filecontent:
-            # get directory, and possibly create it
-            attach_dir = AttachFile.getAttachDir(request, pagename, create=1)
-            # save file
-            fpath = AttachFile.getFilename(request, pagename, target).encode(config.charset)
-            file(fpath, 'w').write(filecontent.decode('base_64'))
-            return None, None
-
-            
-    url = request.getQualifiedURL()
-    htdocs = "%s%s" % (request.cfg.url_prefix_static, '/svg-edit/editor')
-    
-    meta = """
-<meta http-equiv="Content-type" content="text/html;charset=UTF-8" />
-<link rel="icon" type="image/png" href="images/logo.png">
-<link rel="stylesheet" href="%(htdocs)s/jgraduate/css/jPicker-1.0.9.css" type="text/css"/>
-<link rel="stylesheet" href="%(htdocs)s/jgraduate/css/jGraduate-0.2.0.css" type="text/css"/>
-<link rel="stylesheet" href="%(htdocs)s/svg-editor.css" type="text/css"/>
-<link rel="stylesheet" href="%(htdocs)s/spinbtn/JQuerySpinBtn.css" type="text/css"/>
-<script type="text/javascript" src="%(htdocs)s/jquery.js"></script>
-<!--script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js"></script-->
-<script type="text/javascript" src="%(htdocs)s/js-hotkeys/jquery.hotkeys.min.js"></script>
-<!--script type="text/javascript" src="%(htdocs)s/js-hotkeys/jquery.hotkeys-0.7.9.js"></script-->
-<script type="text/javascript" src="%(htdocs)s/jgraduate/jpicker-1.0.9.min.js"></script>
-<script type="text/javascript" src="%(htdocs)s/jgraduate/jquery.jgraduate.js"></script>
-<script type="text/javascript" src="%(htdocs)s/spinbtn/JQuerySpinBtn.js"></script>
-<!--script type="text/javascript" src="%(htdocs)s/spinbtn/JQuerySpinBtn.min.js"></script-->
-<!--script type="text/javascript" src="%(htdocs)s/jgraduate/jquery.jgraduate.min.js"></script-->
-<script type="text/javascript" src="%(htdocs)s/svgcanvas.js"></script>
-<!--script type="text/javascript" src="%(htdocs)s/svgcanvas.min.js"></script-->
-<script type="text/javascript" src="%(htdocs)s/svg-editor.js"></script>
-<!--script type="text/javascript" src="%(htdocs)s/svg-editor.min.js"></script--> 
-""" % {"htdocs": htdocs} 
-
-    html = """
-<div id="svg_editor">
-<div id="workarea">
-<style id="styleoverrides" type="text/css"></style>
-<div id="svgcanvas"></div>
-<div id="svgdata">
-%(filecontent)s
-</div>
-</div>
-
-<div id="logo">
-	<a href="http://svg-edit.googlecode.com/" target="_blank" title="SVG-edit Home Page">
-		<img src="%(htdocs)s/images/logo.png" width="32" height="32"/>
-	</a>
-</div>
-
-<div id="tools_top" class="tools_panel">
-	<!-- File-like buttons: New, Save, Source -->
-	<div>
-		<img class="tool_sep" src="%(htdocs)s/images/sep.png" alt="|"/>
-		<img class="tool_button" id="tool_clear" src="%(htdocs)s/images/clear.png" title="New Image [N]" alt="Clear" />
-		<img class="tool_button" id="tool_save" src="%(htdocs)s/images/save.png" title="Save Image [S]" alt="Save"/>
-		<img class="tool_button" id="tool_source" src="%(htdocs)s/images/source.png" title="Edit Source [U]" alt="Source"/>
-	</div>
-
-    <!-- History buttons -->
-	<div>
-		<img class="tool_sep" src="%(htdocs)s/images/sep.png" alt="|"/>
-		<img class="tool_button tool_button_disabled" id="tool_undo" src="%(htdocs)s/images/undo.png" title="Undo [Z]" alt="Undo" />
-		<img class="tool_button tool_button_disabled" id="tool_redo" src="%(htdocs)s/images/redo.png" title="Redo [Y]" alt="Redo"/>
-	</div>
-
-	<!-- Buttons when something a single element is selected -->
-	<div id="selected_panel">
-		<img class="tool_sep" src="%(htdocs)s/images/sep.png" alt="|"/>
-		<img class="tool_button" id="tool_clone" src="%(htdocs)s/images/copy.png" title="Clone Element [C]" alt="Copy"/>
-		<img class="tool_button" id="tool_delete" src="%(htdocs)s/images/delete.png" title="Delete Element [Delete/Backspace]" alt="Delete"/>
-		<img class="tool_button" id="tool_move_top" src="%(htdocs)s/images/move_top.png" title="Move to Top [Shift+Up]" alt="Top"/>
-		<img class="tool_button" id="tool_move_bottom" src="%(htdocs)s/images/move_bottom.png" title="Move to Bottom [Shift+Down]" alt="Bottom"/>
-		<select id="group_opacity" class="selected_tool" title="Change selected item opacity">
-			<option selected="selected" value="1">100 %%</option>
-			<option value="0.9">90 %%</option>
-			<option value="0.8">80 %%</option>
-			<option value="0.7">70 %%</option>
-			<option value="0.6">60 %%</option>
-			<option value="0.5">50 %%</option>
-			<option value="0.4">40 %%</option>
-			<option value="0.3">30 %%</option>
-			<option value="0.2">20 %%</option>
-			<option value="0.1">10 %%</option>
-		</select>
-		<span class="selected_tool">angle:</span>
-		<input id="angle" class="selected_tool" title="Change rotation angle" alt="Rotation Angle" size="2" value="0" type="text"/>
-	</div>
-
-	<!-- Buttons when something a single element is selected -->
-	<div id="multiselected_panel">
-		<img class="tool_sep" src="%(htdocs)s/images/sep.png" alt="|"/>
-		<img class="tool_button" id="tool_clone_multi" src="%(htdocs)s/images/copy.png" title="Clone Elements [C]" alt="Clone"/>
-		<img class="tool_button" id="tool_delete_multi" src="%(htdocs)s/images/delete.png" title="Delete Selected Elements [Delete/Backspace]" alt="Delete"/>
-	</div>
-
-	<div id="rect_panel">
-		<img class="tool_sep" src="%(htdocs)s/images/sep.png" alt="|"/>
-		<label class="rect_tool">x:</label>
-		<input id="rect_x" class="rect_tool attr_changer" title="Change rectangle X coordinate" alt="x" size="3"/>
-		<label class="rect_tool">y:</label>
-		<input id="rect_y" class="rect_tool attr_changer" title="Change rectangle Y coordinate" alt="y" size="3"/>
-		<label class="rect_tool">width:</label>
-		<input id="rect_w" class="rect_tool attr_changer" title="Change rectangle width" alt="width" size="3"/>
-		<label class="rect_tool">height:</label>
-		<input id="rect_h" class="rect_tool attr_changer" title="Change rectangle height" alt="height" size="3"/>
-		<label class="rect_tool">Corner Radius:</label>
-		<input id="rect_radius" size="3" value="0" class="rect_tool" type="text" title="Change Rectangle Corner Radius" alt="Corner Radius"/>
-	</div>
-
-	<div id="circle_panel">
-		<img class="tool_sep" src="%(htdocs)s/images/sep.png" alt="|"/>
-		<label class="circle_tool">cx:</label>
-		<input id="circle_cx" class="circle_tool attr_changer" title="Change circle's cx coordinate" alt="cx" size="3"/>
-		<label class="circle_tool">cy:</label>
-		<input id="circle_cy" class="circle_tool attr_changer" title="Change circle's cy coordinate" alt="cy" size="3"/>
-		<label class="circle_tool">r:</label>
-		<input id="circle_r" class="circle_tool attr_changer" title="Change circle's radius" alt="r" size="3"/>
-	</div>
-
-	<div id="ellipse_panel">
-		<img class="tool_sep" src="%(htdocs)s/images/sep.png" alt="|"/>
-		<label class="ellipse_tool">cx:</label>
-		<input id="ellipse_cx" class="ellipse_tool attr_changer" title="Change ellipse's cx coordinate" alt="cx" size="3"/>
-		<label class="ellipse_tool">cy:</label>
-		<input id="ellipse_cy" class="ellipse_tool attr_changer" title="Change ellipse's cy coordinate" alt="cy" size="3"/>
-		<label class="ellipse_tool">rx:</label>
-		<input id="ellipse_rx" class="ellipse_tool attr_changer" title="Change ellipse's x radius" alt="rx" size="3"/>
-		<label class="ellipse_tool">ry:</label>
-		<input id="ellipse_ry" class="ellipse_tool attr_changer" title="Change ellipse's y radius" alt="ry" size="3"/>
-	</div>
-
-	<div id="line_panel">
-		<img class="tool_sep" src="%(htdocs)s/images/sep.png" alt="|"/>
-		<label class="line_tool">x1:</label>
-		<input id="line_x1" class="line_tool attr_changer" title="Change line's starting x coordinate" alt="x1" size="3"/>
-		<label class="line_tool">y1:</label>
-		<input id="line_y1" class="line_tool attr_changer" title="Change line's starting y coordinate" alt="y1" size="3"/>
-		<label class="line_tool">x2:</label>
-		<input id="line_x2" class="line_tool attr_changer" title="Change line's ending x coordinate" alt="x2" size="3"/>
-		<label class="line_tool">y2:</label>
-		<input id="line_y2" class="line_tool attr_changer" title="Change line's ending y coordinate" alt="x1" size="3"/>
-	</div>
-
-	<div id="text_panel">
-		<img class="tool_sep" src="%(htdocs)s/images/sep.png" alt="|"/>
-		<label class="text_tool">x:</label>
-		<input id="text_x" class="text_tool attr_changer" title="Change text X coordinate" alt="x" size="3"/>
-		<label class="text_tool">y:</label>
-		<input id="text_y" class="text_tool attr_changer" title="Change text Y coordinate" alt="y" size="3"/>
-		<img class="tool_button" id="tool_bold" src="%(htdocs)s/images/bold.png" title="Bold Text [B]" alt="Bold"/>
-		<img class="tool_button" id="tool_italic" src="%(htdocs)s/images/italic.png" title="Italic Text [I]" alt="Italic"/>
-		<select id="font_family" class="text_tool" title="Change Font Family">
-			<option selected="selected" value="serif">serif</option>
-			<option value="sans-serif">sans-serif</option>
-			<option value="cursive">cursive</option>
-			<option value="fantasy">fantasy</option>
-			<option value="monospace">monospace</option>
-		</select>
-		<select id="font_size" class="text_tool" title="Change Font Size">
-			<option value="6pt">6pt</option>
-			<option value="8pt">8pt</option>
-			<option value="10pt">10pt</option>
-			<option selected="selected" value="12pt">12pt</option>
-			<option value="14pt">14pt</option>
-			<option value="16pt">16pt</option>
-			<option value="20pt">20pt</option>
-			<option value="24pt">24pt</option>
-			<option value="32pt">32pt</option>
-			<option value="48pt">48pt</option>
-			<option value="64pt">64pt</option>
-			<option value="72pt">72pt</option>
-			<option value="80pt">80pt</option>
-			<option value="96pt">96pt</option>
-			<option value="120pt">120pt</option>
-		</select>
-		<input id="text" class="text_tool" type="text" title="Change text contents" size="35"/>
-	</div>
-</div> <!-- tools_top -->
-
-<div id="tools_left" class="tools_panel">
-	<img class="tool_button_current" id="tool_select" src="%(htdocs)s/images/select.png" title="Select Tool [1]" alt="Select"/><br/>
-	<img class="tool_button" id="tool_path" src="%(htdocs)s/images/path.png" title="Pencil Tool [2]" alt="Pencil"/><br/>
-	<img class="tool_button" id="tool_line" src="%(htdocs)s/images/line.png" title="Line Tool [3]" alt="Line"/><br/>
-	<img class="tool_button" id="tools_rect_show" src="%(htdocs)s/images/square.png" title="Square/Rect Tool [4/Shift+4]" alt="Square"/><br/>
-	<img class="tool_button" id="tools_ellipse_show" src="%(htdocs)s/images/circle.png" title="Ellipse/Circle Tool [5/Shift+5]" alt="Circle"/><br/>
-	<img class="tool_button" id="tool_text" src="%(htdocs)s/images/text.png" title="Text Tool [6]" alt="Text"/>
-	<img class="tool_button" id="tool_poly" src="%(htdocs)s/images/polygon.png" title="Poly Tool [7]" alt="Poly"/>
-</div> <!-- tools_left -->
-
-<div id="tools_bottom" class="tools_panel">
-
-	<div id="tools_bottom_1">
-		<select id="resolution">
-			<option selected="selected">640x480</option>
-			<option>800x600</option>
-			<option>1024x768</option>
-			<option>1280x960</option>
-			<option>1600x1200</option>
-		</select>
-	</div>
-
-	<div id="tools_bottom_2">
-		<table>
-		<tr>
-			<td>fill:</td>
-			<td><div id="fill_color" class="color_block"  title="Change fill color"></div></td>
-			<td><div id="fill_opacity">100 %%</div></td>
-		</tr><tr>
-			<td>stroke:</td>
-			<td><div id="stroke_color" class="color_block" title="Change stroke color"></div></td>
-			<td><div id="stroke_opacity">100 %%</div></td>
-			<td>
-				<input id="stroke_width" title="Change stroke width" alt="Stroke Width" size="2" value="5" type="text"/>
-			</td>
-			<td>
-				<select id="stroke_style" title="Change stroke dash style">
-					<option selected="selected" value="none">---</option>
-					<option value="2,2">...</option>
-					<option value="5,5">- -</option>
-					<option value="5,2,2,2">- .</option>
-					<option value="5,2,2,2,2,2">- ..</option>
-				</select>
-			</td>
-		</tr>
-		</table>
-	</div>
-
-	<div id="tools_bottom_3">
-		<div id="palette_holder"><div id="palette" title="Click to change fill color, shift-click to change stroke color"></div></div>
-		<div id="copyright">Powered by <a href="http://svg-edit.googlecode.com/" target="_blank">SVG-edit v2.3-preAlpha</a></div>
-	</div>
-</div>
-
-<!-- hidden divs -->
-<div id="color_picker"></div>
-
-<div id="tools_rect" class="tools_flyout">
-	<div id="tool_square" class="tool_flyout_button" title="Square"></div>
-	<div id="tool_rect" class="tool_flyout_button" title="Rectangle"></div>
-	<div id="tool_fhrect" class="tool_flyout_button" title="Free-Hand Rectangle"></div>
-</div>
-
-<div id="tools_ellipse" class="tools_flyout">
-	<div id="tool_circle" class="tool_flyout_button" title="Circle"></div>
-	<div id="tool_ellipse" class="tool_flyout_button" title="Ellipse"></div>
-	<div id="tool_fhellipse" class="tool_flyout_button" title="Free-Hand Ellipse"></div>
-</div>
-
-<div id="tools_stacking" class="tools_flyout_v">
-	<div id="tool_stacktop" class="tool_flyout_button" title="Move to Top [Shift+Up]"></div>
-	<div id="tool_stackbottom" class="tool_flyout_button" title="Move to Bottom [Shift+Down]"></div>
-</div>
-
-<div id="tools_align" class="tools_flyout_v">
-	<div id="tool_aligntop" class="tool_flyout_button" title="Align to Top"></div>
-	<div id="tool_alignbottom" class="tool_flyout_button" title="Align to Bottom"></div>
-	<div id="tool_alignmiddle" class="tool_flyout_button" title="Align to Middle"></div>
-	<div id="tool_alignleft" class="tool_flyout_button" title="Align to Left"></div>
-	<div id="tool_alignright" class="tool_flyout_button" title="Align to Right"></div>
-	<div id="tool_aligncenter" class="tool_flyout_button" title="Align to Center"></div>
-</div>
-
-</div> <!-- svg_editor -->
-
-<div id="svg_source_editor">
-	<div id="svg_source_overlay"></div>
-	<div id="svg_source_container">
-		<div id="tool_source_back" class="toolbar_button"></div>
-		<form>
-			<textarea id="svg_source_textarea"></textarea>
-		</form>
-	</div>
-</div>
-
-<script type="text/javascript">
-$(document).ready(svg_edit_setup);
-</script>
-
-""" % {"htdocs": htdocs,
-       "filecontent": filecontent,
-       }
-
-    title = "%s:%s" % (pagename, target)
-    request.theme.send_title(title, page=request.page, pagename=pagename)
-    request.write(request.formatter.startContent("content"))
-    request.write(request.formatter.rawHTML(meta))
-    
-    request.write(request.formatter.rawHTML(html))
-    request.write(request.formatter.endContent())
-    request.theme.send_footer(pagename)
-    request.theme.send_closing_html()
-    return None,None
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/data/plugin/action/SvgEditor.py	Mon Aug 24 22:56:05 2009 +0200
@@ -0,0 +1,323 @@
+# -*- coding: iso-8859-1 -*-
+"""
+    MoinMoin - SvgEditor
+
+    This action is used to call svg-edit, (http://code.google.com/p/svg-edit/) 
+    it is just a thin wrapper around it.
+    
+    svg-edit pre alpha is called 
+    this action needs moin-1.9 and is currently a mockup for an implementation in moin-2.0
+
+    @copyright: 2009 by MoinMoin:ReimarBauer
+    @license: GNU GPL, see COPYING for details.
+"""
+from MoinMoin import config, wikiutil
+from MoinMoin.action import AttachFile
+
+
+def execute(pagename, request):
+    target = request.values.get('target', 'example.svg')
+    filecontent = ''
+    if AttachFile.exists(request, pagename, target):
+        fpath = AttachFile.getFilename(request, pagename, target).encode(config.charset)
+        filecontent = file(fpath, 'r').readlines()
+        filecontent = ''.join(filecontent[1:])
+        filecontent = filecontent.encode('base_64')
+
+    do = request.values.get('do', '')
+    if do == 'save':
+        filecontent = request.values.get('svg_data', '')
+        target = request.values.get('target', 'example.svg')
+        if filecontent:
+            # get directory, and possibly create it
+            attach_dir = AttachFile.getAttachDir(request, pagename, create=1)
+            # save file
+            fpath = AttachFile.getFilename(request, pagename, target).encode(config.charset)
+            file(fpath, 'w').write(filecontent.decode('base_64'))
+            return None, None
+
+            
+    url = request.getQualifiedURL()
+    htdocs = "%s%s" % (request.cfg.url_prefix_static, '/svg-edit/editor')
+    
+    meta = """
+<meta http-equiv="Content-type" content="text/html;charset=UTF-8" />
+<link rel="icon" type="image/png" href="images/logo.png">
+<link rel="stylesheet" href="%(htdocs)s/jgraduate/css/jPicker-1.0.9.css" type="text/css"/>
+<link rel="stylesheet" href="%(htdocs)s/jgraduate/css/jGraduate-0.2.0.css" type="text/css"/>
+<link rel="stylesheet" href="%(htdocs)s/svg-editor.css" type="text/css"/>
+<link rel="stylesheet" href="%(htdocs)s/spinbtn/JQuerySpinBtn.css" type="text/css"/>
+<script type="text/javascript" src="%(htdocs)s/jquery.js"></script>
+<!--script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js"></script-->
+<script type="text/javascript" src="%(htdocs)s/js-hotkeys/jquery.hotkeys.min.js"></script>
+<!--script type="text/javascript" src="%(htdocs)s/js-hotkeys/jquery.hotkeys-0.7.9.js"></script-->
+<script type="text/javascript" src="%(htdocs)s/jgraduate/jpicker-1.0.9.min.js"></script>
+<script type="text/javascript" src="%(htdocs)s/jgraduate/jquery.jgraduate.js"></script>
+<script type="text/javascript" src="%(htdocs)s/spinbtn/JQuerySpinBtn.js"></script>
+<!--script type="text/javascript" src="%(htdocs)s/spinbtn/JQuerySpinBtn.min.js"></script-->
+<!--script type="text/javascript" src="%(htdocs)s/jgraduate/jquery.jgraduate.min.js"></script-->
+<script type="text/javascript" src="%(htdocs)s/svgcanvas.js"></script>
+<!--script type="text/javascript" src="%(htdocs)s/svgcanvas.min.js"></script-->
+<script type="text/javascript" src="%(htdocs)s/svg-editor.js"></script>
+<!--script type="text/javascript" src="%(htdocs)s/svg-editor.min.js"></script--> 
+""" % {"htdocs": htdocs} 
+
+    html = """
+<div id="svg_editor">
+<div id="workarea">
+<style id="styleoverrides" type="text/css"></style>
+<div id="svgcanvas"></div>
+<div id="svgdata">
+%(filecontent)s
+</div>
+</div>
+
+<div id="logo">
+	<a href="http://svg-edit.googlecode.com/" target="_blank" title="SVG-edit Home Page">
+		<img src="%(htdocs)s/images/logo.png" width="32" height="32"/>
+	</a>
+</div>
+
+<div id="tools_top" class="tools_panel">
+	<!-- File-like buttons: New, Save, Source -->
+	<div>
+		<img class="tool_sep" src="%(htdocs)s/images/sep.png" alt="|"/>
+		<img class="tool_button" id="tool_clear" src="%(htdocs)s/images/clear.png" title="New Image [N]" alt="Clear" />
+		<img class="tool_button" id="tool_save" src="%(htdocs)s/images/save.png" title="Save Image [S]" alt="Save"/>
+		<img class="tool_button" id="tool_source" src="%(htdocs)s/images/source.png" title="Edit Source [U]" alt="Source"/>
+	</div>
+
+    <!-- History buttons -->
+	<div>
+		<img class="tool_sep" src="%(htdocs)s/images/sep.png" alt="|"/>
+		<img class="tool_button tool_button_disabled" id="tool_undo" src="%(htdocs)s/images/undo.png" title="Undo [Z]" alt="Undo" />
+		<img class="tool_button tool_button_disabled" id="tool_redo" src="%(htdocs)s/images/redo.png" title="Redo [Y]" alt="Redo"/>
+	</div>
+
+	<!-- Buttons when something a single element is selected -->
+	<div id="selected_panel">
+		<img class="tool_sep" src="%(htdocs)s/images/sep.png" alt="|"/>
+		<img class="tool_button" id="tool_clone" src="%(htdocs)s/images/copy.png" title="Clone Element [C]" alt="Copy"/>
+		<img class="tool_button" id="tool_delete" src="%(htdocs)s/images/delete.png" title="Delete Element [Delete/Backspace]" alt="Delete"/>
+		<img class="tool_button" id="tool_move_top" src="%(htdocs)s/images/move_top.png" title="Move to Top [Shift+Up]" alt="Top"/>
+		<img class="tool_button" id="tool_move_bottom" src="%(htdocs)s/images/move_bottom.png" title="Move to Bottom [Shift+Down]" alt="Bottom"/>
+		<select id="group_opacity" class="selected_tool" title="Change selected item opacity">
+			<option selected="selected" value="1">100 %%</option>
+			<option value="0.9">90 %%</option>
+			<option value="0.8">80 %%</option>
+			<option value="0.7">70 %%</option>
+			<option value="0.6">60 %%</option>
+			<option value="0.5">50 %%</option>
+			<option value="0.4">40 %%</option>
+			<option value="0.3">30 %%</option>
+			<option value="0.2">20 %%</option>
+			<option value="0.1">10 %%</option>
+		</select>
+		<span class="selected_tool">angle:</span>
+		<input id="angle" class="selected_tool" title="Change rotation angle" alt="Rotation Angle" size="2" value="0" type="text"/>
+	</div>
+
+	<!-- Buttons when something a single element is selected -->
+	<div id="multiselected_panel">
+		<img class="tool_sep" src="%(htdocs)s/images/sep.png" alt="|"/>
+		<img class="tool_button" id="tool_clone_multi" src="%(htdocs)s/images/copy.png" title="Clone Elements [C]" alt="Clone"/>
+		<img class="tool_button" id="tool_delete_multi" src="%(htdocs)s/images/delete.png" title="Delete Selected Elements [Delete/Backspace]" alt="Delete"/>
+	</div>
+
+	<div id="rect_panel">
+		<img class="tool_sep" src="%(htdocs)s/images/sep.png" alt="|"/>
+		<label class="rect_tool">x:</label>
+		<input id="rect_x" class="rect_tool attr_changer" title="Change rectangle X coordinate" alt="x" size="3"/>
+		<label class="rect_tool">y:</label>
+		<input id="rect_y" class="rect_tool attr_changer" title="Change rectangle Y coordinate" alt="y" size="3"/>
+		<label class="rect_tool">width:</label>
+		<input id="rect_w" class="rect_tool attr_changer" title="Change rectangle width" alt="width" size="3"/>
+		<label class="rect_tool">height:</label>
+		<input id="rect_h" class="rect_tool attr_changer" title="Change rectangle height" alt="height" size="3"/>
+		<label class="rect_tool">Corner Radius:</label>
+		<input id="rect_radius" size="3" value="0" class="rect_tool" type="text" title="Change Rectangle Corner Radius" alt="Corner Radius"/>
+	</div>
+
+	<div id="circle_panel">
+		<img class="tool_sep" src="%(htdocs)s/images/sep.png" alt="|"/>
+		<label class="circle_tool">cx:</label>
+		<input id="circle_cx" class="circle_tool attr_changer" title="Change circle's cx coordinate" alt="cx" size="3"/>
+		<label class="circle_tool">cy:</label>
+		<input id="circle_cy" class="circle_tool attr_changer" title="Change circle's cy coordinate" alt="cy" size="3"/>
+		<label class="circle_tool">r:</label>
+		<input id="circle_r" class="circle_tool attr_changer" title="Change circle's radius" alt="r" size="3"/>
+	</div>
+
+	<div id="ellipse_panel">
+		<img class="tool_sep" src="%(htdocs)s/images/sep.png" alt="|"/>
+		<label class="ellipse_tool">cx:</label>
+		<input id="ellipse_cx" class="ellipse_tool attr_changer" title="Change ellipse's cx coordinate" alt="cx" size="3"/>
+		<label class="ellipse_tool">cy:</label>
+		<input id="ellipse_cy" class="ellipse_tool attr_changer" title="Change ellipse's cy coordinate" alt="cy" size="3"/>
+		<label class="ellipse_tool">rx:</label>
+		<input id="ellipse_rx" class="ellipse_tool attr_changer" title="Change ellipse's x radius" alt="rx" size="3"/>
+		<label class="ellipse_tool">ry:</label>
+		<input id="ellipse_ry" class="ellipse_tool attr_changer" title="Change ellipse's y radius" alt="ry" size="3"/>
+	</div>
+
+	<div id="line_panel">
+		<img class="tool_sep" src="%(htdocs)s/images/sep.png" alt="|"/>
+		<label class="line_tool">x1:</label>
+		<input id="line_x1" class="line_tool attr_changer" title="Change line's starting x coordinate" alt="x1" size="3"/>
+		<label class="line_tool">y1:</label>
+		<input id="line_y1" class="line_tool attr_changer" title="Change line's starting y coordinate" alt="y1" size="3"/>
+		<label class="line_tool">x2:</label>
+		<input id="line_x2" class="line_tool attr_changer" title="Change line's ending x coordinate" alt="x2" size="3"/>
+		<label class="line_tool">y2:</label>
+		<input id="line_y2" class="line_tool attr_changer" title="Change line's ending y coordinate" alt="x1" size="3"/>
+	</div>
+
+	<div id="text_panel">
+		<img class="tool_sep" src="%(htdocs)s/images/sep.png" alt="|"/>
+		<label class="text_tool">x:</label>
+		<input id="text_x" class="text_tool attr_changer" title="Change text X coordinate" alt="x" size="3"/>
+		<label class="text_tool">y:</label>
+		<input id="text_y" class="text_tool attr_changer" title="Change text Y coordinate" alt="y" size="3"/>
+		<img class="tool_button" id="tool_bold" src="%(htdocs)s/images/bold.png" title="Bold Text [B]" alt="Bold"/>
+		<img class="tool_button" id="tool_italic" src="%(htdocs)s/images/italic.png" title="Italic Text [I]" alt="Italic"/>
+		<select id="font_family" class="text_tool" title="Change Font Family">
+			<option selected="selected" value="serif">serif</option>
+			<option value="sans-serif">sans-serif</option>
+			<option value="cursive">cursive</option>
+			<option value="fantasy">fantasy</option>
+			<option value="monospace">monospace</option>
+		</select>
+		<select id="font_size" class="text_tool" title="Change Font Size">
+			<option value="6pt">6pt</option>
+			<option value="8pt">8pt</option>
+			<option value="10pt">10pt</option>
+			<option selected="selected" value="12pt">12pt</option>
+			<option value="14pt">14pt</option>
+			<option value="16pt">16pt</option>
+			<option value="20pt">20pt</option>
+			<option value="24pt">24pt</option>
+			<option value="32pt">32pt</option>
+			<option value="48pt">48pt</option>
+			<option value="64pt">64pt</option>
+			<option value="72pt">72pt</option>
+			<option value="80pt">80pt</option>
+			<option value="96pt">96pt</option>
+			<option value="120pt">120pt</option>
+		</select>
+		<input id="text" class="text_tool" type="text" title="Change text contents" size="35"/>
+	</div>
+</div> <!-- tools_top -->
+
+<div id="tools_left" class="tools_panel">
+	<img class="tool_button_current" id="tool_select" src="%(htdocs)s/images/select.png" title="Select Tool [1]" alt="Select"/><br/>
+	<img class="tool_button" id="tool_path" src="%(htdocs)s/images/path.png" title="Pencil Tool [2]" alt="Pencil"/><br/>
+	<img class="tool_button" id="tool_line" src="%(htdocs)s/images/line.png" title="Line Tool [3]" alt="Line"/><br/>
+	<img class="tool_button" id="tools_rect_show" src="%(htdocs)s/images/square.png" title="Square/Rect Tool [4/Shift+4]" alt="Square"/><br/>
+	<img class="tool_button" id="tools_ellipse_show" src="%(htdocs)s/images/circle.png" title="Ellipse/Circle Tool [5/Shift+5]" alt="Circle"/><br/>
+	<img class="tool_button" id="tool_text" src="%(htdocs)s/images/text.png" title="Text Tool [6]" alt="Text"/>
+	<img class="tool_button" id="tool_poly" src="%(htdocs)s/images/polygon.png" title="Poly Tool [7]" alt="Poly"/>
+</div> <!-- tools_left -->
+
+<div id="tools_bottom" class="tools_panel">
+
+	<div id="tools_bottom_1">
+		<select id="resolution">
+			<option selected="selected">640x480</option>
+			<option>800x600</option>
+			<option>1024x768</option>
+			<option>1280x960</option>
+			<option>1600x1200</option>
+		</select>
+	</div>
+
+	<div id="tools_bottom_2">
+		<table>
+		<tr>
+			<td>fill:</td>
+			<td><div id="fill_color" class="color_block"  title="Change fill color"></div></td>
+			<td><div id="fill_opacity">100 %%</div></td>
+		</tr><tr>
+			<td>stroke:</td>
+			<td><div id="stroke_color" class="color_block" title="Change stroke color"></div></td>
+			<td><div id="stroke_opacity">100 %%</div></td>
+			<td>
+				<input id="stroke_width" title="Change stroke width" alt="Stroke Width" size="2" value="5" type="text"/>
+			</td>
+			<td>
+				<select id="stroke_style" title="Change stroke dash style">
+					<option selected="selected" value="none">---</option>
+					<option value="2,2">...</option>
+					<option value="5,5">- -</option>
+					<option value="5,2,2,2">- .</option>
+					<option value="5,2,2,2,2,2">- ..</option>
+				</select>
+			</td>
+		</tr>
+		</table>
+	</div>
+
+	<div id="tools_bottom_3">
+		<div id="palette_holder"><div id="palette" title="Click to change fill color, shift-click to change stroke color"></div></div>
+		<div id="copyright">Powered by <a href="http://svg-edit.googlecode.com/" target="_blank">SVG-edit v2.3-preAlpha</a></div>
+	</div>
+</div>
+
+<!-- hidden divs -->
+<div id="color_picker"></div>
+
+<div id="tools_rect" class="tools_flyout">
+	<div id="tool_square" class="tool_flyout_button" title="Square"></div>
+	<div id="tool_rect" class="tool_flyout_button" title="Rectangle"></div>
+	<div id="tool_fhrect" class="tool_flyout_button" title="Free-Hand Rectangle"></div>
+</div>
+
+<div id="tools_ellipse" class="tools_flyout">
+	<div id="tool_circle" class="tool_flyout_button" title="Circle"></div>
+	<div id="tool_ellipse" class="tool_flyout_button" title="Ellipse"></div>
+	<div id="tool_fhellipse" class="tool_flyout_button" title="Free-Hand Ellipse"></div>
+</div>
+
+<div id="tools_stacking" class="tools_flyout_v">
+	<div id="tool_stacktop" class="tool_flyout_button" title="Move to Top [Shift+Up]"></div>
+	<div id="tool_stackbottom" class="tool_flyout_button" title="Move to Bottom [Shift+Down]"></div>
+</div>
+
+<div id="tools_align" class="tools_flyout_v">
+	<div id="tool_aligntop" class="tool_flyout_button" title="Align to Top"></div>
+	<div id="tool_alignbottom" class="tool_flyout_button" title="Align to Bottom"></div>
+	<div id="tool_alignmiddle" class="tool_flyout_button" title="Align to Middle"></div>
+	<div id="tool_alignleft" class="tool_flyout_button" title="Align to Left"></div>
+	<div id="tool_alignright" class="tool_flyout_button" title="Align to Right"></div>
+	<div id="tool_aligncenter" class="tool_flyout_button" title="Align to Center"></div>
+</div>
+
+</div> <!-- svg_editor -->
+
+<div id="svg_source_editor">
+	<div id="svg_source_overlay"></div>
+	<div id="svg_source_container">
+		<div id="tool_source_back" class="toolbar_button"></div>
+		<form>
+			<textarea id="svg_source_textarea"></textarea>
+		</form>
+	</div>
+</div>
+
+<script type="text/javascript">
+$(document).ready(svg_edit_setup);
+</script>
+
+""" % {"htdocs": htdocs,
+       "filecontent": filecontent,
+       }
+
+    title = "%s:%s" % (pagename, target)
+    request.theme.send_title(title, page=request.page, pagename=pagename)
+    request.write(request.formatter.startContent("content"))
+    request.write(request.formatter.rawHTML(meta))
+    
+    request.write(request.formatter.rawHTML(html))
+    request.write(request.formatter.endContent())
+    request.theme.send_footer(pagename)
+    request.theme.send_closing_html()
+    return None,None