svgedit/archive/screencasts/svgopen2010/index.html

289 lines
10 KiB
HTML
Raw Normal View History

<!DOCTYPE html>
<!--
Copyright 2010 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.
Original slides: Marcin Wichary (mwichary@google.com)
Modifications: Ernest Delgado (ernestd@google.com)
Alex Russell (slightlyoff@chromium.org)
Brad Neuberg
2020-02-15 12:20:32 +00:00
SVG-edit presentation: Pavol Rusnak (pavol@rusnak.io)
-->
<html>
<head>
<!--[if gte IE 9]>
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<![endif]-->
<!--[if lt IE 9]>
<meta http-equiv="X-UA-Compatible" content="IE=edge;chrome=1" />
<![endif]-->
<meta charset="utf-8" />
<title>SVG-edit, Pavol Rusnák, SVG Open 2010, Paris</title>
<link href="https://fonts.googleapis.com/css?family=Droid+Sans|Droid+Sans+Mono" rel="stylesheet" />
<link rel="stylesheet" href="style.css" />
</head>
<body>
<div class="presentation">
<div id="presentation-counter"></div>
<div class="slides">
<div class="slide">
<section class="middle">
<h1 style="font-size: 220%;">SVG-edit</h1>
<p><img src="logo.svg" alt="logo" width="30%" height="30%" /></p>
<h2>Pavol Rusnák</h2>
<h3>SVG Open 2010, Paris</h3>
</section>
</div>
<div class="slide">
<section>
<header>
<h2>SVG-edit is ...</h2>
</header>
<ul class="bulleted">
<li>a web-based, JavaScript-driven SVG editor that works in any modern browser</li>
<li>not a full replacement for Inkscape (yet :-P)</li>
<li>licensed under very liberal open source license (Apache License 2.0)</li>
<li>platform for other projects which need to edit SVG documents</li>
<li>pushing browsers to find their limits</li>
<li>always up-to-date</li>
</ul>
</section>
</div>
<div class="slide">
<section>
<header>
<h2>History: 1.0 (13th Feb 2009)</h2>
</header>
<ul class="bulleted">
<li>draw path, line, freehand-circle, rectangle</li>
<li>clear drawn image</li>
<li>delete element</li>
<li>save image</li>
<li>&rarr; Narendra Sisodiya</li>
</ul>
<p><a href="http://svg-edit.googlecode.com/svn/branches/1.0/svg-editor.html">_</a></p>
</section>
</div>
<div class="slide">
<section>
<header>
<h2>History: 2.0 (3rd June 2009)</h2>
</header>
<ul class="bulleted">
<li>draw ellipse, square</li>
<li>change line style (stroke-dasharray)</li>
<li>rearranged whole code to utilize OOP</li>
<li>GUI enhancement</li>
<li>&rarr; Pavol Rusnák</li>
</ul>
<p><a href="http://svg-edit.googlecode.com/svn/branches/2.0/svg-editor.html">_</a></p>
</section>
</div>
<div class="slide">
<section>
<header>
<h2>History: 2.1 (17th June 2009)</h2>
</header>
<ul class="bulleted">
<li>tooltips added to all UI elements</li>
<li>edit of fill opacity, stroke opacity, group opacity</li>
<li>selection of elements</li>
<li>move/drag of elements</li>
<li>save SVG file to separate tab</li>
<li>create and edit text elements</li>
<li>contextual panel of tools</li>
<li>change rect radius, font-family, font-size</li>
<li>keystroke handling</li>
<li>&rarr; Jeff Schiller</li>
</ul>
<p><a href="http://svg-edit.googlecode.com/svn/branches/2.1/editor/svg-editor.html">_</a></p>
</section>
</div>
<div class="slide">
<section>
<header>
<h2>History: 2.2 (8th July 2009)</h2>
</header>
<ul class="bulleted">
<li>multiselect mode</li>
<li>undo/redo actions</li>
<li>resize elements</li>
<li>contextual tools for rect, circle, ellipse, line, text elements</li>
<li>some updated button images</li>
<li>stretched the UI to fit the browser window</li>
<li>resizing of the SVG canvas</li>
</ul>
<p><a href="http://svg-edit.googlecode.com/svn/branches/2.2/editor/svg-editor.html">_</a></p>
</section>
</div>
<div class="slide">
<section>
<header>
<h2>History: 2.3 (8th Sept 2009)</h2>
</header>
<ul class="bulleted">
<li>align objects</li>
<li>rotate objects</li>
<li>clone objects</li>
<li>select next/prev object</li>
<li>edit SVG source</li>
<li>gradient picking</li>
<li>polygon mode</li>
<li>&rarr; Alexis Deveria</li>
</ul>
<p><a href="http://svg-edit.googlecode.com/svn/branches/2.3/editor/svg-editor.html">_</a></p>
</section>
</div>
<div class="slide">
<section>
<header>
<h2>History: 2.4 Arbelos (11th Jan 2010)</h2>
</header>
<ul class="bulleted">
<li>include raster images</li>
<li>select non-adjacent elements</li>
<li>group/ungroup</li>
<li>zoom</li>
<li>layers</li>
<li>curve segments in paths</li>
<li>UI localization</li>
<li>wireframe mode</li>
<li>change background</li>
<li>convert shapes to path</li>
</ul>
<p><a href="http://svg-edit.googlecode.com/svn/branches/2.4/editor/svg-editor.html">_</a></p>
</section>
</div>
<div class="slide">
<section>
<header>
<h2>History: 2.5 Bicorn (15th June 2010)</h2>
</header>
<ul class="bulleted">
<li>open local files (Firefox 3.6+, Chrome 6+ only)</li>
<li>import SVG into drawing (Firefox 3.6+, Chrome 6+ only)</li>
<li>connector lines and arrows</li>
<li>smoother freehand paths</li>
<li>editing outside the canvas</li>
<li>increased support for SVG elements</li>
<li>add/edit sub-paths</li>
<li>multiple path segment selection</li>
<li>support for foreign markup (MathML)</li>
<li>radial gradients</li>
<li>eye-dropper tool</li>
<li>stroke linejoin and linecap</li>
<li>export to PNG</li>
</ul>
<p><a href="http://svg-edit.googlecode.com/svn/branches/2.5/editor/svg-editor.html">_</a></p>
</section>
</div>
<div class="slide">
<section>
<header>
<h2>Plugin Architecture</h2>
</header>
<pre>
(INCOMPLETE: ES6 Module conversion and linting) - Breaking change: Require `new` with `EmbeddedSVGEdit` (allows us to use `class` internally) - Breaking change: If `svgcanvas.setUiStrings` must now be called if not using editor in order to get strings (for sake of i18n) (and if using path.js alone, must also have its `setUiStrings` called) - Breaking change (ext-overview-window): Avoid global `overviewWindowGlobals` - Breaking change (ext-imagelib): Change to object-based encoding for namespacing of messages (though keep stringifying/parsing ourselves until we remove IE9 support) - Breaking change: Rename `jquery.js` to `jquery.min.js` - Breaking change: Remove `scoped` attribute from `style`; it is now deprecated and obsolete; also move to head (after other stylesheets) - Enhancement: Make SpinButton plugin independent of SVGEdit via generic state object for tool_scale - Enhancement: Remove now unused Python l10n scripts (#238) - Enhancement: ES6 Modules (including jQuery plugins but not jQuery) - Enhancement: Further JSDoc (incomplete) - Enhancement (Optimization): Compress images using imageoptim (and add npm script) (per #215) - Fix: i18nize path.js strings and canvas notifications - Fix: Attempt i18n for ext-markers - Refactoring (ext-storage): Move locale info to own file imported by the extension (toward modularity; still should be split into separate files by language and *dynamically* imported, but we'll wait for better `import` support to refactor this) - Refactoring: For imagelib, add local jQuery copy (using old 1.4.4 as had been using from server) - Refactoring: For MathJax, add local copy (using old 2.3 as had been using from server); server had not been working - Refactoring: Remove `use strict` (implicit in modules) - Refactoring: Remove trailing whitespace, fix some code within comments - Refactoring: Expect `jQuery` global rather than `$` for better modularity (also to adapt line later once available via `import`) - Refactoring: Prefer `const` (and then `let`) - Refactoring: Add block scope keywords closer to first block in which they appear - Refactoring: Use ES6 `class` - Refactoring `$.isArray` -> `Array.isArray` and avoid some other jQuery core methods with simple VanillaJS replacements - Refactoring: Use abbreviated object property syntax - Refactoring: Object destructuring - Refactoring: Remove `uiStrings` contents in svg-editor.js (obtains from locale) - Refactoring: Add favicon to embedded API file - Refactoring: Use arrow functions for brief functions (incomplete) - Refactoring: Use `Array.prototype.includes`/`String.prototype.includes`; `String.prototype.startsWith`, `String.prototype.trim` - Refactoring: Remove now unnecessary svgutils do/while resetting of variables - Refactoring: Use shorthand methods for object literals (avoid ": function") - Refactoring: Avoid quoting object property keys where unnecessary - Refactoring: Just do truthy/falsey check for lengths in place of comparison to 0 - Refactoring (Testing): Avoid jQuery usage within most test files (defer script, also in preparation for future switch to ES6 modules for tests) - Refactoring: Make jpicker variable declaration indent bearable - Refactoring (Linting): Finish svgcanvas.js - Docs: Mention in comment no longer an entry file as before - Docs: Migrate old config, extensions, and FAQ docs - Licensing: Indicate MIT is license type of rgbcolor; rename/add license file name for jgraduate and screencast to reflect type (Apache 2.0); rename file to reflect it contains license information (of type MIT) for Raphael icons
2018-05-18 03:25:45 +00:00
svgEditor.addExtension('Hello World', function () {
return {
svgicons: 'extensions/helloworld-icon.xml',
buttons: [{...}],
(INCOMPLETE: ES6 Module conversion and linting) - Breaking change: Require `new` with `EmbeddedSVGEdit` (allows us to use `class` internally) - Breaking change: If `svgcanvas.setUiStrings` must now be called if not using editor in order to get strings (for sake of i18n) (and if using path.js alone, must also have its `setUiStrings` called) - Breaking change (ext-overview-window): Avoid global `overviewWindowGlobals` - Breaking change (ext-imagelib): Change to object-based encoding for namespacing of messages (though keep stringifying/parsing ourselves until we remove IE9 support) - Breaking change: Rename `jquery.js` to `jquery.min.js` - Breaking change: Remove `scoped` attribute from `style`; it is now deprecated and obsolete; also move to head (after other stylesheets) - Enhancement: Make SpinButton plugin independent of SVGEdit via generic state object for tool_scale - Enhancement: Remove now unused Python l10n scripts (#238) - Enhancement: ES6 Modules (including jQuery plugins but not jQuery) - Enhancement: Further JSDoc (incomplete) - Enhancement (Optimization): Compress images using imageoptim (and add npm script) (per #215) - Fix: i18nize path.js strings and canvas notifications - Fix: Attempt i18n for ext-markers - Refactoring (ext-storage): Move locale info to own file imported by the extension (toward modularity; still should be split into separate files by language and *dynamically* imported, but we'll wait for better `import` support to refactor this) - Refactoring: For imagelib, add local jQuery copy (using old 1.4.4 as had been using from server) - Refactoring: For MathJax, add local copy (using old 2.3 as had been using from server); server had not been working - Refactoring: Remove `use strict` (implicit in modules) - Refactoring: Remove trailing whitespace, fix some code within comments - Refactoring: Expect `jQuery` global rather than `$` for better modularity (also to adapt line later once available via `import`) - Refactoring: Prefer `const` (and then `let`) - Refactoring: Add block scope keywords closer to first block in which they appear - Refactoring: Use ES6 `class` - Refactoring `$.isArray` -> `Array.isArray` and avoid some other jQuery core methods with simple VanillaJS replacements - Refactoring: Use abbreviated object property syntax - Refactoring: Object destructuring - Refactoring: Remove `uiStrings` contents in svg-editor.js (obtains from locale) - Refactoring: Add favicon to embedded API file - Refactoring: Use arrow functions for brief functions (incomplete) - Refactoring: Use `Array.prototype.includes`/`String.prototype.includes`; `String.prototype.startsWith`, `String.prototype.trim` - Refactoring: Remove now unnecessary svgutils do/while resetting of variables - Refactoring: Use shorthand methods for object literals (avoid ": function") - Refactoring: Avoid quoting object property keys where unnecessary - Refactoring: Just do truthy/falsey check for lengths in place of comparison to 0 - Refactoring (Testing): Avoid jQuery usage within most test files (defer script, also in preparation for future switch to ES6 modules for tests) - Refactoring: Make jpicker variable declaration indent bearable - Refactoring (Linting): Finish svgcanvas.js - Docs: Mention in comment no longer an entry file as before - Docs: Migrate old config, extensions, and FAQ docs - Licensing: Indicate MIT is license type of rgbcolor; rename/add license file name for jgraduate and screencast to reflect type (Apache 2.0); rename file to reflect it contains license information (of type MIT) for Raphael icons
2018-05-18 03:25:45 +00:00
mouseDown () {
...
},
(INCOMPLETE: ES6 Module conversion and linting) - Breaking change: Require `new` with `EmbeddedSVGEdit` (allows us to use `class` internally) - Breaking change: If `svgcanvas.setUiStrings` must now be called if not using editor in order to get strings (for sake of i18n) (and if using path.js alone, must also have its `setUiStrings` called) - Breaking change (ext-overview-window): Avoid global `overviewWindowGlobals` - Breaking change (ext-imagelib): Change to object-based encoding for namespacing of messages (though keep stringifying/parsing ourselves until we remove IE9 support) - Breaking change: Rename `jquery.js` to `jquery.min.js` - Breaking change: Remove `scoped` attribute from `style`; it is now deprecated and obsolete; also move to head (after other stylesheets) - Enhancement: Make SpinButton plugin independent of SVGEdit via generic state object for tool_scale - Enhancement: Remove now unused Python l10n scripts (#238) - Enhancement: ES6 Modules (including jQuery plugins but not jQuery) - Enhancement: Further JSDoc (incomplete) - Enhancement (Optimization): Compress images using imageoptim (and add npm script) (per #215) - Fix: i18nize path.js strings and canvas notifications - Fix: Attempt i18n for ext-markers - Refactoring (ext-storage): Move locale info to own file imported by the extension (toward modularity; still should be split into separate files by language and *dynamically* imported, but we'll wait for better `import` support to refactor this) - Refactoring: For imagelib, add local jQuery copy (using old 1.4.4 as had been using from server) - Refactoring: For MathJax, add local copy (using old 2.3 as had been using from server); server had not been working - Refactoring: Remove `use strict` (implicit in modules) - Refactoring: Remove trailing whitespace, fix some code within comments - Refactoring: Expect `jQuery` global rather than `$` for better modularity (also to adapt line later once available via `import`) - Refactoring: Prefer `const` (and then `let`) - Refactoring: Add block scope keywords closer to first block in which they appear - Refactoring: Use ES6 `class` - Refactoring `$.isArray` -> `Array.isArray` and avoid some other jQuery core methods with simple VanillaJS replacements - Refactoring: Use abbreviated object property syntax - Refactoring: Object destructuring - Refactoring: Remove `uiStrings` contents in svg-editor.js (obtains from locale) - Refactoring: Add favicon to embedded API file - Refactoring: Use arrow functions for brief functions (incomplete) - Refactoring: Use `Array.prototype.includes`/`String.prototype.includes`; `String.prototype.startsWith`, `String.prototype.trim` - Refactoring: Remove now unnecessary svgutils do/while resetting of variables - Refactoring: Use shorthand methods for object literals (avoid ": function") - Refactoring: Avoid quoting object property keys where unnecessary - Refactoring: Just do truthy/falsey check for lengths in place of comparison to 0 - Refactoring (Testing): Avoid jQuery usage within most test files (defer script, also in preparation for future switch to ES6 modules for tests) - Refactoring: Make jpicker variable declaration indent bearable - Refactoring (Linting): Finish svgcanvas.js - Docs: Mention in comment no longer an entry file as before - Docs: Migrate old config, extensions, and FAQ docs - Licensing: Indicate MIT is license type of rgbcolor; rename/add license file name for jgraduate and screencast to reflect type (Apache 2.0); rename file to reflect it contains license information (of type MIT) for Raphael icons
2018-05-18 03:25:45 +00:00
mouseUp (opts) {
...
}
};
});</pre>
</section>
</div>
<div class="slide">
<section>
<header>
<h2>Features in progress (for 2.6 Cycloid)</h2>
</header>
<ul class="bulleted">
<li>IE9 support</li>
<li>context menus</li>
<li>path clipping</li>
<li>support for &lt;a&gt; element</li>
<li><a href="http://10k.aneventapart.com/Entry/319">advanced gradient editor</a> (more stops, elliptic fills)</li>
<li>shape library tool</li>
<li>linking off to clipart/image library sites</li>
</ul>
<p><a href="http://svg-edit.googlecode.com/svn/trunk/editor/svg-editor.html">_</a></p>
</section>
</div>
<div class="slide">
<section>
<header>
<h2>Projects based on SVG-edit</h2>
</header>
<ul class="bulleted">
<li>Firefox add-on</li>
<li>Opera widget</li>
<li>Google Wave gadget</li>
<li>Wiki extensions (Dokuwiki, Instiki, MoinMoin, XWiki)</li>
<li><a href="http://www.cloud-canvas.com/cloudcanvas.php">Cloud Canvas</a></li>
<li>Eduvid</li>
<li>Sesame</li>
</ul>
</section>
</div>
<div class="slide">
<section>
<header>
<h2>Resources</h2>
</header>
<ul class="bulleted">
<li><a href="https://github.com/SVG-Edit/svgedit">https://github.com/SVG-Edit/svgedit</a> (demos, downloads, source, wiki, issue tracker)</li>
<li>#svg-edit on irc.freenode.net</li>
<li><a href="https://groups.google.com/group/svg-edit">https://groups.google.com/group/svg-edit</a></li>
<li><a href="https://en.wikipedia.org/wiki/SVG-edit">https://en.wikipedia.org/wiki/SVG-edit</a></li>
</ul>
</section>
</div>
<div class="slide">
<section class="middle">
<h2>Thank you!</h2>
<h3>Questions?</h3>
</section>
</div>
</div> <!-- slides -->
</div> <!-- presentation -->
<script src="script.js"></script>
</body>
</html>