diff options
| author | MenTaLguY <mental@rydia.net> | 2006-01-16 02:36:01 +0000 |
|---|---|---|
| committer | mental <mental@users.sourceforge.net> | 2006-01-16 02:36:01 +0000 |
| commit | 179fa413b047bede6e32109e2ce82437c5fb8d34 (patch) | |
| tree | a5a6ac2c1708bd02288fbd8edb2ff500ff2e0916 /doc | |
| download | inkscape-179fa413b047bede6e32109e2ce82437c5fb8d34.tar.gz inkscape-179fa413b047bede6e32109e2ce82437c5fb8d34.zip | |
moving trunk for module inkscape
(bzr r1)
Diffstat (limited to 'doc')
37 files changed, 27150 insertions, 0 deletions
diff --git a/doc/.cvsignore b/doc/.cvsignore new file mode 100644 index 000000000..0615b4874 --- /dev/null +++ b/doc/.cvsignore @@ -0,0 +1,3 @@ +*~ +Makefile +Makefile.in diff --git a/doc/API b/doc/API new file mode 100644 index 000000000..129faa6b6 --- /dev/null +++ b/doc/API @@ -0,0 +1,61 @@ + +Sodipodi API's +-------------- + +This file identifies and discusses various Application Programming +Interfaces (API's) that exist in the codebase. This is not intended to +serve as a complete reference but as a high level overview; details +should be sought from the appropriate code units. + +Stable API's +============ + + +Unstable API's +============== +Objects and API-s mentioned here, even if implemented, +may change without notice. + +Special item classes +~~~~~~~~~~~~~~~~~~~~ +SPGroup::SPBinder +A group with special children +For example - blender +1. first +2. second +3... intermediate + +Sodipodi New Object Tree TM +~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Caution: This does not follow necessarily the Real (TM) implementation +logic. This should be updated to capture the correct stuff. + + SPItem + Virtual methods: + void update (gdouble affine[]); + void bbox (); + void print (GnomePrintContext * gpc); + gchar * description (); + void read (); + read_attr (const gchar * attr) + GnomeCanvasItem * show (GnomeCanvasGroup * canvas_group, gpointer event_handler); + hide (GnomeCanvas * canvas) + paint (ArtPixBuf * buf, double affine[]); + Signals: + Methods: + SPRepr * sp_item_repr () + SPItem * sp_item_parent () + + Constructors: + sp_item_new (SPRepr * repr); + + Destructors: + sp_item_destroy (SPItem * item); + + Derivatives: + + SPGroup -> SPDocument + SPImage + SPPath -> SPShape -> SPRect + -> SPEllipse + -> SPChars -> SPText diff --git a/doc/ChangeLog_archive.txt b/doc/ChangeLog_archive.txt new file mode 100644 index 000000000..ab5c262e4 --- /dev/null +++ b/doc/ChangeLog_archive.txt @@ -0,0 +1,10577 @@ +See ChangeLog for newer entries + +2004-03-31 Ted Gould <ted@gould.cx> + + * src/interface.cpp: Changing the default size so that it matches + the default template size. This way, for blank documents, the + window doesn't open and then resize. + +2004-03-31 Ted Gould <ted@gould.cx> + * src/file.cpp, src/dialogs/filedialog.cpp, src/extension/db.cpp, + src/extension/db.h, src/extension/system.cpp: + A bunch of changes for Bulia's bug 925875. Basically now the + save dialog remembers which extension you've used. This also + means that save works with non-standard extensions. Also, it + will add extensions for you if you didn't put them on. Finally, + the error dialog doesn't come up if you hit cancel in the + 'Save As...' dialog. Whew! + + * src/preferences-skeleton.h: Added in settings to make the save + extension global, along with whether or not the files should have + extensions tacked on the end of them. + +2004-03-31 Ted Gould <ted@gould.cx> + + * src/interface.cpp, src/interface.h, src/file.cpp: + Adding a cute little dialog to tell you if you are about to + overwrite a file you want to keep. This fixes bug #911237 + +2004-03-30 Jon Phillips <kidproto@users.sf.net> + + * share/icons/icons.svg src/interface.cpp src/verbs.cpp src/verbs.h: + Added rest of icons for the menu. I think they are a good start. + There still needs to be continuity between styles, but at least + all needed icons are present. I didn't create icons for elements + that are going to be removed eventually. + + * share/tutorials/tipsandtricks.svg src/help.cpp src/interface.cpp: + Added this tutorial so that people can consolidate their information + onto this page. + +2004-03-30 Ted Gould <ted@gould.cx> + + * src/file.cpp, src/file.h, src/dialogs/filedialog-win32.cpp, + src/dialogs/filedialog.cpp, src/dialogs/filedialog.h + src/extension/system.cpp, src/extension/system.h, + src/extension/implementation/script.cpp: + Making all of the file operations have lists of the extensions + that can be used to save and open. This also fixes the bug + which talks about mis-saving file without an error - there is + an error message now. Probably not the most clear, but you + won't miss it. + +2004-03-29 Peter Moulder <pmoulder@mail.csse.monash.edu.au> + + * src/helper/bezier-utils-test.cpp: Finish the sp_bezier_fit_cubic test. + + * src/dyna-draw-context.cpp, src/mod360.cpp, src/mod360.h, + src/Makefile.am: Move mod360 to new files mod360.cpp, mod360.h. + Add unit test for it. + +2004-03-28 Bryce Harrington <bryce@bryceharrington.com> + + * inkscape.cpp, inkscape.h, xml/repr-io.cpp, xml/repr.h: Adding + better error handling for the situation where the + preferences.xml file is not successfully loaded. In this case, + we want to suppress saving it, lest we overwrite the file with + the default skeleton preferences. + +2004-03-28 Jon Phillips <jon@users.sourceforge.net> + + * src/interface.cpp src/select-toolbar.cpp src/verbs.cpp src/verbs.h: + Changed rotate verb to be SP_VERB_OBJECT_ROTATE_90_CW so that I can + now install SP_VERB_OBJECT_ROTATE_90_CCW. + + * share/icons/icons.svg src/interface.cpp src/select-toolbar.cpp + src/selection-chemistry.cpp src/selection-chemistry.h + src/verbs.cpp src/verbs.h: Added rotation 90 degrees CCW to the menu, + icons, and the interface. It was a pretty simple thing to do but was + not available on the interface. + +2004-03-28 MenTaLguY <mental@rydia.net> + + * src/sp-gradient.cpp: request SP_OBJECT_MODIFIED_FLAG if gradient stops + are added or removed + +2004-03-27 bulia byak <bulia@users.sourceforge.net> + + * src/main.cpp: Removed redundancy in error messages, reworded some + + * src/verbs.cpp src/toolbox.cpp src/nodepath.cpp src/inkscape.cpp + src/extension/internal/ps.cpp src/main.cpp: Typos, reported by Arpad Biro + + * AUTHORS: Added John Cliff, Fred (long overdue), Adib + + * src/widgets/gradient-vector.cpp: John Cliff: multistage gradient editor + + * src/splivarot.cpp src/style.cpp src/xml/repr-util.cpp src/sp-polygon.cpp: + Adib's svgostringstream patches + + * src/toolbox.cpp: All default buttons work correctly with undo, use freezing to + prevent double changes; tooltip edits, formatting; defocusing on all widgets + + * src/display/nr-arena-image.cpp: Tentative fix for 906376: image always uses + _P_P_P_ compositing + + * src/dialogs/item-properties.cpp: Refixing the slider 0.99 problem properly, + reported by simarilius + + * src/help.cpp src/help.h src/interface.cpp: Expanded and split tutorial, all + tutorials in submenu + + * src/sp-text.cpp: Do not write dx/dy if they only contain 0s + + * src/verbs.cpp src/verbs.h src/splivarot.cpp src/splivarot.h src/shortcuts.cpp: + Inset/outset by pixels: commands, keys + + * src/preferences-skeleton.h: Default nudge 2pt + + * src/event-context.cpp: Increased accelerated-scroll delay + + * src/sp-text.cpp,h src/text-context.cpp: Clicking positions cursor closest to + the click point + + * src/extension/internal/ps.cpp: Print dialog transient; Enter activates print; + patches from sodi to flush stream and add boundingBox to PS output + + * src/dialogs/xml-tree.cpp: XML editor watches desktop change + + * src/sp-root.cpp: Fix from sodi: default preserveAspectRatio value + + * src/libnrtype/nr-type-w32.cpp: Fix for 915440 (from sodi) + +2004-03-27 Peter Moulder <pmoulder@mail.csse.monash.edu.au> + + * src/dyna-draw-context.cpp (sp_dyna_draw_context_set): + Tweak angle setting: prefer 0.0 instead of 360.0. + + * src/dyna-draw-context.h, src/dyna-draw-context.cpp: Cleanup: + Greater conformance to CodingStyle. Mostly whitespace changes. + +2004-03-24 Ted Gould <ted@gould.cx> + + * src/extension/db.[ch]: Adding in functions to get lists of + input and output extensions for the file dialogs + +2004-03-25 Alexander Clausen <alex@skip86.com> + + * src/inkview.cpp Fix inkview crash on startup + +2004-03-24 Ted Gould <ted@gould.cx> + + * Minor changes to get distcheck to work. + +2004-03-24 Peter Moulder <pmoulder@mail.csse.monash.edu.au> + + * src/draw-context.h, src/draw-context.cpp: Cleanup: greater + conformance to CodingStyle. Mostly whitespace changes. + +2004-03-23 Peter Moulder <pmoulder@mail.csse.monash.edu.au> + + * src/widgets/sp-widget.h, src/widgets/sp-widget.cpp + (sp_widget_new_repr): Remove this unused function. + + * src/libnrtype/nr-rasterfont.cpp (nr_rasterfont_ensure_glyph_slot): + Address compiler warning. + + * src/seltrans.cpp (sp_sel_trans_ungrab): Disable the persistent + snapping stuff added 2004-02-19. + + * src/desktop-events.cpp (sp_dt_ruler_event): Minor cleanup. + +2004-03-19 bulia byak <bulia@users.sourceforge.net> + + * src/selection-chemistry.cpp: Prevent it from scaling above 1e6 pt + + * src/preferences-skeleton.h src/dialogs/dialog-events.cpp: "Skip taskbar" hint + for dialogs + + * src/selection-chemistry.cpp: Patch for copying gradients from johncliff + + * src/event-context.cpp: Increased accelerated-scroll delay + + * nr-pixops.h: INK_COMPOSE: Always-visible inversion compose method + + * sp-gradient.cpp: Default linear gradient goes through center + + * nr-plain-stuff.cpp: Tweaked checkerboard size and color + + * gradient-position.cpp: Inverse colors for handles, axes, and bbox; dragging + snaps with Ctrl; radius handle in radial gradient + + * src/sp-rect.cpp src/sp-path.cpp: Finished fixing 918478 + + * src/gradient-chemistry.cpp src/widgets/gradient-vector.cpp: Fix for 902319, + remove some debug output + + * src/toolbox.cpp: Polygon mode off by default + + * src/toolbox.cpp: Crash fix, reported by David Christian Berg + + * src/radial.h src/nodepath.cpp: Moved Radial:: to nodepath.h for now + + * stringstream.h: New stream class for serialization + + * svg-path.cpp: Use new stream class + + * src/toolbox.cpp: Smarter Sharpness, r1 and r2 undistinguishable for the user + + * src/svg/svg-path.cpp: Restore mising break (fixes smearing for paths with h and v) + + * src/dialogs/align.cpp src/dialogs/transformation.cpp: Reverse pjrm's change in delete + handlers (fixes crash on closing) + + * src/splivarot.cpp: Simplify threshold depends on selection size, not item size + + * src/select-toolbar.cpp: Reordered select toolbar buttons + + * icons.svg: Reworked selector toolbar icons + +2004-03-17 Ted Gould <ted@gould.cx> + + * src/extension/db.h, src/extension/db.cpp, src/extension/extension.cpp, + src/extension/system.cpp: Changing the database stuff to be C++ + object oriented (actually it wasn't OO before). But this helps + as we start to connect to the File dialogs. + +2004-03-16 Ted Gould <ted@gould.cx> + + * src/file.cpp, + src/file.h, + src/extension/Makefile.am, + src/extension/extension.cpp, + src/extension/extension.h, + src/extension/menu.cpp, + src/extension/system.cpp, + src/extension/implementation/implementation.cpp, + src/extension/implementation/implementation.h, + src/extension/implementation/script.cpp, + src/extension/implementation/script.h: + A few of changes. + 1) removed the extensions menu stuff from the build as it seems + no one is using it. + 2) Changing Filter to Effect internally to the extensions + 3) Adding an exception to the save and open extensions to + signal a failure. There is no way to test this currently, + but it doesn't break anything. + +2004-03-16 jon phillips <kidproto@users.sf.net> + + * share/icons/icons.svg: Added a couple of icons but haven't linked them + to the code yet. + + * share/tutorials/elementsofdesign.svg: Added the first part of the + basic graphics for this tutorial. I added boxes for the rest, which + I need to finish. I need to use Bulia's tutorial top part to keep + the tutorials consistent. + +2004-03-16 bulia byak <bulia@users.sourceforge.net> + + * nr-type-directory.cpp: Cache NRTypeFaceDef *, not NRTypeFace *, fixes 916155 + + * src/arc-context.cpp src/arc-context.h src/event-context.h src/rect-context.cpp + src/spiral-context.cpp src/spiral-context.h src/star-context.cpp + src/star-context.h src/toolbox.cpp: John Cliff's patch #2 for shape tools, + with my fixes + + * icons.svg: Tweaks: stroke to curve, flip/rotate, text + + * src/sp-ellipse.cpp: Fixes: SPArc never writes <ellipse>; in d=, no L to the center when start==end + + * src/nodepath.cpp: Fix for 916119 + + * src/widgets/icon.cpp: Remove not-enough-room-for-icon warning + + * src/dialogs/text-edit.cpp src/dialogs/dialog-events.cpp: Do not eat key events in the text view + +2004-03-15 Peter Moulder <pmoulder@mail.csse.monash.edu.au> + + * src/widgets/gradient-vector.cpp + (sp_gradient_vector_widget_load_gradient, sp_gradient_vector_color_dragged): + Cleanup: Convert to table-driven style. + + * src/style.cpp (sp_style_read_from_object): Additional check. + + * src/rect-context.cpp: Cleanup: Coding Style conformance, + move declarations to first use. + + * src/sp-gradient.cpp (sp_gradient_rebuild_vector): Add assertion. + +2004-03-15 Ted Gould <ted@gould.cx> + + * src/extension/extension.cpp: Adding in some comments for my + previous checkin and also adding in the integer functions that + I forgot (but aren't used yet). + +2004-03-14 Jon Phillips <jon@jonphillips.info> + + * src/toolbox.cpp src/verbs.cpp src/interface.cpp + share/icons/icons.svg: Added all the icons in the VIEW + menu. They might need some tweaking, but its a start. Also + cleaned up some coding conventions for these files. + +2004-03-14 Bryce Harrington <bryce@bryceharrington.com> + + * src/view.cpp: Adding an accumulator function for checking + return values of shutdown signal handlers, so that if any one of + them returns a value indicating an abort of the shutdown, the + shutdown process will be aborted. + +2004-03-14 Ted Gould <ted@gould.cx> + + * src/extension/extension.cpp, src/extension/extension.h, + src/extension/internal/ps.cpp: Adding in parameters for extensions. + This will make it so that extensions can have easy settings that + are used. They are not currently persistent - but that will be + a future feature. + +2004-03-14 MenTaLguY <mental@rydia.net> + + * src/ast/*: more AST sketching + + * src/xml/repr.cpp: existing listeners were getting dropped when new + listeners were added; this fix makes the behavior documented in + bug #896706 a little worse, but fixes bug #915913 + + * src/sp-use.cpp: SPUse does not need to manually detach its child + anymore, so now it doesn't + + * src/sp-object.cpp: detach our SPRepr listener before we start + releasing our children, which makes listener removal faster (since + we are then always removing from the beginning of the listener + list -- i.e. removing in roughly the order in which they were added) + This should help bug #896706 a little more. + + * src/event-context.cpp, src/node-context.cpp, src/rect-context.cpp, + src/sp-object.cpp, src/sp-offset.cpp, src/dialogs/desktop-properties.cpp, + src/dialogs/xml-tree.cpp, src/widgets/sp-widget.cpp, + src/widgets/sp-xmlview-attr-list.cpp, src/widgets/sp-xmlview-tree.cpp, + src/xml/repr-private.h, src/xml/repr-util.cpp, src/xml/repr.cpp, + src/xml/repr.h: + SPObjects now ::write() immediately on attribute changes, if those + changes are "interactive" (i.e. from the XML editor); this fixes + the problem with SPStar's points= attribute updating (bug #910142) + + * src/sp-clippath.cpp, src/sp-mask.cpp, src/sp-namedview.cpp, + src/sp-root.cpp, src/sp-symbol.cpp: + simplified SPObject::remove_child handlers, focusing particularly + on making them not rely on the repr still being attached + + * src/sp-object.cpp: SPObject::remove_child is now invoked after + the repr has been removed (fixes bug #916188) + + * src/text-context.cpp: don't unparent the repr if it's already + been unparented (fixes bug #915435) + +2004-03-14 rejon <jon@protofunk.org> + + * src/toolbox.cpp share/icons/icons.svg: Cleaned the file up to coding + standards. I also have begun to add new icons to our program. + +2004-03-13 MenTaLguY <mental@rydia.net> + + * src/document.cpp: bumped the update limit on documents a bit + (bug #896076) + + * src/sp-text.cpp: SPString now copes with parents that don't have style + information (comment on bug #896706) + + * src/xml/repr.cpp, src/xml/repr-private.h: + adding listeners is now O(1), which should make files which make heavy + use of <use> more tolerable; I decided to add an extra "last" pointer + rather than just prepending to the list (which would have reversed + its order, and make the common case for removal traverse the entire + list -- removal is still O(N) overall, but at least this way we usually + hit the best-case) (bug #896076) + +2004-03-11 bulia byak <bulia@users.sourceforge.net> + + * src/sp-item.h src/sp-item.cpp: Restore i2root_affine: same as i2doc but + without c2p, fixes 914039 + + * src/selection-chemistry.cpp: Grouping z-order fix + + * src/path-chemistry.cpp: Combine/Break Apart fixes: preserve z-order and + parent, diagnostics, multiple selected, cleanup, fixes + + * src/libnrtype/nr-type-directory.cpp: Fix win32 memory hog (unfreed + g_ascii_tolower in ink_strstr), implement caching of looked-up faces + +2004-03-10 bulia byak <bulia@users.sourceforge.net> + + * src/sp-offset.cpp: Coalesce threshold depends on item size (less transform), + guarding against invalid item bbox, comments + + * src/sp-text.cpp: TODO comment for effective_dx/dy + + * src/splivarot.cpp src/preferences-skeleton.h: Inset/Outset handle multiple + selections, preserve z-order and grouping; Simplify handles multiple + selections, preserves z-order and grouping, threshold taken from prefs, + accelerated + + * src/node-context.cpp src/text-context.cpp: Disregard groups when clicking + + * src/shortcuts.cpp: Ctrl+/ for division, ctrl-alt-/ for slice (cut path), + bigger window for keys + + * src/rect-context.cpp src/rect-context.h: Knotholder, signals and listeners, + selection by click, tolerance, Esc deselects + + * src/toolbox.cpp: Rect toolbar: Spinbuttons cosmetics, keys, defocusing, + tooltips, fixes + + * src/shortcuts.cpp: Ctrl+e zooms to window, export is ctrl+shift+e now + + * src/selection-chemistry.cpp: Z-order fixes: Raise rewritten, diagnostics, + relative raise/lower only for overlapping objects + + * src/verbs.cpp: raise/lower commands named more consistently + + * src/sp-item.cpp src/sp-item.h: Sorting function for items + + * src/selection-chemistry.cpp: fix for 910017 + + * src/splivarot.cpp: Remove fill for slice + +2004-03-09 rejon <jon@protofunk.org> + + * samples: Moved the contents of samples into the proper share dirs. + + * share/tutorials/tutorial.svg: Moved the default tutorial.svg to this + location. It was in the wrong place. + + * share/tutorials/elementsofdesign.svg src/help.cpp src/interface.cpp: + Added the textual gloss of this new tutorial. I need to add some + more graphics to it. But I just wanted to first of all flesh out + the document so that others could chunk in graphics and so + forth. + +2004-03-09 MenTaLguY <mental@rydia.net> + + * src/ast/*: more AST work + + * src/sp-text.cpp: fixed uninitialized variable + + * src/sp-text.cpp: rewrote recursive character-counting algorithm + +2004-03-08 MenTaLguY <mental@rydia.net> + + * src/sp-text.cpp: fixes for initialization and updating of SPString + +2004-03-07 MenTaLguY <mental@rydia.net> + + * src/sp-item.cpp: the item's arenaitems shouldn't be destroyed until + its children have had a chance to clean up + + * src/sp-object.cpp: fix sp_object_reorder() to correctly handle + next == NULL + + * src/sp-item.cpp, src/sp-object-group.cpp, src/sp-object-repr.cpp, + src/sp-object.cpp, src/sp-object.h, src/sp-text.cpp, src/sp-use.cpp: + finished transition to SPObject::children + + * src/sp-text.cpp: reworked SPTSpan a bit so that it copes with + the child changes a little better with respect to SPTSpan::string + +2004-03-06 MenTaLguY <mental@rydia.net> + + * src/ast/*: initial work on AST code + + * src/libnr/nr-convex-hull-ops.h, src/libnr/nr-convex-hull.h, + src/libnr/nr-matrix-fns.h, src/libnr/nr-maybe.h, + src/libnr/nr-rect-ops.h: + basic cleanups and work on NR::ConvexHull + + * src/document.cpp, src/gradient-chemistry.cpp, + src/selection-chemistry.cpp, src/selection.cpp, src/sp-clippath.cpp, + src/sp-defs.cpp, src/sp-defs.h, src/sp-gradient.cpp, src/sp-gradient.h, + src/sp-item-group.cpp, src/sp-item-group.h, src/sp-item.cpp, + src/sp-item.h, src/sp-mask.cpp, src/sp-namedview.cpp, + src/sp-object-group.cpp, src/sp-object-group.h, src/sp-object-repr.cpp, + src/sp-object.cpp, src/sp-object.h, src/sp-pattern.cpp, src/sp-pattern.h, + src/sp-root.cpp, src/sp-text.cpp, src/sp-text.h, + src/widgets/gradient-vector.cpp: + + children are now uniformly handled by SPObject + +2004-03-05 bulia byak <bulia@users.sourceforge.net> + + * src/desktop.cpp src/preferences-skeleton.h: Autoscroll now accepts + distance-from-edge parameter, may be negative, default is + options.autoscrolldistance = -10 + + * src/style.cpp src/style.h src/document.cpp: Store uri for paintsever and + serialize it back instead of paintserver id. find_items functions do not find + insensitive items by default. + + * src/sp-item.cpp: tentative fix: do not remove style attribute if + write_difference fails or object has no parent + + * src/desktop-events.cpp: transientize guide dialog + + * splivarot.cpp, livarot/*: fred's new rasterizer, fixes + + * src/widgets/gradient-vector.cpp: fix 906301 + + * src/dialogs/text-edit.cpp: do not rebuild text of object if not changed in the + dialog, fixes 906279 + + * src/selection.cpp: suppress a few meaningless warnings + + * src/xml/repr.cpp: fix for 907056, 906222 + + * about.svg: redrawn from rejon's draft, with a highlight on lauris :) + + * libnrtype: Full font-variant, font-weight, font-stretch support. Better family + and style matching algorithm. Support for generic families and multiple family + specifications. Xft sees all font styles, reads pfa fonts again. Font styles + are sorted in the list and use the native style names with Xft. + + * src/sp-text.cpp,h src/text-context.cpp: Keys, function for adjusting linespacing + + * keys.xml,svg,html: Linespacing keys + +2004-03-05 Peter Moulder <pmoulder@mail.csse.monash.edu.au> + + * src/draw-context.cpp (fit_and_split, + sp_pencil_context_root_handler, spdc_add_freehand_point): + * src/dyna-draw-context.cpp (sp_dyna_draw_timeout_handler, + sp_dyna_draw_context_root_handler, fit_and_split_line, + fit_and_split_calligraphics): + Cleanups. + + * src/Makefile.am: Fix missing backslash at end of line. + +2004-03-05 Ted Gould <ted@gould.cx> + * src/extension/impelementation/implementation.cpp, + src/extension/impelementation/implementation.h, + src/extension/impelementation/script.h, + src/extension/impelementation/script.cpp: + Adding in some more comments and doing some general cleanup + of the code. It is getting better everyday. + +2004-03-05 Ted Gould <ted@gould.cx> + + * src/Makefile.am: Adding back in inkview. This was fixed by + Bob, but he didn't add it back in. It's back in the build now. + Thanks Bob for fixing my mistakes! + +2004-03-04 Ted Gould <ted@gould.cx> + + * src/extension/extension.h: Cleaning up and adding comments. + +2004-03-04 Peter Moulder <pmoulder@mail.csse.monash.edu.au> + + * src/livarot/Shape.cpp (Distance): Convert to DistanceLE(p, d) + function returning true iff Distance(p) <= d. (Saves 7% of total + inkscape CPU time for "big scribbles" test cases.) Update callers. + +2004-03-04 Ted Gould <ted@gould.cx> + + * src/extension/system.cpp, src/extension/system.h, + src/extension/extension.cpp, src/extension/extension.h, + src/extension/init.cpp, src/extension/internal/gnome.cpp, + src/extension/internal/ps.cpp, src/extension/internal/svg.cpp, + src/extension/internal/win32.cpp: + Making it so that an implementation is a require element to + build an extension. This means that checking for one in every + other function is not required. Makes a touch more sense. + +2004-03-04 Jon A. Cruz <jon@joncruz.org> + + * src/file.cpp, src/interface.cpp, src/inkscape-stock.cpp, + src/sp-image.cpp, src/helper/png-write.cpp, + src/widgets/icon.cpp: + Fixed filename/URI translation to keep UTF-8 internally. + +2004-03-03 Peter Moulder <pmoulder@mail.csse.monash.edu.au> + + * src/seltrans.cpp (sign): + New function to replace `FOO / fabs(FOO)' expressions in various places. + * src/seltrans.cpp (sp_sel_trans_stretch_request, sp_sel_trans_stretch): + Fix #906221. Also change the behaviour to allow growing. + + * src/libnr/nr-scale.h: operator[]: new versions returning writable reference. + + * src/desktop-snap.h, src/desktop-snap.cpp + (sp_desktop_vector_snap_list): + Change final arg from NR::Point to NR::scale. Update callers. + +2004-03-02 Ted Gould <ted@gould.cx> + + * src/Makefile.am, src/print.cpp, + src/extension/db.cpp, src/extension/db.h, + src/extension/extension.cpp, src/extension/extension.h, + src/extension/system.cpp, src/extension/system.h, + src/extension/init.cpp, src/extension/menu.cpp, + src/extension/impelementation/Makefile.am, + src/extension/impelementation/implementation.cpp, + src/extension/impelementation/implementation.h, + src/extension/impelementation/script.h, + src/extension/impelementation/script.cpp, + src/extension/internal/gnome.cpp, src/extension/internal/gnome.h, + src/extension/internal/ps.cpp, src/extension/internal/ps.h, + src/extension/internal/svg.cpp, src/extension/internal/svg.h, + src/extension/internal/win32.cpp, src/extension/internal/win32.h: + + Turning the extensions stuff into having C++ objects instead + of GTK+ objects. This affected a lot of files. + +2004-03-02 Peter Moulder <pmoulder@mail.csse.monash.edu.au> + + * src/helper/curve.h, src/helper/curve.cpp + (sp_curve_new_from_foreign_bpath and many static functions): + Mark various ArtBpath[] parameters as not being written to. + + * src/draw-context.cpp (fit_and_split): Fix to fix to edge case in + freehand tool. (Hopefully to be replaced by different approach.) + + * src/dialogs/transformation.cpp (sp_transformation_move_apply, + sp_transformation_scale_apply, sp_transformation_rotate_apply, + sp_transformation_skew_apply): + Remove unused `copy' parameter. Update caller. + + * src/dialogs/align.cpp, src/dialogs/transformation.cpp: Cleanups. + + * src/display/nr-arena-shape.cpp (nr_arena_shape_set_path): + Remove affine argument (all current callers were passing NULL) and + unused `lieutenant' argument. Update callers. + + * src/selection-chemistry.h, src/selection-chemistry.cpp + (sp_selection_delete, sp_selection_duplicate, sp_edit_clear_all, + sp_edit_select_all, sp_selection_group, sp_selection_ungroup, + sp_selection_raise, sp_selection_raise_to_top, sp_selection_lower, + sp_selection_lower_to_bottom, sp_selection_cut, sp_selection_copy, + sp_selection_paste, sp_selection_paste_style): + Remove unused parameters. Update callers. + +2004-03-01 Nathan Hurst <njh@mail.csse.monash.edu.au> + + * src/draw-context.cpp: Fixed edge case in freehand tool. Added + comment about curve fitting. + +2004-03-01 Peter Moulder <pmoulder@mail.csse.monash.edu.au> + + * src/sp-guide.cpp (sp_guide_set_property, sp_guide_get_property): + Minor cleanups. + + * src/interface.h, src/interface.cpp + (sp_ui_new_view, sp_ui_new_view_preview): Make static. + + * src/dyna-draw-context.cpp (sp_ddc_defaults): + * src/rect-context.cpp (sp_rc_defaults): + Cleanup: Use table and loop instead of copy&paste. + + * configure.in: If -Wno-unused-parameter isn't recognized (g++ 3.2 and + earlier) then use -Wno-unused. + + * src/libnr/nr-point.h: NR::Point: Add explicit copy constructor and + operator= in the hope of fixing #907059. + + * src/desktop-events.cpp (sp_dt_ruler_event): NR::Point'ification. + + * src/selection.cpp (sp_selection_item_selected): + * src/seltrans.cpp (sp_sel_trans_stretch_request): + * src/display/nr-arena-shape.cpp (shape_run_A8_OR): + * src/livarot/PathStroke.cpp (DoJoin): + * src/livarot/ShapeMisc.cpp (ReFormeBezierTo): + Address compiler warnings. + +2004-02-28 Jon Phillips <jon@protofunk.org> + + * share/*: Move extensions, icons, and made a new folder screens + for screens that are pulled up in using inkscape. Please test + this heavily as it implements the most troublesome chunks of the + directory reorganization. + + * Makefile.am, Makefile.mingw, config.h.mingw, configure.in: + Changed to coincide with the new changes. + +2004-02-28 Nathan Hurst <njh@mail.csse.monash.edu.au> + + * src/nodepath.cpp,h: Moved radial to class Radial. Moved + NodePath into namespace Path and partially classified. + +2004-02-28 Peter Moulder <pmoulder@mail.csse.monash.edu.au> + + * src/nodepath.cpp: Mark several functions as static. + + * src/dialogs/stroke-style.cpp: Rename DEBUG_MARKERS ifdef to + WITH_MARKER_GUI, and make more things conditional on it. + (Fixes failing assertion for the !defined case.) + +2004-02-27 Alexander Clausen <alex@skip86.com> + + * src/desktop-events.cpp: fix my last fix *sigh* + + * src/inkview.cpp: fix inkview crash when none of the files + on commandline exist, add very basic error reporting + +2004-02-27 Peter Moulder <pmoulder@mail.csse.monash.edu.au> + + * src/dialogs/stroke-style.cpp (sp_stroke_style_set_marker_buttons): + Cleanup: restructure. + + * src/dialogs/Makefile.am: in-dt-coordsys.cpp, in-dt-coordsys.h: + New files. + * src/dialogs/xml-tree.cpp (set_dt_select): Fix bug when clicked on a + shape that's a descendent of a <defs> node: don't try to select it + in the canvas. + +2004-02-26 Peter Moulder <pmoulder@mail.csse.monash.edu.au> + + * src/dialogs/stroke-style.cpp: + Fix: free marker_xpm[i] instead of marker_xpm. + Misc cleanups. + + * src/Makefile.am: New files extract-uri.cpp, extract-uri.h. + New unit test extract-uri-test.cpp. + * src/style.cpp (extract_uri): Move to src/extract-uri.cpp, and fix. + + * src/Makefile.am (inkscapelib_src): + marker-status.h, marker-status.cpp: New files. + * src/dialogs/stroke-style.cpp, src/sp-shape.cpp, src/style.cpp: + Change marker debugging status messages from conditional g_message + to unconditional marker_status call. + + * src/dialogs/stroke-style.cpp (marker_id_to_string): + Remove unused function. + +2004-02-24 Alexander Clausen <alex@skip86.com> + + * src/desktop-events.cpp: Fix crash when opening the guide dialog for + the second time + +2004-02-24 bulia byak <bulia@users.sourceforge.net> + + * src/helper/sodipodi-ctrlrect.cpp: A smart always-visible inversion for ctrlrect border + + * src/select-toolbar.cpp: Fix for 873723 + + * src/style.h src/style.cpp: write_difference only writes what is .set in the target style + + * src/selection-chemistry.cpp: Paste style merges the style of the clipboard + with the object's current style + + * src/xml/repr-io.cpp: Do not cut leading/trailing whitespace on text nodes, + only reject all-whitespace nodes + + * src/pixmaps/handles.xpm src/seltrans.cpp src/knot.cpp src/nodepath.cpp + src/helper/sodipodi-ctrl.cpp: Changed xor compositing for ctrls, made seltrans + handles inverse, tweaked knot colors + + * doc/keys-html.xsl doc/keys.html: keys.html now validates + + * src/desktop.cpp src/desktop.h: New function to autoscroll desktop so a point + becomes visible + + * src/rubberband.cpp src/select-context.cpp src/nodepath.cpp: Use the new + function to scroll desktop to a point + + * src/desktop.cpp src/preferences-skeleton.h: options.autoscrollspeed + +2004-02-24 Peter Moulder <pmoulder@mail.csse.monash.edu.au> + + * src/libnr/nr-matrix.h: Add `explicit' to Matrix constructors + from rotate/scale/translate, to reduce the number of mysterious + implicit conversions used in client code. + Don't #include nr-rotate-ops.h, nr-scale-ops.h, nr-translate-ops.h. + + * src/selection-chemistry.cpp (sp_selection_apply_affine): + Change final argument from double[6] to NR::Matrix. + Update callers. + (sp_selection_scale_relative): Change from dx,dy to NR::scale argument. + Update callers. + (sp_selection_scale, sp_selection_scale_times): Cleanup. + + * src/libnr/Makefile.am: + New files nr-rotate-test.cpp, nr-scale-test.cpp, nr-translate-test.cpp. + * src/libnr/nr-matrix-test.cpp: Move lots of things to the new files. + Add tests for the operator* additions of 2004-02-23. + Don't #include .cpp files where linking against them suffices. + + * src/livarot/Makefile.am (Path_test_LDADD): Fix order of libs. + + * src/select-toolbar.cpp (sp_object_layout_any_value_changed): + NR::Matrix'ification. + +2004-02-23 MenTaLguY <mental@rydia.net> + + * src/selection-chemistry.cpp, src/selection-chemistry.h, + src/seltrans.cpp, src/seltrans.h, src/verbs.cpp, + src/dialogs/transformation.cpp, src/libnr/nr-point-fns.h, + src/libnr/nr-point.h, src/libnr/nr-rect.h: more NRPoint removal + +2004-02-23 Peter Moulder <pmoulder@mail.csse.monash.edu.au> + + * src/sp-item-transform.cpp (sp_item_rotate_rel): + Use NR::Rect and .midpoint. + + * src/dropper-context.cpp (sp_dropper_context_root_handler): + * src/sp-text.cpp (sp_string_set_shape): + Cleanup: use translate rather than setting individual matrix elements. + + * src/libnr/nr-matrix-ops.h (operator*: Matrix*rotate, translate*scale, + scale*translate, Matrix*scale): New functions. + +2004-02-22 Ted Gould <ted@gould.cx> + + * src/extension/Makefile.am, src/extension/implementation/Makefile.am, + src/Makefile.am, po/POTFILES.in, po/*.po (because of previous change): + Okay, I screwed up. Here are some distcheck fixes for various + things. Still not entirely clean. But these are much closer + than we were. + +2004-02-22 Ted Gould <ted@gould.cx> + + * src/modules -> src/extensions: + Changing the directory name so that it fits the new naming + conventions that we're working with. + +2004-02-23 Peter Moulder <pmoulder@mail.csse.monash.edu.au> + + * src/desktop.cpp (sp_desktop_init, sp_desktop_set_display_area): + * src/libnrtype/nr-font.cpp (nr_font_generic_glyph_outline_get): + * src/libnrtype/nr-typeface.cpp (nr_font_new_default): + Don't use implicit NR::Matrix conversions. + + * src/libnr/nr-translate-ops.h (operator!=): new. + + * src/sp-item.h, src/sp-item.cpp (sp_item_bbox_desktop): + Add NR::Rect version. + + * src/inkview.cpp: Address compiler warning: declare is_jar iff it is + defined, i.e. #ifdef WITH_INKJAR. + + * src/desktop-snap.cpp, src/desktop.h, src/object-edit.cpp, + src/sp-root.cpp, src/livarot/PathConversion.cpp, + src/widgets/sp-color-wheel.cpp: + Add some #include's to reduce how much nr-matrix.h must pull in. + + * src/desktop-affine.cpp, src/knotholder.cpp, + src/desktop-events.cpp, src/nodepath.cpp, src/sp-ellipse.cpp, + src/sp-image.cpp, src/sp-item-notify-moveto.cpp, src/sp-rect.cpp, + src/text-context.cpp: + #include libnr/nr-matrix-ops.h. + +2004-02-22 Ted Gould <ted@gould.cx> + + * doc/Makefile.am, po/POTFILES.in: keeping these up to date + for distchecks. + +2004-02-21 Ted Gould <ted@gould.cx> + + * extensions/txt2svg.inkmod, extensions/txt2svg.pl: + Adding a script that Bryce wrote that will take in text. Plus + the inkscape module file to make it so that you can open text + files in Inkscape. + +2004-02-21 MenTaLguY <mental@rydia.net> + + * src/xml/repr-util.cpp, src/xml/repr.h: added RDF namespace by default + + * src/inkscape.cpp, src/inkscape.h, src/widgets/sp-widget.cpp, + src/inkview.cpp: nuked global 'inkscape' variable and replaced + it with a module-local variable and an accessor function. + + * src/uri.h, src/uri.c: added native filename to/from thingy + +2004-02-20 bulia byak <bulia@users.sourceforge.net> + + * src/text-context.cpp: [shift+]alt+arrows to kern + + * src/sp-text.cpp,h: Complete support for dx/dy vectors, including inheritance + as per SVG spec. Preserve dx/dy lists in editing. Function to adjust dx/dy by + screen pixels. + + * src/svg/svg-length.cpp: Function to read length in absolute units + only. Function to read a length into a float instead of SPSVGLength. Function + to read a length vector into a list of SPSVGLength's. + + * src/sp-root.cpp src/sp-image.cpp src/sp-offset.cpp src/sp-spiral.cpp: + Eliminated sp_svg_length_read_ldd calls and ugly repetitive unit checks, used + sp_svg_length_read_[computed_]absolute instead. + + * doc/keys.xml doc/keys.html icons/keys.svg: Updated guide and grid + shortcuts. Added paste in place, more notes. Added kerning keys and notes. + + * src/libnrtype/nr-type-ft2.cpp: Crash fix, patch 895344. + + * src/sp-namedview.cpp src/sp-namedview.h: Proper showguides support, functions + for toggling guides and grid. + + * src/desktop-events.cpp: Turn showguides on when creating a new guide. + + * src/verbs.cpp: Used the new toggle functions for showguides and showgrid. + + * src/interface.cpp: Added Guides to View. + + * src/xml/repr-util.cpp: sp_repr_get_boolean fix. + + * src/dialogs/desktop-properties.cpp: Reenabled showguides support, added + namedview listener to reflect outside changes to the namedview. + +2004-02-20 Peter Moulder <pmoulder@mail.csse.monash.edu.au> + + * Lots of files: Refine #include's according to reorganization of + libnr/nr-types.h and libnr/nr-matrix.h. + + * src/libnr/Makefile.am (libnr_a_SOURCES): + nr-coord.h nr-dim2.h nr-i-coord.h nr-matrix-ops.h nr-point-l.h + nr-point-ops.h nr-point.h nr-rect-l.h nr-rotate.h nr-rotate-ops.h + nr-scale-ops.h nr-scale.h nr-translate-ops.h nr-translate.h: + New files; code moved from nr-types.h and nr-matrix.h. + * src/libnr/nr-matrix.h: + * src/libnr/nr-types.h: + #include the new files. + + * src/desktop-affine.h, src/desktop-affine.cpp + (sp_desktop_w2d_xy_point, sp_desktop_d2w_xy_point, + sp_desktop_w2doc_xy_point, sp_desktop_doc2w_xy_point, + sp_desktop_d2doc_xy_point, sp_desktop_doc2d_xy_point, + sp_desktop_root2dt_xy_point, sp_desktop_dt2root_xy_point): + Remove old NRPoint versions of these functions. + + * src/select-toolbar.cpp: + * src/toolbox.cpp: + * src/widgets/spw-utilities.cpp: + Remove unused #include sp-item-transform.h. + + * src/sp-item-transform.cpp (sp_item_rotate_rel): NR::Matrix'ification. + + * src/sp-item-transform.h, src/sp-item-transform.cpp + (sp_item_scale_rel, sp_item_skew_rel): Remove these unused functions. + + * src/sp-item-transform.h, src/sp-item-transform.cpp + (sp_item_rotate_rel, sp_item_move_rel): Change from pair of points to + NR::rotate and NR::translate respectively. Update callers. + + * src/node-context.cpp (sp_node_context_root_handler): + * src/rect-context.cpp (sp_rect_context_root_handler): + * src/zoom-context.cpp (sp_zoom_context_root_handler): + NR::Point'ification and var cleanup. + + * src/event-context.cpp + (sp_event_context_private_root_handler, set_event_location): + * src/dialogs/align.cpp (sp_align_arrange_clicked): + NR::Point'ification. + + * src/desktop.h (sp_desktop_zoom_relative_keep_point, + sp_desktop_scroll_world): Add NR::Point version. + +2004-02-19 Johan Ceuppens <jceuppen@easynet.be> + + * src/inkjar/jar.cpp, src/inkjar/jar.h src/inkview.cpp: + inkview accepts .jar archives of SVG files on the command line. + +2004-02-19 Peter Moulder <pmoulder@mail.csse.monash.edu.au> + + * src/Makefile.am: sp-item-rm-unsatisfied-cns.cpp, + sp-item-rm-unsatisfied-cns.h, sp-guide-attachment.h, + sp-item-notify-moveto.cpp, sp-item-notify-moveto.h, + sp-guide-constraint.h, satisfied-guide-cns.cpp, + satisfied-guide-cns.h, sp-item-update-cns.cpp, + sp-item-update-cns.h: New files. + * src/desktop-events.cpp (sp_dt_guide_event): + * src/seltrans.cpp (sp_sel_trans_ungrab): + * src/sp-guide.cpp (sp_guide_moveto, sp_guide_remove): + * src/sp-guide.h: + * src/sp-item.cpp (sp_item_set): + * src/sp-item.h: + Make snap-to-guide more persistent. (Still not saved to XML though.) + + * src/sp-spiral.cpp (sp_spiral_fit_and_draw, sp_spiral_set_shape): + Address NRPoint warning. + + * src/widgets/icon.cpp (sp_icon_paint): Cleanup. + + * src/libnr/nr-types.h: Change deprecated-cast warning from runtime + to compile-time. + + * src/helper/sp-canvas.h, src/helper/sp-canvas.cpp + (sp_canvas_world_pt_inside_window): New function. + +2004-02-18 MenTaLguY <mental@rydia.net> + + * src/widgets/icon.cpp, src/widgets/icon.h: rewrote to use gdk for + compositing; now it looks tolerable with ANY theme! + + * src/dialogs/item-properties.cpp: slight stabs at implementing "visible" + + * src/libnr/nr-types.h: added warning for deprecated casts + +2004-02-18 Peter Moulder <pmoulder@mail.csse.monash.edu.au> + + * src/dialogs/align.cpp (sp_align_arrange_clicked): Cleanup. + + * src/sp-item-transform.cpp (sp_item_move_rel): NR::Matrix'ification. + + * src/desktop-events.cpp (sp_dt_guide_event): Get guide line dialog + working again: double-click on a guide to show the guide dialog. + + * src/utest/utest.h (UTEST_NAMED_ASSERT): + Wrap this macro in static_cast<void>(). + +2004-02-17 MenTaLguY <mental@rydia.net> + + * src/interface.cpp: fixed signal connection in recent items menu + + * src/file.cpp: fix compile and pass UTF-8 "URIs" down to module code + +2004-02-17 Peter Moulder <pmoulder@mail.csse.monash.edu.au> + + * src/sp-guide.h, src/sp-guide.cpp (sp_guide_moveto, + sp_guide_position_set): + Combine into a single sp_guide_moveto routine accepting a `commit' + argument. Update callers. + +2004-02-16 MenTaLguY <mental@rydia.net> + + * src/interface.cpp: fixed bug with underscores in 'open recent' filenames + + * src/libnr/nr-rect.h, src/libnr/nr-types.h: moved NR::Rect to nr-rect.h, + minor updates + + * src/libnr/nr-maybe.h: continued work on maybe implementation + + * src/libnr/nr-types.h, src/libnr/nr-rect.cpp, src/libnr/nr-maybe.h, + src/seltrans.cpp: + started on revising the NR::Rect stuff, and introduced NR::ConvexHull + +2004-02-16 Peter Moulder <pmoulder@mail.csse.monash.edu.au> + + * src/xml/repr.cpp (sp_repr_document_root): Fix typo in most recent commit. + +2004-02-14 MenTaLguY <mental@rydia.net> + + * src/svg/svg-path.cpp: switched to locale-safe iostreams-based path + serialization. + + * src/xml/repr-io.cpp, src/xml/repr.cpp, src/widgets/sp-xmlview-tree.cpp, + src/widgets/sp-xmlview-content.cpp, src/dialogs/xml-tree.cpp: + basic support for XML comments + +2004-02-14 bulia byak <bulia@users.sourceforge.net> + + * src/dialogs/dialog-events.cpp: Added UTILITY hint to sp_transientize() + + * po/fr.po: Update from f.rodrigo@tuxfamily.org + + * src/interface.cpp: Fix for underscore in the recent files menu, by alxrem + + * src/event-context.cpp src/preferences-skeleton.h: Accelerated scrolling by Ctrl-arrows + + * src/event-context.cpp: Ctrl-middle-click zooms in + + * doc/keys.xml doc/keys-svg.xsl doc/keys-html.xsl doc/keys.html icons/keys.svg: + Updated middle and right buttons scroll/zoom, cosmetics + + * src/shortcuts.cpp: Menu shortcut fix + + * src/verbs.cpp,h: New verb: deselect + + * src/selection.cpp,h: Removed unused function + + * src/interface.cpp: Removed Edit/Clear All, added Edit/Deselect. Comment fix + + * src/toolbox.cpp: Spelling fix: symmetric, not symmetrical + + * src/desktop.cpp,h: sp_desktop_point(): returns mouse point in document coordinates + + * src/selection-chemistry.cpp,h: sp_selection_paste obeys in_place parameter + + * src/verbs.cpp src/verbs.h src/shortcuts.cpp: Paste in place verb, shortcut + + * src/interface.cpp: Paste In Place command in Edit + + * src/selection-chemistry.cpp: Toolbar message fix + +2004-02-14 MenTaLguY <mental@rydia.net> + + * src/libnr/nr-types.h: added intersects() and contains() tests + for points and rects + +2004-02-13 Peter Moulder <pmoulder@mail.csse.monash.edu.au> + + * src/selection.cpp (sp_selection_snappoints): + * src/sp-image.cpp (sp_image_snappoints): + * src/sp-item.cpp (sp_item_private_snappoints): + Don't use more than two opposite points of bounding box. + + * src/seltrans.cpp (sp_show_handles): Add precondition !seltrans.empty. + * src/proofs: Update accordingly. + * src/seltrans.cpp: Change seltrans from pointer to reference in + several places. + +2004-02-13 Johan Ceuppens <jceuppen@easynet.be> + + * src/inkjar/{jar.cpp,jar.h}: changed some file offsets, + uncompressing multiple files in a jar works now. There + is an improved testing program at the end of jar.cpp. + +2004-02-12 Peter Moulder <pmoulder@mail.csse.monash.edu.au> + + * src/seltrans.cpp (sp_sel_trans_update_volatile_state): + Minor cleanups. + + * src/desktop-snap.h, src/desktop-snap.cpp + (sp_desktop_horizontal_snap, sp_desktop_vertical_snap, + sp_desktop_horizontal_snap_list_scale, + sp_desktop_vertical_snap_list_scale, + sp_desktop_horizontal_snap_list_skew, + sp_desktop_vertical_snap_list_skew): + Remove these now-unused functions. + + * src/arc-context.cpp (sp_arc_drag): + * src/rect-context.cpp (sp_rect_drag): + Simplification: use sp_desktop_dim_snap instead of + sp_desktop_horizontal_snap / sp_desktop_vertical_snap. + + * src/desktop-snap.cpp (sp_desktop_vector_snap): Minor cleanups. + + * src/libnr/Makefile.am, src/libnr/nr-point-fns-test.cpp: + New unit test file nr-point-fns-test.cpp. + + * src/libnr/nr-point-fns.h, src/libnr/nr-point-fns.cpp (unit_vector): + New function. + + * src/livarot/Path.h: Trim unnecessary includes. + + * src/livarot/LivarotDefs.h: #include <stdint.h> (moved from Path.h). + + * src/livarot/PathOutline.cpp, src/livarot/PathSimplify.cpp, + src/livarot/PathStroke.cpp, src/sp-offset.cpp: + #include libnr/nr-point-fns.h. + +2004-02-12 MenTaLguY <mental@rydia.net> + + * src/xml/repr-util.cpp, src/xml/repr.h: pruned some obsolete + functions + +2004-02-12 Johan Ceuppens <jceuppen@easynet.be> + + * configure.in src/Makefile.am: --with-inkjar (default no) + * src/inkjar/Makefile.am src/inkjar/jar.cpp src/inkjar/jar.h: + inital import of libinkjar, this can be moved to LGPL after + rewriting the macros. + +2004-02-11 Peter Moulder <pmoulder@mail.csse.monash.edu.au> + + * src/seltrans.cpp (sp_sel_trans_handle_new_event, + sp_sel_trans_handle_request): NR::Point'ification. + + * src/seltrans-handles.cpp, src/seltrans-handles.h, src/seltrans.cpp: + Preserve constness of SPSelTransHandle's. + + * src/sp-item.h, src/sp-item.cpp (sp_item_set_item_transform): + Make static. Use NR::Matrix, and avoid NULL special case. + Update callers. + + * src/sp-item.h, src/sp-item.cpp (sp_item_set_i2d_affine): + Get rid of NRMatrix version. + Calculate 1.25 directly rather than less accurate reciprocal of 0.8. + + * src/libnr/nr-matrix.h, src/libnr/nr-matrix.cpp (matrix_equalp): + New function. + (assert_close): Use matrix_equalp. + + * src/seltrans.h, src/seltrans.cpp (sp_sel_trans_transform): + Get rid of non-NR::Point version. Make affine argument const. + Update callers. + + * src/desktop-events.cpp (sp_dt_guide_event): NR::Point'ification. + + * src/view.h (sp_view_set_position): Add NR::Point version. + + * src/desktop.h (sp_desktop_set_coordinate_status): + Add NR::Point version. + +2004-02-09 bulia byak <bulia@users.sourceforge.net> + + * doc/keys.xml doc/keys-svg.xsl: Keys and Mouse Reference: source, SVG stylesheet + + * icons/keys.svg: Keys SVG chart (generated, do not edit) + + * icons/Makefile.am: Added keys.svg + + * src/help.cpp src/help.h src/interface.cpp: Added Keys and Mouse command + + * doc/keyboard-shortcuts.txt Obsoleted, removed + + * doc/keys-html.xsl doc/keys.html: Keys reference in HTML, stylesheet for HTML + + * doc/Makefile.am: updated + + * src/libnr/nr-pixblock.cpp: A better fix for 859364 + + * src/libnrtype/nr-rasterfont.cpp: Reverting my previous fix for 859364, a better + one is in nr-pixblock.cpp + + * icons/tutorial.svg: Switched to Bitstream Vera, updated tutorial + + * src/file.cpp: Fix for save bug 891852 + + * src/preferences-skeleton.h: transientpolicy=1 again + + * src/nodepath.cpp: Ctrl-Alt-drag fix in point_line_closest() + + * src/select-toolbar.cpp: Small space before unit selector + + * src/widgets/paint-selector.cpp: Hidden buttons removed + +2004-02-09 MenTaLguY <mental@rydia.net> + + * src/interface.cpp: disabled the autoraise checkbox on Windows + + * src/widgets/paint-selector.cpp, src/widgets/paint-selector.h: + removed unused selector-type buttons (with Bulia) + +2004-02-09 Jon A. Cruz <jon@joncruz.org> + + * src/widgets/sp-color-wheel.h, src/widgets/sp-color-wheel.cpp, + src/widgets/sp-color-wheel-selector.h, + src/widgets/sp-color-wheel-selector.cpp, + src/widgets/sp-color-gtkselector.cpp, + src/widgets/sp-color-notebook.cpp + Added new, smaller color wheel selector. + +2004-02-09 Peter Moulder <pmoulder@mail.csse.monash.edu.au> + + * src/desktop-affine.cpp, src/desktop-snap.cpp, + src/desktop-snap.h, src/desktop.cpp, src/knotholder.cpp, + src/nodepath.cpp, src/selection-chemistry.cpp, src/seltrans.cpp, + src/seltrans.h, src/sp-ellipse.cpp, src/sp-image.cpp, + src/sp-item.cpp, src/sp-item.h, src/sp-rect.cpp, src/sp-root.cpp, + src/text-context.cpp, src/dialogs/xml-tree.cpp, + src/libnr/Makefile.am, src/libnr/nr-matrix.cpp, + src/libnr/nr-matrix.h, src/libnr/nr-types.h, + src/libnrtype/nr-rasterfont.cpp, src/livarot/Path.h, + src/livarot/PathConversion.cpp, src/livarot/PathSimplify.cpp, + src/livarot/ShapeSweep.cpp, src/widgets/gradient-position.cpp, + src/widgets/sp-color-wheel-selector.cpp, + src/widgets/sp-color-wheel.cpp: + Change matrices to be suitable for right multiplication. + (Also miscellaneous cleanups as mentioned below.) + + * src/widgets/sp-color-wheel-selector.cpp + (sp_color_wheel_selector_get_type): + Address harmless warning: add value_table initializer. + + * src/display/nr-arena-group.h, src/display/nr-arena-group.cpp + (nr_arena_group_set_child_transform): Add NR::Matrix version. + + * src/verbs.cpp: Add g++-2.95 portability for hash_map. + (Still using hash_map, though, not yet GHashTable.) + + * src/uri-references.h (operator=): Remove definition, forcing link + errors for accidental usage. + + * src/sp-chars.h, src/sp-chars.cpp (sp_chars_add_element): + Add NR::Matrix version. + + * src/selection.cpp (sp_selection_snappoints): Performance fix: add + just 4 corner points, not a thousand. + + * src/print.h, src/print.cpp (sp_print_bind): Add NR::Matrix version. + + * src/inkscape.cpp: #include sys/types.h, sys/stat.h. + + * src/desktop.h (SP_DESKTOP_ZOOM): Define in terms of expansion() + function instead of implicit casting. + + * src/arc-context.cpp, src/document.cpp, src/draw-context.cpp, + src/selection.cpp, src/selection.h, + src/sp-ellipse.cpp, src/sp-gradient.cpp, src/sp-image.cpp, + src/sp-namedview.cpp, src/sp-offset.cpp, src/sp-rect.cpp, + src/sp-spiral.cpp, src/sp-star.cpp, + src/sp-text.cpp, src/bonobo/canvas-translator.cpp: + Cleanups: greater conformance to Coding_Style, combine declaration + and first assignment of some vars. + +2004-02-08 MenTaLguY <mental@rydia.net> + + * src/interface.cpp: added "Autoraise Dialogs" menu item to toggle + the transient policy thing + +2004-02-08 Bryce Harrington <brycehar@bryceharrington.com> + + * src/sp-namedview.cpp: This assert appears to serve no purpose + except to cause Inkscape to crash when the user chooses to + exit the app when the XML editor is open. Commenting out the + assert doesn't seem to cause any particular untoward behavior. + + * src/xml/: repr.cpp, repr.h: Hacking in a check to prevent + deletion of the namedview entity, in order to close bug + Inkscape Bug #850971. + +2004-02-07 Johan Ceuppens <jceuppen@easynet.be> + * src/libnrtype/nr-type-gnome.cpp src/libnrtype/nr-type-directory + src/libnrtype/nr-type-xft.cpp src/widgets/font-selector.cpp + src/print.cpp src/module.h src/module.cpp + modules/gnome.cpp: activated --with-gnome-print + libnrtype/nr-type-primitives.h: removed possible gchar signedness + bug. + +2004-02-07 Nathan Hurst <njh@mail.csse.monash.edu.au> + + * src/widgets/gradient-position.*: modified the gradient knot + editor to manipulate the knots, rather than rebuilding a gradient + from scratch each time. + +2004-02-07 MenTaLguY <mental@rydia.net> + + * src/xml/repr.h, src/xml/repr-util.cpp: + + cleaned up old code in #if 0 sections + + * src/display/canvas-arena.cpp, src/display/nr-arena-glyphs.cpp, + src/display/nr-arena-item.cpp, src/display/nr-arena-shape.cpp, + src/display/nr-arena.cpp, src/display/nr-arena.h: + + cleaned up old code in #if 0 sections + + * src/desktop-affine.cpp, src/desktop.cpp, src/draw-context.cpp, + src/dropper-context.cpp, src/dyna-draw-context.cpp, + src/seltrans.cpp, src/sp-root.cpp, src/sp-text.cpp, + src/libnr/nr-macros.h, src/libnr/nr-types.h, src/libnr/nr-matrix.h, + src/libnr/nr-matrix.cpp, src/libnrtype/nr-font.cpp, + src/libnrtype/nr-rasterfont.cpp, src/livarot/PathSimplify.cpp, + src/livarot/ShapeSweep.cpp: + + The array data member of NR::Matrix is now private; use the + [] operator to access elements individually. More matrix routines + now pass by reference, and the casting operators to cast to NRMatrix + no longer leak memory (by allocating temporary objects that were + never freed). + + * src/modules/db.cpp: cleaned up some very grotty code that gcc 3.4 + (rightly) refused to compile + + * src/xml/repr-action.cpp: undo of content changes was pulling + from the wrong union member (note to self: unions = evil) + This fixes the problem with text editing undos yielding the wrong + apparent undo order (bug #861462). + +2004-02-05 bulia byak <bulia@users.sourceforge.net> + + * src/sp-text.cpp src/sp-text.h: Function to adjust letterspacing + + * src/style.cpp: Comments + + * src/text-context.cpp: Alt+<> adjust letterspacing + + * src/helper/png-write.cpp: PNG comment: Software: www.inkscape.org + + * src/text-context.cpp: Support keypad keys, keypad +/- always zoom even when editing + + * src/shortcuts.cpp: Enable keypad Del + + * src/event-context.cpp: Enable keypad arrows with Ctrl to scroll canvas + + * src/zoom-context.cpp src/rect-context.cpp src/arc-context.cpp src/star-context.cpp + src/spiral-context.cpp src/draw-context.cpp src/dyna-draw-context.cpp + src/text-context.cpp src/dropper-context.cpp: Swallow keypad up/down keys too, + preventing them from focusing the zoom field + +2004-02-05 Jon Phillips <kidproto@users.sf.net> + + * src/dialogs/item-properties.cpp, src/dialogs/item-properties.h, + src/dialogs/object-attributes.cpp, src/dialogs/object-attributes.h, + src/dialogs/object-properties.cpp, src/dialogs/object-properties.h, + src/dialogs/sp-attribute-widget.cpp, src/dialogs/sp-attribute-widget.h, + src/dialogs/stroke-style.cpp, src/dialogs/stroke-style.h, + src/dialogs/text-edit.cpp, src/dialogs/text-edit.h, + src/dialogs/tool-options.cpp, src/dialogs/tool-options.h, + src/dialogs/transformation.cpp, src/dialogs/transformation.h, + src/dialogs/xml-tree.cpp, src/dialogs/xml-tree.h, + src/dialogs/xml-tree.cpp, src/dialogs/xml-tree.h: Converted + the aforementioned to coding style. + + +2004-02-04 Ted Gould <ted@gould.cx> + + * src/desktop-snap.cpp: Removing some unused code that had + been replaced. + +2004-02-04 jon phillips <kidproto@user.sf.net> + + * COPYING, COPYING.LIB, ChangeLog, Makefile.am, Makefile.mingw, + Makefile.mingw.common, NEWS, README, autogen.sh, configure.in, + inkscape-cvs-0.ebuild, inkscape.1.in, inkscape.spec.in: + all files converted from tabs to 4 spaces and cleaned up the + coding style, tested, they build, and have committed. + + * extension/*: I converted all files to coding style. + + * src/dialogs/align.cpp, src/dialogs/align.h, + src/dialogs/desktop-properties.cpp, src/dialogs/desktop-properties.h, + src/dialogs/dialog-events.cpp, src/dialogs/dialog-events.h: Converted + the following files to use our coding convention. + + * src/dialogs/desktop-properties.cpp, src/dialogs/desktop-properties.h, + src/dialogs/display-settings.cpp, src/dialogs/display-settings.h, + src/dialogs/export.cpp, src/dialogs/export.h, + src/dialogs/fill-style.cpp, src/dialogs/fill-style.h: converted the + aforementioned files to new coding conventions. + +2004-02-04 bulia byak <bulia@users.sourceforge.net> + + * src/style.h src/style.cpp src/sp-text.cpp: Read-only (so far) support for + letter-spacing CSS property + + * src/event-context.cpp src/select-context.cpp src/draw-context.cpp + src/dyna-draw-context.cpp src/knotholder.cpp src/nodepath.cpp src/object-edit.cpp: + Trimming #if 0 + + * src/text-context.cpp: Trimming #if 0, removing unneeded document_done + + * src/spiral-context.cpp src/star-context.cpp: Trimming #if 0, enabling ctrl-drag + + * src/dialogs/dialog-events.cpp src/preferences-skeleton.h: Added + options.transientpolicy, 1 as default + + * src/preferences-skeleton.h: Increased options.keyscroll + + * src/dialogs/xml-tree.cpp: Fix for 852619, fix for failed asserts when selecting root + + * src/widgets/gradient-selector.cpp: Fix for 854514, 856682 + +2004-02-02 Peter Moulder <pmoulder@mail.csse.monash.edu.au> + + * src/desktop-snap.h, src/desktop-snap.cpp: Indicate that the snap_list + functions don't modify the passed snap points. For the wrapper versions, + don't bother "copying back the new [actually unchanged] versions". + +2004-01-31 bulia byak <bulia@users.sourceforge.net> + + * src/zoom-context.cpp src/rect-context.cpp src/arc-context.cpp src/star-context.cpp + src/spiral-context.cpp src/draw-context.cpp src/dyna-draw-context.cpp + src/text-context.cpp src/dropper-context.cpp: Fix to swallow up/down keys in + contexts so as to prevent zoom field from activation, but allow ctrl with up/down + keys to scroll canvas. + + * src/interface.cpp: Removed New Preview, Remove Transform commands. Added Tutorial + command to Help. + + * src/preferences-skeleton.h: Reduced default stroke width to 1 pt. + + * src/help.cpp src/help.h: Tutorial command. + + * icons/tutorial.svg: First try at the tutorial. + + * icons/Makefile.am: Adding tutorial. + + * src/nodepath.cpp: No-nodepath crash fixes. + + * doc/architecture.svg: Added namedview. + + * doc/default.svg: Removed, now reworked into icons/tutorial.svg. + + * src/event-context.cpp: Swapped scrollwheel modifiers. + + * src/xml/repr.cpp src/xml/repr-io.cpp: Small comment fix. + +2004-01-31 Johan Ceuppens <jceuppen@easynet.be> + * src/verbs.cpp src/verbs.h: removed sp_fullscreen and put it in + desktop.cpp and desktop.h as fullscreen + * configure.in src/interface.cpp src/shortcuts.cpp src/inkscape.cpp + src/inkscape.h src/desktop.cpp src/desktop.h: + Added HAVE_GTK_WINDOW_FULLSCREEN as conditional compilation based + on a function check for gtk_window_fullscreen in configure script + +2004-01-30 Johan Ceuppens <jceuppen@easynet.be> + * src/verbs.cpp src/verbs.h: Added fullscreen verb. Fullscreen action + is in SP_VERB_IS_ZOOM. + * src/interface.cpp: Added fullscreen menuitem. + * src/shortcuts.cpp: Linked in fullscreen shortcut (untested) + * src/inkscape.cpp src/inkscape.h + * src/desktop.cpp src/desktop.h: Added is_fullscreen gboolean to + SPDesktop. + +2004-01-30 Peter Moulder <pmoulder@mail.csse.monash.edu.au> + + * src/libnr/nr-path.h, src/libnr/nr-path.cpp: Mark some functions + as not modifying the matrix passed to them. + + * src/display/nr-arena-group.h, src/display/nr-arena-group.cpp + (nr_arena_group_set_child_transform): + Indicate that matrix isn't written to. + + * src/sp-item-transform.cpp (sp_item_rotate_rel, sp_item_scale_rel, + sp_item_skew_rel), + src/sp-marker.cpp (sp_marker_update, sp_marker_show_instance), + src/sp-shape.cpp (sp_shape_bbox), + src/sp-symbol.cpp (sp_symbol_update, sp_symbol_show, sp_symbol_print), + src/display/nr-arena-shape.cpp (nr_arena_shape_update, nr_arena_shape_pick): + Remove uses of nr_matrix_f_from_d. + * src/libnr/nr-matrix.h, src/libnr/nr-matrix.cpp (nr_matrix_f_from_d), + src/libnr/libnr.def: + Remove now-unused nr_matrix_f_from_d. + + * src/nodepath.cpp (sp_nodepath_new), + src/path-chemistry.cpp (sp_selected_path_combine, sp_selected_path_break_apart), + src/selection-chemistry.cpp (sp_selection_apply_affine), + src/selection.cpp (sp_selection_bbox_document), + src/sp-item.cpp (sp_item_bbox_desktop, sp_item_private_snappoints), + src/sp-pattern.cpp (sp_pattern_painter_new), + src/modules/gnome.cpp (sp_module_print_gnome_fill), + src/widgets/icon.cpp (sp_icon_image_load_svg): + Remove uses of nr_matrix_d_from_f. + * src/libnr/nr-matrix.h, src/libnr/nr-matrix.cpp (nr_matrix_d_from_f), + src/libnr/libnr.def: + Remove now-unused nr_matrix_d_from_f. + + * src/sp-item.h, src/sp-item.cpp (sp_item_set_i2d_affine_d, + sp_item_i2doc_affine_d, sp_item_i2d_affine_d, sp_item_dt2i_affine_d): + Merge _d version with non-_d version. Update callers. + + * src/rubberband.h, src/rubberband.cpp (sp_rubberband_start): + Add NR::Point version. + Implement x,y version as call to NR::Point version. + +2004-01-29 Peter Moulder <pmoulder@mail.csse.monash.edu.au> + + * src/desktop-snap.h, src/desktop-snap.cpp (sp_desktop_dim_snap_list): + Export this function. + (sp_desktop_horizontal_snap_list, sp_desktop_vertical_snap_list): + Remove these now-unused functions. + * src/select-context.cpp (sp_selection_moveto): + Use sp_desktop_dim_snap_list instead of + sp_desktop_horizontal_snap_list, sp_desktop_vertical_snap_list. + + * src/select-context.cpp (sp_selection_moveto): Fix what appears to be + a memory leak. + + * src/rubberband.h, src/rubberband.cpp (sp_rubberband_move): + Add NR::Point version. + + * src/seltrans.h (sp_sel_trans_point_desktop): Add NR::Point version. + + * src/seltrans.h, src/seltrans.cpp (sp_sel_trans_point_desktop, + sp_sel_trans_origin_desktop): Indicate that pointer isn't written through. + + * src/node-context.cpp, src/select-context.cpp: + Make some globals static. + + * src/style.cpp (sp_style_read_pfloat, SPS_READ_IFLOAT_IF_UNSET, + SPS_READ_PFLOAT_IF_UNSET): Remove these unused functions/macros. + +2004-01-28 MenTaLguY <mental@rydia.net> + + * src/toolbox.cpp: aux toolbar now expands properly when torn off + (fix for bug #874923) + + * src/libnr/nr-svp.cpp, src/libnr/nr-stroke.cpp, + src/libnr/nr-svp-private.h, src/libnr/nr-svp.h, + src/libnr/nr-svp-render.cpp, src/libnr/nr-svp-uncross.cpp: + + NRCoord -> NR::Coord + + * src/interface.cpp: removed Filters menu + + * src/modules/win32.cpp: the Win32 GDI uses BRGx, rather than + RGBA, so we reverse the B and R bytes before blitting (fix + for bug #887428) + +2004-01-28 Peter Moulder <pmoulder@mail.csse.monash.edu.au> + + * src/seltrans.cpp: Various cleanups, including addressing some + warnings, and doing some more NR::Point'ification. + + * src/knot.h, src/knot.cpp (sp_knot_set_position): Change from + pass-by-value to pass-by-const-reference. + + * src/geom.cpp (sp_intersector_line_intersection): Restore + definition of previous local `cross' function, but "inline" the + dot(rot90(a), b) definition. This makes the definition conform to + the documentation. + * src/desktop-snap.cpp (sp_intersector_a_vector_snap): Undo a recent + change that adapted to the previously-introduced bug in + sp_intersector_line_intersection. + + * icons/Makefile.am: s/icons_dir/iconsdir/g for automake. + * src/dialogs/Makefile.am, src/widgets/Makefile.am: + s/icons_dir/iconsdir/g for consistency with icons/Makefile.am. + +2004-01-27 jon phillips <jon@users.sourceforge.net> + + * Makefile.am: changed 'glade' globally to 'icons' + + * Makefile.mingw: changed 'glade' globally to 'icons' + + * config.h.mingw: changed 'INKSCAPE_GLADEDIR' to 'INKSCAPE_ICONS_DIR' + + * configure.in: changed 'glade' globally to 'icons' + + * Makefile.am: changed 'gladedir' to 'icons_dir', and fixed spacing, + changed 'glad_DATA' to 'icons_DATA' + + * glade/about_svg.tmpl: changed 'glade' globally to 'icons' + + * po/pl.po: changed 'glade' globally to 'icons' + + * src/config.h.win32: changed 'SODIPODI_GLADEDIR' to 'SODIPODI_ICONS_DIR' + * src/dialogs/Makefile.am: changed 'gladedir' to 'icons_dir', changed + '-DINKSCAPE_GLADEDIR=\""$(gladedir)"\" \' to + '-DINKSCAPE_ICONS_DIR=\""$(icons_dir)"\" \' + + * src/dialogs/makefile.msc: changed 'gladedir' to 'icons_dir' + + * src/dialogs/object-properties.cpp: changed 'INKSCAPE_GLADEDIR' to + 'INKSCAPE_ICONS_DIR' + + * src/dialogs/stroke-style.cpp: changed 'INKSCAPE_GLADEDIR' to + 'INKSCAPE_ICONS_DIR' + + * src/widgets/Makefile.am: changed 'gladedir' to 'icons_dir' + + * src/widgets/icon.cpp: changed 'glade' globally to 'icons' + + * src/widgets/makefile.msc: changed 'gladedir' to 'icons_dir' + + +2004-01-26 bulia byak <bulia@users.sourceforge.net> + + * src/inkscape.cpp: failed assertion fix + + * src/shortcuts.cpp: Linked/dynamic offset shortcuts, zoom to page width + + * src/preferences-skeleton.h: Add inkscape:pageopacity, borderopacity + + * src/attributes.cpp,h src/sp-namedview.cpp,h: Add inkscape:pageopacity + + * src/dialogs/desktop-properties.cpp: Get/set inkscape:pageopacity in the page + background color picker; reword and rearrange labels, spacing fix + + * src/dialogs/export.cpp: Use inkscape:pageopacity for export background; fix crash on + exit + + * src/file.cpp: Remove debug output when exporting + + * src/sp-gradient.cpp src/svg/svg-path.cpp src/libnr/nr-compose.cpp src/dir-util.cpp + src/desktop.cpp: Fixes from sodipodi + + * src/main.cpp: Fix PNG size limits when exporting from commandline + + * src/style.cpp src/style.h: currentColor support from sodipodi + + * src/sp-gradient.cpp: Fix for 876614 from sodipodi + + * src/dialogs/desktop-properties.cpp: Convert meters to cm on writing (to make + svg/@height and svg/@width SVG compliant) + + * src/sp-rect.cpp: Fix in description + + * src/dialogs/text-edit.cpp: Fix bug: undo broken when font applied to more than one + text object. And another bug: do not apply text, only style, when more than one text + object selected. + + * src/widgets/font-selector.cpp: Make font and style lists scroll automatically to + show selected row + +2004-01-26 Peter Moulder <pmoulder@mail.csse.monash.edu.au> + + * config.h.win32: Remove this outdated and apparently-unused file. + + * src/livarot/Path-test.cpp: new file. + * src/livarot/Makefile.am: New test program Path-test. + Remove $(cflags) from INCLUDES. + + * configure.in: Adjust some things for our C to C++ transition. + Add warning flags to CXXFLAGS if the compiler is g++. + +2004-01-26 MenTaLguY <mental@rydia.net> + + * src/configure.in, src/Makefile.am, src/modules/Makefile.am, + src/libnrtype/Makefile.am: + merged patch #847856 for autotools builds on mingw/win32 + + * src/sp-marker.h: added a URIReference subclass for markers + + * src/sp-path.cpp: fixed backwards-compatiblilty thing with + (ancient) Sodipodi + + * src/xml/repr-action.c, src/xml/repr-action.h, + src/xml/repr-private.h, src/xml/repr.cpp: + + made SPReprDoc::is_logging a C++ bool, and fixed sp_repr_rollback() + to respect the no-logging-during-rollback invariant + +2004-01-25 MenTaLguY <mental@rydia.net> + + * src/sp-object-repr.cpp, src/splivarot.cpp, src/sp-offset.cpp: + changed "offset" to "inkscape:offset" for sodipodi:type + +2004-01-24 bryce <brycehar@bryceharrington.com> + + * src/dialogs/stroke-style.cpp: Hooking up marker buttons to + underlying marker style setting code, & etc. + +2004-01-24 bulia byak <bulia@users.sourceforge.net> + + * src/document.cpp src/sp-namedview.cpp: Desensitize undo for changing document uri + and for saving window geometry/viewarea into namedview + + * src/xml/repr-util.cpp: Increase precision in set_double_attr + + * src/arc-context.cpp: Call invoke_write when finishing arc, instead of setting attrs + manually + + * src/sp-ellipse.cpp: Add write method to genericellipse; fix handling of start and + end attrs; fix undo bug (877238) + +2004-01-24 MenTaLguY <mental@rydia.net> + + * src/xml/repr-action.h, src/xml/repr-action.c: made the + SPReprAction::act union anonymous, and reworked the transaction + log optimization code. sp_repr_coalesce_log() should be a bit + faster now, and no more strcmp()s. + +2004-01-23 Peter Moulder <pmoulder@mail.csse.monash.edu.au> + + * src/livarot/Path.h, src/livarot/Path.cpp (Path::Affiche): remove + unused function. + Doing so allows removal of path_descr_moveto::pathLength field and the + code for calculating its value. + + * src/livarot/Path.cpp (SizeForData): Change from private method to + static function. + Use new function roundup_div instead of `%' calculation. + + (Path::CloseSubpath): Remove loop that calculated pathLength. + Consequently remove the no-longer-used argument. Update callers. + + (Path::MoveTo, Path::LineTo, Path::CubicTo, Path::ArcTo, + Path::TempBezierTo, Path::EndBezierTo, Path::IntermBezierTo, + Path::BezierTo, Path::AddPoint, Path::PointAt, + Path::PointAndTangentAt): + Change some C-style casts to reinterpret_cast's. + + (Path::PointAt, Path::PointAndTangentAt): code transformations + in preparation for merging some branches. + + * src/libnr/nr-types-test.cpp (main): Update for NR::Point .pt + privateness change. + + * src/libnr/nr-svp-uncross.cpp (nr_segment_intersection): Mark some + pointer arguments as not being written through. + Add doc comment. + + * src/selection-chemistry.cpp (sp_matrix_d_set_rotate): + Slight reduction in numerical error. + (Also rename variables from `angle' to `angle_degrees' in several + places.) + + * src/node-context.cpp (sp_node_context_root_handler): + * src/object-edit.cpp (sp_arc_start_set, sp_arc_end_set, + sp_spiral_inner_set, sp_spiral_outer_set): + * src/select-context.cpp (sp_select_context_root_handler): + * src/seltrans.cpp (sp_sel_trans_rotate_request): + Fix for options.rotationsnapsperpi == 0. + + * src/event-context.cpp (sp_event_context_private_root_handler): + Address warning. + +2004-01-22 bulia byak <bulia@users.sourceforge.net> + + * src/attributes.h src/attributes.cpp: Added pagecolor, bordercolor, borderopacity (from sodipodi), pageshadow. + + * src/sp-namedview.h src/sp-namedview.cpp: Added reading page attributes. + + * src/desktop.cpp: Added setting page and border color (from sodipodi), pageshadow taken from namedview. + + * src/preferences-skeleton.h: Moved pageshadow into namedview, added page and border colors to the template. + + * src/dialogs/desktop-properties.cpp: Added page and border color selectors (from + sodipodi), moved former document settings here. + + * src/verbs.cpp src/verbs.h: Removed document settings, renamed editing window into document options. + + * src/interface.cpp: Removed document settings command. + + * src/dialogs/document-properties.cpp,h src/dialogs/tool-attributes.cpp,h: Removed. + + * src/dialogs/object-properties.cpp: Removed size and position dialog. + + * src/dialogs/Makefile.am: Removed unused dialogs. + + * src/verbs.cpp src/verbs.h: Removed unused dialog verbs. + + * src/dyna-draw-context.cpp: Removed debug output. + + * src/node-context.h: New members for tracking left, right/alt, ctrl. + + * src/nodepath.cpp: Reorganize [] <> code, add update_repr (oops). Fix near-zero handles behavior with <>. + + * src/sp-item-transform.cpp: More correct transformation writing method: use each + item's transform writer instead of simply adding transform= attribute. + + * src/document.cpp src/document.h src/document-undo.cpp: Added + sp_document_ensure_up_to_date on each undoable action, fixes bbox problems (bug + 879249). Added callback to reset actionkey on each selection change, so that + same-key actions on different objects are not lumped together. + + * src/selection-chemistry.cpp: Removed spurious sp_selection_changed calls from all + transformation functions, coalesced [] <> rotates and scales. + + * src/select-toolbar.cpp: Coalesced spinbutton moves and scales. + +2004-01-21 MenTaLguY <mental@rydia.net> + + * src/desktop-snap.cpp, src/desktop.cpp, src/nodepath.cpp, + src/object-edit.cpp, src/sp-namedview.cpp, src/sp-offset.cpp, + src/splivarot.cpp, src/uri.h, src/dialogs/desktop-properties.cpp, + src/libnr/nr-matrix.cpp, src/libnr/nr-matrix.h, + src/libnr/nr-point-fns.cpp, src/libnr/nr-point-fns.h, + src/libnr/nr-rect.cpp, src/libnr/nr-types.cpp, src/libnr/nr-types.h, + src/livarot/Path.cpp, src/livarot/PathConversion.cpp, + src/livarot/PathOutline.cpp, src/livarot/PathSimplify.cpp, + src/livarot/PathStroke.cpp, src/livarot/Shape.cpp, + src/livarot/ShapeMisc.cpp, src/livarot/ShapeSweep.cpp, + src/livarot/ShapeSweepUtils.cpp: + Cleanup; made data member of NR::Point private and replaced + a few 'magic' [0] and [1] indices with the more meaningful NR::X + and NR::Y. + +2004-01-20 Jon Phillips <jon@protofunk.org> + + * src/help.cpp: I cleaned up the code a little according to our coding + standards and have/am adding comments to the help system. + +2004-01-20 bulia byak <bulia@users.sourceforge.net> + + * src/selection-chemistry.cpp,h: New scaling utility functions + + * src/select-context.cpp: <> [] with modifiers to scale/rotate objects + + * src/nodepath.cpp,h: New functions for scaling and rotating nodes + + * src/node-context.cpp: <> [] with modifiers to scale/rotate nodes, left/right + modifiers affect one of the two handles + + * src/node-context.h: New node context members for tracking left/right alt/ctrl + + * src/event-context.cpp: Use cursor coords when zooming by scrollwheel (fixme) + +2004-01-19 MenTaLguY <mental@rydia.net> + + * src/dialogs/xml-tree.cpp: automatically scroll tree view to show selected item + +2004-01-19 Jon Phillips <jon@protofunk.org> + + * src/desktop.cpp: Changed the document shadow to be an option. It is + option.pageshadow. I also made some wrapper code so that if the value + is set to 0, then the constructor for page shadow is not + initialized. + +2004-01-18 bulia byak <bulia@users.sourceforge.net> + + * src/sp-spiral.cpp,h: Moved defines to .h + + * src/object-edit.cpp: Reenabled restricted ctrl-rotation of spiral and arc. Added + alt-drag in spiral to lock radius. Used PI/options.rotationsnapsperpi everywhere + instead of PI/4. + + * src/selection-chemistry.cpp,h src/select-context.cpp: Enable [ ] keys to rotate + selected objects by rotationsnapsperpi. Alt [ ] rotate by angular pixels. + + * src/event-context.cpp src/preferences-skeleton.h src/desktop.h src/zoom-context.cpp + src/select-context.cpp: Behavior fixes, simplifications, & unifications in handling + dragtolerance, rubberband, and shift/ctrl+selection + + * src/event-context.cpp src/preferences-skeleton.h src/desktop.h: Define & use new + options for scrolling distances: keyscroll, wheelscroll + +2004-01-18 MenTaLguY <mental@rydia.net> + + * src/uri.h, src/uri.cpp, src/uri-reference.h, src/uri-reference.cpp, + src/sp-item.h, src/sp-item.cpp, src/sp-clippath.h, + src/sp-gradient.h, src/sp-gradient.cpp, src/sp-mask.h, + src/sp-item.h, src/sp-item.cpp: + + Reworked URIs to use libxml, and URIReferences to be specialized + for particular object types. Also switched gradients to using + URIReferences. + +2004-01-17 Jon <jon@protofunk.org> + + * src/desktop.cpp: Changed the document shadow to 1 pixel. It as + set to 5, which is really cheesy. I changed it in the + constructor for SP_desktop_new in the function + sp_ctrlrect_set_shadow(). + +2004-01-17 Bryce <bryce@bryceharrington.com> + + * src/sp-root.cpp, src/sp-symbol.cpp: Fixing NRMatrix's a -> &a + so codebase will build. + + * Adding marker xpm's to Makefile.in so the button images display + in the stroke style dialog (must do a make install) + +2004-01-17 MenTaLguY <mental@rydia.net> + + * src/uri.h, src/uri.cpp, src/uri-references.cpp: + new Inkscape::URI implementation using libxml URI stuff + +2004-01-15 bulia byak <bulia@users.sourceforge.net> + + * src/preferences-skeleton.h: Added: tools.freehand.perncil tolerance, + options.zoomincrement, rotationsnapsperpi, maxrecentdocuments + + * src/seltrans.cpp src/draw-context.cpp src/nodepath.cpp: Rotation snaps taken from + preferences + + * src/inkscape.cpp: Max recent documents from prefs + + * src/desktop.cpp,h: New _keep_point zoom functions + + * src/event-context.cpp: Zoom in/out on (shift+)middle click, use + options.dragtolerance, use options.zoomincrement, use _keep_point zoom functions + + * src/verbs.cpp: Use options.zoomincrement + + * src/zoom-context.cpp: Use options.zoomincrement, use _keep_point zoom functions + + * src/tools-switch.cpp: Fix for 865740 + + * src/draw-context.cpp: Fix for 877188 + + * src/nodepath.cpp: Swapped ctrl-click and ctrl-alt-click + + * src/knot.cpp src/knotholder.cpp src/nodepath.cpp: Knot colors, using XOR paint mode + + * src/widgets/widget-sizes.h src/desktop.cpp: Coord skip taken from define, limited + height of the bottom bar + + * src/splivarot.h src/splivarot.cpp src/verbs.cpp src/verbs.h src/interface.cpp: Added + dynamic and linked offsets to menu + + * src/knot.cpp src/select-context.cpp src/zoom-context.cpp src/draw-context.cpp: + Unified within_tolerance handling; take curve fitting tolerance from preferences in + freehand tool (default 10) + +2004-01-15 MenTaLguY <mental@rydia.net> + + * glade/about.svg, glade/about_svg.tmpl, samples/inkscape.logo.svg: + updated to match the current standard logos from + inskcape_project/artwork + +2004-01-15 Nathan Hurst <njh@mail.csse.monash.edu.au> + + * src/livarot/* an ungodly number of changes for improved use of + NR::Point. Const propagation. Minor bugfixes. + +2004-01-15 Peter Moulder <pmoulder@mail.csse.monash.edu.au> + + * src/widgets/paint-selector.cpp (sp_paint_selector_set_color_alpha, + sp_paint_selector_get_color_alpha, sp_paint_selector_system_color_set), + src/widgets/sp-color-gtkselector.cpp (ColorGtkselector::_colorChanged), + src/widgets/sp-color-notebook.cpp (ColorNotebook::_colorChanged, + ColorNotebook::_updateRgbaEntry), src/widgets/sp-color-selector.cpp + (ColorSelector::setAlpha, ColorSelector::setColorAlpha, + ColorSelector::_updateInternals): + Add assertions that alpha is in [0.0, 1.0]. + + * src/libnr/nr-types.h, src/libnr/nr-rect.cpp (NR::Rect::corner): + Change argument to unsigned, thus changing remainder operator to modulo + operator, thus fixing bug for "negative" arguments (-1u etc.). + + * src/dialogs/stroke-style.cpp (sp_stroke_style_paint_update_repr): fix + bug with unsigned->float alpha conversion. + + * src/nodepath.cpp (angle_normalize): Remove no-longer-used function. + + * src/draw-context.cpp (spdc_endpoint_snap_internal): Fix for + negative options.rotationsnapsperpi. + +2004-01-14 Peter Moulder <pmoulder@mail.csse.monash.edu.au> + + * src/selection-chemistry.cpp (sp_selection_item_next, + sp_selection_item_prev): cleanups, including moving some common + code into new static function scroll_to_show_item. + + * src/widgets/font-selector.h, src/widgets/font-selector.cpp + (sp_font_selector_set_font_fuzzy): Remove this unused function. + + * src/sp-text.cpp (sp_text_font_style_to_lookup), + src/dialogs/text-edit.cpp (sp_text_edit_dialog_font_style_to_lookup): + Move this duplicated function to src/libnrtype/font-style-to-pos.cpp + as font_style_to_pos, rewriting & fixing its bugs in the process. + Adjust callers. + * src/libnrtype/font-style-to-pos.cpp, src/libnrtype/font-style-to-pos.h: + New files. + * src/libnrtype/Makefile.am: Mention the new files. + * src/libnrtype/nr-type-pos-def.h: Make the default constructor fill in + sensible values. + Add constants for CSS weight numbers. + +2004-01-13 MenTaLguY <mental@rydia.net> + + * src/object-ui.cpp: 'Fill Settings' -> 'Fill and Stroke' + + * src/FilePath.cpp, src/FilePath.h: removed until we can rethink + the file stuff + +2004-01-13 Peter Moulder <pmoulder@mail.csse.monash.edu.au> + + * src/libnrtype/nr-type-directory.h, + src/libnrtype/nr-type-directory.cpp (nr_type_directory_lookup_fuzzy): + Change second arg from char const* to NRTypePosDef. + (nr_type_calculate_position) Move to nr-type-pos-def.cpp as implicit + NRTypePosDef constructor from string. + * src/libnrtype/nr-typeface.h: NRTypePosDef changed from struct to class. + * src/libnrtype/nr-type-pos-def.h, src/libnrtype/nr-type-pos-def.cpp: + new files. + * src/libnrtype/Makefile.am: Mention the new files. + + * src/sp-text.cpp (sp_text_font_style_to_lookup): Fix segfault I + introduced, reported by ishmal. + +2004-01-12 bulia byak <bulia@users.sourceforge.net> + + * src/sp-rect.cpp: Removed coordinates from rect description + + * src/selection-chemistry.cpp: Delete fix from sodipodi, more statusbar diagnostics + + * src/prefs-utils.cpp,h: New functions for setting/getting string values + + * src/dialogs/export.cpp: Export dialog tracks selection and document changes (fix for + 853849). Export area, dpi remembered in prefs. Misc fixes and cleanups + + * src/preferences-skeleton.h: New options for export: exportarea, defaultxdpi + + * src/widgets/spw-utilities.cpp,h: New function for recursively searching widgets for + key/value pair + + * src/svg/svg-affine.cpp: Ignore whitespace at the end of transform attribute - fix + for 850943 (from sodipodi) + + * src/select-toolbar.cpp: Correctly handle zero dimensions - fix for 871552 + +2004-01-12 Peter Moulder <pmoulder@mail.csse.monash.edu.au> + + * src/sp-gradient.cpp (sp_gradient_repr_set_vector): "Fix" a memory + leak. However, I haven't worked out how to get this code to run, in + order to check that the guessed replacement code is correct. Instead + I've inserted a g_warning and a TODO comment. + + * src/libnrtype/nr-type-directory.cpp + (nr_type_calculate_position): Fix bug where `ultra bold' and `extra + bold' were getting parsed as `bold'. + (nr_type_distance_family_better, nr_type_distance_position_better): + Rename to nr_type_distance_family and nr_type_distance_position + respectively, and return just the distance. + (nr_type_distance_family): Use g_ascii_strcasecmp instead of + strcasecmp/stricmp. + (nr_type_distance_family): Return unsigned instead of float. + (nr_type_distance_position): Use double instead of float. + + * src/libnrtype/nr-rasterfont.cpp + (nr_rasterfont_generic_glyph_area_get, + nr_rasterfont_generic_glyph_mask_render): Suppress warning: + s/CLAMP/MIN/ if the type is unsigned and the lower bound is 0. + + * src/helper/sp-canvas.cpp (paint): Cache canvas->{x0,y0} + + GTK_WIDGET(canvas)->allocation.{width,height}. + Remove some commented-out variables. + + * src/tools-switch.cpp, src/tools-switch.h: Make some functions static. + (tools_num2name): Remove unused function. + (tools_isactive): Add assertion of not accessing past the end of the + array. + + * src/knot.cpp (sp_knot_handler): Fix bug where event wasn't + getting consumed. + Get rid of hypot macro. + + * src/svg/svg-affine.cpp (sp_svg_transform_write): Add assertions + that buffer overflow hasn't occurred. + + * src/sp-text.cpp (sp_text_font_style_to_lookup), + src/dialogs/text-edit.cpp (sp_text_edit_dialog_font_style_to_lookup): + Slight restructuring using g_snprintf instead of less readable (& + slightly less efficient in this case) strlen/memcpy. + + * src/sp-metrics.h: Increase accuracy of PT_PER_CM etc. + Add FIXME comment. + + * src/dialogs/item-properties.cpp, src/display/nr-arena-shape.cpp: + Address `-Wshadow' warnings. + + * src/nodepath.h, src/nodepath.cpp: Make some functions static. + (sp_nodepath_node_deselect) Remove unused function. + + * src/dialogs/align.cpp (sp_quick_align_dialog): Switch to data-driven approach. + Mark some things as static. + (sp_quick_align_dialog_close) Remove unused function. + (sp_align_arrange_clicked) Change aligns constant array from ints to + doubles. Adjust caller. + +2004-01-11 Iain <iain@prettypeople.org> + + * src/modules/ps.cpp: Swap the Print and Cancel buttons around, and + remove the separator. + +2004-01-11 bulia byak <bulia@users.sourceforge.net> + + * src/desktop.cpp,h: New functions and SPDesktop members for maintaining lists of past + and future zooms. New commands for toggling rulers and scrollbars, removed old and + unused toggle_borders. Zoom spinbutton editable again, coord_status uses gtk_label + instead of statusbar, misc cosmetics. Reduced sizes of the window bottom + stuff. Save/restore the status of rulers and scrollbars in preferences. + + * src/preferences-skeleton.h: New options: showrulers, showscrollbars. Added default + namedview for a 640x480 new document window. + + * src/widgets/spinbutton-events.cpp,h: Common spinbutton callbacks. + + * src/widgets/Makefile.am: Added spinbutton-events. + + * src/select-toolbar.cpp: Remove code into spinbutton-events. + + * src/widgets/widget-sizes.h: Added sizes for bottom stuff: zoom field, coord status, + statusbar. Misc cosmetic changes. + + * src/verbs.cpp,h: New verbs for next/prev zoom. New verbs for toggling rulers and + scrollbars. + + * src/sp-namedview.cpp: Cancel past zooms at the end of window_from_document. + + * src/shortcuts.cpp: `, shift-` to navigate the history of zooms. Ctrl-r, Ctrl-b to + toggle rulers and scrollbars. + + * src/interface.cpp: Added next/prev zoom commands in the view menu. Added three + toggle commands (grid, rulers, scrollbars) in the view menu. + + * src/widgets/ruler.cpp: Use fixed smaller font size, defined in widget-sizes. + +2004-01-10 bulia byak <bulia@users.sourceforge.net> + + * src/draw-context.cpp: Changed alt to shift for one-handle drag. + +2004-01-10 Peter Moulder <pmoulder@mail.csse.monash.edu.au> + + * src/desktop-events.cpp, src/desktop-snap.cpp, src/draw-context.cpp, + src/gradient-chemistry.cpp, src/selection-chemistry.cpp, + src/seltrans.cpp, src/sp-shape.cpp: + Address some `-Wshadow' warnings. + + * src/attributes.cpp, src/color.cpp, src/inkscape.cpp, + src/interface.cpp, src/helper/units.h, src/libnrtype/nr-type-xft.cpp, + src/svg/svg-color.cpp, src/widgets/gradient-vector.cpp: + Address some `-Wwrite-strings' warnings. + + * src/document.h, src/document.cpp, + src/prefs-utils.h, src/prefs-utils.cpp, + src/select-toolbar.cpp, + src/helper/unit-menu.h, src/helper/unit-menu.cpp, + src/libnr/nr-object.h, src/libnr/nr-object.cpp: + Mark some pointer function arguments as not being written through. + + * src/path-chemistry.cpp (sp_selected_path_combine): Fix what appears + to be a memory leak. Change string concatenation from Omega(n^2) to + Omega(n). + +2004-01-09 bulia byak <bulia@users.sourceforge.net> + + * src/zoom-context.cpp: Added drag tolerance + + * src/widgets/widget-sizes.h: Spinbutton steps defined here + + * src/widgets/spw-utilities.cpp,h: New function for recursively searching widgets for data + + * src/select-context.cpp: Alt-x activates aux toolbar + + * src/select-toolbar.cpp: Implement esc, ctrl-z, up/down, pgup/pgdn, tab in the aux + toolbar, identified default spinbutton for activating by alt-x + + * src/nodepath.cpp: Fix for uninitialized variable, reported by Bob Jamison + + * src/draw-context.cpp: Fix for 873092; Never snap if hitting anchor + +2004-01-08 bulia byak <bulia@users.sourceforge.net> + + * src/select-context.cpp: Fixed ctrl-drag (without breaking ctrl-click) + + * src/verbs.cpp: Tooltip edits + + * src/desktop.cpp: Changed initial statusbar message (suggested by Daniel Diaz) + + * src/tools-switch.cpp src/nodepath.cpp src/selection.cpp: Edited statusbar messages, + made them translatable + +2004-01-08 Nathan Hurst <njh@mail.csse.monash.edu.au> + + * src/helper, src/libnr and various: removed senescent code inside + #if 0s and changed scoping of variables to be close to use. minor + performance tweeks. + +2004-01-08 Peter Moulder <pmoulder@mail.csse.monash.edu.au> + + * src/widgets/sp-color-notebook.cpp (getCurrentSelector): Address + unsignedness warning (thus fixing a minor buglet). + + * Too many files to list (58 .cpp files, phew!): Address `missing + initializer for member _GTypeInfo::value_table' warnings. + + * src/toolbox.cpp, src/helper/sp-canvas.cpp: Address miscellaneous + other `missing initializer' warnings. + + * src/libnr/nr-values.h, src/libnr/nr-values.cpp: Add `Point + component_vectors[2]' global constant (moved from desktop-snap.cpp). + + * src/sp-namedview.cpp: + Combine SPNamedview .hguides & .vguides into .guides. + Combine .gridspacingx, .gridspacingy scalars into .gridspacing Point. + Consequently reduce copy&paste code both here & in callers. + + * src/sp-guide.h, src/sp-guide.cpp (sp_guide_moveto, + sp_guide_position_set): Take a scalar (.position value) as argument, + not a point. + (sp_guide_position_from_pt): new function. Adapt callers. + (sp_guide_description): New function. + (sp_guide_compare): Remove, not used. + Change SPGuide.orientation (horizontal/vertical enum) to .normal (a + Point to be used with dot product), as a step towards allowing + arbitrary-direction guide lines. + + * src/desktop-events.cpp: Adapt to SPGuide change. + Remove some #if 0'ed code that would otherwise require updating. + + * src/desktop-snap.h, src/desktop-snap.cpp: Convert some pass-by-value + Point arguments to const references. Unexport + sp_desktop_dim_snap_list_scale. Adapt to above changes. + + * src/dialogs/desktop-properties.cpp: Adapt to .gridspacing change. + +2004-01-07 Peter Moulder <pmoulder@mail.csse.monash.edu.au> + + * src/geom.h, src/geom.cpp (sp_intersector_line_intersection): + change arguments from `Point' to `Point const &'. + + * src/libnr/nr-types.h: Move cross to its sole user, src/geom.cpp. + +2004-01-06 bulia byak <bulia@dr.com> + + * src/widgets/spw-utilities.cpp,h: Recursive font setting functions + + * src/widgets/widget-sizes.h: New: defines sizes and intervals, for toolbars etc. + + * src/select-toolbar.cpp src/helper/unit-menu.cpp src/toolbox.cpp,h: Use + widget-sizes.h and recursive font_set + +2004-01-06 Peter Moulder <pmoulder@mail.csse.monash.edu.au> + + * src/desktop-snap.cpp: Make the `horizontal' and `vertical' + global constants be static. + Similarly, make functions sp_intersector_a_vector_snap, + sp_desktop_dim_snap_list static. + + * configure.in: Fix sigc++ checking code: add it to the existing + PKG_CHECK_MODULES(INKSCAPE, ...) list instead of modifying + $CXXFLAGS,$LIBS. + + * distro: Remove some bashisms: change `function f {...}' to + `f () {...}', and invoke self with `sh' rather than `bash'. + + Also change a strange-looking "tr ' ' ' '" to "tr -s ' '", as + a guess as to the intended meaning. (The actual meaning of the + original is a noop.) + +2004-01-06 bulia byak <bulia@dr.com> + + * src/document-undo.cpp src/document.h: Undo and redo now return gbooleans + + * src/selection-chemistry.{cpp|h}: sp_undo, sp_redo: new, with statusbar + diagnostics. Duplicate command adds statusbar diagnostics, places duplicate + into the source's parent instead of document root + + * src/verbs.cpp: Use sp_undo, sp_redo. Tooltip edits + + * src/toolbox.cpp src/toolbox.h: New aux_toolbox_space() + + * src/interface.cpp: New commands in view (cycling desktops) and dialogs (hide dialogs) + + * src/main.cpp: Removed unneeded include + + * src/select-toolbar.cpp src/select-toolbar.h: New selector aux toolbar with XYWH + spinbuttons (taken mostly from the size&position dialog) + + * src/toolbox.cpp src/toolbox.h: Removed selector aux toolbar code from here + + * src/helper/unit-menu.cpp: Use abbreviations in the unit menu + + * src/widgets/sp-widget.cpp: Added checks that the inkscape object is valid before + disconnecting SPWidget from it + +2004-01-06 MenTaLguY <mental@rydia.net> + + * src/Makefile.am: removed monostd.h + + * src/sp-item.cpp, src/uri-reference.h, src/uri-reference.cpp: + redid URI reference stuff a bit + +2004-01-06 Nathan Hurst <njh@mail.csse.monash.edu.au> + + * src/desktop-snap.{h,cpp} is now built using NR::Point. + +2004-01-06 Nathan Hurst <njh@mail.csse.monash.edu.au> + + * src/draw-context.cpp closing a segment now remains snapped. + Lots of snapping fixes. + +2004-01-05 MenTaLguY <mental@rydia.net> + + * src/uri-references.cpp, src/uri-references.h, + src/uri.cpp, src/uri.h, sp-item.cpp: + new URI code + +2004-01-04 MenTaLguY <mental@rydia.net> + + * src/object-ui.cpp: flattened group submenu + + * src/uri-references.cpp: fixed initialization bug; for + pre-existing references, the "release" signal wasn't being + connected + +2004-01-04 Peter Moulder <pmoulder@mail.csse.monash.edu.au> + + * src/helper/bezier-utils.cpp: Greater use of NR::Point instead of + NRPoint. (Readability improved as a result.) + Get rid of now-unused sp_vector_add etc. functions. + Get rid of MAXPOINTS fixed upper limit, in the process making more efficient. + NewtonRaphsonFindRoot: handle the case where f'(u) <= 0. (Previously + it would seek a local maximum instead of minimum in this case.) + Rename lots of static functions according to our coding standards. + Fix some documentation. + Filter out any NaN points in the input. + Change the iteration cutoff from the square of the requested error to + 3 * the requested error. Change the "acceptable error" test from `<' + to `<='. + * src/helper/bezier_utils.h (sp_bezier_fit_cubic_full): change + arguments from NRPoint to NR::Point. + * src/sp-spiral.cpp: Adapt to sp_bezier_fit_cubic_full change. + Greater use of NR::Point instead of NRPoint. + + * src/helper/curve.h, src/helper/curve.cpp (sp_curve_moveto, + sp_curve_lineto, sp_curve_curveto): Add convenience wrappers that + take n NR::Point's instead of 2*n gdoubles. + + * src/helper/curve.h, src/helper/curve.cpp: Indicate that certain + functions don't modify the curve passed to them. + + * src/libnr/nr-types.h: operator[], operator+=, operator/=, unary operator-, + operator==, operator!=: new. Remove methods L1,L2,Linfty, move them to + functions in nr-point-fns.{h,cpp}. Rename Normalize to normalize with + more sophisticated non-inline implementation in nr-types.cpp. + * src/libnr/{nr-types.cpp,nr-point-fns.h,nr-point-fns.cpp}: new files. + * src/libnr/nr-types-test.cpp: new unit test file. + * src/libnr/Makefile.am: mention the new files. + + * src/Makefile.am: Add `check-recursive: all-recursive' dependency + (and a comment with related discussion). + + * src/xml/Makefile.am: Append $(EXEEXT) to executables in TESTS. + + * src/verbs.cpp (sp_action_get_title): Get rid of fixed-sized buffer. + + * src/nodepath.cpp: Miscellaneous cleanups including fixing + erroneous indentation, changing `g_list_length(foo) == 0' to `foo + == NULL', removing unused function closest_of_three, specifying + some functions as `static', adding doc. + + * src/inkscape.cpp (inkscape_remove_desktop): Change + `g_slist_length (foo) == 0' to `foo == NULL'. + + * src/dyna-draw-context.cpp (fit_and_split_calligraphics): Fix the + calculation of BEZIER_MAX_LENGTH. + Add assertions that the corresponding buffers haven't been overrun. + +2004-01-03 Ted Gould <ted@gould.cx> + + * src/helper/bezier-utils.cpp, src/inkscape-stock.h: + Fixing some Doxygen errors. + +2004-01-03 bulia byak <bulia@dr.com> + + * src/dialogs/dialog-events.{cpp|h}: Hide/unhide callbacks + + * all dialog files: Connected hide/unhide signals + + * src/inkscape.cpp src/inkscape.h: New functions for dialog hide, unhide, toggle + + * src/verbs.cpp src/verbs.h: New verb for dialog toggle + + * src/shortcuts.cpp: F12, quoteleft toggle dialogs + + * src/desktop.cpp: Zoom field width increased + + * src/node-context.cpp: Crash fix by Robert Crosbie + +2004-01-03 MenTaLguY <mental@rydia.net> + + * src/inkscape.cpp, src/inkscape.h, src/main.cpp: + fixes to preference loading + + * src/uri-reference.h: documented Inkscape::URIReference + + * src/sp-item.cpp: fixed double hunref problem + + * src/sp-item.cpp, src/uri-references.h, src/uri-references.cpp: + reworked Inkscape::URIReference a little + + * src/sp-item.cpp: masks now use Inkscape::URIReference as well + +2004-01-02 MenTaLguY <mental@rydia.net> + + * src/shortcuts.cpp: zoom in shortcut fix for german and other + keyboards from schumaml + + * configure.in: added SigC++ 1.2 dependency + + * src/document-private.h, src/document.h, src/document.cpp, + src/sp-item.h, src/sp-item.cpp, src/uri-reference.h, + src/uri-reference.cpp: rewrote URI monitoring code using SigC++ + + * src/inkscape.cpp: fix some portability issues + + * src/inkscape.cpp, src/widgets/icon.cpp, src/monostd.h: cleaning up + more platform stuff + + * src/dir-util.cpp, src/dir-util.h, src/dialogs/export.cpp: + remove sp_filename_from_path(); use g_path_from_filename instead + +2004-01-02 Alexander Clausen <alex@skip86.com> + + * src/spsvgview.cpp src/inkview.cpp src/Makefile.am: re-enabled svg viewer, + renamed to inkview to avoid name clash with spsvgview from sodipodi + +2004-01-01 bulia byak <bulia@dr.com> + + * src/desktop.cpp: Pass keyboard events from desktop widget to event contexts (if + there is no current item on the canvas); now all keys work regardless of mouse + position, so long as the document window has focus. + + * src/verbs.cpp src/verbs.h: New verbs for switching desktops + + * src/inkscape.cpp src/inkscape.h: New functions for switching desktops + + * src/nodepath.cpp: Fix crash: Tab when no nodepath + + * src/shortcuts.cpp: Ctrl-Tab, Shift-Ctrl-Tab cycle desktops + + * src/node-context.cpp src/event-context.cpp src/select-context.cpp: Do not consume + Ctrl-Tab/Shift-Ctrl-Tab in contexts. Explicitly run the corresponding verb in + event-context.cpp because otherwise GTK gobbles it. + + * src/splivarot.cpp: Edits in statusbar error messages + +2004-01-01 MenTaLguY <mental@rydia.net> + + * src/document-private.h, src/document.h, src/document.cpp, + src/sp-item.h, src/sp-item.cpp, src/uri-reference.h, + src/uri-reference.cpp: + added code to handle notifications when uri/id mappings + changed + + * src/desktop.cpp, src/style.cpp: compilation cleanups + + * src/libnr/nr-types.h: documented NR::Coord and NR::ICoord + +2003-12-31 MenTaLguY <mental@rydia.net> + + * removed *S variants of NR structs + + * src/libnr/gen_nr_config.c: removed! + + * src/xml/repr.h, src/xml/repr-private.h, src/xml/repr-io.cpp, + src/xml/repr.cpp: very preliminary comment support + + * configure.in, src/desktop.cpp, src/main.cpp: removed gtkmm + dependency for now + +2003-12-30 bulia byak <bulia@dr.com> + + * src/selection-chemistry.cpp: Grouping: Statusbar messages for nothing to group or + only one object, prevent crash when trying to group objects with different parents, + add new group to the members' common parent rather than to the document + root. Ungrouping: ungroup all groups in selection, statusbar messages for nothing to + ungroup. + + * src/node-context.cpp src/node-context.h src/knotholder.h src/knotholder.cpp + src/nodepath.h src/nodepath.cpp src/document-undo.cpp: Add repr listener in node + context recreating nodepath or knotholder when the repr was changed outside of the + node editor, remove the change selection signal hack in document_undo, fixes many + bugs. + +2003-12-28 Daniel Borgmann <spark@mayl.de> + + * src/main.cpp: Include gtkmm/main.h and gtkmmify the main loop + + * src/desktop.cpp: convert save confirmation dialog to Gtkmm + +2003-12-28 Peter Moulder <pmoulder@mail.csse.monash.edu.au> + + * src/helper/Makefile.am: Try not to require Gnu make. + +2003-12-27 Alexander Clausen <alex@skip86.com> + + * src/interface.{h,cpp} (sp_ui_error_dialog): new function. + + * src/file.cpp src/main.cpp src/dialogs/export.cpp src/interface.cpp: use it + +2003-12-27 bulia byak <bulia@dr.com> + + * src/draw-context.cpp: Added drag_tolerance to bezier tool, messages to statusbar + + * src/knot.cpp: Do not consume Esc when not escaping knot dragging + + * src/select-context.cpp: Enable dragging objects selected within group + +2003-12-27 Peter Moulder <pmoulder@mail.csse.monash.edu.au> + + * src/helper/bezier-utils.cpp: Simplifications & documentation. + +2003-12-26 bulia byak <bulia@dr.com> + + * src/document.cpp: added rel2abs to sp_document_set_uri, simplified + + * src/document.cpp: removed rel2abs into dir-util + + * src/dir-util.cpp src/dir-util.h: moved rel2abs and abs2rel here + + * src/modules/svg.cpp: Cleaned up svg_save: removed extraneous setting of docbase and + docname, moved uri_set before save, added comments + + * src/document.h src/document.cpp src/desktop.h src/desktop.cpp: item_at_point: add + into_groups; group_at_point: new + + * src/selection.cpp: When selecting a group, deselect all its descendants to prevent + double selection + + * src/select-context.cpp src/select-context.h: Added ctrl-click/ctrl-shift-click to + select/add to selection regardless of grouping + + * src/verbs.cpp: 2 more mnemo changes + +2003-12-26 Nathan Hurst <njh@mail.csse.monash.edu.au> + + * libnr: moving towards a fully class based Point and Matrix. + This change adds an initial sketch of matrix. + +2003-12-26 MenTaLguY <mental@rydia.net> + + * configure.in: added Gtkmm dependency, removed AC_FUNC_MALLOC + +2003-12-25 MenTaLguY <mental@rydia.net> + + * src/desktop.cpp: changed g_sprintf to g_strdup_printf + +2003-12-25 Daniel Borgmann <spark@mayl.de> + + * src/interface.cpp src/verbs.cpp: Fixed a few more mnemonics (mostly + duplicates) and changed shortcut labels to use uppercase letters like the + rest of the world. :-) + +2003-12-25 Alexander Clausen <alex@skip86.com> + + * src/file.cpp src/main.cpp src/dialogs/export.cpp: Made error dialogs + and progressbar transient and non-resizable; made export file selector + transient. + +2003-12-24 bulia byak <bulia@dr.com> + + * src/select-context.cpp: Added statusbar update in a few places + + * src/interface.cpp: Changed order of keyboard modifiers. Split view and object menus. + + * src/verbs.cpp: A couple fixes in mnemonics to better match shortcuts + + * samples/tux.svg: Added missing sodipodi namespace, added namedview + +2003-12-24 Alexander Clausen <alex@skip86.com> + + * src/file.cpp src/modules/system.cpp: Fix for 860199; returning NULL in + sp_module_system_open when doc == NULL; added error dialog. + + * src/main.cpp: Add error dialog when file given on command line does not + exist, and create an empty document in that case. + +2003-12-24 MenTaLguY <mental@rydia.net> + + * src/verbs.cpp: renamed 'XOR' to 'Exclude' on the menu + + * src/object-ui.cpp: moved object-specific menuitems out onto the + main context menu, instead of sequestered in their own submenus. + +2003-12-24 Alexander Clausen <alex@skip86.com> + + * src/interface.cpp: + Added partial DND (drop part only for now) for image/svg and image/svg+xml, + and a tweak to make uri-dnd with konqueror work. + +2003-12-24 Daniel Borgmann <spark@mayl.de> + + * src/interface.cpp src/verbs.cpp src/object-ui.cpp src/modules/menu.cpp: + Added mnemonics and some HIGification + + * src/verbs.cpp: New: sp_action_get_title(), get action name without + underscores (for use in dialog titles or other places without mnemonics) + +2003-12-23 bulia byak <bulia@dr.com> + + * src/helper/sp-canvas.h: float-to-double fix + + * src/sp-namedview.h src/sp-namedview.cpp: New namedview attributes for zoom and + window geometry; functions for updating them from a desktop and for setting up a + desktop from these attributes + + * src/preferences-skeleton.h: new options.savewindowgeometry + + * src/attributes.h src/attributes.cpp: New namedview attributes + + * src/desktop.cpp: Remove/comment out extraneous code. Float-to-double fixes, prevent + sliding when zooming in at max zoom. + + * src/file.cpp src/main.cpp src/interface.cpp: Added document_from_window and + window_from_document hooks to file opening and saving functions + + * src/document.cpp: New: inkscape_rel2abs() (based on g_rel2abs by Shigio Yamaguchi), + store absolute filenames in document->uri. Fixed reading namedview template from + preferences, fixed namedview template id, added comments. + + * src/nodepath.cpp: Ctrl + click node: delete node + + * src/desktop.cpp src/file.cpp src/file.h: New save confirm dialog (patch by spark) + +2003-12-23 MenTaLguY <mental@rydia.net> + + * src/desktop.cpp: shortened rulers to canvas dimensions for now + + * src/main.cpp, src/Makefile.am: renamed DATADIR to INKSCAPE_DATADIR + for the remaining platforms + +2003-12-23 Peter Moulder <pmoulder@mail.csse.monash.edu.au> + + * src/desktop-snap.h, src/desktop-snap.cpp (all functions): + Indicate that the given point(s) aren't modified by these functions. + +2003-12-22 bulia byak <bulia@dr.com> + + * src/nodepath.cpp: Ctrl + Alt + click node: toggle smooth/cusp/symmetric. + + * src/select-context.cpp: No more snapping back to the origin because of drag + tolerance (once you trespass the drag tolerance limit once, it does not affect you + anymore). + + * src/knot.cpp: Used global drag tolerance, no snapping to the origin. + + * src/node-context.cpp: Click outside of nodepath deselects. Added drag tolerance for + selecting non-selected paths by click. Removed drag_escaped - there's no dragging to + escape in node context (only in knot). + +2003-12-22 bulia byak <bulia@dr.com> + + * src/nodepath.cpp src/nodepath.h>: restrict control handle movement with ctrl, alt, + shift; utility functions for radial coordinates; fixed several crashes when nodepath + operations are called but there's no nodepath + + * src/desktop.cpp: filled in sp_desktop_set_coordinate_status implementation, added + comment + +2003-12-22 Peter Moulder <pmoulder@mail.csse.monash.edu.au> + + * src/helper/bezier-utils.cpp (sp_darray_center_tangent, + sp_darray_left_tangent, sp_darray_right_tangent), + src/helper/bezier-utils.h, src/sp-spiral.h, src/sp-spiral.cpp + (sp_spiral_get_tangent): + Make these functions static. + + * src/helper/bezier-utils.cpp (GenerateBezier): Back out accidental + commit of inserted g_assert(!isnan(bezier coordinate)). (Having a NaN + bezier coordinate is usually a problem, perhaps worth warning about, + but it's hard to make it impossible, so it shouldn't be g_assert.) + Reported by bulia byak. + +2003-12-22 Nathan Hurst <njh@mail.csse.monash.edu.au> + + * Added a new class NR::Point which will replace NRPoint + throughout the code, and replace things like .cx, .cx in the + circle structure. + +2003-12-21 MenTaLguY <mental@rydia.net> + + * Finally cleaned up the linker issues + +2003-12-21 Peter Moulder <pmoulder@mail.csse.monash.edu.au> + + * src/Makefile.am (inkscapelib_src): + src/livarot/Makefile.am (libvarot_a_SOURCES): + Add some header files to SOURCES, so that `make distcheck' works. + + * src/style.cpp (sp_style_read_ipaint): Skip leading whitespace. + Fixes #853804. Improves rendering of Dia-exported SVG. + +2003-12-20 Peter Moulder <pmoulder@mail.csse.monash.edu.au> + + * src/sp-spiral.cpp (sp_spiral_set): Fix clamping of t0 value: change + min from -1.0 to 0.0 as per all other t0 clamps and as required in some + circumstances by sp_spiral_get_xy. + (sp_spiral_fit_and_draw): Avoid useless adjacent dups in point sampling. + + (sp_spiral_fit_and_draw, sp_spiral_set_shape): Call proper tangent + routine instead of trying to estimate from samples. + (sp_spiral_get_tangent): New function. + + * src/helper/bezier-utils.cpp (sp_bezier_fit_cubic): Implement as a call + to sp_bezier_fit_cubic_r. + (sp_bezier_fit_cubic_full): Mark *tHat1 and *tHat2 as const. + (sp_bezier_fit_cubic_full, ChordLengthParameterize): Add minimal + handling for the case where the input data is a zero-length path. + (NewtonRaphsonRootFind): If "improved" value is NaN or +/-inf then + return the original. + + * src/libnr/nr-macros.h (CLAMP): Change the behaviour if the first + argument is NaN: previously it would return NaN, now it returns the + requested lower bound. Document the behaviour. Add an assertion that + the requested lower bound <= the requested upper bound. + + * src/libnrtype/nr-type-ft2.cpp (nr_typeface_ft2_lookup): Change apparently-erroneous + arguments to CLAMP, and add a FIXME comment indicating that the new arguments are + just a guess as to the original intent. + +2003-12-20 MenTaLguY <mental@rydia.net> + + * src/help.cpp, glade/about_svg.tmpl, glade/about.svg: + fixed version display in about box + + * src/desktop.cpp, src/desktop.h, src/document.cpp, src/document.h: + added sp_desktop_item_at_point() + +2003-12-19 bulia byak <bulia@dr.com> + + * src/sp-item.cpp src/sp-item.h: new sp_item_get_arenaitem (by mental) + + * src/main.cpp src/file.cpp src/file.h src/dialogs/export.cpp: export UI improvements + (patches from the tracker) + + * src/select-context.cpp: shift-click selection is now in root_handler, uses + sp_document_item_at_point(); changed shift-rubberband selection to always select + instead of toggle + + * src/document.h src/document.cpp: wrong order of arguments in overlap() fixed; new: + sp_document_item_at_point(), uses sp_item_get_arenaitem + + * src/Makefile.am: fix: ps.c -> ps.cpp + + * src/nodepath.cpp: dragging node with ctrl+alt restricts it to the directions of its + handles and their perpendiculars + +2003-12-19 MenTaLguY <mental@rydia.net> + + * Fixed most shortcut key regressions from the SPAction rework + + * Renamed the Inkscape class (struct really) to Inkscape::Application; we can now + use the Inkscape namespace. + + * src/toolbox.cpp, src/helper/action.cpp, src/helper/action.h: + SPActions now know their desktop, and toolbar buttons get it assigned correctly + + * src/desktop.cpp, src/interface.h, src/interface.cpp, src/verbs.cpp: + Verbs now use the desktop associated with an action rather than SP_ACTIVE_DESKTOP + +2003-12-18 Jon A. Cruz <jon@joncruz.org> + + * fix for 859133; Reduced number of generated events. + +2003-12-18 Jon A. Cruz <jon@joncruz.org> + + * src/widgets/sp-color-gtkselector.cpp: fix for 859131; Changed descriptive name of GTK+ + selector. + +2003-12-18 MenTaLguY <mental@rydia.net> + + * First steps towards making actions per-view + +2003-12-17 Jon A. Cruz <jon@joncruz.org> + + * src/widgets/sp-color-notebook.cpp: fix for 859128; changed selectors to grow when + given more space. + +2003-12-17 Jon A. Cruz <jon@joncruz.org> + + * Converted color selectors to C++ classes. + +2003-12-18 Nathan Hurst <njh@csse.monash.edu.au> + + * Merged NRPointF and D, similarly Matrix and Rect. + +2003-12-18 Peter Moulder <pmoulder@mail.csse.monash.edu.au> + + * src/toolbox.cpp: re-added spiral button (reverting MenTaLguY's change). + +2003-12-17 bulia byak <bulia@dr.com> + + * src/xml/repr-io.cpp src/xml/repr.h: fix to suppress formatting whitespace when + serializing text and its children + + * src/select-context.cpp: shift now prevents dragging objects, creating rubberband + instead + +2003-12-17 Nathan Hurst <njh@csse.monash.edu.au> + + * provided some initial thoughts on how to do Points uniformly across inkscape. geom.h + * partial currying of zoom menu + +2003-12-17 MenTaLguY <mental@rydia.net> + + * src/toolbox.cpp: removed spiral button + +2003-12-16 bulia byak <bulia@dr.com> + + * src/nodepath.cpp src/nodepath.h: node drag is now restricted to hor/vert by ctrl + +2003-12-16 bulia byak <bulia@dr.com> + + * src/seltrans.cpp: fix for 860201; ctrl restricts rotation by 15 degrees (from + sodipodi); used new status display function + + * src/sp-text.cpp: removed non-printable char error into text-context, removed + extraneous assignment + + * src/verbs.cpp: typo fix + + * src/knot.cpp: in cancelling drag, use the knot's desktop instead of active; add + statusbar flash + + * src/draw-context.cpp: changing useful messages to statusf_flash, removing useless + debug output + + * src/nodepath.cpp: statusbar error message if joining nodes fails; expanded + update_statusbar + + * src/select-context.cpp: statusbar flash when esc cancels selection or drag + + * src/selection.cpp: expanded update_statusbar + + * src/text-context.cpp: used statusf_flash for no-break space, added non-printable + char error + + * src/tools-switch.cpp: added default statusbar message for each tool + + * src/desktop.cpp: new handler for status_set, with timeout; initialize message in + statusbar + + * src/view.cpp src/view.h: status_set signal: added msec, removed isdefault; added + _flash and _error functions for temporary statusbar display; added docs + +2003-12-14 Ted Gould <ted@gould.cx> + + * src/widgets/button.cpp, src/helper/action.h, src/helper/action.cpp, + src/verbs.h, src/verbs.cpp, src/toolbox.cpp, src/shortcuts.h, + src/shortcuts.cpp, src/interface.h, src/interface.cpp: + Adding in a sp_verb_t to identify verbs to make later conversions + easier. Also adding an arguement to the perform function of + SPActionEventVector so that data can be passed to modules (when + they're converted to action/verb). + +2003-12-14 MenTaLguY <mental@rydia.net> + + * src/view.h, src/view.c: added new utility things for setting status + + * src/draw-context.c, src/text-context.c, src/view.c, src/view.h: + retired sp_status_display() and sp_status_clear() + +2003-12-14 bulia byak <bulia@dr.com> + + * src/verbs.h src/verbs.c: changed 'offset' to 'outset' (more logical), added simplify + path command + + * src/interface.c: added sp_key_name to make shortcuts more readable, added simplify + path command, regrouped commands more logically + + * src/shortcuts.c: changed shortcuts for boolean ops, readability, minor cleanups + + * src/inkscape.c: increased max length of recent documents list to 15, fixed trimming + the list + + * src/seltrans.c: fixed crash when scaling very small objects at max zoom + +2003-12-12 MenTaLguY <mental@rydia.net> + + * doc/Makefile.am, Makefile.am, configure.in: include doc/ + subdirectory in distribution tarballs + + * src/widgets/icon.c: final tweaks for getting icon highlights + right on buttons (temporary hack, hopefully) + + * src/splivarot.cpp: compilation fix + + * src/widgets/sp-color-notebook.c: minor tweak so selector menu + is a little more obvious + +2003-12-12 bulia byak <bulia@dr.com> + + * src/svg/svg-path.c src/desktop.h src/libnr/gen_nr_config.c src/libnr/nr-object.c + src/libnr/nr-types.h: made all floats doubles and all shorts ints in libnr; maximum + zoom is increased to 256; SVG paths are stored with 8 digits precision (was 6) + +2003-12-11 bulia byak <bulia@dr.com> + + * src/node-context.c adding node edit statusbar updates + + * src/selection.c: update statusbar only if selector is active + + * src/tools-switch.c: update statusbar when selector is activated + + * src/nodepath.c src/nodepath.h: function for node edit statusbar display; fixes for + several tab-cycling and node-deleting bugs + + * src/sp-path.c: added description for SPPath (used in statusbar display) + + * src/draw-context.c: moved some messages from console to statusbar + + * src/view.c src/view.h: utility functions for statusbar display + + * src/text-context.c: statusbar display for unimode + +2003-12-10 Ted Gould <ted@gould.cx> + + * configure.in: Changing to 0.37cvs + +2003-12-10 bulia byak <bulia@dr.com> + + * src/verbs.c: SELECT_ALL is now tool-sensitive, comments + + * src/shortcuts.c: ctrl-a for the SELECT_ALL global verb; h and v for flips + + * src/interface.c: split edit menu into edit and object + + * src/node-context.c: removed ctrl-a, now taken care of by the global verb + + * src/nodepath.c: select_all silently returns if given null arg + + * doc/keyboard-shortcuts.txt: new shortcuts from wiki + +2003-12-09 bulia byak <bulia@dr.com> + + * src/helper/png-write.c: fix for png comments (from sodipodi) + + * src/nodepath.c: fix for 856700, 856686; a better control point positioning for + join_segment + + * src/shortcuts.c: fix default shortcut for star tool + + * src/prefs-utils.c src/prefs-utils.h: new *_limited functions to get data guarding + against through-the-roof values + + * src/select-context.c src/node-context.c: using *_limited functions to get preference + values + + * src/document-undo.c: fix in sp_document_maybe_done to combine same-key steps + + * src/selection-chemistry.c src/nodepath.c: put subsequent same-direction arrow-key + movements into one undo step + + * src/sp-text.c src/sp-text.h: removed the preservews argument of sp_text_insert + + * src/text-context.c src/text-context.h: if there's no text object selected, keys are + not consumed; fixed passing unconsumed keys to parent context; any non-hex-digit now + cancels unimode + + * src/dialogs/transformation.c: re-fixing pjrm's fix properly + +2003-12-08 bulia byak <bulia@dr.com> + + * src/sp-text.c: fixed typing non-ascii chars; copied (with fixes) treatment of + xml:space from sodipodi 0.33 + + * src/sp-text.h: small fix from sodipodi 0.33 + + * src/text-context.c: copied sp_text_context_preedit_reset and related code from + sodipodi 0.33; xml:space='preserve' is added to newly created text objects; esc + deselects; uncatched keys are passed on; misc fixes + +2003-12-08 MenTaLguY <mental@rydia.net> + + * src/widgets/button.c: put errors to rest for now + + * src/document-undo.c: removed code to limit undo list length + +2003-12-07 MenTaLguY <mental@rydia.net> + + * src/widgets/button.c: fixed unsignedness warning + +2003-12-06 bulia byak <bulia@dr.com> + + * src/dialogs/align.c: tooltip fix (from sodipodi) + + * src/libnr/nr-stroke.c: fix for 853827, rendering of short paths (from sodipodi) + + * src/sp-text.c src/sp-text.h src/text-context.c: enabled home/end in text (from sodipodi) + + * src/document-undo.c: increased MAX_UNDO to 512 + + * src/file.c src/dialogs/export.c: fix for 851012: the smallest possible exported png + is now 1x1 + + * src/widgets/font-selector.c: fix for 851789: no exponential display in font size field + +2003-12-06 MenTaLguY <mental@rydia.net> + + * src/desktop.c: permit the canvas widget to take keyboard focus + + * src/widgets/button.c, src/widgets/button.h: reworked perform + callback as separate callback, so we can use + g_signal_handlers_{un,}block...() on it rather than the stupid + semaphore counter thing I had originally. + + Also switched to sp_icon_new() instead of sp_icon_new_scaled(), as + otherwise the small icons were too small (but the large icons are + now smaller than they could be... darn it... ><) + +2003-12-05 Bryce W. Harrington <brycehar@bryceharrington.com> + + * style.*, sp-path.*, sp-shape.*, more: Hooking up preliminary + support for path markers (arrowheads). Also adding + documentation, fixing if statement style, etc. + +2003-12-05 MenTaLguY <mental@rydia.net> + + * src/widgets/icon.c, src/widgets/button.c, src/widgets/button.h, src/toolbox.c: + Reworked SPButton to derive from GtkToggleButton. + + * src/svg/svg-length.c, src/helper/units.c: removed #ifdef WIN32 insanity + + * src/Makefile.am, src/extension.c, + src/extension.h, src/extensions-skeleton.h, + src/main.c, src/inkscape.c, src/toolbox.c: Removed dead code left + over from first extensions implementation + + * configure.in, src/main.c: removed freebsd-specific test and just check for fpsetmask() instead + + * src/verbs.c: fixed quit icon + +2003-12-04 bulia byak <bulia@dr.com> + + * src/toolbox.c: added convert to curves button, cosmetic changes in aux toolbar + + * src/text-context.c: made text editing via xml editor undoable + + * src/nodepath.c: new functions to duplicate node, fixes to node_break and selection + functions, new (presently unused) functions for saving/restoring node selection + + * src/node-context.c: shift-d to duplicate node, all keys now work regardless of capslock + + * src/document-undo.c: temp fix: undo emits selection_changed signal for node editor + to update display + + * src/selection.c: new function without arguments to emit change_selection signal + + * src/selection.h: new function without arguments to emit change_selection signal + + * src/nodepath.h: new functions to duplicate node, new (presently unused) functions + for saving/restoring node selection + +2003-12-04 MenTaLguY <mental@rydia.net> + + * src/desktop.c: rearranged toolbars so aux toolbar is topmost + * src/toolbox.c: made toolbars detachable + +2003-12-02 bulia byak <bulia@dr.com> + + * src/file.c: made open and save dialogs modal and transient + +2003-12-02 bulia byak <bulia@dr.com> + + * src/interface.c: removed tool attributes command + * src/preferences-skeleton.h: added branch for export dialog + * src/file.c: made import dialog transient + * src/verbs.c: changed some dialog names and tooltips + * src/shortcuts.c: changed shortcuts for transform and text dialogs + * src/dialogs/display-settings.c: fixed dialog title + * src/dialogs/export.c: made unsinkable, remembering size and position, added label + for filename + +2003-11-30 MenTaLguY <mental@rydia.net> + + * src/xml/repr-io.c, src/attributes.c, src/attributes.h, + src/sp-object.h, src/sp-object.c: merged basis for Oka's + xml:space support + + * src/toolbox.c: made tool buttons larger, aux buttons smaller + + * src/document-undo.c: fixed bug with undo/redo past the + beginning/end of the undo history + +2003-11-29 bulia byak <bulia@dr.com> + + * src/selection-ch emistry.c src/selection-chemistry.h src/verbs.c src/verbs.h + src/shortcuts.c src/interface.c: new function, verb, shortcut (shift-ctrl-v), menu + command: paste style (apply the style of copied object to selection). If more than + one object is copied, the first one in the clipboard list is taken as the source of + the style. + +2003-11-30 Peter Moulder <pmoulder@mail.csse.monash.edu.au> + + * src/style.c (sp_style_merge_from_parent): Fix some + unsigned-related bugs with "font-weight=lighter", + "font-stretch=narrower", "opacity=...". + + * src/modules/system.c (sp_module_system_save): Partial fix for + unrecognized filetype: show a CRITICAL warning instead of + segfaulting due to uninitialized var. + + * src/document.c (sp_document_new), file.c (file_open_ok, + sp_file_open_dialog, sp_file_save_dialog, sp_file_do_import), + main.c (sp_main_console), src/module.c (sp_module_finalize, + sp_module_input_finalize, sp_module_input_build, + sp_module_output_finalize, sp_module_output_build), + src/sp-anchor.c (sp_anchor_set), src/sp-image.c (sp_image_set), + src/sp-text.c (sp_string_release, sp_string_read_content, + sp_string_set_shape), src/sp-use.c (sp_use_release), src/style.c + (sp_style_unref, sp_style_merge_property, + sp_style_merge_from_parent, sp_text_style_unref, + sp_style_read_istring), src/bonobo/embeddable-document.c + (sp_bonobo_stream_read, sp_embeddable_document_ps_save), + src/dialogs/stroke-style.c (sp_stroke_style_scale_line), + src/dialogs/text-edit.c (sp_text_edit_dialog_text_changed), + src/helper/sodipodi-ctrl.c (sp_ctrl_build_cache), + src/modules/ps.c (sp_ps_print_image), + src/widgets/font-selector.c (sp_font_preview_set_phrase), + src/widgets/gradient-image.c (sp_gradient_image_size_allocate), + src/xml/repr-action.c (coalesce_chgattr, coalesce_chgcontent, + free_action), src/xml/repr.c (repr_finalize, sp_repr_merge): + Minor cleanup: replace `if (POINTER_EXPR) g_free (POINTER_EXPR)' + with the simpler (more readable) `g_free (POINTER_EXPR)'. + +2003-11-29 Kees Cook <inkscape@outflux.net> + + * src/utest/.cvsignore: adding "Makefile" + * src/desktop.c: sp_desktop_pop_event_context could use uninit'd *ec + * src/desktop.h: missing declaration of sp_desktop_zoom_page_width + * src/libnrtype/nr-rasterfont.c: give *spx and srs default values + * dialogs/dialog-events.c: remove unused *w and *dtw + +2003-11-29 MenTaLguY <mental@rydia.net> + + * src/interface.c: switched to GNOME HIG menu style + + * src/toolbox.c: gave the aux toolbox a fixed (minimum) size so + the workspace will jiggle less as different tools are selected. + + * src/utest/Makefile.am, src/utest/utest.c, src/utest/utest.h, + src/xml/Makefile.am: turned the utest stuff into a giant .h + file again, which hopefully won't confuse things like the .inc + extension did. + +2003-11-29 bulia byak <bulia@dr.com> + + * shortening tooltips, new verb and menu command for zoom to page width + +2003-11-29 Bryce Harrington <brycehar@bryceharrington.com> + + * README: Updating "Sodipodi" to "Inkscape", removing some + obviously obsolete bits. + + * inkscape.1.in, inkscape.pod: Totally rewriting manpage from + scratch. The old one appeared to be for some other application, + because it was just a list of options, 90% of which aren't + implemented. I chose to do it in POD for convenience, but hand + edited the 1.in file to remove bits about "Perl Documentation", + etc. + + * General: Some fixes to recently added code that broke the g++ + compile. + +2003-11-29 Peter Moulder <pmoulder@mail.csse.monash.edu.au> + + * src/utest/Makefile.am, src/utest/utest.c, src/utest/utest.inc, + src/utest/utest.h, src/xml/Makefile.am, src/xml/repr-action-test.c: + Split utest.inc into utest.h and utest.c. Update users. + + Make utest.c,utest.h formatting conform more to doc/coding-style.txt. + + Have utest.c built into libutest.a (see src/utest/Makefile.am + comments). + + * src/xml/repr-action.c (reverse_log): Add doc comment. Rename some vars. + + * src/xml/repr-action.c (sp_repr_replay_log, sp_repr_undo_log), + src/xml/repr-action.h, src/document-undo.c (sp_document_cancel, + sp_document_redo, sp_document_undo): Remove the unused doc + argument to sp_repr_replay_log, sp_repr_undo_log. Update callers. + +2003-11-28 Peter Moulder <pmoulder@mail.csse.monash.edu.au> + + * extensions/ai_input.inkmod, extensions/dia.inkmod, + extensions/svgz_input.inkmod, extensions/svgz_output.inkmod: + Change the filename extension from `foo' to `.foo'; i.e. the + filename must end in `.foo' to be considered a match, rather + than merely ending in `foo'. + + It appears that the sole users of this data are in src/system.c + (open_internal, save_internal). + + I've found no documentation needing updating, according to + `rgrep -i extension doc'. + + * src/system.c (open_internal, save_internal): Minor effec tweaks: + fewer strlen calculations. + + * src/dialogs/transformation.c: Fix uninitialized-var bug. + +2003-11-28 MenTaLguY <mental@rydia.net> + + * src/document.c, src/document-undo.c, src/document-private.h: + renamed SPDocumentPrivate::undo_size to ::history_size. Fixed + long-standing undo bug, where maybe_done() would neglect to + start a new transaction if the previous transaction log were + empty. + + * src/xml/repr-action-test.c, src/utest/utest.inc: made test + control structure a little clearer (hopefully) by hiding it. + Also some initial Doxygenification of the unit testing stuff. + + * src/Makefile.am: added utest/ subdir + + * doc/architecture.svg: reworked architecture diagram a bit + + * doc/class-hierarchy.dia: added first shot at documenting the + class hierarchy in Dia + + * src/modules/svg.c, src/modules/win32.c: change "...with + xmlns:sodipodi namespace" to "...with extension namespaces" + + * src/xml/repr-action.c: fixed log optimizer to check + SPReprAction::type before coalescing adjacent actions + +2003-11-27 Bryce <bryce@osdl.org> + * doc/architecture.svg: Added architecture.svg to try to capture + the subsystems at a block layer level. Defining colors, working + up basic structure, etc. + * Adding defines, functions, etc. for allowing markers into + inkscape-stock.h, sp-marker.*, sp-path.c, sp-shape.h, style.*, + and dialogs/stroke-style.c + * Added some new UI utility functions to spw-utilities.* and + changed dialog/stroke-style.c to use them, in order to simplify + redundancies in the code a bit. + +2003-11-27 MenTaLguY <mental@rydia.net> + + * src/desktop.c: the coord status bar area should not have a + resize handle + +2003-11-27 bulia byak <bulia@dr.com> + + * all dialogs remember size and position across sessions + * all dialogs are unsinkable (re-transientizing to the current document) + * all dialogs are closeable by ctrl-f4 and ctrl-w, defocusable by esc + * dialogs titles unified, added shortcut display in the titles + +2003-11-27 MenTaLguY <mental@rydia.net> + + * src/utest/Makefile.am, src/utest/utest.inc: new minimalist + unit testing framework + + * src/xml/Makefile.am, src/xml/repr-action-test.c: some tests + for the XML transaction stuff + + * src/desktop.c: reshuffled the widgets, switched to an embedded + toolbox, switched to using real GtkStatusbars for the status bar, + and (for the present) nuked the body of + sp_desktop_set_coordinate_status() since it had been #ifdeffed + out for ages anyway + + * src/desktop.h: removed another constant #ifdef + + * src/widgets/button.c: lobotomized toggle buttons temporarily, + so multiple windows having independent tool states wouldn't confuse + toolboxes :/ .. the real fix is to rework SPAction and friends + to not be so global-minded + + * src/event-context.h: changed sp_ui_generic_menu to + sp_ui_context_menu + + * src/interface.c: reworked the menu structure and introduced + sp_ui_main_menubar to create the menubar; changed sp_ui_generic_menu + to sp_ui_context_menu + + * src/main.c: remove the floating toolbox + + * src/shortcuts.c: remove shortcuts related to the floating toolbox + + * src/verbs.c, src.verbs.h: removing floating toolbox verb + + * src/widgets/sp-toolbox.c, + src/widgets/sp-toolbox.h, + src/widgets/Makefile.am: nuked floating toolbox window + +2003-11-25 bulia byak <bulia@dr.com> + + * src/select-context.c src/preferences-skeleton.h: new option: drag tolerance + +2003-11-25 bulia byak <bulia@dr.com> + + * src/dialogs/dialog-events.c src/dialogs/dialog-events.h: new callback and utility + functions for defocusing + * src/widgets/sp-color-selector.c src/widgets/dash-selector.c + src/dialogs/stroke-style.c: spinbuttons, text fields defocus on enter + +2003-11-24 bulia byak <bulia@dr.com> + + * src/dialogs/display-settings.c src/display/canvas-arena.c: cursor tolerance now + stored in preferences, default changed to 2.0 + +2003-11-24 bulia byak <bulia@dr.com> + + * src/preferences-skeleton.h: new group for global interface options + * src/prefs-utils.h src/prefs-utils.c: new functions for double attributes + * src/select-context.c src/node-context.c: nudge distance (without alt) is taken from preferences (default 1 mm) + +2003-11-24 bulia byak <bulia@dr.com> + + New keys in node editor: + * esc deselects and cancels rubberband and node dragging + * ctrl-a selects all nodes + * tab and shift-tab cycle through nodes of the current shape + +2003-11-23 Bryce Harrington <bryce@osdl.org> + + * Added include for document.h to knot.c for declaring + sp_document_undo, as g++ didn't like not having it declared. + +2003-11-22 bulia byak <bulia@dr.com> + + * unified handling of arrow keys in selector and node editor + * lots of new keys for switching tools and calling dialogs + * space works as temporary selector toggle + * new: tools-switch.{c,h} utilities for switching tools + * cleaned up zoom shortcts (1-5) + * keys for toggling grid (#) and guides (|) + * esc deselects, cancels rubberband selection, dragging or transformation + (in selector) + * quit (ctrl-q) now works everywhere + * new document is opened on startup if none was given on command line + * closing last open document shuts down the program + * floating toolbox is at most one copy, as are other dialogs + * toolbox command is moved to the dialogs menu, ctrl-` as shortcut + * document windows closeable by ctrl-f4 + * cleaned up status line messages, changed "items" to "objects" + * quit confirmation dialog appears near the cursor and is transient + * fix: killing quit confirmation dialog was interpreted as No instead + of Cancel + * preferences are now saved in case of a crash + * preferences are saved on exit + * new: prefs-utils.{c,h} utilities for handling preferences + * misc fixes + * misc shortcuts + +2003-11-18 Ted Gould <ted@gould.cx> + + * src/modules/system.c: Passed the wrong pointer. Fix is by + Robert Crosbie. + +2003-11-18 Ted Gould <ted@gould.cx> + + * src/widgets/sp-toolbox.c: Adding in an include for gtkimage.h + to get the stock functions. This fixes the build under g++. + +2003-11-18 Ted Gould <ted@gould.cx> + + * src/modules/extension.c: Changing mkstemp to g_mkstemp for + compatibility. + +2003-11-17 Kees Cook <inkscape@outflux.net> + + * configure.in: SF Patch #843537: more cast corrections from joncruz + +2003-11-17 Ted Gould <ted@gould.cx> + + * src/modules/init.c: Changing the process for handeling a directory + that doesn't exist. Now passing out a warning, and then returning. + The warning is on the command line so most users won't have to deal + with it (it _shouldn't_ happen anyway ;) Fixes: #843333. + +2003-11-17 Kees Cook <inkscape@outflux.net> + + * SF Patch #841940: autoconf update from joncruz + * SF Patch #842949: lpr fixes from Lynn Kerby + * SF Patch #842951: variable declaration fixes in interface.c + * SF Patch #842953: small color picker update from John Bintz + * SF Patch #842955: additional Darwin updates from Peter + * Fixed stroke style literal string bug that caused warnings + * SF Patch #842958: updated inkscape.desktop.in slightly + * SF Patch #843170: freetype include corrections + * SF Patch #843326: fixups for g++ compilation from joncruz + * Adding some more missing "extern C" sections for g++ compiles + * Small type corrections to quite g++ during -Wall + * Changed all the #endif // __cplusplus into a standard C comment + +2003-11-16 MenTaLguY <mental@rydia.net> + + * src/document.c: reworked sp_desktop_items_*in_box family to be layer-aware + +2003-11-16 Kees Cook <inkscape@outflux.net> + + * Cleaned up "desactivate" into "deactivate" + * Fixed GDK_SCROLL event from mouse wheel scrolling + * Cleaned up .cvsignore entries for fewer cvs warnings + +2003-11-16 MenTaLguY <mental@rydia.net> + + * dialogs/xml-tree.c: events should not be intercepted for the XML dialog + +2003-11-16 MenTaLguY <mental@rydia.net> + + * src/version.c: ME R DUM. Had the arguments to sscanf() reversed. + +2003-11-16 Ted Gould <ted@gould.cx> + + * Updating everything so that it builds under g++ again. Much + of the updates were to the recently checked in modules code. + +2003-11-16 MenTaLguY <mental@rydia.net> + + * New version code (version.c/version.h) + * Introduced inkscape namespace in parallel with sodipodi namespace + * Fixed a lot of attribute enum names to reflect sodipodi versus inkscape namespaces + * src/document.c: new version processing, plus namespace fixes + * SP_OBJECT_WRITE_INKSCAPE is now SP_OBJECT_WRITE_EXT + * Inkscape and Sodipodi versions are tracked separately + * First crack at layers! set inkscape:groupmode to "layer" or "group" depending on how you want a group to behave + * A little dead code removal + +2003-11-15 MenTaLguY <mental@rydia.net> + + * Mege Jon's improved src/help.c patch from the mailing list (with some temporary cruft of my own that I hope he'll forgive me for) + +2003-11-14 Ted Gould <ted@gould.cx> + + * Fixed up the module code alot. Now extentions are usable with + a XML file in the /usr/share/inkscape/modules directory. + +2003-11-12 Jon Cruz <jon@joncruz.org> + * Fix warnings due to missing casts - nr-rasterfont.c (840539) + * Fix warnings due to missing casts - desktop-snap.c (840543) + * Fix warnings due to missing casts - help.c (840545) + +2003-11-11 Robert Crosbie <swingincelt@hotmail.com> + + * Remove kde option from configure (840504) + * Remove icon hash from sp_icon_new_full (840506) + +2003-11-11 magnethead <magnethead@mindspring.com> + + * src/dialogs/transformation.c (sp_transformation_dialog_new): + Removed images from tabs + * src/dialogs/object-properties.c (sp_object_properties_dialog): + Removed images from tabs + +2003-11-11 Ted Gould <ted@gould.cx> + + * Starting 0.36 development + +2003-11-10 Ted Gould <ted@gould.cx> + + * Release 0.35 + +2003-11-08 Bryce Harrington <brycehar@bryceharrington.com> + * Updated About dialog + * Fixed bug on Editing Windows dialog + +2003-11-08 Manny the Gnome + * Remove KDE dialog option + +2003-11-06 Bulia Byak + * Add cursor-key support + +2003-10-19 MenTaLguY <mental@rydia.net> + + * src/xml/repr-io.c (sp_repr_svg_read_node): handle CDATA + sections properly + + * Most of the tree. Unsodipodified pretty much everything I could + find. New temporary icons, etc etc... + +2003-10-23 Ted Gould <ted@gould.cx> + + * src/*/Makefile.am: Changing the include paths to make distcheck + get closer to passing. + +2003-10-22 Ted Gould <ted@gould.cx> + + * configure.in: Changing version to 0.32-hydra1. This is after + much discussion and serious contemplation (okay, we never really + got out the magic eight ball). + +2003-10-22 Ted Gould <ted@gould.cx> + + * src/dialogs/desktop-properties.c, src/widgets/spw-utilities.c, + src/widgets/spw-utilities.h: Cleaning up desktop properties by + abstracting things into functions. This patch was written by + Bryce Harrington and is tracker entry #822497. + +2003-10-21 Ted Gould <ted@gould.cx> + + * src/interface.c: Changing it so there is an Open Recent menu on + the Sodipodi menu and the toolbar menu. This removes some clutter + in the menu. This is tracker entry #820223 and the author is + unknown. + +2003-10-21 Ted Gould <ted@gould.cx> + + * src/dialogs/text-edit.c: Make it so that changes can be applied + to multiple blocks of text. This patch was submitted by Petr + Kovar and is tracker #816676. + +2003-10-17 Ted Gould <ted@gould.cx> + + * src/dialogs/object-properties.c: Applying a patch by Lynn Kerby + which is tracker number 799363. This makes it so that if just + the units are changed the object does not get updated. + +2003-10-16 Ted Gould <ted@gould.cx> + + * src/Makefile.am: Adding the modules to the linking of the + spsvgview executable. This fixes the KDE build. This was tracker + issue 819963 but unfortunately we don't know who submitted it. + +2003-10-15 Ted Gould <ted@gould.cx> + + * configure.in: Adding a -hydra to the version number. + +2003-10-15 Ted Gould <ted@gould.cx> + + * Changelog: Applying the patch from Mental to do transactions + in the XML. It is tracker number: 819745. More info to follow + which is (written by Mental) + + * src/document-private.h: removed old SPAction struct and + modified SPDocumentPrivate to use new SPReprAction type + + * src/document-undo.c: removed all sp_action stuff, + sp_document_priv_done(), and all repr callbacks + (sp_document_set_sensitive): start/suspend transactions on Repr + document + (sp_document_done): now just a wrapper for + sp_document_maybe_done(), of which it is a special case + (sp_document_maybe_done): use new transaction facility, and + properly trim undo list size to MAX_UNDO + (sp_document_cancel): new SPDocument method for aborting (and + undoing) current operation + (sp_document_undo, sp_document_redo): rewritten for transactions + + * src/document.c (sp_document_init): updated SPDocumentPrivate + initialization + (sp_document_destroy): clean up partial action list + (sp_document_idle_handler): removed undo stack warning + (sp_document_warn_undo_stack): removed + + * src/document.h: added sp_document_cancel() + + * src/sp-object.c (sp_object_invoke_build): minor cleanup + (sp_object_repr_child_added, sp_object_repr_remove_child, + sp_object_repr_order_changed, sp_object_repr_attr_changed, + sp_object_repr_content_changed): removed calls to document + callbacks + + * src/dialogs/xml-tree.c: enabled delete button for _all_ + attributes [I later plann on enabling/disabling it based on + a call to the repr's change_attr veto callback] + (after_tree_move): roll back the transaction if the node + didn't want to be moved + (on_attr_select_row_enable): used to be + on_attr_select_row_enable_if_not_id() + (cmd_indent_node, cmd_unindent_node): removed usage of + sp_repr_move in favor of simple operations with transactions + + * src/widgets/sp-xmlview-tree (repoint_nodes): no longer needed + (add_node): switched to an if cascade instead of a switch + statement, since SP_REPR_TYPE (repr) is no longer an integer + (tree_move): use simple operations instead of sp_repr_move + + * src/xml/Makefile.am: added sp-action.c to build + + * src/xml/repr-action.c, src/xml/repr-action.h: transaction + logging facility for reprs using linked lists of SPReprAction + structs (conceptually, logs) + + * src/xml/repr-private.h: introduced SPReprClass for different + node types and added SPRepr::doc field for doc pointer. + SPReprDoc is now a proper subclass of SPRepr. + + * src/xml/repr-util.c (sp_repr_move, sp_repr_transfer_ids): + removed + + * src/xml/repr.c: added logging macros and SPRepr subclassing + + * src/xml/repr.h: removed sp_repr_move() + +2003-10-09 Ted Gould <ted@gould.cx> + + * src/libnrtype/nr-type-directory.c: Applying a patch to + fix the compile from Vitaly Lipatov. + +2003-10-08 Ted Gould <ted@gould.cx> + + * glade/icons.svg src/nodepath.c src/nodepath.h + src/toolbox.c src/dialogs/node-edit.c src/dialogs/node-edit.h: + Adding another patch from Bob Jamison which is in the tracker + under 819054. This patch adds an alternate join function. It + also adds this function to the tool box with an icon. + +2003-10-08 Ted Gould <ted@gould.cx> + + * src/.cvsignore: Adding in spsvgview for cleaner diff's + +2003-10-08 Ted Gould <ted@gould.cx> + + * src/dialogs/item-properties.c: Submitting a patch from + Bob Jamison which is in the tracker under 819043. This adds + the ID to the item properties dialog. + +2003-10-06 Ted Gould <ted@gould.cx> + + * Changelog: Start of the hydra-october branch + +2003-10-06 Lauris Kaplinski <lauris@kaplinski.com> + + * src/libarikkei/Makefile.am: New stuff from ariariki + + * src/libnrtype/nr-type-xft.c (nr_type_read_xft_list): Moved here + + * src/libnrtype/nr-type-directory.c (nr_type_build): From ariariki + (nr_type_read_private_list): Use libarikkei tokenizer + (nr_type_register): Made public + + * src/libnrtype/Makefile.am: Added libarikkei stuff + + * configure.in: Added libarikkei/Makefile + +2003-09-18 Mitsuru Oka <oka@mediasite.co.jp> + + * Initial IA-64 Linux support. + + * libnr/nr-object.h defined new type NRType. + + * src/desktop.c ... src/modules/win32.h ... many files: + modified all of the unsigned int GObject type by GType and + unsigned int NRObject type by NRType. + +2003-08-17 Lauris Kaplinski <lauris@kaplinski.com> + + * src/libnrtype/nr-type-ft2.c (nr_typeface_ft2_setup): Check whether font + has assigned code points on BMP private area + (nr_typeface_ft2_lookup): Map BMP private area directly to glyph index only + if it is free, use planes F and 10 for direct mapping + +2003-08-17 Danilo Å egan <dsegan@gmx.net> + + * configure.in: Added "sr" and "sr@Latn" to ALL_LINGUAS. + +2003-07-23 Dmitry G. Mastrukov <dmitry@taurussoft.org> + + * configure.in: Added Belarusian to ALL_LINGUAS. + +2003-07-21 Christian Neumair <chris@gnome-de.org> + + * src/verbs.c: Fix another typo (preciely->precisely). + +2003-07-21 Christian Neumair <chris@gnome-de.org> + + * src/widgets/paint-selector.c: Fix a typo (colospace->Colorspace). + +2003-07-15 Masatake YAMATO <jet@gyve.org> + + * src/helper/sp-ctrlline.h: Fix a typo(x2->x1). + +2003-07-12 Yukihiro Nakai <ynakai@redhat.com> + + * src/text-context.c (sptc_preedit_changed): New signal handler + (sp_text_context_setup): Connect "preedit_changed" signal + (sp_text_context_root_handler): Return TRUE (needed for Gtk+ IM) + + * src/verbs.c (sp_verbs_init): Wrap action name and tip into _() + +2003-07-11 Lauris Kaplinski <lauris@kaplinski.com> + + * src/event-context.c (sp_event_context_private_root_handler): Handle + GDK_SCROLL (thanks to Tomas Znamenacek) + + * src/xml/repr-util.c (sp_xml_dtoa): Do not print trailing zeroes + + * src/xml/repr.c (sp_repr_document_new): Removed ATTLIST xmlns:xlink + + * src/libnr/nr-svp-private.h: New file + +2003-07-09 Lauris Kaplinski <lauris@kaplinski.com> + + * src/libnr/nr-stroke.c: Implement most functionality + + * src/libnr/nr-svp-uncross.c (nr_svl_uncross_full): Process some corner cases + properly + +2003-07-07 Masatake YAMATO <jet@gyve.org> + + * src/shortcuts.c (sp_shortcut_table_load): set shortcut + for SP_VERB_EDIT_SELECT_ALL. + + * src/selection-chemistry.[ch] (sp_edit_select_all): New function. + + * src/verbs.c (sp_verb_action_edit_perform): Added case + SP_VERB_EDIT_CLEAR_ALL and SP_VERB_EDIT_SELECT_ALL. + (SP_VERB_IS_EDIT): Extended to SP_VERB_EDIT_SELECT_ALL. + +2003-07-04 Lauris Kaplinski <lauris@kaplinski.com> + + * src/svg/svg-length.c (sp_svg_length_set): New method + + * src/sp-spiral.c (sp_spiral_write): Write path here + + * src/sp-image.c (sp_image_repr_read_image): Treat NULL docbase as current directory + + * src/sp-gradient.c (sp_gradient_write): Merged code with flatten_attribute + (sp_lineargradient_write): Ditto + (sp_radialgradient_write): Ditto + + * src/rect-context.c (sp_rect_context_root_handler): Get motion hints + + * src/helper/sp-canvas.c (SP_CANVAS_UPDATE_PRIORITY): Use higher priority + + * src/document.c (SP_DOCUMENT_UPDATE_PRIORITY): Use higher priority + +2003-06-30 Lauris Kaplinski <lauris@kaplinski.com> + + * src/libnrtype/nr-type-ft2.c (nr_typeface_ft2_glyph_outline_get): Do not + load outlines multiple times, fixes serious memleak + +2003-06-28 Lauris Kaplinski <lauris@kaplinski.com> + + * src/dialogs/text-edit.c (sp_text_edit_dialog): Added line spacing combo + (sp_text_edit_dialog_update_object): Update line spacing + (sp_text_edit_dialog_read_selection): Update control + + * src/sp-text.c (sp_text_set): Parse "sodipodi:linespacing" + (sp_text_set_shape): Use line spacing + + * src/attributes.c: Added "sodipodi:linespacing" + +2003-06-27 Lauris Kaplinski <lauris@kaplinski.com> + + * src/dialogs/desktop-properties.c (sp_dtw_border_layer_toggled): New callback + (sp_desktop_dialog_new): Added border layer + (sp_dtw_update): Track border layer + + * src/spsvgview.c: Implement slideshow + + * src/sp-namedview.c (sp_namedview_set): Track borderlayer + + * src/desktop.c (sp_desktop_new): Add page border directly to + main group + (sp_dt_namedview_modified): Track border layer + + * src/attributes.c: Added "borderlayer" + +2003-06-22 Lauris Kaplinski <lauris@kaplinski.com> + + * src/sp-pattern.c (sp_pattern_update): Implemented, patterns show up again + (sp_pattern_painter_new): Painter is not GObject anymore, fixes crash + (sp_pattern_painter_free): Ditto + + * src/sp-root.c: Removed namedview tracking + + * src/sp-object-repr.c (sp_object_type_lookup): Do not register GUI types + (sp_object_type_register): New method + + * src/sp-namedview.c (sp_document_namedview): Moved it here to clean + up dependency chain + + * src/sp-item-group.c (sp_item_group_get_child_by_name): New method + + * src/main.c (sp_main_gui): Register GUI object types + (sp_main_console): Ditto + + * src/document.c (sp_document_create): Check for namedview using name only + + * src/Makefile.am (spsvgview_SOURCES): Uncommented spsvgview + + * src/libnr/nr-object.c: Use listener arrays instead of lists + +2003-06-20 Lauris Kaplinski <lauris@kaplinski.com> + + * configure.in: Version 0.33pre + +2003-06-19 Masatake YAMATO <jet@gyve.org> + + * src/dialogs/desktop-properties.c (sp_color_picker_clicked): Enable "Close" + button. + (sp_color_picker_window_close): New function. + +2003-06-18 Lauris Kaplinski <lauris@kaplinski.com> + + * src/dialogs/object-properties.c (sp_object_properties_dialog_destroy): Disconnect + signals here, fixes crash + +2003-06-18 Masatake YAMATO <jet@gyve.org> + + * src/toolbox.c (sp_toolbox_*_create): passed tt to + sp_toolbox_new. + + * src/dialogs/align.c (sp_align_add_button): passed a + GtkTooltips object to sp_button_new_from_data. + (sp_quick_align_dialog): created a new GtkTooltips object + and passed it to sp_align_add_button. + + * src/widgets/sp-toolbox.c (sp_toolbox_new): passed a + GtkTooltips object to sp_button_new_from_data. + Fix a spelling miss. + + * src/widgets/sp-toolbox.h (sp_toolbox_new): passed a + GtkTooltips object. + +2003-06-17 Lauris Kaplinski <lauris@kaplinski.com> + + * src/sp-image.c (sp_image_set): Fix potential crash + (sp_image_update): Move code here, so canvas items do not dereference + destroyed pixbuf data + + * src/seltrans.c (sp_sel_trans_handle_request): Reverse shift behaviour for + rotation (thanks to Pat) + +2003-06-16 Lauris Kaplinski <lauris@kaplinski.com> + + * src/verbs.c: Added 'print direct' option + + * src/interface.c (sp_ui_file_menu): Added print direct if needed + + * src/toolbox.c (sp_toolbox_file_create): Compose print + print direct if needed + +2003-06-15 Lauris Kaplinski <lauris@kaplinski.com> + + * src/modules/ps.c (sp_module_print_plain_setup): Added bitmap/ps choice and + preferred bitmap resolution selector + (sp_module_print_plain_finish): If user prefers bitmap printing, composite + full page from NRArena here + +2003-06-13 Lauris Kaplinski <lauris@kaplinski.com> + + * src/event-context.c (sp_event_context_private_root_handler): Removed + desktop dialog double-click binding + + * src/widgets/icon.c (sp_icon_new_scaled): New method + (sp_icon_new_full): Refactored static method + (sp_icon_image_load_svg): Use scale factor + + * src/xml/repr-io.c (sp_repr_do_read): Unref node after attaching + (sp_repr_svg_read_node): Ditto + + * src/xml/repr.c (sp_repr_document_new): Ditto + +2003-06-12 Lauris Kaplinski <lauris@kaplinski.com> + + * src/modules/ps.c: Ported Ascii85 filter from The GIMP + +2003-06-09 Lauris Kaplinski <lauris@kaplinski.com> + + * src/modules/kde.cpp (sp_kde_get_save_filename): New method + (sp_kde_get_write_filename): New method + (sp_kde_get_open_filename): Use dir/filter/title + + * src/file.c (sp_file_open_dialog): Use KDE file dialog if WITH_KDE + (sp_file_save_dialog): Ditto + (sp_file_import): Ditto + +2003-06-05 Lauris Kaplinski <lauris@kaplinski.com> + + * src/print.c: Only high-level stuff + + * src/modules/gnome.c: Moved gnome print frontend here + + * src/modules/ps.*: Moved plain print frontend here + +2003-05-25 Lauris Kaplinski <lauris@kaplinski.com> + + * src/sp-item.h: Removed ::menu and ::knot_holder virtual methods + + * src/object-edit.c: New file, collect all knotholder methods from + item implementations here + + * src/object-edit.h (sp_item_knot_holder): New file + + * src/object-ui.c: New file, collect all Gtk related methods from + object implementations here + + * src/object-ui.h (sp_object_menu): New file + +2003-05-24 Lauris Kaplinski <lauris@kaplinski.com> + + * src/print.c (sp_print_preview_document): Use ::set_preview if present + + * src/module.h: Added virtual methof for setting preview + + * src/helper/kde.cpp (sp_module_print_kde_finish): Got working + (sp_module_print_kde_set_preview): New method + +2003-05-18 Hans Breuer <hans.breuer.org> + + * src/monostd.h : (new file) some defines and includes + mostly to make up the WIN32 lack of unistd.h + + * config.h.win32 src/makefile.msc src/*/makefile.msc : + (new files) to build Sodipodi on win32 with M$ toolchain + + * src/winmain.c : (new file) WinMain in it's own file simply + calling main() + * src/main.c : build the common main() for win32 too + + * src/sodipodi.rc : (new file) to compile in the application + icon on win32 + + * src/file.c : use G_DIR_SEPARATOR[_S] instead of '/' ["/"] + make the file selection work better on win32 + + * src/sp-image.c : read images defined by xlink:href="file://... + + * src/sodipodi.c : #inculed "monostd.h" to get S_ISDIR and + S_ISREG on win32 + + * src/libnr/nr-values.h : when building as DLL exporting + variables is quite ugly. Define some constant matrices as + static for win32 to avoid exporting. + + * src/libnrtype/nr-type-directory.c : #include <io.h> + for win32::open() etc. + + * src/libnrtype/nr-type-w32.c : #ifdef HANGUL_CHARSET, + older SDK headers don't have it + + * src/libnrtype/nr-type-w32.H : #define WIN32_LEAN_AND_MEAN + before including <windows.h> to reduce namespace pollution + + * src/svg/svg-length.c : #include <config.h> to get WIN32 + + * src/widgets/icon.c : S_ISREG, S_ISDIR + + * src/xml/sp-xml.def src/svg/sp-svg.def + src/libnr/sp-libnr.def src/libnrtype/sp-libnrtype.def : + (new files) to export functios from modules built as DLLs + + * src/helpers/gnome-utils.c(gnome_uri_list_extract_filenames) : + use g_filename_from_uri() + * src/toolbox.c src/interface.c : don't leak the uri list + + * src/xml/repr-util.c : use g_strcasecmp for portability + * src/svg/svg-length.c : ... and g_snprintf + +2003-05-18 Lauris Kaplinski <lauris@kaplinski.com> + + * src/sp-item.c (sp_item_invoke_print): Only if item is printable + + * src/display/nr-arena-item.c (nr_arena_item_set_visible): New method + (nr_arena_item_invoke_render): Honour visibility + + * src/dialogs/item-properties.c (sp_item_widget_printability_toggled): Implement + + * src/sp-item.c (sp_item_set): Added "sodipodi:printable" attribute + +2003-05-14 Lauris Kaplinski <lauris@kaplinski.com> + + * src/widgets/button.c (sp_button_set_composed_tooltip): Add primary shortcut + dynamically to tooltip + +2003-05-13 Lauris Kaplinski <lauris@kaplinski.com> + + * src/toolbox.c (sp_maintoolbox_create_toplevel): Use sp_window_new + + * src/helper/window.c: New file, implement shortcut processing + + * src/helper/window.h: New file + +2003-05-12 Lauris Kaplinski <lauris@kaplinski.com> + + * src/text-context.c (sp_text_context_forget_text): Set object to + NULL before destroying, so resulting selection::changed does not mess up + + * src/selection-chemistry.c: Removed undo and redo frontends + + * src/shortcuts.c: Moved shortcut code here + +2003-05-11 Lauris Kaplinski <lauris@kaplinski.com> + + * src/zoom-context.c: Removed bogus zoom ui handlers + + * src/sodipodi.c (sodipodi_init): Initialize some shortcuts + + * src/toolbox.c (sp_toolbox_button_clicked): New callback + (sp_toolbox_button_new_from_verb): New method + (sp_toolbox_zoom_create): Use verbs + + * src/interface.c (sp_ui_menu_activate): Universal callback + (sp_ui_menu_append_item_from_verb): New method + (sp_ui_view_menu): Use verbs for zoom menu items + + * src/event-context.c (sp_event_context_private_root_handler): Use actions for + certain keycodes + + * src/verbs.c: New file + + * src/verbs.h: New file + + * src/helper/action.c: New file + + * src/helper/action.h: New file + +2003-05-07 Lauris Kaplinski <lauris@kaplinski.com> + + * src/libnr/nr-svp-uncross.c (nr_svl_uncross_full): Break slice endpoints if + there can be potential crossing + +2003-05-06 Lauris Kaplinski <lauris@kaplinski.com> + + * src/libnr/nr-svp-render.c (nr_svp_render): Fix some running sum problems + +2003-05-04 Lauris Kaplinski <lauris@kaplinski.com> + + * src/libnrtype/nr-rasterfont.c (nr_rasterfont_generic_glyph_mask_render): Render + using NRSVP and mask OR + (nr_rasterfont_ensure_glyph_slot): Build NRSVP + +2003-05-03 Lauris Kaplinski <lauris@kaplinski.com> + + * src/helper/Makefile.am: Removed art-utils.h + + * src/libnr/nr-svp.c (nr_svl_build_finish_segment): New helper + (nr_svl_build_moveto): Ditto + (nr_svl_build_lineto): Ditto + (nr_svl_build_curveto): New helper + (nr_svl_from_art_vpath): Use NRSVLBuild + (nr_svl_from_art_bpath): New method + +2003-05-02 Lauris Kaplinski <lauris@kaplinski.com> + + * sodipodi.desktop.in: Updated by Michael Terry + +2003-05-01 Lauris Kaplinski <lauris@kaplinski.com> + + * src/svg/svg-length.c (sp_svg_number_write_d): Fixed rounding overflow + +2003-05-01 Christian Schaller <Uraeus@gnome.org> + * Fixed up desktop.in file to conform to latest freedesktop standard + * Fixed up spec.in file to actually work + * Added missing extensions-skeleton.h to makefile + * Added spec file to EXTRA_DIST + +2003-05-01 Lauris Kaplinski <lauris@kaplinski.com> + + * src/display/nr-arena-item.c (nr_arena_item_children): Return correct + value (thanks to MentaLguY) + +2003-04-29 Lauris Kaplinski <lauris@kaplinski.com> + + * src/libnr/nr-svp.h: Use more compact format for segments + + * src/libnr/nr-svp.c (nr_svp_from_svl): Use max segment length + +2003-04-28 Lauris Kaplinski <lauris@kaplinski.com> + + * src/libnr/nr-svp-render.c (nr_svp_render): New method + (nr_pixblock_render_svp_mask_or): New method + (nr_pixblock_render_svl_mask_or): Renamed old one + (nr_svl_render): Ditto + + * src/libnr/nr-svp.c (nr_svp_point_wind): Implement + (nr_line_point_distance2): Helper + (nr_svp_point_distance): Ditto + (nr_svp_from_svl): New method, implemented packed format and + renamed old one to S(orted)V(ertex)L(ist) + (nr_svp_free): Ditto + + * src/display/nr-arena-shape.h: Port all basics to NRSVP + +2003-04-27 Lauris Kaplinski <lauris@kaplinski.com> + + * src/knotholder.c (knot_ungrabbed_handler): Flush object here + + * src/xml/repr-util.c (sp_xml_dtoa): Take '-' into accounti if + copying integral part + + * src/svg/svg-length.c (sp_svg_length_update): New method + + * src/sp-spiral.c (sp_spiral_update): New method + + * src/sp-star.c (sp_star_update): New method + + * src/sp-ellipse.c (sp_genericellipse_update): Use generic ::set_shape + + * src/sp-rect.c (sp_rect_update): Use generic ::set_shape + +2003-04-24 Lauris Kaplinski <lauris@kaplinski.com> + + * src/libnr/nr-svp-uncross.c (nr_svp_uncross_full): Concat segment start only if + within epsilon, snap intersection point at yslice, if close + +2003-04-23 Lauris Kaplinski <lauris@kaplinski.com> + + * src/widgets/sp-color-slider.c (sp_color_slider_paint): Use proper style painters, + so Gdk/Gtk crash bug does not show up anymore + + * src/xml/repr-io.c (sp_repr_read_file): Substitute entities (by MentaL) + (sp_repr_read_mem): Ditto + + * src/style.c (sp_style_merge_from_style_string): Complain only if not the end + of the style string (thanks to MenTaL) + +2003-04-22 Lauris Kaplinski <lauris@kaplinski.com> + + * src/print.c (sp_module_print_plain_begin): Magic by MenTaL + + * src/libnr/nr-svp-uncross.c (nr_svp_uncross_full): Works properly now for + all stress-tests except zap. + +2003-04-18 Lauris Kaplinski <lauris@kaplinski.com> + + * src/display/nr-arena-shape.c (nr_arena_shape_update): Switch fill + completely to new renderer + (nr_arena_shape_render): Ditto, but use masks as before + + * src/libnr/nr-svp-uncross.c (nr_svp_uncross_full): Pass most stress-tests + +2003-04-15 Lauris Kaplinski <lauris@kaplinski.com> + + * src/libnr/nr-svp-render.c (nr_pixblock_render_svp_mask_or): new method + (nr_pixblock_render_svp_rgba): Frontend, implement for all pixblock modes + (nr_svp_run_A8_OR): Run callback implementation + (nr_svp_run_R8G8B8): Ditto + (nr_svp_run_R8G8B8A8P_EMPTY): Ditto + (nr_svp_run_R8G8B8A8P_R8G8B8A8P): Ditto + (nr_svp_run_R8G8B8A8N_R8G8B8A8N): Ditto + (nr_svp_render): Implement using generic run callbacks + +2003-04-14 Lauris Kaplinski <lauris@kaplinski.com> + + * src/libnr/nr-svp-render.c (nr_pixblock_render_svp_rgba): Do runs properly, + skip if coverage stays 0 + +2003-04-13 Lauris Kaplinski <lauris@kaplinski.com> + + * src/libnr/nr-svp-render.c: Moved here from old arena code + + * src/libnr/nr-svp-render.h: Ditto + + * src/libnr/nr-svp.c: Ditto + + * src/libnr/nr-svp.h: Ditto + + * src/display/nr-arena-shape.h: Optional experimental new renderer + + * src/libnrtype/nr-typeface.h: Port to NRObject + + * src/display/canvas-arena.c (sp_canvas_arena_init): Use active object + listener instead of g-signals + (sp_canvas_arena_destroy): Ditto + + * src/display/nr-arena.h: Derive from NRActiveobject + + * src/display/nr-object.c (nr_object_delete): proper lifecycle management + (nr_object_setup): Ditto, automatic object + (nr_object_release): Ditto + (nr_active_object_get_type): Added NRActiveObject + + * src/display/nr-object.h: Added NRActiveObject + +2003-04-12 Lauris Kaplinski <lauris@kaplinski.com> + + * src/display/nr-object.c: Reimplement in standalone way + + * src/display/nr-object.h: Reimplement in standalone way + +2003-04-06 Lauris Kaplinski <lauris@kaplinski.com> + + * src/sp-marker.c (sp_marker_show_dimension): Reimplement + (sp_marker_show_instance): Ditto + + * src/display/nr-arena-shape.c (nr_arena_shape_finalize): Detach markers + + * src/sp-shape.c (sp_shape_update_marker_view): Test orientation + +2003-03-25 Lauris Kaplinski <lauris@kaplinski.com> + + * src/display/nr-arena-item.c: Removed ::event signal + + * src/display/nr-object.h: Frontend for future glib-free object system + +2003-03-21 Lauris Kaplinski <lauris@kaplinski.com> + + * src/sp-shape.c (sp_shape_update): Update marker properly + (sp_shape_set_marker): Parse all three marker types + + * src/sp-marker.c (sp_marker_update): Set reference point in child2parent matrix + (sp_marker_show_dimension): Copy and set arena items properly + (sp_marker_show_instance): Set base transfoarm and scale by line width if needed + +2003-03-17 Lauris Kaplinski <lauris@kaplinski.com> + + * src/uri-references.c (sp_uri_reference_resolve): Allow '_' and + '-' in xlink names. + +2003-03-15 Lauris Kaplinski <lauris@kaplinski.com> + + * src/display/nr-arena-item.h: Made opacity 8-bit integer + +2003-03-12 Lauris Kaplinski <lauris@kaplinski.com> + + * src/sp-marker.c (sp_marker_update): Do it properly + (sp_marker_write): Do it properly (almost) + +2003-03-11 Lauris Kaplinski <lauris@kaplinski.com> + + * src/print.c (sp_module_print_plain_class_init): Use correct destructor + + * src/sp-marker.c (sp_marker_set): Implement all attributes + +2003-03-09 Lauris Kaplinski <lauris@kaplinski.com> + + * src/sp-object-repr.c (sp_object_type_lookup): Added marker type + + * src/sp-marker.h: New file + + * src/sp-marker.c: New file + + * src/display/nr-arena-image.c (nr_arena_image_render): Use pixblock + area instead the active area (that may be bigger) + + * src/helper/kde.cpp: Added SPModulePrintKDE object + (sp_kde_get_module_print): Contructor + + * src/print.c: Port to modules, add KDE option + + * src/module.c (sp_module_register): Check for id, fix crash + (sp_module_unregister): Ditto + (sp_module_print_get_type): Implement SPModulePrint + + * src/document.h: Renamed private to priv to be nice with c++ + + * src/Makefile.am (kdeldadd): Added LIB_KDEPRINT + + * configure.in: Enable modules by default + +2003-03-04 MenTaLguY <mental@rydia.net> + + * src/desktop.c: changed zoom_status to a spin button with logarithmic increment and a handy context menu + (sp_dtw_zoom_*): added various event handlers for the new zoom spin button + (sp_desktop_zoom_page): factored out code duplicated with zoom-context.c + (sp_desktop_zoom_selection): ditto + (sp_desktop_zoom_drawing): ditto + (sp_desktop_widget_init): removed unused SPDesktopWidget::zoom member and replaced zoom label with a spin button + + * src/desktop.h: removed unused SPDesktopWidget::zoom member, added new sp_desktop_zoom_* methods + + * src/zoom-context.c (sp_zoom_drawing): factored out code to desktop.c + (sp_zoom_page): NRRectD -> NRRectF, factored out code to desktop.c + (sp_zoom_selection): factored out code to desktop.c + +2003-03-06 Lauris Kaplinski <lauris@kaplinski.com> + + * src/helper/Makefile.am: Compile KDE module if needed + + * src/main.c (sp_main_gui): Initialize/shutdown KDE module if WITH_KDE + + * src/file.c (sp_file_open_dialog): Use KDE file dialog, if WITH_KDE + + * src/Makefile.am: Add KDE libraries if needed + + * configure.in: Added --with[out]-kde configuration option + + * autogen.sh: Added (again) libtoolize + + * acinclude.m4: KDE specific autostuff + + * src/helper/kde.cpp: New file + + * src/helper/kde.h: New file + + * src/helper/kde-private.h: SPKDEBridge sefinition for moc preprocessor + +2003-03-03 Lauris Kaplinski <lauris@kaplinski.com> + + * src/widgets/sp-color-slider.h: Use LGPL + + * src/widgets/sp-color-slider.c: Use LGPL + + * src/libnr/nr-rect.h: Use sensible NULL/empty semantics for union and intersection + + * src/libnr/nr-rect.c: Ditto + + * src/libnr/gen_nr_config.c: Generate basic typedefs (borrowed fromlibart) + + * src/display/nr-arena-item.c (nr_arena_item_invoke_update): Cleanup + (nr_arena_item_invoke_render): Ditto + +2003-03-01 Lauris Kaplinski <lauris@kaplinski.com> + + * src/modules/*: Various module implementations by Ted Gould + + * extensions/*: Put various unsorted extensions stuff here + + * src/module.c: New file + + * src/module.h: New file + + * src/draw-context.c (sp_draw_context_root_handler): Use 'a' instead of '+' + as append/new toggle + (spdc_concat_colors_and_flush): Cut continuation tolerance to avoid extra points at corners + (spdc_pen_set_point): Draw line segments if appropriate + +2003-02-25 Lauris Kaplinski <lauris@kaplinski.com> + + * src/main.c (main): Use bind_textdomain_codeset to force utf-8 encoding + (sp_main_console): Init gdk if WITH_XFT + + * src/file.c (sp_export_get_rows): Do not set EMPTY flag on pixblock, or background + will be forgotten + +2003-02-24 Lauris Kaplinski <lauris@kaplinski.com> + + * src/dialogs/align.c (sp_quick_align_dialog): Added "distribute" tab + (sp_align_distribute_h_clicked): New method + (sp_align_distribute_v_clicked): Ditto + + * configure.in: Removed PACKAGE_LOCALE_DIR definition + + * src/Makefile.am (INCLUDES): Set PACKAGE_LOCALE_DIR here + + * configure.in: Skip xft checking if fontcofig present + +2003-02-23 Lauris Kaplinski <lauris@kaplinski.com> + + * src/print.c (sp_print_fill): Use new paint server signature (does it work?) + + * src/document.c (sp_document_idle_handler): Use new flags signature + (sp_document_ensure_up_to_date): Ditto + + * src/sp-shape.c (sp_shape_modified): Removed style_modified, instead set + style here, if flags indicate the need + + * src/sp-text.c (sp_tspan_update): Calculate relative distances here + (sp_text_update): Ditto + + * src/sp-object.h: Split update and modified flags, involves changes in + most places actually using them + + * src/gradient-chemistry.c (sp_gradient_ensure_private_normalized): Recycle + available gradients, instead of always creating new + (sp_gradient_ensure_radial_private_normalized): Ditto + + * configure.in: Version 0.32pre + +2003-02-22 Lauris Kaplinski <lauris@kaplinski.com> + + * src/sp-text.c (sp_text_set_shape): Honour single dx and dy attributes + + * configure.in: Added check for fontconfig to retrieve nonstandard include directories + +2003-02-21 Lauris Kaplinski <lauris@kaplinski.com> + + * src/sp-image.c (sp_image_set): Set canvas item properties in ::update + (sp_image_update): Implement + + * src/dialogs/fill-style.c (sp_fill_style_widget_paint_changed): Set CMYK before RGB + + * src/dialogs/stroke-style.c (sp_stroke_style_paint_changed): Set CMYK before RGB + +2003-02-20 Lauris Kaplinski <lauris@kaplinski.com> + + * src/sp-gradient.c (sp_gradient_rebuild_vector): Fix crash if 2 stops coincide + + * src/libnrtype/nr-rasterfont.c (nr_rasterfont_generic_glyph_mask_render): Get real + bounding box, clip to pixblock area for SVP glyphs + + * src/sp-polygon.c (sp_polygon_write): Write points always + +2003-02-18 Lauris Kaplinski <lauris@kaplinski.com> + + * src/dialogs/export.c (sp_export_dialog): Default to document name + png + (sp_export_spinbutton_new): Pack more functions here + + * src/sp-chars.c (sp_chars_update): Implement + + * src/sp-text.c (sp_tspan_update): Implement + + * Makefile.am: Port back to glib gettext + + * configure.in: Port back to glib gettext + + * autogen.sh: Copied working version from The Gimp + + * src/helper/sp-canvas.c (sp_canvas_paint_rect): Try to fit area into pixelstore + instead of using default image size always + +2003-02-17 Lauris Kaplinski <lauris@kaplinski.com> + + * src/sp-path.h: Turned SPPath/SPShape hierachy upside down, so they make sense + now, when we do not derive text and clippath from SPPath anymore + + * src/sp-shape.h: Ditto + +2003-02-16 Lauris Kaplinski <lauris@kaplinski.com> + + * src/file.c (file_open_ok): Set directory if OK clicked on it (thanks to Aron Rubin) + (file_import_ok): Ditto + + * src/sp-ellipse.c (sp_round): Fix sp_round + +2003-02-15 Lauris Kaplinski <lauris@kaplinski.com> + + * src/widgets/paint-selector.c (sp_paint_selector_system_color_set): New method + (sp_paint_selector_set_mode_color): Added 'get from dropper' checkbox + + * src/dialogs/object-properties.c (sp_object_properties_color_set): Handler + of system 'color_set' signal, used for getting color value from dropper + + * src/dialogs/stroke-style.c (sp_stroke_style_paint_system_color_set): New method + + * src/dialogs/fill-style.c (sp_fill_style_widget_system_color_set): New method + + * src/toolbox.c (sp_toolbox_draw_create): Added dropper tool + + * src/sodipodi.c (sodipodi_class_init): Added 'color_set' signal + (sodipodi_set_color): Frontend to signal + (sodipodi_init_config): Use config_name instead of hardcoded 'preferences' + + * src/dropper-context.c (sp_dropper_context_root_handler): Scale colors + to [0.0 - 1.0] range and signal hub + + * src/widgets/menu.c: New file, implement sensible menu API + + * src/widgets/menu.h: New file + +2003-02-13 Lauris Kaplinski <lauris@kaplinski.com> + + * src/dropper-context.h: New file + + * src/dropper-context.c: New file + +2003-02-11 Lauris Kaplinski <lauris@kaplinski.com> + + * src/desktop.c (sp_desktop_widget_init): Create tooltips, enable sticky zoom + (sp_desktop_widget_size_allocate): Calculate sticky zoom by area instead of MIN (x, y) + + * src/helper/sp-canvas.h: Added floating point scroll coordinates + + * src/helper/sp-canvas.c (scroll_to): Preserver floating point coordinates + + * src/display/nr-arena-group.c (nr_arena_group_set_child_transform): Do + not force full update if not needed + + * src/display/nr-arena-item.c (nr_arena_item_set_clip): Do not force + full update if not needed + (nr_arena_item_set_mask): Ditto + (nr_arena_item_set_transform): Ditto + +2003-02-09 Lauris Kaplinski <lauris@kaplinski.com> + + * src/libnr/nr-gradient.c (nr_lgradient_render_R8G8B8A8N_EMPTY): New shortcut + + * src/libnr/nr-gradient.h: Made x0 and x0 integers - this introduces possible + upt to 0.7 pixel error, but other rendering parts are not exact anyways + + * src/sp-paint-server.h: Fill function signature change + +2003-02-08 Lauris Kaplinski <lauris@kaplinski.com> + + * src/libnr/nr-gradient.c (nr_rgradient_render_generic_symmetric): Special + case NR_PIXBLOCK_MODE_R8G8B8A8N and full opacity + + * src/sp-gradient.c (sp_radialgradient_set): Initialize focal point to center if unset + + * src/libnr/nr-gradient.c (nr_lgradient_render_R8G8B8A8N): Special-cased full opacity + + * configure.in: 0.30.1 + + * src/libnrtype/nr-rasterfont.c (nr_rasterfont_ensure_glyph_slot): Use + 32 bit integer bbox initially before deciding whether it fits in 16 bit + +2003-02-08 gettextize <bug-gnu-gettext@gnu.org> + + * Makefile.am (SUBDIRS): Add intl, m4. + (EXTRA_DIST): Add config.rpath. + * configure.in (AC_OUTPUT): Add intl/Makefile, po/Makefile.in, m4/Makefile. + +2003-02-07 Lauris Kaplinski <lauris@kaplinski.com> + + * src/help.c (sp_help_about): Make default window size the same as document + + * src/style.c: Use custom winding rule and stroke parameter enumerations + + * src/enums.h: Define winding rules and stroke parameters + +2003-02-06 Lauris Kaplinski <lauris@kaplinski.com> + + * src/sp-rect.c (sp_rect_rx_set): Set ::set value(s) + (sp_rect_ry_set): Ditto + + * src/sp-item.c (sp_item_update): Set arena item transform here + + * src/dialogs/fill-style.c (sp_fill_style_widget_update_repr): Made non-recursive + (sp_fill_style_widget_update): Ditto + + * src/sp-shape.c (sp_shape_write_transform): Working path tranformation optimizer + + * src/widgets/sp-color-slider.c (sp_color_slider_adjustment_value_changed): Add + some extra pixels around arrow dirtified area + (sp_color_slider_paint): Use gtk_draw_box instead of gtk_draw_shadow + (sp_color_slider_realize): Attach style + +2003-02-04 Lauris Kaplinski <lauris@kaplinski.com> + + * src/sodipodi.c (sodipodi_load_config): Generic method by Bryce + (sodipodi_load_preferences): Frontend, same + (sodipodi_load_extensions): Ditto + (sodipodi_get_repr): Test for "extensions" + (sodipodi_init_config): Generic method by Bryce + (sodipodi_init_preferences): Frontend by Bryce + (sodipodi_init_extensions): Ditto + + * src/toolbox.c (sp_toolbox_extension_create): Implemented by Bryce + + * src/extension.c: New file by Bryce Harrington + + * src/extension.h: New file by Bryce Harrington + + * src/extensions-skeleton.h: Ditto + + * src/sp-mask.c: support maskContentUnits + + * src/nodepath.c (create_curve): Do not add 50 to y (why was it here?) + + * src/sp-item-group.c (sp_group_update): Propagate only if update flag set + + * src/sp-item.c (sp_item_set): Set clippath and mask bbox + (sp_item_update): Ditto + + * src/sp-clippath.c (sp_clippath_build): Implement + (sp_clippath_set): Ditto, clipPathUnits attribute + (sp_clippath_update): Ditto + (sp_clippath_show): Use bbox if needed + (sp_clippath_set_bbox): New method + +2003-02-03 Lauris Kaplinski <lauris@kaplinski.com> + + * src/sp-item.c (sp_item_release): Release mask + (sp_item_mask_release): New handler + (sp_item_mask_modified): Ditto + (sp_item_set): Parse mask + (sp_item_show): Show mask + (sp_item_private_hide): Hide mask + + * src/display/nr-arena-item.c (nr_arena_item_invoke_render): Do masking + (nr_arena_item_private_dispose): Release mask + (nr_arena_item_invoke_update): Update mask + (nr_arena_item_set_mask): New method + + * src/sp-root.c (sp_root_build): Do not check for xmlns:sodipodi to determine + version, as this is set automatically in xml loader + + * src/slideshow.h: New file + + * src/slideshow.c: New file + +2003-02-02 Lauris Kaplinski <lauris@kaplinski.com> + + * src/sp-rect.c (sp_rect_set): Accept 0.0 as valid for x, y, width and height + (sp_rect_write): Use 0.0 as default for rx, ry + + * src/rect-context.c (sp_rect_finish): Use ::write to be sure + + * src/display/nr-arena-shape.c (nr_arena_shape_clip): OR masks + + * src/sp-defs.c (sp_defs_update): Implement + (sp_defs_modified): Ditto + + * src/sp-clippath.c (sp_clippath_update): Implement + (sp_clippath_modified): Ditto + (sp_clippath_show): Fix + (sp_clippath_hide): Implement + + * src/sp-item.c (sp_item_set): Fix clippath + (sp_item_show): Ditto + (sp_item_private_hide): Ditto + (sp_item_display_key_new): New method + + * src/sp-item.h: Use new signature for ::show and ::hide + +2003-02-01 Daniel Yacob <locales@geez.org> + + * configure.in: Added "am" (Amharic) to ALL_LINGUAS. + +2003-02-01 Lauris Kaplinski <lauris@kaplinski.com> + + * src/sp-use.c (sp_use_init): Set width and height default to 100% + (sp_use_set): Ditto + (sp_use_bbox): use child transform + (sp_use_update): Calculate relative lengths, set new viewport + + * src/sp-object.c: Removed ::dispose and some commented out code + + * src/sp-symbol.c: New file + + * src/sp-symbol.h: New file + + * src/enums.h: New file + + * src/xml/repr-io.c (sp_repr_svg_read_node): Return if entity declaration + + * src/sp-root.c (sp_root_init): Set correct default viewport values + (sp_root_build): Read 'x', 'y', 'version', 'preserveAspectRatio' + (sp_root_set): Parse added attributes, accept percentages for x, y, width, height + (sp_root_update): Set up proper transformations to support aspect ratios + + * src/sp-item.h: Added viewPort and item2viewPort transformation to item context + + * src/document.c (sp_document_ensure_up_to_date): Set initial viewport + and identity transforms in item context + (sp_document_idle_handler): Ditto + + * src/attributes.h: Added 'version' and 'preserveAspectRatio' + +2003-01-31 Masatake YAMATO <jet@gyve.org> + + * src/main.c (POPT_TABLEEND): Define if it is not defined in + popt.h. copied from forntline. + +2003-01-30 Lauris Kaplinski <lauris@kaplinski.com> + + * src/helper/guideline.c (sp_guideline_render): Do not round int + + * src/interface.c (sp_ui_close_view): Get widget pointer before killing object + +2003-01-28 Lauris Kaplinski <lauris@kaplinski.com> + + * configure.in: Version 0.30pre + + * src/sp-image.c (sp_image_bbox): Calculate bbox properly + +2003-01-28 gettextize <bug-gnu-gettext@gnu.org> + + * Makefile.am (SUBDIRS): Add intl, m4. + (EXTRA_DIST): Add config.rpath. + * configure.in (AC_OUTPUT): Add intl/Makefile, po/Makefile.in, m4/Makefile. + +2003-01-28 Lauris Kaplinski <lauris@kaplinski.com> + + * src/libnrtype/codepages.h: Win9x codepage declarations + + * src/main.c (WinMain): Use new toplevel toolbox constructor + + * src/text-context.c (sp_text_context_root_handler): Added Gdk_U to unimode + + * src/libnrtype/nr-type-w32.c: Implement ANSI charset and styles + + * src/libnrtype/nr-type-directory.c (nr_type_directory_build): Honour + stretch attribute in searches + + * src/toolbox.c (sp_maintoolbox_create_toplevel): Broke constructor + into two parts to allow multiple toolboxes + + * src/interface.c (sp_ui_view_show_toolbox): New method + (sp_ui_view_dock_toolbox): Ditto + (sp_ui_view_remove_toolbox): Ditto + (sp_ui_view_menu): Added menu items for creating toolboxes + (sp_create_window): Pack toplevel hbox into window + +2003-01-26 Lauris Kaplinski <lauris@kaplinski.com> + + * src/helper/art-utils.c (sp_vpath_from_bpath_transform_closepath): Moved + array expansion to the right place (thanks to Lynn Kerby) + +2003-01-25 Lauris Kaplinski <lauris@kaplinski.com> + + * src/dialogs/xml-tree.c (sp_xml_tree_dialog): Allow horizontal scrollbar + so we do not expand window infinitely + + * src/sp-use.c (sp_use_update): Implemented by MenTaLguY + (sp_use_modified): Ditto + + * src/libnr/nr-path.c (nr_curve_bbox): Implement fast and exact bbox (thanks to Nathan) + (nr_curve_bbox_wind_distance): Use exact bbox + +2003-01-25 Nathan Hurst <Nathan.Hurst@infotech.monash.edu.au> + + * src/desktop-snap.c: Fixed vector snapping code, replaced horizontal and + vertical snapping with generic vector versions + +2003-01-21 Lauris Kaplinski <lauris@kaplinski.com> + + * src/nodepath.c (create_curve): Use NR_MATRIX_DF_TRANSFORM_X (Thanks to + MenTaLguY for finding these NRPointF/ArtPoint mismatches) + +2003-01-20 Lauris Kaplinski <lauris@kaplinski.com> + + * src/libnrtype/nr-type-gnome.c (nr_typeface_gnome_new): Ditto + + * src/print.c (sp_print_preview_document): Fix gnome-print support + (sp_print_document): Ditto + + * src/libnrtype/nr-type-xft.c (nr_type_xft_init): Added ebug printout + + * src/widgets/button.c (sp_button_button_press): Do not grab mouse + (sp_button_button_release): Ditto + +2003-01-19 Lauris Kaplinski <lauris@kaplinski.com> + + * src/desktop.c (sp_dtw_status_frame_size_request): Always request minimum size + + * configure.in: Define GETTEXT_PACKAGE properly (Thanks to Christian Rose) + + * src/libnrtype/nr-type-xft.c (nr_type_xft_init): Removed CORE, so Xft fontlist + should now be read properly with Debian PPC and or fontconfig systems + +2003-01-15 MenTaLguY <mental@rydia.net> + + * src/sp-object.c (sp_object_get_unique_id): don't include namespace prefix when generating ids + +2003-01-15 MenTaLguY <mental@rydia.net> + + * src/widgets/sp-xmlview-tree.c (add_node): tree nodes associated with elements pretend they initially have a NULL id + (element_attr_changed): display elements with a NULL id properly + +2003-01-15 MenTaLguY <mental@rydia.net> + + * src/xml/repr-private.h: added SPXMLNs structure + + * src/xml/repr.h: added decls for sp_xml_ns_uri_prefix() and sp_xml_ns_prefix_uri() + + * src/xml/repr-io.c: improved handling of namespace prefixes + (sp_repr_qualified_name): added hashtable to keep track of NS prefixes used + (sp_repr_read_node): Ditto + (sp_repr_do_read): Ditto + replaced if cascade with calls to sp_xml_ns_uri_prefix() + (sp_repr_set_xmlns_attr): helper to set xmlns attributes + + * src/xml/repr-util.c: added namespaces list + (sp_xml_ns_register_defaults): procedure to initialize namespace mapping list + (sp_xml_ns_auto_prefix): helper routine to automatically select a "good" prefix for a given namespace URI + (sp_xml_ns_uri_prefix): returns a prefix to use for a given namespace URI, registering a mapping automatically if necessary + (sp_xml_ns_prefix_uri): returns the namespace URI registered for a given prefix + +2003-01-13 MenTaLguY <mental@rydia.net> + + * src/desktop.c (sp_dtw_desktop_shutdown): rearranged close confirmation buttons according to the Gnome HIG + +2003-01-18 Lauris Kaplinski <lauris@kaplinski.com> + + * src/seltrans.c (sp_sel_trans_grab): Build array of selected item transformations + (sp_sel_trans_transform): Use original transforms to avoid rounding errors + (sp_sel_trans_ungrab): Release array + + * src/dialogs/transformation.c: Implemented scaling percentages + +2003-01-17 Lauris Kaplinski <lauris@kaplinski.com> + + * src/draw-context.c (spdc_set_startpoint): Snap startpoint (thanks to Nathan) + (sp_pen_context_root_handler): Ditto + + * src/dialogs/transformation.c: Implement simple move dialog + +2003-01-16 Lauris Kaplinski <lauris@kaplinski.com> + + * src/helper/guideline.c (sp_guideline_new): Changed signature, fixes + granular new guideline placement bug + (sp_guideline_render): Use normal rounding, so guideline and object are aligned + + * src/sp-item.h: Changed the signature of ::snappoints, this forced me to + use NRPoints near everywhere else too + +2003-01-15 Lauris Kaplinski <lauris@kaplinski.com> + + * src/draw-context.c (spdc_endpoint_snap): Make Ctrl to restrict directions + to multitudes of 15 degrees (thanks to Nathan Hurst) + +2003-01-13 Lauris Kaplinski <lauris@kaplinski.com> + + * src/file.c (sp_file_open_dialog): Rearrange + (sp_file_save_dialog): Ditto + (sp_file_save_document): Ditto + +2003-01-13 MenTaLguY <mental@rydia.net> + + * src/toolbox.c (sp_maintoolbox_create): turned off user resizing of toolbox so it autoresizes properly + +2003-01-13 MenTaLguY <mental@rydia.net> + + * src/toolbox.c (sp_maintoolbox_create): turned off user resizing of toolbox so it autoresizes properly + + + * src/print.c (sp_print_plain_bind): Move generic PS code here + (sp_print_plain_release): Ditto + (sp_print_plain_fill): Ditto + (sp_print_plain_stroke): Ditto + (sp_print_plain_image_R8G8B8A8_N): Ditto + (sp_print_document): Implement very-very simple non-gnome print dialog + +2003-01-12 Lauris Kaplinski <lauris@kaplinski.com> + + * src/main.c: Made --without-popt working + +2003-01-11 MenTaLguY <mental@rydia.net> + + * src/xml/repr-io.c: removed bogus ATTLIST from DOCTYPE + (sp_repr_read_file): factored out duplicated code into sp_repr_do_read + added parameter for default namespace + (sp_repr_read_mem): factored out duplicated code into sp_repr_do_read + added parameter for default namespace + (sp_repr_do_read): merged duplicated code from sp_repr_read_* family + (sp_repr_do_read): insert xmlns decls for common namespaces + (sp_repr_qualified_name): basic namespace handling for SVG, XLink, and Sodipodi namespaces + (sp_repr_read_node): added parameter for default namespace + (sp_repr_read_node): removed dead code and broken re-addition of xmlns declarations (xlink?) + (repr_quote_write): UTF8 is ASCII-compatible -- removed inaccurate comment + + * src/xml/repr.h: added SP_*_NS_URI macros + + * src/document.c (sp_document_new): SVG is default NS + (sp_document_new_from_mem): SVG is default NS + + * src/file.c (file_import_ok): SVG is default NS + + * src/interface.c (sp_ui_import_one_file): SVG is default NS + + * src/sodipodi.c (sodipodi_init): no default NS + (sodipodi_load_preferences): no default NS + +2003-01-11 Lauris Kaplinski <lauris@kaplinski.com> + + * configure.in: Check for xft + + * src/libnrtype/Makefile.am: Added xft_sources + + * src/libnrtype/nr-type-directory.c (nr_type_read_xft_list): Load xft typefaces + + * src/libnrtype/nr-type-xft.h: New file + + * src/libnrtype/nr-type-xft.c: New file + +2003-01-10 MenTaLguY <mental@rydia.net> + + * src/dialogs/item-properties.c (sp_item_widget_new): made unimplemented controls insensitive + +2003-01-04 MenTaLguY <mental@rydia.net> + + * src/text-context.c (sp_text_context_finalize): folded back + into sp_text_context_finish + (sp_text_context_root_handler): Gtk IM now gets first refusal of + key press _and_ release events; toggling "unicode mode" now triggers an + IM reset; "unicode mode" bypasses IM entirely + + +2003-01-04 Lauris Kaplinski <lauris@kaplinski.com> + + * src/text-context.c (sp_text_context_root_handler): Moved IM back to + beginning (thanks to MenTaLguY for pointing this out) + + * src/sp-object.c (sp_object_invoke_update): Merge styles only if parent changed + + * src/sp-text.c (sp_text_update): Implement + + * src/sp-text.c (sp_string_modified): Chain invocation so style gets updated + + * src/widgets/sp-xmlview-content.c: Port to GtkTextView + + * src/dialogs/xml-tree.c: Port to GtkTextView + + * src/text-context.c (sp_text_context_root_handler): Consume xdigits in unicode mode + + * configure.in: Removed GTK_ENABLE_BROKEN + + * src/dialogs/text-edit.c: Use GtkTextView/Buffer + + * src/xml/repr-util.c (sp_repr_transfer_ids): Helper by MenTaLguY + (sp_repr_move): Ditto + +2003-01-03 Lauris Kaplinski <lauris@kaplinski.com> + + * src/dialogs/xml-tree.c: Updated (MenTaLguY) + + * src/dialogs/item-properties.c (sp_item_widget_new): Added slider (MenTaLguY) + + * src/text-context.c (sp_text_context_setup): Set up Gtk IM (thanks to MenTaLguY) + (sp_text_context_setup_text): Move code here (MenTaLguY) + (sp_text_context_root_handler): Process Gtk IM (MenTaLguY) + (sptc_commit): Gtk IM signal handler (MenTaLguY) + + * src/sp-text.c (sp_text_insert): Replace < 32 and not whitespace with space + + * src/selection.c (SP_SELECTION_UPDATE_PRIORITY): Set Gtk - 11 + + * src/document.c (SP_DOCUMENT_UPDATE_PRIORITY): Set GTK - 12 + +2003-01-01 Lauris Kaplinski <lauris@kaplinski.com> + + * src/widgets/button.c (sp_button_paint_arrow): Draw something + +2002-12-29 Lauris Kaplinski <lauris@kaplinski.com> + + * src/event-context.c (sp_event_context_private_root_handler): Pan with + Shift+Button3 too (useful with windows and < 3 button mice) + + * src/toolbox.c (sp_toolbox_file_create): Mek print buttons insensitive + + * src/sp-text.c (sp_text_write_transform): Fixed it + + * src/main.c (sp_do_export_png): Initialize y0 + + * src/file.c (sp_export_png_file): Use pixelstore, export min 64 rows at once, + fix miscalculated rowstride + +2002-12-28 Lauris Kaplinski <lauris@kaplinski.com> + + * src/libnrtype/nr-type-directory.c (nr_type_read_w32_list): Use + windows native fonts, if applicable + + * src/libnrtype/nr-type-w32.h: New file + + * src/libnrtype/nr-type-w32.c: New file + +2002-12-27 Lauris Kaplinski <lauris@kaplinski.com> + + * src/print.c (sp_print_image_R8G8B8A8_N): Implement direct PS version + +2002-12-26 Lauris Kaplinski <lauris@kaplinski.com> + + * src/print.c (sp_print_bpath): Helper + (sp_print_bind): Implement non-gnome-print version + (sp_print_release): Ditto + (sp_print_fill): Ditto + (sp_print_stroke): Implement non-gnome-print version + + * src/widgets/icon.c (sp_icon_image_load): Generic image loader + + * src/desktop.c (sp_desktop_widget_update_zoom): Make working again + + * src/widgets/button.c: New file + + * src/widgets/button.h: New file + + * src/toolbox.c (sp_toolbox_draw_create): Port to brand new SPButton + +2002-12-17 Lauris Kaplinski <lauris@kaplinski.com> + + * src/desktop.c (sp_desktop_widget_init): Some cleanup + + * src/widgets/ruler.c: Moved to widgets subdir + + * src/widgets/ruler.h: Moved to widgets subdir + +2002-12-16 Lauris Kaplinski <lauris@kaplinski.com> + + * configure.in: --with[out]-gnome-print argument, thanks to MentaLguY + +2002-12-15 Lauris Kaplinski <lauris@kaplinski.com> + + * src/sp-guide.c (sp_guide_set): Fixed horiz/vert + + * src/desktop-events.c (sp_dt_ruler_event): Fixed + (sp_dt_guide_event): Fixed + + * src/helper/guideline.h: Renamed to avoid conflict with SPGuide object, + several signature changes + + * src/helper/guideline.c: Ditto, removed properties + + * src/helper/sp-canvas.c (sp_canvas_window_to_world): Oops, was meant to be y0 + (sp_canvas_world_to_window): Ditto + +2002-12-14 Lauris Kaplinski <lauris@kaplinski.com> + + * src/dialogs/desktop-properties.c: Fully functional color picker + + * src/display/nr-arena-item.h: Ported rendering from NRBuffer to NRPixBlock, + involves changes in most Arena objects. Added NO_CACHE flag to rendering. + +2002-12-13 Lauris Kaplinski <lauris@kaplinski.com> + + * src/widgets/paint-selector.c (sp_paint_selector_style_button_add): Changed + SODIPODI_GLADEDIR -> SODIPODI_PIXAMPDIR (Thanks to Ted Gould) + +2002-12-11 Lauris Kaplinski <lauris@kaplinski.com> + + * src/sp-guide.c (sp_guide_class_init): Removed translatability of properties + + * src/knot.c (sp_knot_class_init): Removed translatability of properties + + * src/helper/sp-guide.c (sp_guideline_class_init): Removed translatability + from properties (who needs this?) + + * src/widgets/icon.h: New file, use as frontend to image loading + + * src/widgets/icon.c: New file + + * src/document.c (sp_document_create): Generic method, implement + constructors as frontends + + * src/sodipodi.c (sodipodi_dispose): Only unref documents and let + them manage list + + * glade/icons.svg: New icon definition file + +2002-12-08 Lauris Kaplinski <lauris@kaplinski.com> + + * src/dialogs/align.c (sp_align_arrange_clicked): Collected all + arrangement methods into generic one + (create_base_menu): Compact + (sp_align_add_menuitem): New helper + (sp_quick_align_dialog): Use value matrix instead of different callbacks + +2002-12-07 Lauris Kaplinski <lauris@kaplinski.com> + + * src/helper/sp-canvas.c (sp_canvas_expose): Free rects + + * src/attributes.h: Added animation-specific attributes + + * src/sp-animation.c: New file, only skeleton at moment + + * src/sp-animation.h: New file + +2002-12-06 Masatake YAMATO <jet@gyve.org> + + * tools-version.sh: print the path to the tools. + +2002-12-06 Lauris Kaplinski <lauris@kaplinski.com> + + * src/sp-root.c (sp_root_update): Implement + + * src/sp-rect.c (sp_rect_update): Implement + (sp_rect_set): Request update instead of setting shape immediately + + * src/sp-item-group.c (sp_group_update): Implement + + * src/sp-object.h: Replaced ::read_attr with ::set, signature change. + This involves modification in all subclasses as well. + + * src/attributes.h: New file. We enumerate/define all allowed attributes + and properties, to save few string compares later. + + * src/attributes.c: New file + +2002-12-04 Lauris Kaplinski <lauris@kaplinski.com> + + * src/sp-object.c (sp_object_request_update): New method. We implement + separate ::update cascade that precedes ::modified, and is meant to + be used for building item states (styles, paths and so on). In many + aspects it shares code path with ::modified. + (sp_object_invoke_update): Ditto + +Wed Dec 4 01:05:05 2002 Mitsuru Oka <oka326@parkcity.ne.jp> + + * src/widget/sp-menu-button.c: Fixed to work well. + + * src/toolbox.c: enable draw buttons. + Comment out signal_connect_after. + +2002-12-03 Lauris Kaplinski <lauris@kaplinski.com> + + * src/sp-item.h: Replaced libart transforms and bboxes with libnr ones - + this involves changes almost every file there. + + * src/main.c: Added POPT_AUTOHELP + +2002-12-03 Masatake YAMATO <jet@gyve.org> + + * tools-version.sh (TOOLS): Added automake-1.6 and + aclocal-1.6. Suggested by MenTaLguY. + (srcdir): remove version number from grep pattern. + +2002-12-02 Lauris Kaplinski <lauris@kaplinski.com> + + * src/helper/sp-canvas.h: Made scrolling offsets integers + + * src/helper/sp-canvas.c (scroll_to): Scroll instead of draw + + * tools-version.sh (ENVPATTERN): Added FLAGS + +2002-12-02 Masatake YAMATO <jet@gyve.org> + + * distro, tools-version.sh: New files. + distro comes from distro-0.8.1(http://distro.pipfield.ca/). + distro and tools-version.sh should be included only in CVS version + of sodipodi. + + * autogen.sh: Call tools-version.sh. + +2002-12-02 Lauris Kaplinski <lauris@kaplinski.com> + + * src/dialogs/desktop-properties.c: Partial color picker implementation + +2002-12-01 Lauris Kaplinski <lauris@kaplinski.com> + + * src/dialogs/text-edit.c: GtkObject/GObject cleanup + + * src/file.c: Ditto + + * TODO: Update with 0.29 tasks + + * src/sp-gradient.c: GtkObject/GObject cleanup + + * src/widgets/sp-widget.c: Ditto + + * src/widgets/gradient-selector.c: Ditto + + * src/widgets/gradient-vector.c: Ditto + + * src/widgets/gradient-position.c: Ditto + + * src/widgets/gradient-image.c: Ditto + + * src/dialogs/fill-style.c: Ditto + +2002-11-30 Lauris Kaplinski <lauris@kaplinski.com> + + * src/view.h: Derive directly from GObject + +2002-11-30 Masatake YAMATO <jet@gyve.org> + + * configure.in (ENABLE_AUTOTRACE): Comment out autotrace/frontline + checking till frontline becomes gtk+2 based. + +2002-11-30 Lauris Kaplinski <lauris@kaplinski.com> + + * src/selection.h: Inherit directly from GObject + + * src/event-context.h: Inherit directly from GObject + + * src/helper/sp-canvas.c (sp_canvas_item_dispose): Set xform to NULL + + * src/display/canvas-arena.c (sp_canvas_arena_destroy): Fixed typo, so + multiple destroys are allowed + + * src/nodepath.c: Removed external cursor pointers + + * src/knot.c (sp_knot_set_property): Ref new cursors + + * src/document.c (sp_document_get_type): Inherit directly from GObject + +2002-11-29 Lauris Kaplinski <lauris@kaplinski.com> + + * src/knot.c (sp_knot_handler): Signature change, return correct value as it should + + * src/helper/sp-canvas.c (scroll_to): Blit window, unless explicitly forbidden + (sp_canvas_size_allocate): Update onlu changed areas + + * src/sp-item.c (sp_item_invoke_bbox): Signature change + + * src/desktop.c (sp_desktop_widget_update_rulers): Reenabled it + (sp_desktop_set_display_area): Only update canvas root if zoom factor changes + (sp_desktop_update_scrollbars): Working + + * src/helper/sp-canvas.c (paint): use full visible are for clipping, fixed + type on specifying area dimensionf in event + (sp_canvas_get_viewbox): New method + + * src/desktop.c (sp_desktop_set_display_area): New method, replaces show_region + (sp_desktop_get_display_area): Replacement for ... + (sp_desktop_zoom_absolute): Use generic sp_desktop_set_visible_area + (sp_desktop_zoom_relative): Ditto + +2002-11-28 Lauris Kaplinski <lauris@kaplinski.com> + + * configure.in: ... and everyting else - merged SODIPODI_GTK2_BRANCH + + * po/Makevars: Added this + +2002-11-28 gettextize <bug-gnu-gettext@gnu.org> + + * Makefile.am (SUBDIRS): Add intl, m4. + (EXTRA_DIST): Add config.rpath. + * configure.in (AC_OUTPUT): Add intl/Makefile, po/Makefile.in, m4/Makefile. + +2002-11-27 gettextize <bug-gnu-gettext@gnu.org> + + * Makefile.am (SUBDIRS): New variable. + (ACLOCAL_AMFLAGS): New variable. + (EXTRA_DIST): New variable. + * configure.in (AC_OUTPUT): Add intl/Makefile, po/Makefile.in, m4/Makefile. + +2002-11-25 Lauris Kaplinski <lauris@kaplinski.com> + + * configure.in: Version 0.29pre + +2002-11-25 Lauris Kaplinski <lauris@kaplinski.com> + + * src/display/nr-arena-glyphs.c (nr_arena_glyphs_group_add_component): Skip + if zero-sized valid path + + * src/libnr/nr-path.c (nr_path_matrix_f_bbox_f_union): Allow NULL path member + (nr_path_matrix_f_point_f_bbox_wind_distance): Ditto + (nr_path_duplicate_transform): Ditto + + * src/libnrtype/nr-typeface.h: Added family member to definition + + * src/libnrtype/nr-type-directory.c (nr_type_register): Use family from def + + * src/libnrtype/nr-type-ft2.c (nr_type_ft2_build_def): Set family member + + * src/libnrtype/nr-type-gnome.c (nr_type_gnome_build_def): Set family member + +2002-11-23 Lauris Kaplinski <lauris@kaplinski.com> + + * src/dyna-draw-context.c: Clamp drag to [0.0 1.0] + +2002-11-23 Masatake YAMATO <jet@gyve.org> + + * src/node-context.c: Inlucde document.h. + (sp_node_context_stamp): New function. + (sp_node_context_root_handler): Do stamp if space key + is pressed during dragging. + + * src/nodepath.c (stamp_repr): New function. + (node_event): Do stamp if the space key is pressed. + (node_ctrl_event): New function. + (sp_nodepath_node_new): Connected node_ctrl_event to n->p.knot::event. + Connected node_ctrl_event to n->n.knot::event. + + * src/helper/bezier-utils.c (sp_bezier_fit_cubic_full): Fix memry leaks(u, uPrime). + This leaks are reported by Michel Schinz <Michel.Schinz@epfl.ch>. + +2002-11-22 Lauris Kaplinski <lauris@kaplinski.com> + + * src/libnrtype/nr-type-gnome.c (nr_typeface_gnome_lookup): Added all + glyphs to 0xe000 private plane as well. + + * src/widgets/gradient-selector.c (sp_gradient_selector_set_spread): Set + position widget spread as well + (sp_gradient_selector_spread_activate): Ditto + +2002-11-21 Lauris Kaplinski <lauris@kaplinski.com> + + * src/helper/curve.c (sp_curve_closepath): Reinitialize pointers, as we may + have reallocated path in helper + + * src/knotholder.h: Added hook for knot ungrabbing + + * src/knotholder.c (knot_ungrabbed_handler): Implement + (sp_knot_holder_destroy): Free list items + + * src/sp-ellipse.c (sp_arc_start_set): Use genericellipse closed marker + (sp_arc_end_set): Ditto + (sp_arc_set_elliptical_path_attribute): Ditto + + * autogen.sh: Added '--intl' to gettextize flags, seems to be safe for + older gettexts as well + + * src/dialogs/xml-tree.c (on_tree_select_row): Remove extra blockade + counting (thanks to MenTaLguY) + (on_tree_unselect_row): Ditto + +2002-11-20 Masatake YAMATO <jet@gyve.org> + + * src/seltrans.c (sp_sel_trans_init): Set null to + stamp_cache. + (sp_sel_trans_ungrab): Clear stamp_cache. + (sp_sel_trans_stamp): If available, use stamp_cache. + Else build stamp_cache. l0 is removed. Don't + free the list here. + + * src/seltrans.h: Included glib.h. + (struct _SPSelTrans): added new field stamp_cache. + +2002-11-20 Lauris Kaplinski <lauris@kaplinski.com> + + * src/interface.c (sp_ui_dialog_menu): Do not bring up > 1 transform dialogs at once + + * src/seltrans.c (sp_sel_trans_stamp): Reversing still was not correct, + replaced it with explicit sort + +2002-11-20 Masatake YAMATO <jet@gyve.org> + + * src/seltrans.c (sp_sel_trans_stamp): The order of + selections is reversed before stamping. + + The bug was reported by Michel Schinz <Michel.Schinz@epfl.ch>. + +2002-11-19 Lauris Kaplinski <lauris@kaplinski.com> + + * src/desktop.c (sp_desktop_prepare_shutdown): New method, allowing us nice + cleanup before ::destroy is invoked + (sp_dtw_desktop_shutdown): Prepare desktop for shutdown + + * src/sp-text.c (sp_text_is_empty): Treat unicode private plane as graphical + + * src/libnrtype/nr-type-ft2.c (nr_typeface_ft2_lookup): Use private plane + direct index, if no unimap + (nr_typeface_ft2_new): Set unimap flag according to whether we have + unicode mapping table or not + +2002-11-18 Lauris Kaplinski <lauris@kaplinski.com> + + * configure.in (FREETYPE_LIBS): Added direct freetype check + + * src/widgets/dash-selector.c (sp_dash_selector_menu_item_new): Use created + GC, as widget is not mapped yet + (sp_dash_selector_new): Load stroke definitions from preferences + +2002-11-17 Lauris Kaplinski <lauris@kaplinski.com> + + * src/helper/sodipodi-ctrl.c (sp_ctrl_build_cache): Cleaned up bitmap build + +2002-11-17 Masatake YAMATO <jet@gyve.org> + + * src/dialogs/xml-tree.c (sp_xml_tree_dialog): Added small + space between attribute name text field and set attribute + button. + +2002-11-17 Lauris Kaplinski <lauris@kaplinski.com> + + * src/dialogs/xml-tree.c (sp_xml_tree_dialog): Cleanup by MenTaLguY + + * src/widgets/sp-xmlview-attr-list.c (event_attr_changed): Clamping string + width to 64[+3], thanks to MenTaLguY + +2002-11-16 Lauris Kaplinski <lauris@kaplinski.com> + + * src/helper/sp-canvas.c (sp_canvas_motion): Get pointer if motion hints are requested + + * src/select-context.c (sp_select_context_item_handler): Use motion hints + + * src/dialogs/text-edit.c (sp_text_edit_dialog_read_selection): Kill annoying + warning about position > length + + * src/style.h (SP_SCALE24_FROM_FLOAT): Use temporary (double) cast + (SP_SCALE24_TO_FLOAT): Ditto + + * src/dialogs/xml-tree.c (cmd_set_attr): Use gal unicode wrappers + + * src/widgets/sp-xmlview-attr-list.c (event_attr_changed): Use gal unicode wrappers + + * src/widgets/sp-xmlview-content.c (event_content_changed): Use gal unicode wrappers + (sp_xmlview_content_changed): Ditto + + * src/widgets/sp-xmlview-tree.c (element_attr_changed): Use gal unicode wrapper + (text_content_changed): Ditto + + * src/dialogs/xml-tree.c: Sorted out includes a bit + (set_tree_desktop): Comment aout transient, as some WMs do not do it proper + (on_desktop_selection_changed): Set/release block + (on_tree_unselect_row): Ditto + (on_tree_select_row): Ditto + (get_dt_select): Use selection helper methods + +2002-11-15 Lauris Kaplinski <lauris@kaplinski.com> + + * src/libnrtype/nr-type-gnome.c (nr_typeface_gnome_glyph_outline_get): Use + metrics properly + + * src/libnrtype/nr-type-ft2.c (nr_typeface_ft2_ensure_slot_v): Implement for + font missing vertical metrics + (nr_typeface_ft2_ensure_outline): Ditto + + * src/libnrtype/nr-type-directory.c (nr_type_read_private_list): Read face + number from proper place + + * src/libnrtype/nr-font.c (nr_font_generic_glyph_area_get): Implement + + * src/sp-text.c (sp_string_calculate_dimensions): Use metrics properly + (sp_string_set_shape): Ditto + + * src/print.c (sp_print_stroke): Print dash + +2002-11-14 Lauris Kaplinski <lauris@kaplinski.com> + + * src/file.c (sp_file_exit): Close all views before exiting + + * src/interface.c (sp_ui_close_view): Destroy viewwidget properly + (sp_ui_close_all): New method + + * src/sp-rect.c (sp_rect_write_transform): Adjust dash in addition to stroke width + + * src/display/nr-arena-shape.c (nr_arena_shape_update): Only dash if + total dash length is >= 1.0 pixels + + * src/dialogs/stroke-style.c (sp_stroke_style_line_update_repr): Divide + dash values by line width + (sp_stroke_style_scale_line): Multiply dash values by line width + (sp_stroke_style_line_update): Ditto + + * src/widgets/dash-selector.c (sp_dash_selector_set_dash): Use 1/1000 of + total dash distance as delta + + * src/sp-gradient.c (sp_gradient_write): Set xlink:href attribute + (sp_stop_write): Do it the right way + +2002-11-13 Lauris Kaplinski <lauris@kaplinski.com> + + * src/style.c (sp_style_read_dash): Allow comma separators + (sp_style_read): Read dash presentation attributes + + * src/widgets/dash-selector.c: New file + + * src/widgets/dash-selector.h: New file + + * src/dialogs/stroke-style.c (sp_stroke_style_line_widget_new): Added dash + pattern selector + (sp_stroke_style_line_update): Update dash + (sp_stroke_style_line_update_repr): Ditto + (sp_stroke_style_line_dash_changed): Callback + +2002-11-12 Lauris Kaplinski <lauris@kaplinski.com> + + * src/dialogs/xml-tree.c: Naviagtion buttons, better layout and other + improvements by MenTaLguY <mental@rydia.net> + +2002-11-12 Masatake YAMATO <jet@gyve.org> + + * configure.in: required frontline-0.5.4. + You can get both autotrace and frontline from + http://sourceforge.net/autotrace. + (AC_PROG_AS): wrapped by ifdef. + Missing to add ChangeLog before commiting. + +2002-11-11 Lauris Kaplinski <lauris@kaplinski.com> + + * src/libnr/nr-gradient.c (nr_rgradient_render_generic_symmetric): Fix + array read overflow + (nr_rgradient_render_generic_optimized): Ditto + + * src/widgets/paint-selector.c (sp_paint_selector_write_lineargradient): Normalize + gradient transform and recalculate positions before applying + (sp_paint_selector_write_radialgradient): Ditto + + * src/widgets/gradient-selector.c (sp_gradient_selector_set_mode): New method + (sp_gradient_selector_init): Added units and spread optionmenu + + * src/widgets/gradient-position.c (sp_gradient_position_motion_notify): Comment + out nonuniform placement, as it did not work correctly + + * src/libnr/nr-matrix.c (nr_matrix_d_invert): Fix really silly bug generating identities + (nr_matrix_f_invert): Ditto + + * src/dialogs/stroke-style.c (sp_stroke_style_paint_update): Set gradient props + + * src/dialogs/fill-style.c (sp_fill_style_widget_update): Set gradient props + + * src/sp-gradient.h: Changed units enumeration, so 0 is default + + * src/display/nr-arena-shape.c (nr_arena_shape_pick): Re-enable SVP based check, + only do winding check, if object is filled + + * src/file.c: Removed printing code, only frontends remain + + * src/print.c (sp_print_document): Implement + (sp_print_document_to_file): Ditto + + * src/sp-gradient.c (sp_gradient_ensure_colors): Fixed writing last color + outside of allocated color vector + +2002-11-10 Lauris Kaplinski <lauris@kaplinski.com> + + * configure.in: Commented out AM_PROG_AS, as there is not such macro + in my installation + + * src/libnrtype/nr-typeface.h: Signature change for outline unref + + * src/libnrtype/nr-type-gnome.c (nr_typeface_gnome_glyph_outline_get): Implemented + vertical metrics outline + (nr_typeface_gnome_glyph_advance_get): Ditto for advance + + * src/libnrtype/nr-type-directory.c: Cleaned up a lot, now we can hopefully + work with multiple font sources + + * src/libnrtype/nr-type-directory.h: Moved namelist to nr-type-primitives + + * src/libnrtype/nr-type-primitives.c: New file + + * src/libnrtype/nr-type-primitives.h: New file + + * src/libnrtype/nr-type-ft2.c: New file + + * src/libnrtype/nr-type-ft2.h: New file + +2002-11-09 Masatake YAMATO <jet@gyve.org> + + * configure.in (AM_CONDITIONAL(USING_OAF)): moved to toplevel. + (AM_PROG_AS): used to check gas/as. + + * src/toolbox.c (sp_update_draw_toolbox): tooltips + are added to the buttons. + (gtk_event_box_new_with_image_file_and_tooltips) + (gtk_event_box_force_draw_parent): New functions. + + * src/widgets/sp-menu-button.c (sp_menu_button_draw_arrow): New function. + (sp_menu_button_draw): used sp_menu_button_draw_arrow. + (sp_menu_button_expose): ditto. + +2002-11-06 Masatake YAMATO <jet@gyve.org> + + * src/helper/curve.c (sp_curve_new_from_bpath): Initialize substart + field. + (sp_curve_reverse): assert if bs->code is ART_MOVETO_OPEN + or ART_MOVETO. + + Added functions that converts multiple items to curves. + * src/path-chemistry.c (sp_selected_item_to_curved_repr): + Use sp_selected_item_to_curved_repr0. + (sp_selected_path_to_curves0): New function. + (sp_selected_path_to_curves): New function. + (SP_TOCURVE_*): Placeholders. + +2002-11-05 Lauris Kaplinski <lauris@kaplinski.com> + + * src/dialogs/export.c: Made glade-free dialog + + * src/file.c (sp_export_png_file): Make filename const + + * configure.in (CFLAGS): Added GCC warnings + +2002-11-03 Lauris Kaplinski <lauris@kaplinski.com> + + * src/dialogs/node-edit.c: Removed unused glade stuff + +2002-11-04 Masatake YAMATO <jet@gyve.org> + + * src/dialogs/xml-tree.c (sp_xml_tree_dialog): Added vpaned + between sp_xmlview_attr_list_new and text fields. + +2002-11-03 Lauris Kaplinski <lauris@kaplinski.com> + + * Makefile.am (SUBDIRS): Removed macros + + * autogen.sh: Made self-contained + + * configure.in: Removed macros + + * src/widgets/sp-xmlview-tree.c: new file by MenTaLguY + + * src/widgets/sp-xmlview-content.c: new file by MenTaLguY + + * src/widgets/sp-xmlview-attr-list.c: new file by MenTaLguY + + * src/libnrtype/nr-type-directory.c: Parsing works for normal fonts + +2002-11-02 Masatake YAMATO <jet@gyve.org> + + * README: removed GYVE. + + * doc/keybindings.txt: added a item for stamping. + + * doc/architecture.txt: Fix a typo in a document. + / is forgotten in a sample svg. + + * src/rect-context.c (sp_rect_context_config_widget): Fix a typo in a + label. + +2002-11-01 Lauris Kaplinski <lauris@kaplinski.com> + + * src/desktop.h: s/GtkEventBoxClass/SPViewClass/; thanks to MenTaLguY + + * configure.in (have_gnome_print): Gnome-print support can be disabled + + * src/libnrtype/Makefile.am (INCLUDES): SODIPODI_GNOME_PRINT_CFLAGS + + * src/Makefile.am (sodipodi_LDADD): Added SODIPODI_GNOME_PRINT_LIBS + (INCLUDES): Same for CFLAGS + +2002-10-31 Lauris Kaplinski <lauris@kaplinski.com> + + * src/widgets/font-selector.c (struct _SPFontSelector): Use NRNameListss + (sp_font_selector_init): Setup family namelist + (sp_font_selector_family_select_row): Setup style namelist + (sp_font_selector_set_font): Use namelist + + * src/libnrtype/nr-type-directory.c (nr_type_directory_lookup): New method + (nr_type_directory_style_list_get): Return list of full names + + * src/libnrtype/nr-typeface.h: Added full name, removed generic style query + +2002-10-31 Masatake YAMATO <jet@gyve.org> + + * src/sp-image.c (autotrace_dialog): invokeed frontline_init + if it is defined. in-cvs version of frontline defines + frontline_init. + +2002-10-27 Lauris Kaplinski <lauris@kaplinski.com> + + * src/helper/curve.c (sp_bpath_clean): Fixed warning (thanks to MenTaLguY) + +2002-10-26 Lauris Kaplinski <lauris@kaplinski.com> + + * src/dialogs/text-edit.c (sp_text_edit_dialog_update_object): Make + style srings lowercase before applying + + * src/dialogs/desktop-properties.c (sp_desktop_dialog_new): Added + togglebutton for showing/hiding page border + + * src/desktop.c (sp_dt_namedview_modified): Show/hide page border + + * src/sp-namedview.c (sp_namedview_read_attr): Listen to "showborder" + +2002-10-25 Lauris Kaplinski <lauris@kaplinski.com> + + * src/dialogs/item-properties.c: Removed libglade dependency + +2002-10-23 Lauris Kaplinski <lauris@kaplinski.com> + + * configure.in: Added check for popt.h + + * src/dialogs/align.c: Removed libglade dependency + + * src/toolbox.c: Removed libglade dependency + +2002-10-22 Lauris Kaplinski <lauris@kaplinski.com> + + * src/toolbox.c (sp_toolbox_button_new): Helper + (sp_toolbox_toggle_button_new): Ditto + (sp_toolbox_file_create): Degladeified method + + * src/file.c (sp_file_export_dialog): Frontend + + * src/toolbox.c (sp_toolbox_toggle_button_new): Helper + (sp_toolbox_draw_create): Use previous + + * src/main.c: #include <desktop.h> + +Mon Oct 21 13:31:41 2002 Mitsuru Oka <oka326@parkcity.ne.jp> + + * configure.in: Fixed dependency bug. + Removed --with/without-gnome-xml2 config option. + +2002-10-21 Lauris Kaplinski <lauris@kaplinski.com> + + * src/widgets/sp-toolbox.c: Removed whole gtk.h inclusion + + * src/toolbox.c: Added missing headers + + * src/print.c (sp_print_image_R8G8B8A8_N): Implement + (sp_print_preview): Remove root transform + (sp_print_fill): Do not apply ctm twice + +Mon Oct 21 02:11:08 2002 Mitsuru Oka <oka326@parkcity.ne.jp> + + * autogen.sh: Fixed package version in echo message. + + * configure.in: Rewrite using PKG_CHECK_MODULES. + It reduced verbose package checks. + + * src/main.c: Removed unused GNOME headers. + + * src/sp-ellipse.c: Ditto. + + * src/sp-image.c: Ditto. + + * src/toolbox.c: Ditto. + + * src/dialogs/align.c: Ditto. + + * src/dialogs/desktop-properties.c: Ditto. + + * src/dialogs/display-settings.c: Ditto. + + * src/dialogs/document-properties.c: Ditto. + + * src/dialogs/object-attributes.c: Ditto. + + * src/dialogs/object-properties.c: Ditto. + + * src/dialogs/stroke-style.c: Ditto. + + * src/dialogs/text-edit.c: Ditto. + + * src/dialogs/tool-attributes.c: Ditto. + + * src/dialogs/tool-options.c: Ditto. + + * src/helper/units.c: Ditto. + + * src/widgets/font-selector.c: Ditto. + + * src/widgets/gradient-selector.c: Ditto. + + * src/widgets/paint-selector.c: Ditto. + + * src/widgets/sp-color-selector.c: Ditto. + + * src/selection.c: Renamed release handler. + + * src/sp-gradient.c: Fixed non existence destroy signal bug. + + * src/sp-item.c: Ditto. + + * src/style.c: Ditto. + + * src/widgets/gradient-image.c: Ditto. + + * src/widgets/gradient-vector.c: Ditto. + + * src/sp-object.c: Cleanup. + +Sun Oct 20 12:22:03 2002 Mitsuru Oka <oka326@parkcity.ne.jp> + + * autogen.sh: Specify automake version to 1.6.1. + + * configure.in: Cleanup. + + * src/desktop-events.c: Cleanup and removed unused gnome header. + + * src/desktop.c: Ditto. + + * src/draw-context.c: Ditto. + + * src/dyna-draw-context.c: Ditto. + + * src/event-context.c: Ditto. + + * src/rect-context.c: Ditto. + + * src/spiral-context.c: Ditto. + + * src/star-context.c: Ditto. + + * src/file.c: Ditto. + + * src/help.c: Ditto. + + * src/main.c: Ditto. + + * src/sp-anchor.c: Ditto. + + * src/sp-item-group.c: Ditto. + + * src/sp-item.c: Ditto. + + * src/sp-rect.c: Ditto. + + * src/sp-shape.c: Ditto. + + * src/sp-spiral.c: Ditto. + + * src/sp-star.c: Ditto. + + * src/interface.c: Ditto. + We lost icon for sp_about function. + + * src/sp-image.c: Cleanup and removed unused gnome header. + Replaced by GtkDialog. + + * src/document.c: Ditto. + + * src/sodipodi.c: Ditto. + + * src/sp-namedview.c: Fixed bug that SPGuide was unrefed by + gtk_object_unref. + + * src/sp-object.c: Fixed up release/disopse/finalize policy. + We now got works again. + (sp_object_class_init): Fixed object signal handler connection bug + at release signal creation. + + * src/sp-pattern.c: Moved to g_object_unref. + + * src/sp-root.c (sp_root_release): Check if namedviews is NULL. + + * src/sp-text.c: Moved to g_object_unref. + Removed unused gnome dependency. + + * src/svg-view.c: Moved to g_object_unref and + g_object_get/set_data. + + * src/toolbox.c: Reverted from SPWrap to GtkTable. + It's not a time to use SPWrap. + + * src/dialogs/export.c: Moved arena object to GObject functions. + + * src/dialogs/item-properties.c: Moved to g_object_unref. + + * src/dialogs/xml-tree.c: Cleanup. + + * src/display/nr-arena-glyphs.c: Moved from finalize to dispose. + + * src/display/nr-arena-group.c: Ditto. + + * src/display/nr-arena-image.c: Ditto. + + * src/display/nr-arena-item.c: Ditto. + + * src/display/nr-arena-shape.c: Ditto. + + * src/display/nr-arena.c: Ditto. + + * src/xml/sp-color-selector.c (sp_color_selector_init): Added + GINT_TO_POINTER cast. + +2002-10-20 Lauris Kaplinski <lauris@kaplinski.com> + + * src/libnr/nr-compose-transform.c (nr_R8G8B8A8_P_R8G8B8A8_P_R8G8B8A8_N_TRANSFORM): + Use mmx subcomposers if needed + + * src/libnr/nr_mmx_R8G8B8A8_P_R8G8B8A8_P_R8G8B8A8_N_TRANSFORM.S: New file + +2002-10-19 Lauris Kaplinski <lauris@kaplinski.com> + + * src/libnr/nr-compose-transform.c (nr_R8G8B8A8_P_R8G8B8A8_P_R8G8B8A8_N_TRANSFORM_0): + Split composer + (nr_R8G8B8A8_P_R8G8B8A8_P_R8G8B8A8_N_TRANSFORM_n): Ditto + +2002-10-18 Lauris Kaplinski <lauris@kaplinski.com> + + * src/libnr/nr_mmx_R8G8B8A8_P_EMPTY_A8_RGBAP.S: new file + + * src/libnr/nr-path.c (nr_path_matrix_f_bbox_f_union): Moved bpath + bbox calculation here + (nr_curve_bbox): Rearrange comparisons + +Thu Oct 17 15:25:43 2002 Mitsuru Oka <oka326@parkcity.ne.jp> + + * Removed macros directory. + + * Makefile.am, autogen.sh, configure.in: Corresponding changes. + +2002-10-17 Lauris Kaplinski <lauris@kaplinski.com> + + * src/helper/sp-canvas.c: Use idle priority lower than Gtk redraw + + * src/display/nr-arena-shape.c (nr_arena_shape_pick): Use libnr + distance7wind calculation, if item is not at render state + (nr_arena_shape_update): Only update bbox, if render state is not + needed. This gave us approximately 10x faster dragging of comlex shapes + + * src/libnr/nr-path.c (nr_line_wind_distance): New helper method + (nr_curve_bbox_wind_distance): Ditto + (nr_path_matrix_f_point_f_bbox_wind_distance): Fast method to find + bbox and/or wind and/or distance to bezier path + +2002-10-16 Lauris Kaplinski <lauris@kaplinski.com> + + * src/print.h: New file, frontend to printing + + * src/print.c: New file, frontend to printing + +2002-10-15 Davide Puricelli <evo@debian.org> + + * debian/*: Updated + +2002-10-15 Lauris Kaplinski <lauris@kaplinski.com> + + * src/sp-item.c (sp_item_invoke_print): Rename, signature change + + * src/sp-item.h: SPItem::print signature change + + * src/forward.h: Added SPPrintContext + + * src/libnr/testnr.c (main): Fill mask with blocks of transparent, opaque + and random data. This should be closer to reality and (surprise!) gives better + performance numbers too! + + * src/libnrtype/nr-typeface.c: Moved everyting to virtual method vector + +Sun Oct 13 20:54:15 2002 Mitsuru Oka <oka326@parkcity.ne.jp> + + * autogen.sh: Come from GNOME2. + +Sun Oct 13 20:27:04 2002 Mitsuru Oka <oka326@parkcity.ne.jp> + + * src/desktop-events.c, src/desktop.c, + src/dialogs/object-properties.c: + Moved gnome_pixmap_new_from_file to gtk_image_new_from_file. + + * src/draw-context.c: Replaced finalize with destory. + + * src/sp-polygon.c: Fixed property bug which did not work + correctly. + + * src/widgets/sp-wrap-box.c, src/widgets/sp-wrap-box.h, + src/widgets/sp-hwrap-box.c, src/widgets/sp-hwrap-box.h, + src/widgets/sp-vwrap-box.c, src/widgets/sp-vwrap-box.h: New files. + + * src/widgets/test-wrapbox.c: New file. + + * src/widgets/Makefile.am: Added wrapbox stuffs. + + * src/widgets/.cvsignore: Added test-wrapbox. + + * src/widgets/sp-toolbox.c: Used g_signal_new instead of + gtk_signal_new, because we need accumulater to control signal + handler flow, and previous codes are not perfect. + +Sun Oct 13 04:18:41 2002 Mitsuru Oka <oka326@parkcity.ne.jp> + + * src/sodipodi.c, sodipodi.h: sodipodi_get_elapsed_time() + was useless, so removed. + + * src/knot.c: Replaced finalize with dispose. + use GDK_CURRENT_TIME instead of sodipodi_get_elapsed_time(). + + * src/select-context.c: Use GDK_CURRENT_TIME instead of + sodipodi_get_elapsed_time(). + + * src/style.c: Replaced destroy with release. + + * src/text-context.c: Replaced finalize with destory, + because it's not a direct subclass of GObject. + Replaced noisy gtk_signal_disconnect_by_data with + g_signal_handlers_disconnect_matched. + + * src/toolbox.c: Use normal gtk_menu_item_set_submenu instead of + original gtk_menu_popup callback. + + * src/sp-object.c: Fixed illegal signal emission. + + * src/selection.c: + + * src/dialogs/fill-style.c: Added required headler files. + + * src/dialogs/item-properties.c: Depressed warning. + + * src/display/canvas-arena.c: Use GDK_CURRENT_TIME instead of + sodipodi_get_elapsed_time(). + + * src/helper/sp-guide.c: Cleanup. + + * src/widgets/sp-menu-button.c: Use GDK_CURRENT_TIME instead of + sodipodi_get_elapsed_time(). + Changed popup style. + +2002-10-13 Lauris Kaplinski <lauris@kaplinski.com> + + * src/helper/sp-canvas.c (uta_clear): Experimental method + (paint): Return, if events pending (commented out) + (do_update): Return value + (idle_handler): Use update return value + + * src/libnr/testnr.c: Speed test + + * src/libnr/nr_mmx_R8G8B8_R8G8B8_R8G8B8A8_P.S: New file + + * src/helper/sp-canvas-util.c (sp_canvas_clear_buffer): Be quick + + * src/helper/sp-canvas.h: Moved update flags back here + + * src/display/canvas-arena.c (sp_canvas_arena_update): Sort updates according to affine (again) + + * src/libnr/have_mmx.S: New file (copied from gdk-pixbuf) + + * configure.in (use_mmx_asm): Check for mmx + + * src/libnr/nr-compose.c (nr_R8G8B8A8_P_R8G8B8A8_P_A8_RGBA32): Use mmx if present + + * src/libnr/nr_mmx_R8G8B8A8_P_R8G8B8A8_P_A8_RGBAP.S: Assembler code + +2002-10-11 Lauris Kaplinski <lauris@kaplinski.com> + + * src/helper/sp-canvas.h: Changed object type to SPCanvas, cleanup + + * src/helper/sp-canvas.c: Ditto + +2002-10-10 Lauris Kaplinski <lauris@kaplinski.com> + + * src/helper/sp-canvas.c: Local version of praised GnomeCanvas + + * src/helper/sp-canvas.h: Local version of praised GnomeCanvas + + * src/libnr/nr-gradient.c (nr_rgradient_render_generic_symmetric): Optimize + +2002-10-09 Lauris Kaplinski <lauris@kaplinski.com> + + * src/libnr/nr-blit.c (nr_blit_pixblock_mask_rgba32): New method + + * src/libnr/nr-gradient.c (nr_rgradient_renderer_setup): Do r == 0 correctly + (nr_rgradient_render_generic_optimized): Optimize + (nr_rgradient_render_block_end): New method + + * configure.in: Version 0.28pre + +2002-10-09 Lauris Kaplinski <lauris@kaplinski.com> + + * configure.in: Version 0.27 + + * src/text-context.c (sp_text_context_root_handler): Only turn off unimode, + if there really is string associated with key + +2002-10-09 Masatake YAMATO <jet@gyve.org> + + * src/sp-image.c (load_splines): changed the order + of arguments. this change is for frontline-0.5.3. + + * configure.in: required frontline-0.5.3. + To build sodipodi with frontline you have to get: + http://autotrace.sourceforge.net/snapshots/autotrace-0.30.8.tar.gz + http://autotrace.sourceforge.net/frontline/frontline-0.5.3.tar.gz + +2002-10-08 Lauris Kaplinski <lauris@kaplinski.com> + + * src/widgets/gradient-position.c (sp_gradient_position_motion_notify): Do + not mess with lineargradient skew + + * src/sp-ellipse.c (sp_arc_modified): Continue upstream + +Mon Oct 7 01:41:23 2002 Mitsuru Oka <oka326@parkcity.ne.jp> + + * Merged from HEAD branch. + +2002-10-07 Lauris Kaplinski <lauris@kaplinski.com> + + * src/sp-text.c: Moved frontends here + + * src/dialogs/node-edit.h: Moved declarations here + + * src/desktop.c (sp_desktop_widget_view_position_set): Use grid placement + (sp_desktop_widget_namedview_modified): Read grid placement + (sp_desktop_widget_update_rulers): Use grid placement + (sp_desktop_set_coordinate_status): Disable, until sorted out + + * src/widgets/font-selector.c (sp_font_selector_set_font): Implement + + * src/libnrtype/nr-rasterfont.c (nr_rasterfont_ensure_glyph_slot): Oops, alloc + and clear the right number of blocks + + * src/libnr/nr-compose.c (nr_R8G8B8_R8G8B8_A8_RGBA32): Implement + (nr_R8G8B8_EMPTY_A8_RGBA32): Implement + + * src/libnr/nr-blit.c (nr_blit_pixblock_mask_rgba32): Implement + + * src/widgets/font-selector.c (sp_font_preview_expose): Implement + (sp_font_preview_set_font): Ditto + + * src/libnr/nr-pixblock-pattern.h: New file + + * src/libnr/nr-pixblock-pattern.c: New file + +2002-10-06 Lauris Kaplinski <lauris@kaplinski.com> + + * src/toolbox.c (sp_toolbox_draw_create): Do not expand/fill use correct name for text + + * sodipodi.spec.in: Update to cleaner version by Dag Vieers + + * src/sp-text.c (sp_text_is_empty): New method + (sp_string_release): Use ::release, not ::destroy + (sp_tspan_release): Ditto + (sp_text_release): Ditto + + * src/text-context.c (sp_text_context_selection_changed): Forget text + (sp_text_context_forget_text): New method, remove empty text item + + * src/sp-text.c (sp_tspan_build): Ensure there is always text child + + * src/sp-item-group.c (sp_group_bbox): Do not set bbox to 0,0,0,0 + + * src/select-context.c (sp_select_context_root_handler): Set grabbed to NULL on release + + * src/path-chemistry.c (sp_selected_path_combine): Use item2root transform + (sp_selected_path_break_apart): Ditto + + * src/sp-item.c (sp_item_i2root_affine): New method + + * src/widgets/gradient-position.c (sp_gradient_position_motion_notify): Reset + gradient relative transform to symmetric rectilinear if dragging + + * src/style.c (sp_style_merge_ipaint): Use "release" signal + (sp_style_read_ipaint): Ditto + + * src/sp-pattern.c (sp_pattern_read_attr): Use "release" signal + + * src/sp-item.c (sp_item_read_attr): Use "release" signal + + * src/sp-image.c (autotrace_dialog): Connect "release" instead of "destroy" + + * src/sp-gradient.c (sp_gradient_href_release): Use "release" instead of "destroy" + +2002-10-06 suzuki toshiya <mpsuzuki@hiroshima-u.ac.jp> + + * src/libnr/Makefile.am (libnr_a_SOURCES): added + nr-gradient.h. (nr-gradient.c appeared twice.) + +2002-10-04 Masatake YAMATO <jet@gyve.org> + + * src/widgets/font-selector.c: Inlucded stdlib.h for atof. + +2002-10-05 Lauris Kaplinski <lauris@kaplinski.com> + + * src/libnr/nr-gradient.c (nr_rgradient_renderer_setup): Use different base renderers + (nr_rgradient_render_block_symmetric): Split frontend + (nr_rgradient_render_block_optimized): Ditto + (nr_rgradient_render_generic_optimized): Asymmetric renderer + + * src/sp-object.c (sp_object_invoke_release): new frontend + (sp_object_detach): release object + (sp_object_detach_unref): Ditto + + * src/sp-object.h: Added ::release virtual method + + * src/sp-object.c (sp_object_invoke_shutdown): New method + +2002-10-04 Lauris Kaplinski <lauris@kaplinski.com> + + * src/sp-item-group.c (sp_item_group_ungroup): Rewrite it, so it moves + all non-items to main <defs> node, preserving logical order and building + objects in correct sequence + + * src/desktop-affine.c: Methods for root coordinate system, fixes misplacement bug + + * src/libnrtype/nr-rasterfont.c: Made working + + * src/libnrtype/nr-font.c (nr_font_new_default): Do linking + (nr_font_unref): Ditto + + * src/libnrtype/nr-type-directory.c (nr_typeface_unref): Moved here, implemented list + + * src/display/nr-arena-glyphs.c (nr_arena_glyphs_update): Port to rfont + (nr_arena_glyphs_pick): Ditto (placeholder) + (nr_arena_glyphs_set_path): Ditto + (nr_arena_glyphs_fill_mask): Ditto + + * src/libnr/nr-matrix.h (NR_MATRIX_DF_EXPANSION): New macro + (NR_MATRIX_DF_EXPANSION2): Ditto + +2002-10-03 Lauris Kaplinski <lauris@kaplinski.com> + + * src/sp-text.c (sp_text_set_shape): Make document insensitive temporarily + + * src/text-context.c (sp_text_context_root_handler): Allow entering + unicode mode by Ctrl-u + +2002-10-02 Lauris Kaplinski <lauris@kaplinski.com> + + * src/sp-chars.c (sp_chars_add_element): Signature change + (sp_chars_show): Ditto + + * src/display/nr-arena-glyphs.c (nr_arena_glyphs_group_add_component): Signature change + + * src/libnrtype/nr-rasterfont.c (nr_rasterfont_new): Set it up + (nr_rasterfont_unref): Release glyph slots + (nr_rasterfont_render_glyph_mask): Implement + (nr_rasterfont_ensure_glyph_slot): New helper + + * src/sp-text.c: Port to new chars signature + + * src/sp-chars.h: Use font instead of typeface + + * src/libnr/nr-gradient.c (nr_lgradient_render_block): Signature change + (nr_lgradient_renderer_setup): Use generic base class + (nr_rgradient_renderer_setup): Ditto + (nr_rgradient_render_block): Signature change + + * src/libnr/nr-render.h: New file + +2002-10-01 Lauris Kaplinski <lauris@kaplinski.com> + + * src/dialogs/text-edit.c (sp_text_edit_dialog_update_object): Use libnrtype + (sp_text_edit_dialog_read_selection): Ditto + (sp_text_edit_dialog_font_changed): Ditto + + * src/libnrtype/nr-type-directory.h: Implement NRNameList + + * src/libnrtype/nr-type-directory.c (nr_type_directory_lookup_fuzzy): Force lowercase + (nr_type_directory_family_list_destructor): Implement + (nr_type_directory_family_list_get): Ditto + (nr_type_directory_style_list_destructor): Ditto + (nr_type_directory_style_list_get): Ditto + + * src/widgets/font-selector.c: New file + + * src/widgets/font-selector.h: New file + + * src/libnrtype/nr-rasterfont.c: New file + + * src/libnrtype/nr-rasterfont.h: New file + + * src/libnr/nr-matrix.c (nr_matrix_f_set_scale): Correct signature + + * src/sp-text.c (sp_font_get_glyph_bbox): Use libnrtype + (sp_font_get_glyph_advance): Ditto + (sp_font_get_glyph_bbox_lr2tb): Ditto + (sp_string_calculate_dimensions): Ditto + (sp_string_set_shape): Ditto + + * src/sp-chars.c (sp_chars_destroy): Use libnrtype + (sp_chars_bbox): Ditto + (sp_chars_show): Ditto + (sp_chars_clear): Ditto + (sp_chars_add_element): Ditto + (sp_chars_normalized_bpath): Ditto + (sp_chars_do_print): Ditto + + * src/sp-chars.h (sp_chars_set_paintbox): Use libnrtype + + * src/libnrtype/nr-type-gnome.h: Placeholder + + * src/libnrtype/nr-type-directory.c: New file + + * src/libnrtype/nr-type-directory.h: New file + + * src/libnrtype/nr-font.c: New file + + * src/libnrtype/nr-font.h: New file + + * src/libnrtype/nr-typeface.c: New file + + * src/libnrtype/nr-typeface.h: New file + + * src/Makefile.am (SUBDIRS): Added libnrtype + + * src/libnr/nr-path.h: Placeholder + +2002-09-30 Lauris Kaplinski <lauris@kaplinski.com> + + * src/widgets/gradient-position.c (spgp_clip_line): New method + (spgp_draw_rect): Ditto + +Sun Sep 29 14:17:31 2002 Mitsuru Oka <oka326@parkcity.ne.jp> + + * src/knot.c, knot.h: Moved SPKnot from subclass of GtkObject + to GObject. + + * src/knotholder.c: Ditto + + * src/seltrans.c: Ditto + + * src/selection.c: Migrated dispose to destroy for remainder. + + * src/desktop-events.c: Fixed to connect signal handler correctly. + + * src/desktop.c: Fixed to add button correctly. + + * src/sp-use.c: Depressed gchar * warnings. + + * src/sp-guide.c: Indented. + +2002-09-29 Lauris Kaplinski <lauris@kaplinski.com> + + * src/sp-gradient.c (sp_gradient_set_gs2d_matrix_f): Oops, write the right transform + + * src/widgets/gradient-position.c: Use new sensible internals + + * src/widgets/gradient-position.h: Ported to ne internals + + * src/widgets/paint-selector.c (sp_paint_selector_set_mode_gradient): Removed + separate linear/radial optionmenu + + * src/widgets/gradient-selector.c (sp_gradient_selector_set_gs2d_matrix_f): New method + (sp_gradient_selector_get_gs2d_matrix_f): Ditto + (sp_gradient_selector_set_rgradient_position): Implement + (sp_gradient_selector_init): Pax buttons under vector + + * src/widgets/gradient-position.c: New positioning syntax, lots of radial stuff + + * src/libnr/nr-matrix.h (NR_MATRIX_DF_TRANSFORM_X): Convenience macro + (NR_MATRIX_DF_TRANSFORM_Y): Ditto + + * src/dialogs/object-properties.c (sp_object_properties_dialog): Shorten string + + * src/dialogs/stroke-style.c (sp_stroke_style_paint_update): Use new + gradient widgets syntax + (sp_stroke_style_paint_dragged): Ditto + (sp_stroke_style_paint_changed): Ditto + + * src/dialogs/fill-style.c (sp_fill_style_widget_update): Use new gradient + widgets syntax for bbox, transform, position + (sp_fill_style_widget_paint_dragged): Ditto, use helper + (sp_fill_style_widget_paint_changed): Ditto + + * src/sp-gradient.c (sp_gradient_get_gs2d_matrix_f): New method + (sp_gradient_set_gs2d_matrix_f): Ditto + (sp_gradient_write): Implement + (sp_lineargradient_write): Ditto + (sp_radialgradient_write): Ditto + + * src/select-context.c (sp_select_context_root_handler): Process button + release only if grabbed + +2002-09-28 Lauris Kaplinski <lauris@kaplinski.com> + + * src/widgets/gradient-vector.c (sp_gvs_rebuild_gui_full): Do not add id label + + * src/widgets/paint-selector.c (sp_paint_selector_init): Added radial button + (sp_paint_selector_set_style_buttons): Set radial + (sp_paint_selector_set_mode_gradient): Set correct button + + * glade/Makefile.am (pixmaps): Added fill_radial.xpm + +Sat Sep 28 14:35:21 2002 Mitsuru Oka <oka326@parkcity.ne.jp> + + * src/toolbox.c: Use gtk_window_set_resizable() instead of + gtk_window_set_policy(), because it is deprecated in GTK+2. + + * src/file.c: Depressed warning on gnome_print_master_perview_new. + + * src/sp-object.h, sp-object.c: Added destroy signal and + remove dispose signal. + + * src/selection.c, sp-gradient.c, style.c, + src/widgets/gradient-vector.c: Moved dispose to destroy. + + * src/sp-guide.c: Added property. + + * src/helper/sp-guide.c: Added property. + + * src/sp-namedview.c: Moved gtk_object_unref to g_object_unref. + + * src/dialogs/text-edit.c: Removed some GNOME dependencies. + + * src/helper/gnome-utils.h gnome-utils.c: New file. + Utilities to help to remove GNOME libraries. + + * src/interface.c: Moved some GNOME functions to gnome-utils.h. + +2002-09-27 Lauris Kaplinski <lauris@kaplinski.com> + + * src/widgets/paint-selector.c (sp_paint_selector_get_gradient_position_floatv): Set radial + + * src/libnr/nr-pixblock-pixel.c (nr_compose_pixblock_pixblock_pixel): Kill + division by zero, if fg and bg are both fully transparent + + * src/dialogs/fill-style.c (sp_fill_style_widget_update): Implement radial + (sp_fill_style_widget_paint_dragged): Ditto + (sp_fill_style_widget_paint_changed): Ditto + + * src/sp-gradient.c (sp_radialgradient_set_position): New method + + * src/gradient-chemistry.c (sp_gradient_ensure_radial_private_normalized): New method + (sp_gradient_get_radial_private_normalized): Ditto + (sp_item_force_fill_radialgradient_vector): Ditto + (sp_item_force_stroke_radialgradient_vector): Ditto + +2002-09-27 Lauris Kaplinski <lauris@kaplinski.com> + + * src/widgets/paint-selector.c (sp_paint_selector_set_gradient_radial): New method + + * src/widgets/gradient-position.c (sp_gradient_position_set_mode): New method + (sp_gradient_position_update): Setup linear/radial renderer as needed + + * src/widgets/gradient-selector.c (sp_gradient_selector_set_mode): New method + (sp_gradient_selector_set_lgradient_position): Renamed method + (sp_gradient_selector_set_rgradient_position): Ditto + (sp_gradient_selector_get_lgradient_position_floatv): Renamed method + (sp_gradient_selector_get_rgradient_position_floatv): Ditto + + * src/libnr/nr-pixblock-pixel.c (nr_compose_pixblock_pixblock_pixel): Fixed + R8G8B8 target to render channels separately + + * src/sp-gradient.c (sp_gradient_from_position_xy): Made gradient method, + changed signature, added gradientTransform to list + (sp_gradient_to_position_xy): Ditto + + * src/libnr/nr-pixblock-pixel.c: New file + + * src/libnr/nr-pixblock-pixel.h: New file + + * src/libnr/nr-gradient.c (nr_lgradient_renderer_setup): Use gradientspace + (nr_lgradient_render_block): Use generic renderer, if no specific one + (nr_lgradient_render_generic): Implement + + * src/sp-gradient.c (sp_gradient_render_vector_block_rgb): Compose correctly + + * src/libnr/nr-blit.c (nr_compose_pixblock_pixblock_pixel): Generic pixel composer + +2002-09-26 Masatake YAMATO <jet@gyve.org> + + * src/select-context.c (sp_select_context_root_handler): + used sp_canvas_item_grab where I want to receive key_press event. + (sp_select_context_item_handler): Ditto. + +2002-09-26 Lauris Kaplinski <lauris@kaplinski.com> + + * src/libnr/nr-gradient.c: New file + + * src/libnr/nr-gradient.h: New file + + * src/sp-gradient.c (sp_lineargradient_painter_new): Construct libnr renderer + (sp_lg_fill): Use it + (sp_radialgradient_painter_new): Construct renderer + (sp_rg_fill): Use it + + * src/sp-shape.c (sp_shape_print): Clear pixelstore + + * src/sp-chars.c (sp_chars_print_bpath): Clear pixelstore before each rendering + + * src/sp-gradient.c (sp_rg_fill): Oops, moved declaration before statements + (sp_rg_fill): Ditto + +2002-09-25 Lauris Kaplinski <lauris@kaplinski.com> + + * src/libnr/nr-compose.c (nr_R8G8B8A8_N_EMPTY_R8G8B8A8_P): Oops, evil bug + + * src/libnr/nr-rect.c (nr_rect_d_matrix_d_transform): New method + (nr_rect_f_matrix_f_transform): Ditto + + * src/sp-object-repr.c (sp_object_type_lookup): Added <pattern> + + * src/sp-pattern.h: New file + + * src/sp-pattern.c: New file + + * src/Makefile.am (sodipodi_SOURCES): Added sp-pattern.[c,h] + + * src/sp-gradient.c (sp_rg_fill): Implement, seems correct although SLOW + (sp_radialgradient_painter_new): Implement, except viewport percentages + (sp_radialgradient_read_attr): Initialize right numbers + (sp_radialgradient_init): Ditto + +Tue Sep 24 01:01:21 2002 Mitsuru Oka <oka326@parkcity.ne.jp> + + * src/interface.c (sp_ui_menu_append_item): Fixed to work well, + even if label is exist and stock is not exist. + + * src/widgets/sp-menu-button.c (sp_menu_button_menu_position): + Modified for popup menu calculation. + + * src/widgets/sp-toolbox.c: Added GTK_SIGNAL_FUNC cast. + +2002-09-24 Masatake YAMATO <jet@gyve.org> + + * src/select-context.c (sp_select_context_root_handler, + sp_select_context_item_handler): used GDK_space instead + of GDK_BUTTON_2. Added Lauris's event mask code after + grabbing an item. + + * src/seltrans.c (sp_sel_trans_handle_stamp): removed. + (sp_seltrans_handle_event): handled "pressing space" as + stamping. + (gdk/gdkkeysyms.h): included. + + * src/knot.c (sp_knot_class_init): removed "stamped" signal + again. + (sp_knot_handler): didn't emit stamped anymore. + +2002-09-24 Lauris Kaplinski <lauris@kaplinski.com> + + * src/libnr/nr-matrix.c (nr_matrix_d_set_scale): new method + (nr_matrix_f_set_scale): Ditto + + * src/sp-use.c (sp_use_href_changed): Use unref instead of destroy + (sp_use_destroy): Ditto + + * src/seltrans.c (sp_sel_trans_scale): Allow scaling in one dimension, + if it is > 0.0 + (sp_sel_trans_scale_request): Snap in one dimension, if > 0.0 + + * src/sp-path.c (sp_path_bbox): Allow empty bboxen + + * src/helper/art-utils.c (sp_bpath_matrix_d_bbox_d_union): Union always, + even if computed bbox is empty + +Mon Sep 23 01:37:09 2002 Mitsuru Oka <oka326@parkcity.ne.jp> + + * src/widgets/sp-menu-button.c: Clean up code. + + * src/widgets/sp-menu-button.c (sp_menu_button_menu_position): + In GTK+2, button widget share its window among toplevel window, + so I fixed offset calculation. + + * src/knot.c: Clean up unused marshaller. + + * src/knotholder.c: Ported. + +2002-09-23 Lauris Kaplinski <lauris@kaplinski.com> + + * src/helper/sp-canvas-util.c (sp_canvas_item_grab): new method to + circumvent GnomeCanvas bug + + * src/knot.c (sp_knot_handler): Use sp_canvas_item_grab + +2002-09-23 Masatake YAMATO <jet@gyve.org> + + * src/knot.c (sp_knot_class_init): Added "stamped" signal + (sp_knot_handler): Emit it + + * src/select-context.c (sp_select_context_item_handler): Do stamping + (sp_select_context_root_handler): Ditto + + * src/seltrans.c (sp_sel_trans_stamp): new method + (sp_show_handles): Connect "stamped" signal + (sp_sel_trans_handle_stamp): new handler + +2002-09-23 Lauris Kaplinski <lauris@kaplinski.com> + + * src/seltrans.c (sp_seltrans_handle_event): Just here for my debugging + + * src/knot.c (sp_knot_handler): No ungrabbing, added TOP CANVAS HACK, + so we can now get key events and do not kill Gdk + + * configure.in: Version 0.27pre + +Sun Sep 22 22:06:57 2002 Mitsuru Oka <oka326@parkcity.ne.jp> + + * src/desktop.c: add destroy call for GtkDialog. + + * src/sp-object.c, sp-polyline.c, style.c, + src/display/canvas-area.c, src/widgets/gradient-image.c, + gradient-vector.c: Ported and fixed. + + * src/sp-ruler.c: Bug fixed that + misspelling s/GtkHRuler/SPHRuler/ and s/GtkVRuler/SPVRuler/. + + * src/widgets/sp-menu-button.c, sp-menu-button.h, src/toolbox.c: + Found duplicated signal "activate". + So, renamed SPMenuButton::activate to "activate-item" and + did corresponding change for toolbox.c. + + * src/helper/sp-ctrlline.c: Avoid to duplicated free call for ctrlline->svp. + +2002-09-22 Lauris Kaplinski <lauris@kaplinski.com> + + * configure.in: Version 0.26 + + * src/main.c: #include <locale.h>, thanks to Masatake + +Sun Sep 22 22:21:14 2002 Mitsuru Oka <oka326@parkcity.ne.jp> + + * src/sp-ruler.c: Bug fixed that + misspelling s/GtkHRuler/SPHRuler/ and s/GtkVRuler/SPVRuler/. + +Sat Sep 21 03:02:21 2002 Mitsuru Oka <oka326@parkcity.ne.jp> + + * Now, sodipodi can build and start up again (but often cause segv). + + * src/display/canvas-arena.c, nr-arena-glyphs.h, nr-arena.c: + Ported. + + * src/dialogs/export.c, text-edit.c: Ported. + + * src/widgets/sp-color-slider.c, sp-menu-button.c: Ported. + + * src/*.c, *.h: Ported. + + * glade/*.glade: conveted to glade-2. + +2002-09-21 Lauris Kaplinski <lauris@kaplinski.com> + + * src/dialogs/fill-style.c (sp_fill_style_widget_new): Fill rule selector + (sp_fill_style_widget_update): Update fill rule selector + (sp_fill_style_widget_update_repr): Ditto + (sp_fill_style_widget_fill_rule_activate): Set fill-rule + + * src/document.c (sp_document_new): Do not set style + + * src/xml/repr.c (sp_repr_merge): Duplicate node without id key + + * src/sp-path.c (sp_path_build): Set fill to none for old version open path + + * src/bonobo/embeddable-document.c (sp_embeddable_document_pf_load): New + document constructor signature, thanks to Ted Gould + (sp_embeddable_document_ps_load): Ditto + (sp_embeddable_document_new): Ditto + + * src/help.c (sp_help_about): use sp_text_set_repr_multiline + + * src/style.c (sp_style_write_difference): Rewind pointer + + * src/sp-ellipse.c (sp_genericellipse_set_shape): Request modified + (sp_arc_modified): Implement, write path attribute + +2002-09-20 Lauris Kaplinski <lauris@kaplinski.com> + + * src/sp-object.c (sp_object_private_write): Duplicate repr if needed + + * src/xml/repr-util.c (sp_repr_set_double_default): New method + + * src/sp-rect.c (sp_rect_write): Set default on radiuses + + * src/sp-root.c (sp_root_write): Set namespaces here + + * src/xml/repr.c (sp_repr_document_new): Set doctype and comment + + * src/xml/repr-io.c (sp_repr_read_file): Set doctype and comment if SVG + (sp_repr_read_mem): Ditto + (sp_repr_save_stream): Save doctype and comment + +Thu Sep 19 19:24:04 2002 Mitsuru Oka <oka326@parkcity.ne.jp> + + * src/sp-marshal.*, src/Makefile.am: Removed old marshaller codes. + +2002-09-19 Lauris Kaplinski <lauris@kaplinski.com> + + * src/sp-text.c (sp_string_set_shape): Update position array + (sp_text_get_cursor_coords): New method + (sp_text_set_shape): Set tspan position to text, if unset; Limit block + to tspans with unspecified role + (sp_text_insert_line): Implement + + * src/text-context.c (sp_text_context_setup): Set blink to 250ms + (sp_text_context_selection_modified): Implement, update cursor position + (sp_text_context_selection_changed): Ditto + (sp_text_context_root_handler): Cursor placement, insertion and deletion + work as they should + + * src/display/nr-arena-shape.c (nr_arena_shape_update): Do not try to + fill paths consisting of single lineto + + * src/gradient-chemistry.c (sp_gradient_ensure_private_normalized): Only keep + if hrefcount == 1 (fixed bug) + + * src/style.c (sp_style_read): Only parse CMYK if RGBA present + +2002-09-18 Lauris Kaplinski <lauris@kaplinski.com> + + * src/sp-ellipse.c (sp_arc_set_elliptical_path_attribute): Lay 2PI arcs as 2 segments + (sp_arc_write): Write SVG <ellipse> if it really is one + + * src/style.c (sp_style_write_ienum): We compare computed values, to + avoid unnecessary setting of attributes + (sp_style_merge_from_parent): Set only computed values for everything + + * src/helper/art-utils.c (sp_vpath_from_bpath_closepath): New method, + borrowed relevant helpers from libart code + + * src/display/nr-arena-shape.c (nr_arena_shape_update): Closeall if filled, + limit min width to 0.125 instead of cutting it to 0 + +2002-09-17 Lauris Kaplinski <lauris@kaplinski.com> + + * src/event-context.c (sp_event_context_destroy): Do not disconnect + desktop signal, as there is no such + (sp_event_context_new): Do not connect desktop signal + + * src/draw-context.c (sp_pencil_context_root_handler): Changed grabbing only + to happen, if pointer is moved button-down. This changed irritating + double-click total grab problem. + (sp_pen_context_root_handler): Ditto + + * src/display/nr-arena-group.c (nr_arena_group_update): Multiply + with group second transformation + + * src/display/nr-arena-group.h: Added child_affine member + + * src/sp-root.c (sp_root_read_attr): Use NRMatrixD for viewbox + (sp_root_show): Implement, apply viewBox + (sp_root_bbox): Ditto + (sp_root_print): Ditto + + * src/sp-item.c (sp_item_i2doc_affine): Apply viewBox + +Tue Sep 17 13:50:40 2002 Mitsuru Oka <oka326@parkcity.ne.jp> + + * src/dialogs/stroke-style.c: A few fix from my office. + +Mon Sep 16 21:31:33 2002 Mitsuru Oka <oka326@parkcity.ne.jp> + + * src/display/*: Really done. + + * src/*: Half done, but partially adhock. + +Mon Sep 16 14:22:10 2002 Mitsuru Oka <oka326@parkcity.ne.jp> + + * Start migration to GTK+2 environment. + + * Makefile.am, configure.in, acconfig.h: Use pkgconfig, GLib2, + Pango, GTK+2, GNOME2, etc. + + * src/dialogs/*: Done. + + * src/display/*: Done. + + * src/helper/*: Done. + + * src/svg/*: Done. + + * src/widgets/*: Done. + + * src/xml/*: Done. + + * src/*: Partialy done. + +2002-09-16 Lauris Kaplinski <lauris@kaplinski.com> + + * src/helper/png-write.c (sp_png_get_block_stripe): Helper + (sp_png_write_rgba): Use striped writer + (sp_png_write_rgba_striped): New method + + * src/dialogs/export.c (sp_export_get_rows): Renderer + (sp_export_do_export): Use striped exporter + + * src/file.c: Added <time.h> - Thanks to Masatake for finding it + +2002-09-15 Lauris Kaplinski <lauris@kaplinski.com> + + * src/display/nr-arena-image.c (nr_arena_image_render): Use libnr + transformed composition methods + + * src/libnr/nr-compose-transform.c: New file + + * src/libnr/nr-compose-transform.h: New file + +2002-09-15 Masatake YAMATO <jet@gyve.org> + + * src/toolbox.c (sp_maintoolbox_drag_data_received): made + it a static scoped function. + (sp_maintoolbox_create): Connected sp_maintoolbox_drag_data_received + to maintoolbox. (glade based version is obsoleted.) + + * src/toolbox.c (sp_maintoolbox_drag_data_received): removed + declaration. + +2002-09-15 Lauris Kaplinski <lauris@kaplinski.com> + + * src/file.c (sp_file_save_as): Added "file type" optionmenu + (sp_file_save_type_activate): Helper + (file_save_ok): Save plain SVG if needed + + * src/sp-namedview.c (sp_namedview_write): Implement + + * src/sp-text.c (sp_text_write): Implement + + * src/sp-use.c (sp_use_write): implement + + * src/sp-root.c (sp_root_write): Implement + + * src/sp-polyline.c (sp_polyline_write): Implement + + * src/sp-line.c (sp_line_write): Implement + + * src/sp-image.c (sp_image_write): Implement + + * src/sp-gradient.c (sp_stop_write): Implement + + * src/sp-defs.c (sp_defs_write): Implement + + * src/sp-clippath.c (sp_clippath_write): Implement + + * src/sp-anchor.c (sp_anchor_write): Implement + + * src/sp-polygon.c (sp_polygon_write): new ::write syntax + + * src/sp-spiral.c (sp_spiral_write): New ::write syntax + + * src/sp-star.c (sp_star_write): New ::write syntax + + * src/sp-ellipse.c (sp_ellipse_write): New ::write syntax + (sp_circle_write): Ditto + (sp_arc_write): Ditto + + * src/sp-rect.c (sp_rect_write): New ::write syntax + + * src/sp-shape.c (sp_shape_write): New ::write syntax + + * src/star-context.c (sp_star_finish): New ::write syntax + + * src/spiral-context.c (sp_spiral_finish): New ::write syntax + + * src/knotholder.c (knot_moved_handler): new ::write syntax + + * src/sp-object.c (sp_object_invoke_write): Renamed and enhanced + ::write_repr method, can now construct trees and write plain SVG + + * src/sp-item-group.c (sp_group_write): Implement + +2002-09-14 Lauris Kaplinski <lauris@kaplinski.com> + + * src/toolbox.c (sp_maintoolbox_menu_button_press): Construct main + menu here dynamically + + * src/main.c (sp_main_console): Hide documents for nongui, slideshow + + * src/interface.c (sp_ui_file_menu): Recent list + (sp_ui_main_menu): Ditto + (sp_menu_append_recent_documents): New helper + + * src/help.c (sp_help_about): Hide document from list + + * src/file.c (sp_file_open): New method + (sp_file_open_dialog): Renamed old sp_file_open + + * src/sodipodi.c (sodipodi_add_document): Emit "new_document" + (sodipodi_remove_document): Emit "destroy_document", update recent list + (sodipodi_segv_handler): Truncate filenames to sensible part + + * src/toolbox.c (sp_maintoolbox_open_one_file_with_check): Use sp_file_open + +2002-09-13 Lauris Kaplinski <lauris@kaplinski.com> + + * src/draw-context.c (sp_pencil_context_root_handler): Clear anchors + (spdc_finish_endpoint): Ditto + (spdc_pen_finish): Ditto + + * src/document.h: Moved uri/base/name to main structure + + * src/draw-context.c (sp_pen_context_finish): Call parent method, fixes + habit of crashing after using pen + +2002-09-12 Lauris Kaplinski <lauris@kaplinski.com> + + * src/libnr/*: Started composing sensible library at last + + * src/document.c: Fix DTD typo + + * src/main.c (sp_main_gui): Moved setting LC_NUMERIC after gnome init + (sp_main_console): Set LC_NUMERIC to "C" here too + +2002-09-11 Lauris Kaplinski <lauris@kaplinski.com> + + * configure.in: Version 0.26pre + + * src/display/Makefile.am (libspdisplay_a_SOURCES): Removed fill.[c,h] and stroke.[c,h] + +2002-09-11 Lauris Kaplinski <lauris@kaplinski.com> + + * src/node-context.c (sp_node_context_item_handler): Do not + select, if rubberband has been dragged + + * src/widgets/sp-menu-button.c (sp_menu_button_draw): Implement, + draw small indication arrow here + (sp_menu_button_expose): Ditto + + * src/helper/curve.c (sp_bpath_clean): New method + (sp_curve_new_from_bpath): Clean bpath, if not good + (sp_curve_new_from_static_bpath): Ditto + (sp_curve_new_from_foreign_bpath): Ditto + + * src/macros.h: Some new macros + + * src/sp-object.c (sp_object_modified): Oops! Replaced '&&' with '&', + this fixed super-slow rendering during drag bug + +2002-09-10 Lauris Kaplinski <lauris@kaplinski.com> + + * src/selection-chemistry.c (sp_group_cleanup): Helper + (sp_edit_cleanup): New method + + * src/path-chemistry.c (sp_path_cleanup): New method + + * src/draw-context.c (sp_draw_context_finish): Implement + + * src/seltrans.c (sp_sel_trans_ungrab): Do not set identity + + * src/sp-item-transform.c: Do not set identity transform + + * src/sp-text.c (sp_text_write_transform): Do not write identity + + * src/sp-rect.c (sp_rect_write_transform): Do not write identity + + * src/xml/repr.c (sp_repr_remove_listener_by_data): Oops, removed excess step + + * src/sp-shape.c (sp_shape_build): Force style rewrite for old versions + + * src/view.c (sp_view_widget_view_destroy): handler + (sp_view_widget_set_view): Connect "destroy" + + * src/main.c (sp_do_export_png): Move exporting code here, implement + --export-width, --export-height, --export-backround arguments + + * src/helper/nr-plain-stuff.c (nr_render_r8g8b8a8_r8g8b8a8_alpha): Implement + using internal composer + + * src/sp-item.c (sp_item_paint): Render buffer instead of copy + +2002-09-09 Masatake YAMATO <jet@gyve.org> + + * src/sp-image.c (autotrace_dialog): Used + gtk_signal_connect_object_while_alive and + gtk_signal_connect_object instead of gtk_signal_connect_while_alive + and gtk_signal_connect. + (object_destroyed): Removed. + (load_trace_result): ask the user whehter loading or net. + + * configure.in (AM_PATH_FRONTLINE): Check the version of frontline(>= 0.5.1). + +2002-09-09 Zbigniew Chyla <cyba@gnome.pl> + + * src/draw-context.c, src/dyna-draw-context.c, src/select-context.c, + src/spiral-context.c, src/star-context.c, + src/dialogs/tool-attributes.c, src/dialogs/tool-options.c, + src/dialogs/xml-tree.c: Added <config.h> + +2002-09-09 Lauris Kaplinski <lauris@kaplinski.com> + + * src/gradient-chemistry.c (sp_gradient_ensure_private_normalized): Normalize + if flag is set, but hrefcount > 1 + (sp_item_force_fill_lineargradient_vector): Check for hrefcount + (sp_item_force_stroke_lineargradient_vector): Ditto + + * src/interface.c: Added <config.h> + + * glade/toolbox.glade: Fixed non-ASCII character + +2002-09-08 Lauris Kaplinski <lauris@kaplinski.com> + + * src/dialogs/export.c (sp_export_do_export): Fixed affine + + * src/main.c (sp_main_console): Fixed affine + + * src/toolbox.c (sp_maintoolbox_create): Construct main window by hand + + * src/interface.c (sp_ui_main_menu): New method + + * src/help.c (sp_help_about): Use document width and height + + * src/svg-view.c (sp_svg_view_rescale): Use pixel coords + (sp_svg_view_widget_size_request): Ditto + + * src/spiral-context.c (sp_spiral_context_config_widget): Implement + (sp_spiral_context_setup): Ditto + (sp_spiral_context_set): Ditto + + * src/star-context.c (sp_star_context_config_widget): Implement + + * src/desktop.c (sp_desktop_new): Use repr key for initial select context + + * src/select-context.c (sp_select_context_config_widget): Implement + (sp_select_context_transform_toggled): Helper + (sp_select_context_show_toggled): Ditto + + * src/display/nr-arena-shape.c (nr_arena_shape_update): Do not stroke, + if width < 0.125 + + * src/display/nr-arena-glyphs.c (nr_arena_glyphs_group_update): Use paintbox + (nr_arena_glyphs_group_set_paintbox): New method + (nr_arena_glyphs_update): Do not stroke if width < 0.125 + (nr_arena_glyphs_render): Do not render here + (nr_arena_glyphs_fill_mask): New helper + (nr_arena_glyphs_stroke_mask): Ditto + (nr_arena_glyphs_group_update): Create painters here + (nr_arena_glyphs_group_render): Render here + + * src/dialogs/tool-attributes.c (sp_tool_attributes_dialog_setup): Added + SPSelectContext + + * src/dialogs/stroke-style.c (sp_stroke_style_paint_update): Use new gradient + position widget logic + (sp_stroke_style_paint_dragged): Ditto + (sp_stroke_style_paint_changed): Ditto + + * src/dialogs/fill-style.c (sp_fill_style_widget_update): Use new gradient + position widget logic + (sp_fill_style_widget_paint_dragged): Ditto + (sp_fill_style_widget_paint_changed): Ditto + + * src/sp-shape.c (sp_shape_show): Calculate and set paintbox + (sp_shape_modified): Ditto + + * src/sp-gradient.c (sp_lineargradient_from_position): New method + (sp_lineargradient_to_position): Ditto + + * src/sp-chars.c (sp_chars_print_bpath): Implement via nr plain buffers + (sp_chars_set_paintbox): New method + + * src/seltrans.c (sp_sel_trans_shutdown): Destroy handles and canvasitems + + * src/seltrans.h: Added modifieable parameters + + * src/selection.c (sp_selection_bbox_document): New method + + * src/select-context.c (sp_select_context_set): Implement this + + * src/arc-context.c (sp_arc_finish): Oops, set sodipodi namespace + +2002-09-07 Lauris Kaplinski <lauris@kaplinski.com> + + * src/style.c (sp_length_differ): Oops, if units differ check value + + * src/sp-paint-server.h: painter contructor signature change + + * src/display/nr-arena-shape.c: Remove group stuff + (nr_arena_shape_set_paintbox): New method + + * src/display/nr-arena-shape.h: Remove group stuff + + * src/sp-object.c (sp_object_get_style_property): read presentation attr + + * src/sp-chars.c (sp_chars_style_modified): Use nr_arena_glyphs_group + (sp_chars_show): Ditto + (sp_chars_clear): Ditto + (sp_chars_add_element): Ditto + + * src/sp-shape.c (sp_shape_modified): Set paintbox + (sp_shape_style_modified): Use single nr_arena_shape + (sp_shape_show): Ditto + (sp_shape_remove_comp): Ditto + (sp_shape_add_comp): Ditto + + * src/macros.h: Add total silencing + + * src/sp-gradient.c (sp_lineargradient_painter_new): Implement userSpaceOnUse + except percentages (still not clear, what to do with those), but do + bbox correctly + +2002-09-06 Lauris Kaplinski <lauris@kaplinski.com> + + * src/dialogs/text-edit.c (sp_text_edit_dialog_update_object): Generic method + (sp_text_edit_dialog_set_default): New method + (sp_text_edit_dialog_read_selection): Read defaults if no text + (sp_text_edit_dialog_text_changed): Update default button + (sp_text_edit_dialog_font_changed): Ditto + (sp_text_edit_dialog_any_toggled): Ditto + (sp_ted_get_selected_text_item): Helper + + * src/dialogs/tool-options.c (sp_tool_options_dialog_setup): Implement + using sp_event_context_config_widget + + * src/event-context.h: Added ::config_widget virtual method + + * src/event-context.c (sp_event_context_config_widget): New method + + * src/dyna-draw-context.c (sp_dyna_draw_context_config_widget): new method + +2002-09-05 Lauris Kaplinski <lauris@kaplinski.com> + + * src/dialogs/stroke-style.c (sp_stroke_style_paint_construct): Handler + (sp_stroke_style_paint_attr_changed): Ditto + (sp_stroke_style_repr_get_style): Helper + (sp_stroke_style_paint_update_repr): For SPRepr associated styles + (sp_stroke_style_paint_changed): Write bare repr if needed + (sp_stroke_style_line_construct): Handler + (sp_stroke_style_line_attr_changed): Ditto + (sp_stroke_style_line_update_repr): Alternate parser + (sp_stroke_style_width_changed): Write repr if needed + (sp_stroke_style_any_toggled): Ditto + + * src/dialogs/object-properties.c (sp_object_properties_dialog): build + optionmenu for choosing between selection/tools + + * src/dialogs/fill-style.c (sp_fill_style_widget_new): Attach attr_changed + (sp_fill_style_repr_get_style): Helper + (sp_fill_style_widget_update_repr): Repr-associated version updater + (sp_fill_style_widget_paint_changed): Write repr instead of item list if needed + + * src/widgets/sp-widget.c (spw_repr_attr_changed): Repr callback + (sp_widget_new_global): Build from sodipodi + (sp_widget_new_repr): Build from repr + (sp_widget_construct_global): Constructor + (sp_widget_construct_repr): Ditto + + * src/style.c (sp_style_new): New method + (sp_style_read): Move evrything here + (sp_style_read_from_object): Frontend + (sp_style_read_from_repr): Ditto + +2002-09-04 Lauris Kaplinski <lauris@kaplinski.com> + + * src/sp-path.c (sp_path_build): Update SODIPODI-PATH-NODE-TYPES attribute + +2002-09-03 Lauris Kaplinski <lauris@kaplinski.com> + + * src/sp-text.c (sp_text_set_shape): Oooooooops, use MAX for bbox other corner + + * src/document.c (sp_document_new): Set docname attribute after build + + * src/sp-text.c (sp_text_find_version): Helper + (sp_text_build): Build tspans etc. if 0.0 < version < 0.25 + + * src/sp-ellipse.c (sp_arc_find_version): Helper + (sp_arc_build): Per-version attributes + (sp_arc_read_attr): Ditto + + * src/document.c (sp_document_new): Delay namespaces etc. to determine version + (sp_document_new_from_mem): Ditto + + * src/document.h: Bring some members here + +2002-09-02 Lauris Kaplinski <lauris@kaplinski.com> + + * src/dialogs/stroke-style.c (sp_stroke_style_line_update): Make insensitive, if not stroked + + * src/sp-rect.c (sp_rect_write_transform): Adjust stroke width, if scale changes + + * src/sp-text.c: Port to SPSVGUnits + + * src/sp-root.c: Port to SPSVGLength, use pixels as basic units from now on + + * src/sp-rect.c: Port to SPSVGLength + + * src/sp-image.c: Port to SPSVGLength + + * src/sp-gradient.c: Port to SPSVGLength + + * src/sp-ellipse.c: Port to SPSVGLength + + * src/file.c (sp_do_file_print_to_printer): Fix px/pt ratio + (sp_do_file_print_preview): Ditto + + * src/document.c (sp_document_width): Fix px/pt ratio + (sp_document_height): Ditto + (sp_document_new): Add sodipodi:version + (sp_document_new_from_mem): Ditto + + * src/desktop.c (sp_desktop_init): Fix px/pt ratio in doc2dt matrix + + * src/svg/svg-length.c (sp_svg_length_read): New method + (sp_svg_length_read_lff): Ditto + (sp_svg_length_unset): Ditto + + * src/svg/svg-types.h: New file + + * src/dialogs/Makefile.am (libspdialogs_a_SOURCES): Added tool-options.[c,h] + +2002-08-30 Lauris Kaplinski <lauris@kaplinski.com> + + * src/sp-text.c (sp_text_set_shape): Do layouting here, so we can handle blocks + + * src/dialogs/text-edit.c (sp_text_edit_dialog): Layout radiobuttons + (sp_text_edit_dialog_apply): Do layout + (sp_text_edit_dialog_read_selection): Ditto + + * src/sp-text.c (sp_font_get_glyph_bbox): New helper + (sp_font_get_glyph_advance): Ditto + (sp_font_get_glyph_bbox_lr2tb): Ditto + (sp_string_calculate_dimensions): Do vertical dimension correctly + (sp_string_set_shape): Ditto + +2002-08-29 Lauris Kaplinski <lauris@kaplinski.com> + + * src/sp-text.c (sp_string_calculate_dimensions): New method + + * configure.in: Rewind required gnome-print version to 0.29 + + * src/sp-object.h: Added viewport and user flags + + * src/style.c: Added functional 'text-anchor' property + + * src/style.h: Added functional 'text-anchor' property + + * src/svg/svg-color.c (sp_svg_read_color): Read rgb(r,g,b) variants + + * src/style.c: Created new IEnum type with immediate and computed members, + ported font-style, font-variant, font-weight, font-stretch to it + + * src/sp-text.c (sp_string_set_shape): Use computed 'font-style' value + + * glade/Makefile.am (glade_DATA): Removed text-dialog.glade + + * src/dialogs/text-edit.c: Get rid of glade + +2002-08-28 Lauris Kaplinski <lauris@kaplinski.com> + + * src/display/canvas-arena.c: Ref active item, so it does not disappear + + * src/style.c: Implement SPIFontSize and various helpers for it + + * src/sp-text.c: New font size type + + * src/sp-shape.c: 24-bit opacity scale + + * src/sp-item.c (sp_item_read_attr): Reread style for font-size + + * src/sp-image.c: 24-bit opacity scale + + * src/sp-chars.c: 24-bit opacity scale + + * src/gradient-chemistry.c: 24-bit opacity scale + + * src/file.c (sp_do_file_print_preview): Ensure up-to-date + (sp_do_file_print_to_printer): Ditto + +2002-08-27 Lauris Kaplinski <lauris@kaplinski.com> + + * src/dialogs/export.c (sp_export_do_export): Fix affine (one more time) + + * src/sp-item.c (sp_item_paint): Ensure document is up-to-date + + * src/sp-chars.c (sp_chars_print_bpath): Use new transformed bpath bbox + (sp_chars_bbox): Ditto + + * src/sp-path.c (sp_path_bbox): Use new transformed bpath bbox + + * src/helper/art-utils.c (sp_bpath_matrix_d_bbox_d_union): New method + (sp_bpath_segment_bbox_d): Helper + +2002-08-26 Lauris Kaplinski <lauris@kaplinski.com> + + * src/dialogs/text-edit.c (sp_text_dialog_apply): Oops, set size, not some crap here + + * src/sp-chars.c (sp_chars_do_print): New direct method + (sp_chars_print_bpath): Helper + + * src/gradient-chemistry.c (sp_item_repr_set_style_gradient): Set recursive + +2002-08-25 Lauris Kaplinski <lauris@kaplinski.com> + + * src/text-context.c (sp_text_context_finalize): Do not use desktop here + (sp_text_context_finish): Implement, release desktop stuff here + + * src/sp-text.c (sp_text_normalized_bpath): New method + (sp_text_print): Implement, still needs SPChars method + + * src/sp-chars.c (sp_chars_normalized_bpath): New method + + * src/path-chemistry.c (sp_selected_path_to_curves): Convert the new text object + + * src/interface.c (sp_ui_file_menu): Use helpers, the right export dialog + + * src/draw-context.c (sp_pen_context_finish): Flush object + (sp_pen_context_root_handler): Added 'BackSpace', should work OK now + + * src/event-context.c (sp_event_context_finish): New method and virtual method + + * src/desktop.c (sp_desktop_set_event_context): Finish eventcontext + + * src/helper/curve.c (sp_curve_backspace): New method + +2002-08-24 Lauris Kaplinski <lauris@kaplinski.com> + + * src/helper/curve.c (sp_curve_append): Handle open/closed end and start + + * src/preferences-skeleton.h: Added pen tool, made AI style default + + * src/draw-context.c (sp_draw_context_setup): Set attach + (sp_draw_context_root_handler): React to '+' key + (spdc_set_attach): Set/clear append mode + (spdc_attach_selection): Renamed + (spdc_detach_selection): New method + (spdc_reset_white): Only need white, not all colors + (sp_pencil_context_root_handler): Destroy green anchor on release + (sp_pen_context_setup): Handle "mode" attribute + (sp_pen_context_set): Ditto + (sp_pen_context_root_handler): Has now AI style (default) and click-click modes + (spdc_pen_set_ctrl): Handle modes + (spdc_pen_finish): New method + +2002-08-23 Lauris Kaplinski <lauris@kaplinski.com> + + * src/dialogs/sp-attribute-widget.h: It can now be attached to mere SPRepr too + + * src/dialogs/sp-attribute-widget.c (sp_attribute_widget_new_repr): New constructor + (sp_attribute_widget_set_repr): New method + (sp_attribute_table_new_repr): New constructor + (sp_attribute_table_set_repr): New method + + * src/star-context.c (sp_star_context_set): Attribute reader + (sp_star_context_setup): parse attributes + + * src/marshal.c (sp_marshal_NONE__STRING_BOOL): New method + + * src/interface.c (sp_ui_dialog_menu): Tool attributes menu + + * src/event-broker.c: Added event context node location + + * src/dyna-draw-context.c (sp_dyna_draw_context_set): Attribute reader + (sp_dyna_draw_context_setup): Parse attributes + + * src/draw-context.h: Added selection member + + * src/view.c (sp_view_set_position): Frontend to virtual method + (sp_view_set_status): Ditto + + * src/view.h: Added virtual methods for marking status and position + + * src/desktop.c (sp_desktop_widget_view_status_set): Moved status to + parent container, where it belongs + (sp_desktop_widget_view_position_set): Same for position + (sp_desktop_widget_new): Listen status and position signals + + * src/dialogs/tool-attributes.c: New file + + * src/dialogs/tool-attributes.h: New file + +2002-08-20 Lauris Kaplinski <lauris@kaplinski.com> + + * src/dyna-draw-context.c: Removed control knot, as we do not attach to anything + + * src/xml/repr.c (sp_repr_unref): Implemented launching destroy listener + + * src/xml/repr-private.h: Added destroy listener + +2002-08-19 Lauris Kaplinski <lauris@kaplinski.com> + + * src/sodipodi.c (sodipodi_segv_handler): Do better names and inform user about these + + * src/selection-chemistry.c (sp_item_list_common_parent_group): Helper + (sp_selection_raise): Made it to work with all item combinations + (sp_selection_lower): Ditto, do not lower under non-items + + * src/sp-item-group.c (sp_group_order_changed): Fix item order calculation + +2002-08-18 Lauris Kaplinski <lauris@kaplinski.com> + + * src/document-undo.c (sp_document_order_changed): Set correct action type + +2002-08-17 Lauris Kaplinski <lauris@kaplinski.com> + + * src/selection-chemistry.c (sp_selection_ungroup): Use method from item group + + * src/sp-item-group.c (sp_item_group_ungroup): Preserve order and styles + + * src/style.c (sp_style_read_from_object): Synchronized with new style structure + (sp_style_merge_property): Ditto + (sp_style_merge_from_object_parent): Ditto + (sp_style_merge_ipaint): Renamed + (sp_style_write_string): New write semantics + (sp_style_write_difference): New method + (sp_text_style_write): New write semantics + (sp_style_read_ifloat): Rename + (sp_style_read_iscale30): Ditto + (sp_style_read_ienum): Ditto + (sp_style_read_istring): Ditto + (sp_style_read_ipaint): Ditto + (sp_style_write_ifloat): Signature, semantics and name change + (sp_style_write_iscale30): Ditto + (sp_style_write_ienum): Ditto + (sp_style_write_istring): Ditto + (sp_style_write_ipaint): Ditto + (sp_paint_differ): Helper + + * src/style.h: Renamed inherited types, changed miterlimit to ifloat + + * src/color.c (sp_color_is_equal): New method + + * src/style.c (sp_style_merge_from_style_string): Accept (although warn) + properties without end marker + + * src/dialogs/export.c (sp_export_do_export): Use correct transformation + + * src/main.c: Added command-line export functionality + (main): Cleanup + (sp_main_gui): Broke GUI-specific stuff here + (sp_main_console): Same for console mode, implement export, use current dor for print + +2002-08-16 Lauris Kaplinski <lauris@kaplinski.com> + + * src/toolbox.c (sp_maintoolbox_create): Moved draw toolbox to separate method + (sp_toolbox_draw_set_object): Callback + (sp_toolbox_draw_create): New method, create MenuButtons + (sp_update_draw_toolbox): Use MenuButtons + + * src/event-broker.c: Added pen context, use pencil and pen instead of draw + + * src/draw-context.c: Break draw context into parent, pencil and pen + + * src/draw-context.h: Ditto + + * src/widgets/sp-menu-button.h: New file + + * src/widgets/sp-menu-button.c: New file, implement something similar to + GtkOptionmenu, but with some sodipodi-specific sugar + + * glade/draw_pen.xpm: New file + + * src/draw-context.c (sp_draw_context_finalize): Destroy pen controls + (sp_draw_context_setup): Setup pen controls + (sp_draw_context_root_handler): Do pen stuff + (spdc_pen_set_point): New helper + (spdc_pen_set_ctrl): Ditto + (spdc_pen_finish_segment): Ditto + + * src/helper/sp-ctrlline.c (sp_ctrlline_set_rgba32): New method + +2002-08-15 Lauris Kaplinski <lauris@kaplinski.com> + + * src/toolbox.c (sp_update_draw_toolbox): Freehand keeps undo/redo sensitive now + + * src/document.c (sp_document_ensure_up_to_date): New method + + * src/draw-context.c (sp_draw_context_setup): Read selection data + (sp_draw_context_root_handler): Use colors for freehand, place green anchor + (spdc_selection_changed): Use read_selection + (spdc_selection_modified): Ditto + (spdc_read_selection): New method + (spdc_add_freehand_point): Ditto + (spdc_concat_colors_and_flush): Check, whehter green anchor exist, do contiguous append + (fit_and_split): Use continious append + (sp_draw_anchor_destroy): Signature change + +2002-08-14 Lauris Kaplinski <lauris@kaplinski.com> + + * src/draw-context.c (sp_draw_context_destroy): Do not destroy start and end anchors + (sp_draw_context_selection_modified): Save white curves in desktop coordinates + (sp_draw_context_root_handler): Use state indicator, change addline modes on release + (spdc_concat_colors_and_flush): Use continuous append + (spdc_flush_white): Translate everything to item coordinates here + + * src/draw-context.h: Replace booleans with single state indicator + + * src/helper/curve.c (sp_curve_transform): New method + (sp_curve_append_continuous): New method + +2002-08-12 Lauris Kaplinski <lauris@kaplinski.com> + + * src/draw-context.c (spdc_finish_endpoint): Cleanup + (spdc_flush_white): Do concat, create object if needed, do red->white transform if needed + (spdc_clear_red_data): Helper + + * src/draw-context.h: Member rename + + * src/helper/curve.c (sp_curve_append): Append the whole curve, not just last segment + (sp_curve_concat): Set lengths etc. correctly, fixes draw crash + +2002-08-08 Lauris Kaplinski <lauris@kaplinski.com> + + * src/dialogs/text-edit.c (sp_text_dialog_apply): Why there were strdups here? + + * src/style.c (sp_style_read_from_object): Cleanup font-family and font-size + (sp_style_merge_property): Ditto + (sp_style_merge_from_object_parent): Ditto + (sp_text_style_write): Ditto + (sp_style_read_inherited_float): New helper + (sp_style_read_inherited_string): Ditto + (sp_style_write_inherited_float): Ditto + (sp_style_write_inherited_string): Ditto + + * src/sp-text.c (sp_text_set_repr_text_multiline): Set roles and line positions + +2002-08-07 Lauris Kaplinski <lauris@kaplinski.com> + + * src/sp-text.c (sp_text_read_attr): Request relayout + (sp_text_child_added): Ditto + (sp_text_remove_child): Ditto + (sp_text_modified): Check, whether relayout is needed + (sp_text_request_relayout): Helper + + * src/style.c (sp_style_merge_from_object_parent): Inherit font size (still wrong) + + * src/text-context.c (sp_text_context_root_handler): Allow control key + to be passed, send nonbreaking space for Ctrl+Space + + * src/sp-text.c (sp_string_set_shape): Try to collect spaces across item boundaries + (sp_tspan_set_shape): Ditto + (sp_text_set_shape): Ditto + +2002-08-05 Lauris Kaplinski <lauris@kaplinski.com> + + * src/text-context.c (sp_text_context_root_handler): Use sp_text_append + + * src/sp-text.c (sp_text_append): New method + +2002-07-31 Lauris Kaplinski <lauris@kaplinski.com> + + * src/text-context.c (sp_text_context_finalize): Use it instead of ::destroy + (sp_text_context_setup): Create cursor + (sp_text_context_root_handler): Show cursor + (sp_text_context_selection_changed): Update cursor + (sp_text_context_timeout): Blink handler + + * src/text-context.h: Added cursor + +2002-07-30 Lauris Kaplinski <lauris@kaplinski.com> + + * src/Makefile.am (sodipodi_SOURCES): Added macros.h + + * src/sp-text.c (sp_text_write_transform): Do multiline transforming + the right way + + * src/macros.h: New file for useful macros + +2002-07-29 Lauris Kaplinski <lauris@kaplinski.com> + + * src/sp-text.c (sp_tspan_build): Get attributes at right place, read role as well + (sp_tspan_read_attr): Parse "sodipodi:role" attribute + (sp_text_append_line): New method + + * src/sp-text.h: Specify role for <tspan> element + +2002-07-26 Lauris Kaplinski <lauris@kaplinski.com> + + * src/sp-text.c (sp_string_set_shape): Changed signature, pass layout and currentpoint + (sp_tspan_set_shape): New method + (sp_text_build): Use normal order, as shape will be set asynchronously + (sp_text_read_attr): Request update everywhere + (sp_text_child_added): Fix bug, now keep old children in list + (sp_text_set_shape): New method, nothing interesting yet + + * src/text-context.c (sp_text_context_selection_changed): Set active object + to NULL, if nothing selected + +2002-07-24 Lauris Kaplinski <lauris@kaplinski.com> + + * src/sp-object.c (sp_object_modified): Merge style with parent if needed, + moved style_modified after signal + + * src/sp-text.c (sp_tspan_modified): Include style flag in cascade + (sp_text_modified): Ditto + (sp_string_modified): Re-enable it (although this is probably not correct) + + * src/style.c (sp_style_merge_from_object_parent): Merge writing mode + + * src/sp-item-group.c (sp_group_modified): Include style flag in cascade + + * src/sp-gradient.c (sp_gradient_modified): Include style flag in cascade + +2002-07-22 Lauris Kaplinski <lauris@kaplinski.com> + + * src/style.c (sp_style_new_from_object): Renamed sp_style_new + (sp_style_read_from_object): Use SP_SCALE30 for opacity, new paint structure + (sp_style_merge_property): Ditto + (sp_style_merge_from_object_parent): Renamed sp_style_merge_from_object, + read only from immediate parent (which should have merged from ancestors itself) + (sp_style_write_string): Use SP_SCALE30 for opacity, new paint structure + (sp_style_clear): Ditto + (sp_style_set_opacity): Ditto + (sp_style_read_inherited_scale30): New method + (sp_style_write_inherited_scale30): Ditto + (sp_style_read_inherited_paint): Renamed, parse "inherit" value + (sp_style_write_inherited_paint): Ditto, write it + (sp_style_merge_inherited_paint): Do hunref here + (sp_style_set_fill_color_rgba): Do hunref instead of gtk_object_unref, new structure + (sp_style_set_fill_color_cmyka): Ditto + (sp_style_set_stroke_color_rgba): Ditto + (sp_style_set_stroke_color_cmyka): Ditto + (sp_style_read_color_cmyk): Helper method here + (sp_style_merge_from_style_string): Renamed method + + * src/style.h: Created new 30-bit scaled value type, used for opacity + Renamed SPPaint to SPInheritedPaint + +Sat Jul 13 19:47:16 2002 Davide Puricelli <evo@debian.org> + + * po/ja.po: Updated, thanks Junichi Uekawa <dancer@netfort.gr.jp> + +Sat Jul 13 05:52:15 2002 Mitsuru Oka <oka326@parkcity.ne.jp> + + * src/sp-item-group.c (sp_group_bbox): Fixed group selection bug - + thanks to Ted Gould and his bug report. + +2002-05-20 Lauris Kaplinski <lauris@ximian.com> + + * src/xml/repr-io.c (sp_repr_svg_read_node): Add namespaces back - + thanks to Pawel + + * src/dialogs/xml-tree.c: Complete refactoring by Pawel Palucha + + * src/document.c (sp_document_lookup_id): Check values + +2002-04-21 Masatake YAMATO <jet@gyve.org> + + * src/toolbox.c (sp_maintoolbox_open_files): Use + gnome_uri_list_extract_filenames. + + * src/interface.c (sp_ui_import_files): Ditto. + +2002-04-19 Lauris Kaplinski <lauris@ximian.com> + + * src/text-context.c (sp_text_context_root_handler): Port to new + text object (incomplete) + (sp_text_context_selection_changed): Ditto + + * src/sp-text.c: Lot of new stuff, shows something on screen at last + + * src/sp-object.c (sp_object_modified): Do not allow reentrancy + - think SPText will like it + + * src/sp-item.c: Removed sp_item_update and virtual method + + * src/sp-item-group.c: Removed ::update method + +2002-04-17 Lauris Kaplinski <lauris@ximian.com> + + * src/sp-rect.c (sp_rect_rx_set): Make argument const, kill warning + (sp_rect_ry_set): Ditto + +2002-04-12 Lauris Kaplinski <lauris@ximian.com> + + * src/sp-text.h: Broke into SPText, SPTSpan and SPString objects + + * src/sp-text.c (sp_text_build): Build <tspan> and TEXT elements + + * src/forward.h: Moved SPText and SPTSpan here + +2002-04-08 Lauris Kaplinski <lauris@ximian.com> + + * src/sp-item.h: Changed ::bbox signature + + * src/sp-item.c (sp_item_invoke_bbox): New generic method + (sp_item_bbox_desktop): renamed old method + + * src/display/nr-arena-glyphs.c: Ditto + + * src/display/nr-arena-glyphs.h: New file + + * src/sp-chars.c (sp_chars_get_type): Change parent class + (sp_chars_class_init): Ditto + (sp_chars_destroy): New elements structure + (sp_chars_style_modified): New virtual method + (sp_chars_bbox): Ditto + (sp_chars_show): Ditto + (sp_chars_print): Ditto (not implemented) + (sp_chars_clear): New structure + (sp_chars_add_element): Ditto + + * src/sp-chars.h: Derive directly from item instead of shape + + * src/dialogs/align.c (sp_quick_align_arrange): New bbox logic + + * src/dialogs/export.c (sp_export_drawing): New bbox logic + +Sun Apr 7 01:37:29 2002 Mitsuru Oka <oka326@parkcity.ne.jp> + + * src/style.c: (sp_style_read_from_object): Fixed to work stroke-cmyk. + + * src/sp-item.c: (sp_item_read_attr): Ditto + +2002-04-06 Lauris Kaplinski <lauris@ximian.com> + + * src/xml/repr-io.c (sp_repr_read_file): Use new signature + (sp_repr_read_mem): Ditto + (sp_repr_qualified_name): New method + (sp_repr_svg_read_node): Signature change, create text nodes + + * src/xml/repr-util.c (sp_xml_document_createTextNode): New method + (sp_xml_document_createElement): Ditto + (sp_xml_document_createElementNS): Ditto + (sp_xml_node_get_Document): Ditto + (sp_xml_element_setAttributeNS): Ditto + + * src/xml/repr.c (sp_repr_new_from_code): Set type + + * src/svg/svg-length.c (sp_svg_read_number_f): New method with right signature + (sp_svg_read_number_d): Ditto + + * src/style.c (sp_style_privatize_text): New method + (sp_style_merge_property): Moved text properties here + + * src/sp-text.c (sp_text_init): No properties + (sp_text_build): No style anymore + (sp_text_style_modified): New virtual method + (sp_text_font_weight_to_gp): Helper + (sp_text_font_italic_to_gp): Ditto + (sp_text_set_shape): Use style properties, hackish support for vertical writing + + * src/sp-text.h: Removed properties from object, as these are handled by style + +2002-04-04 Lauris Kaplinski <lauris@ximian.com> + + * src/helper/canvas-bpath.c (sp_canvas_bpath_init): Can be filled now + (sp_canvas_bpath_destroy): Ditto + (sp_canvas_bpath_update): Ditto + (sp_canvas_bpath_render): Ditto + (sp_canvas_bpath_point): Ditto + (sp_canvas_bpath_set_fill): New method + (sp_canvas_bpath_set_stroke): Name change + + * src/display/nr-arena-shape.c (nr_arena_shape_render): No real_opacity + anymore + + * src/sp-shape.c (sp_shape_print): No real opacity anymore + + * src/dyna-draw-context.c (sp_dyna_draw_context_setup): Port to + canvas bpath instead of canvas shape + (clear_current): Ditto + (fit_and_split_line): Ditto + (fit_and_split_calligraphics): Ditto + (draw_temporary_box): Ditto + + * src/draw-context.c (sp_draw_context_setup): Port to new canvas bpath + (fit_and_split): Ditto + + * src/dialogs/item-properties.c: Removed #ifdef 0 code + + * src/style.c (sp_style_new): Require object validity + (sp_style_merge_property): Moved actual code to new method + (sp_style_merge_from_string): Does not clear style anymore, thus name change + (sp_style_paint_server_modified): Use sp_object_request_modified + (sp_style_set_fill_color_rgba): Request modified + (sp_style_set_fill_color_cmyka): Ditto + (sp_style_set_stroke_color_rgba): Ditto + (sp_style_set_stroke_color_cmyka): Ditto + (sp_style_set_opacity): Ditto + (sp_style_property_index): New enumerated property codes + + * src/sp-shape.c (sp_shape_style_modified): Renamed method + + * src/sp-item.c (sp_item_read_attr): Use sp_object_request_modified + (sp_item_style_modified): Renamed method, otherwise same + + * src/sp-item-group.c (sp_group_class_init): No ::style_changed anymore + + * src/sp-object.c (sp_object_request_modified): Accept style modification + flag (but not alone) + (sp_object_modified): Ditto, invoke ::style_changed if needed + + * src/sp-object.h (SP_OBJECT_STYLE_MODIFIED_FLAG): New flag - we now + collect style modifications into single-step async apply too + +Sun Mar 31 19:09:25 2002 Mitsuru Oka <oka326@parkcity.ne.jp> + + * src/sp-rect.c (sp_rect_*_set): Fixed a little. + +2002-03-22 Davide Puricelli <evo@debian.org> + + * Updated debian/ directory, synced with Debian unstable. + +2002-03-18 Lauris Kaplinski <lauris@ximian.com> + + * configure.in: Disabled frontline check, until I find time + to make it to work without frontline too + +2002-03-18 Masatake YAMATO <jet@gyve.org, masata-y@maa.spacetown.ne.jp> + + * src/toolbox.h (sp_maintoolbox_drag_data_received): New + declaration. + + * src/toolbox.c (sp_maintoolbox_open_one_file) + (sp_maintoolbox_open_files, sp_maintoolbox_drag_data_received): + New functions. + (sp_maintoolbox_create): Invoked gtk_drag_dest_set + against ui. + (toolbox_drop_target_info, toolbox_drop_target_entries, + ENTRIES_SIZE, ntoolbox_drop_target_entries): New constants + and macros for DnD. + + * src/interface.c (sp_ui_import_one_file, sp_ui_import_files) + (sp_ui_drag_data_received): New functions. + (sp_create_window): sp_ui_drag_data_received is connected + to "drag_data_received" of ui. Invoked gtk_drag_dest_set + against ui. + (nui_drop_target_entries, ENTRIES_SIZE, ui_drop_target_entries, + ui_drop_target_info): New constants and macros for DnD. + + * glade/toolbox.glade: sp_maintoolbox_drag_data_received is + connected to drag_data_received of maintoolbox. + +2002-03-18 Masatake YAMATO <jet@gyve.org, masatake@maa.sst.ne.jp> + + * configure.in (ENABLE_AUTOTRACE): Check Frontline. + + * acconfig.h: Added ENABLE_AUTOTRACE. + + * src/sp-image.c: Added code that supports Frontline. + New codes are wrapped by ENABLE_AUTOTRACE. + +Tue Mar 19 02:30:40 2002 Mitsuru Oka <oka326@parkcity.ne.jp> + + * New SPRect rx, ry editing feature in node context. + + * src/sp-rect.c (sp_rect_rx_get): New method for KnotHolder + (sp_rect_rx_set): Ditto + (sp_rect_ry_get): Ditto + (sp_rect_ry_set): Ditto + (sp_rect_knot_holder): Ditto + (sp_rect_write_repr): New method + (sp_rect_glue_set_shape): Ditto + +2002-03-14 Stanislav Visnovsky <visnovsky@nenya.ms.mff.cuni.cz> + + * configure.in: Added "sk" to ALL_LINGUAS. + +Sun Mar 10 21:00:01 2002 Mitsuru Oka <oka326@parkcity.ne.jp> + + * src/document.c (sp_document_partial_items_in_box): + New method. Return list of items, that the parts of the item + containd in box. + + * select-context.h: Add button_press_shift attribute + + * select-context.c: (sp_select_context_root_handler): + New feature to select items which is partially contained in + rubberband box with shift key. + +Wed Mar 6 01:52:09 2002 Mitsuru Oka <oka326@parkcity.ne.jp> + + * Support open/closed arc feature. We can edit it on node edit. + + * src/sp-ellipse.c (sp_genericellipse_side): New method to + determine point is inside or outside. + (sp_arc_start_set): Add is_closed feature + (sp_arc_end_set): Ditto + + * src/sp-ellipse.h: Add SPArc::is_closed attribute + + * src/preferences-skeleton.h: Modified arc style + + * src/arc-context.c: Ditto + + +2002-03-05 Lauris Kaplinski <lauris@ximian.com> + + * src/display/nr-arena-shape.c (nr_arena_shape_pick): Use delta (tolerance) + + * src/display/canvas-arena.c (sp_canvas_arena_update): Use global delta (tolerance) + (sp_canvas_arena_point): Ditto + (sp_canvas_arena_event): Ditto + + * src/display/nr-arena-item.c (nr_arena_item_invoke_pick): Changed + virtual method signature + + * src/dialogs/display-settings.c (sp_display_dialog_cursor_tolerance_changed): Implement + (sp_display_dialog_new): Create pick tolerance spinbutton + + * src/view.c (sp_view_shutdown): New method and signal + (sp_view_request_redraw): New virtual method + + * src/sodipodi.c (sodipodi_refresh_display): Use sp_view_request_redraw + + * src/interface.c (sp_ui_delete): Use sp_view_shutdown + (sp_ui_menu_append_item): Helper + (sp_ui_file_menu): New method + (sp_ui_edit_menu): Ditto + (sp_ui_selection_menu): Ditto + (sp_ui_view_menu): Ditto + (sp_ui_event_context_menu): Ditto + (sp_ui_dialog_menu): Ditto + (sp_ui_generic_menu): Ditto + + * src/file.c (sp_file_exit): Use sodipodi_exit method + + * src/event-context.c (sp_event_root_menu_popup): Use sp_ui_generic_menu + + * src/desktop.c (sp_desktop_request_redraw): New virtual method implementation + (sp_desktop_widget_set_focus): Do that widget method instead + + * src/desktop-events.c (sp_dt_ruler_event): Do not use desktop->owner + + * src/Makefile.am (INCLUDES): -DSODIPODI_PIXMAPDIR + +Mon Mar 4 01:23:05 2002 Mitsuru Oka <oka326@parkcity.ne.jp> + + * src/sp-ellipse.c (sp_genericellipse_normalize): Fixed start and + end arg conditions. + (sp_arc_start_set): Added per pi/4 radian constraint with control key. + (sp_arc_end_set): Ditto + +Sun Mar 3 03:40:07 2002 Mitsuru Oka <oka326@parkcity.ne.jp> + + * Merged from ge-arc-branch + + * src/sp-ellipse.h (SPArc): New class + + * src/sp-ellipse.c (sp_arc_*): New methods + + * src/arc-context.c: New event context for SPArc. Mainly it is + renamed from ellipse-context.c. + So we should remove ellipse-context.c later. + + * src/arc-context.h: Ditto + + * glade/draw_arc.xpm: New pixmap file for draw arc tool. + Now, we does not need draw_ellipse.xpm. + + * src/pixmaps/cursor-arc.xpm: Ditto + +2002-02-25 Lauris Kaplinski <lauris@ximian.com> + + * src/helper/curve.c (sp_curve_append): Do not requite non-empty curves + + * src/draw-context.c (fit_and_split): Commetn out boundary checks + + * src/document.c (sp_document_idle_handler): Bring up uncommited undo + warning, if compiled with debug + (sp_action_print_pending_list): Debug method + (sp_document_warn_undo_stack): Ditto + + * src/document-private.h: Moved idel_id into base struct + +2002-02-23 Lauris Kaplinski <lauris@ximian.com> + + * src/helper/units.c (sp_points_get_units): New method + (sp_units_get_points): Ditto + + * src/dialogs/object-properties.c: Made layout dynamic + + * src/document-undo.c (sp_document_private_done): New static method + (sp_document_done): Just a wrapper + (sp_document_maybe_done): Implement the real thing + + * src/document-private.h: Moved document definition here + +2002-02-21 Lauris Kaplinski <lauris@ximian.com> + + * src/dialogs/stroke-style.c (sp_stroke_style_any_toggled): Handle + cap/join style changes + (sp_stroke_style_widget_new): Create cap/join togglebuttons + (sp_stroke_style_widget_update): Set cap/join selector activity + (sp_stroke_style_set_join_buttons): New method + (sp_stroke_style_set_cap_buttons): Ditto + +2002-02-19 Lauris Kaplinski <lauris@ximian.com> + + * src/dialogs/stroke-style.c: New file + + * src/dialogs/stroke-style.h: New file + + * src/helper/units.c (sp_distance_get_units): New method + (sp_distance_get_points): Ditto + + * src/helper/units.h: Moved SPDistance here + + * src/style.h: Moved SPDistance to units.h + + * src/display/nr-arena-shape.c (nr_arena_shape_render): Render gradient + strokes as well + + * src/dialogs/object-properties.c: Start rewriting to use dynamic + fill/stroke widgets instead of original glade dialog + + * src/dialogs/stroke-style.h: New file + + * src/dialogs/stroke-style.c: New file + + * src/gradient-chemistry.c (sp_style_change_property): Reimplement, + hopefully the correct way now + + * src/widgets/gradient-position.c (sp_gradient_position_update): Pre + build local renderer here + + * src/helper/nr-gradient.c (nr_lgradient_renderer_setup_r8g8b8a8): Do + not allocate renderer, allow using static ones too + (nr_lgradient_renderer_setup_r8g8b8): Ditto + + * src/widgets/paint-selector.c (sp_paint_selector_set_style_buttons): Do not + activate pattern and fractal fill buttons + +2002-02-18 Lauris Kaplinski <lauris@ximian.com> + + * src/widgets/paint-selector.c: Lot of rearrangements everywhere - + I am too tired to write all these down. Basically we have one frontend + megawidget SPPaintSelector, that interfaces to colors, gradient and more. + +2002-02-10 Lauris Kaplinski <lauris@ximian.com> + + * src/desktop.c (sp_desktop_widget_destroy): Removed stale signal + disconnect (no idea what it was originally for) + +2002-02-09 Lauris Kaplinski <lauris@ximian.com> + + * configure.in: Removed rbuf, frgba, new font checks and arena switch + + * src/sp-namedview.c (sp_namedview_setup_grid_item): Grid settings are + always in points, units are there just for user preference + (sp_namedview_read_attr): Ditto + + * src/desktop-snap.c (sp_desktop_horizontal_snap): Read snap distances + from new desktop members + (sp_desktop_vertical_snap): Ditto + (sp_desktop_vector_snap): Ditto + (sp_desktop_circular_snap): Ditto + + * src/desktop-handles.c (sp_desktop_canvas): Update to new desktop structure + + * src/sodipodi.c (sodipodi_activate_desktop_private): Default method + implementation to chain activation signal on desktop + (sodipodi_deactivate_desktop_private): Ditto + + * src/desktop.c (sp_desktop_new): Owner does not have document pointer + any more, so had to change signature here + (sp_desktop_widget_init): Moved activation signals to public constructor + (sp_dtw_desktop_activate): Activation signal handler + (sp_dtw_desktop_deactivate): Ditto + (sp_desktop_widget_new): Use desktop "activate" and "deactivate" signals + instead of sodipodi ones, signature change + (sp_desktop_class_init): Added "activate" and "deactivate" signals + + * src/dialogs/display-settings.c: Removed glade, made mostly dynamic + + * src/sodipodi.c (sodipodi_remove_desktop): Emit "destroy_desktop" if + destroyed one was not active too + (sodipodi_refresh_display): Convenience method + +2002-02-08 Lauris Kaplinski <lauris@ximian.com> + + * src/dialogs/document-properties.c: Do not use glade anymore, made + everything dynamic + + * src/helper/canvas-grid.c (sp_grid_hline): Use helpers from ctrlrect + (sp_grid_vline): Ditto + (sp_cgrid_render): Render real grid instead of dots + + * src/xml/repr-util.c (sp_repr_get_boolean): Saner conveninence method + (sp_repr_get_int): Ditto + (sp_repr_get_double): Ditto + (sp_repr_set_boolean): Ditto + (sp_repr_set_int): Ditto + (sp_repr_set_double): Ditto + + * src/svg/svg-length.c (sp_svg_read_length): Added meter + + * src/dialogs/sp-attribute-widget.c (sp_attribute_widget_changed): Kill warning + (sp_attribute_widget_set_object): Ditto + (sp_attribute_widget_object_modified): Ditto + (sp_attribute_table_set_object): Ditto + (sp_attribute_table_object_modified): Ditto + (sp_attribute_table_entry_changed): Ditto + + * src/dialogs/desktop-properties.c: Do not use glade anymore, made + everything dynamic + + * src/sp-namedview.c (sp_namedview_init): Do not init distances here, + as ::build invokes full reread anyways + (sp_namedview_read_attr): Use saner structure and read measured distances + (sp_namedview_setup_grid_item): Convert distances to points here + (sp_str_to_bool): Convenience stuff (should be moved to some central place) + (sp_nv_read_length): Ditto + (sp_nv_read_opacity): Ditto + + * src/sp-namedview.h: Use real units for distances, some cleanup + + * src/desktop-snap.c (sp_desktop_horizontal_snap): Ported to namedview + changed internals + (sp_desktop_vertical_snap): Ditto + (sp_desktop_vector_snap): Ditto + (sp_desktop_circular_snap): Ditto + +2002-02-04 Frank Felfe <innerspace@iname.com> + + * src/sp-item.c (sp_item_distance_to_svg_bbox): Fix compilation error + +2002-02-03 Lauris Kaplinski <lauris@ximian.com> + + * src/helper/units.c: Fix userspace/device confusion + + * src/sp-gradient.c (sp_stop_read_attr): Convert percentages to dimensionless + units + + * src/gradient-chemistry.c (sp_gradient_vector_release_references): New + method to prepare gradient vector for deletion + + * src/dialogs/gradient-vector.c (sp_gradient_vector_selector_init): Connect + button dialogs + (sp_gvs_rebuild_gui_full): Set selection to current active gradient + (sp_gvs_gradient_edit_clicked): From old gradient selector + (sp_gvs_gradient_add_clicked): Ditto + (sp_gvs_gradient_delete_clicked): Ditto + +2002-02-02 Kjartan Maraas <kmaraas@gnome.org> + + * glade/object_props.glade: Fix a typo. s/Mitter/Miter/ + +2002-01-27 Lauris Kaplinski <lauris@ximian.com> + + * src/bonobo/Makefile.am (INCLUDES): Remove excess -I + +2002-01-21 Lauris Kaplinski <lauris@ximian.com> + + * src/sp-item.c (sp_item_distance_to_svg_viewport): New method + (sp_item_distance_to_svg_bbox): Ditto + (sp_item_style_changed): Use generic distance conversion method + + * src/helper/units.c: New file, ported from libgnomeprint, we collect + all unit management into here + + * src/helper/units.h: New file + + * src/svg/svg-length.c (sp_svg_write_percentage): New unit logic + (sp_svg_read_length): Ditto + + * src/helper/unit-menu.c: Ported widget from libgnomeprint + + * src/helper/unit-menu.h: Ported widget from libgnomeprint + + * src/dialogs/text-edit.c (sp_text_read_selection): New unit logic + + * src/dialogs/object-properties.c (sp_object_properties_apply_stroke): New + unit logic + + * src/dialogs/gradient-selector.c (sp_gradient_widget_new): Use + SPGradientVectorSelector here + + * src/style.c (sp_style_read_from_string): New unit logic + (sp_style_write_string): Ditto + (sp_style_init): Ditto + + * src/sp-text.c (sp_text_read_attr): New unit logic + + * src/sp-star.c (sp_star_read_attr): New unit logic + + * src/sp-spiral.c (sp_spiral_read_attr): New unit logic + + * src/sp-shape-style.c (sp_stroke_read): New unit logic + + * src/sp-root.c (sp_root_read_attr): New unit logic + + * src/sp-rect.c (sp_rect_read_attr): New unit logic + + * src/sp-namedview.c (sp_namedview_read_attr): New unit logic + + * src/sp-item.c (sp_item_style_changed): New unit logic + + * src/sp-image.c (sp_image_read_attr): New unit logic + + * src/sp-ellipse.c (sp_circle_read_attr): New unit logic + + * src/dyna-draw-context.c (sp_dyna_draw_context_setup): New unit logic + (fit_and_split_line): Ditto + (fit_and_split_calligraphics): Ditto + + * src/desktop-events.c (sp_dt_simple_guide_dialog): Use new unit widget + (guide_dialog_apply): Ditto + +2002-01-13 Wang Jian <lark@linux.net.cn> + + * configure.in(ALL_LINGUAS): Added zh_CN for Simplifed Chinese. + +2002-01-05 Mitsuru Oka <oka326@parkcity.ne.jp> + + * src/helper/bezier-utils.c (BEZIER_DEBUG): inhibit debug messages. + +2002-01-04 Zbigniew Chyla <cyba@gnome.pl> + + * src/desktop.c (sp_desktop_widget_init, sp_desktop_widget_set_title, + sp_desktop_widget_shutdown): Marked strings for translation. + + * src/document.c (sp_document_new, sp_document_new_from_mem): Ditto. + +2002-01-01 Zbigniew Chyla <cyba@gnome.pl> + + * configure.in: Added "AC_PROG_INTLTOOL(0.11)" line. + + * Makefile.am: Use intltool. + + * GNOME_Sodipodi.oaf.in: New, copied from GNOME_Sodipodi.oafinfo. + + * sodipodi.desktop.in: New, generated from sodipodi.desktop. + + * GNOME_Sodipodi.oafinfo, sodipodi.desktop: Removed. + + * glade/Makefile.am (glade_DATA): Removed *.c. + + * glade/*.c: Removed. + + * .cvsignore: Added intltool-*, sodipodi.desktop, GNOME_Sodipodi.oaf. + + * src/bonobo/svg-doc-factory.c, src/desktop.c, src/dialogs/align.c, + src/dialogs/display-settings.c, src/dialogs/document-properties.c, + src/dialogs/fill-style.c, src/dialogs/gradient-selector.c, + src/dialogs/gradient-vector.c, src/dialogs/item-properties.c, + src/dialogs/object-attributes.c, src/dialogs/object-properties.c, + src/help.c, src/helper/unit-menu.c, src/main.c, src/sodipodi.c, + src/sp-anchor.c, src/sp-image.c, src/sp-item-group.c, src/sp-rect.c, + src/sp-shape.c, src/sp-spiral.c, src/sp-star.c, src/sp-text.c, + src/widgets/sp-color-selector.c: Added missing #include <config.h>. + +2001-12-30 Lauris Kaplinski <lauris@localhost.localdomain> + + * src/widgets/sp-color-selector.c (sp_color_selector_adjustment_changed): Set + updating flag here, so we get single "changed" signal whatever happens + + * src/sp-gradient.c (sp_gradient_repr_set_vector): Allow setting our + own vector too here + + * src/sp-object.h (SP_OBJECT_NEXT): New macro + + * src/gradient-chemistry.c (sp_gradient_ensure_vector_normalized): Should + work as intended now + (sp_gradient_ensure_private_normalized): Ditto + (sp_gradient_repr_set_link): Set NULL link too + +2001-12-30 Mitsuru Oka <oka326@parkcity.ne.jp> + + * src/sp-spiral.c src/sp-star.c: + Revert to previous cx, cy attribute implementation. + Because SVG standard shape introduce cx, cy, + so we coordinate to that policy. + + * src/sp-spiral.c (sp_spiral_get_polar): New function + (sp_spiral_is_invalid): New function to protect attributes + consistency. sp_spiral_read_attr use it. + +2001-12-29 Mitsuru Oka <oka326@parkcity.ne.jp> + + * src/knotholder.c src/knotholder.h + (sp_knot_holder_add_full): New method + + * src/sp-spiral.c: Removed cx, cy attribute, + so we use item matrix for that. + Fixed up debug code. + + * src/sp-star.c src/sp-star.h src/star-context.c: + Removed cx, cy attribute + +2001-12-29 Mitsuru Oka <oka326@parkcity.ne.jp> + + * src/knotholder.c (knot_moved_handler): + Lauris found a incorrect invert matrix bug. I just fixed it. + +2001-12-28 Simos Xenitellis <simos@hellug.gr> + + * configure.in: Added "el" (Greek) to ALL_LINGUAS. + +2001-12-28 Lauris Kaplinski <lauris@localhost.localdomain> + + * src/sp-gradient.c: Lot of changes due to class member rearrangement + (sp_gradient_repr_flatten_attributes): New method + (sp_gradient_repr_set_vector): Ditto + + * src/sp-gradient.h: Moved gradientUnits and gradientTransform to + base SPGradient class, added ::flatten_attributes virtual method + + * src/gradient-chemistry.c (sp_gradient_ensure_vector_normalized): Works + now for lonely gradients as well + + * src/desktop-events.c (guide_dialog_apply): Flush undo + (guide_dialog_delete): Ditto + (sp_dt_guide_event): Ditto + + * src/widgets/sp-color-selector.c: Added 'rrggbbaa' hex value entry, + use SPColor helpers instead of doing conversions here, added some + generic color methods and renamed/changed signature of old ones. + + * src/widgets/sp-color-slider.c (sp_color_slider_paint): Update arrow + the right way + + * src/helper/nr-plain-stuff.c (nr_render_rgba32_rgb): Use computed channels + instead of plain color ones + + * src/helper/nr-plain-stuff-gdk.c (nr_gdk_draw_rgba32_solid): New method + + * src/text-context.c (sp_text_context_setup): Some XIM handling + (sp_text_context_destroy): Ditto + (sp_text_context_root_handler): Ditto + + * src/sp-gradient.c: Killed gcc 3 warnings + + * src/draw-context.c: Started rewriting of drawing context, added 4-member + path cache (instead of 2 in old version), the goal is to make selection + continuation and pen tool + + * src/draw-context.h: New members in class + + * src/color.c (sp_color_get_colorspace_class): Broke colorspace descriptor + into class (process | spot) and type (rgb | cmyk), added new methods and + renamed old one accordingly + (sp_color_get_colorspace_type): Ditto + (sp_color_rgb_to_hsv_floatv): Convenience method + (sp_color_hsv_to_rgb_floatv): Ditto + (sp_color_rgb_to_cmyk_floatv): Ditto + (sp_color_cmyk_to_rgb_floatv): Ditto + + * src/color.h: New convenience macros and methods + + * configure.in (have_bonobo): Made --without-bonobo default + + * src/widgets/sp-color-preview.c: New file, implement simple + color preview object, a la the one in Gtk+ color selector + + * src/widgets/sp-color-preview.h: New file + +2001-12-21 Mitsuru Oka <oka326@parkcity.ne.jp> + + * src/sp-spiral.*, spiral-context.c + (sp_spiral_inner_*, sp_spiral_outer_*, sp_spiral_knot_holder): + Add SPKnotHolder codes + (sp_spiral_set_shape, sp_spiral_fit_and_draw): + Fixed some drawing bugs + + * src/dyna-draw-context.*, sp-shape.c, sp-star.c: + Clean up codes + +2001-12-15 Lauris Kaplinski <lauris@ximian.com> + + * src/helper/canvas-bpath.h: New file + + * src/helper/canvas-bpath.c: New file + + * src/helper/Makefile.am (libspchelp_a_SOURCES): Added + canvas-bpath.[c,h] + + * src/helper/curve.c (sp_curve_ref): Signature change + (sp_curve_unref): Ditto + + * src/display/Makefile.am (nr_sources): Removed stale files + + * src/helper/bezier-utils.c (sp_bezier_fit_cubic): Added argument + checks, signature change, cleanup + (sp_bezier_fit_cubic_r): Ditto + (sp_bezier_fit_cubic_full): Ditto + + * src/helper/bezier-utils.h: Changed fit method signatures + + * src/draw-context.c (fit_and_split): Use new sp_bezier_fit signature + + * src/dyna-draw-context.c (fit_and_split_line): Use new sp_bezier_fit + signature + (fit_and_split_caligraphics): Ditto + +2001-12-07 Lauris Kaplinski <lauris@ximian.com> + + * src/sodipodi.c (sodipodi_application_new): Catch SIGFPE and SIGILL as well + + * src/sp-gradient.c (sp_gradient_write_colors): Skip, if integer stop + values coincide (fixes div 0 bug with gradients) + +2001-11-25 Duarte Loreto <happyguy_pt@hotmail.com> + + * Added Alvaro Lopes <alvieboy@alvie.com> portuguese translation to configure.in (ALL_LINGUAS) + +01-11-19 Lauris Kaplinski <lauris@ximian.com> + + * src/preferences-skeleton.h: Removed '%' from opacity + +2001-11-12 Lauris Kaplinski <lauris@ximian.com> + + * src/display/canvas-arena.c (sp_canvas_arena_render): Try to fit + buffer, instead of just using 64x64 rectangles + + * src/sp-rect.c: Remove Gtk+ arguments + + * src/display/nr-arena-image.c (nr_arena_image_update): Request + rendering previous area + +2001-11-11 Lauris Kaplinski <lauris@ximian.com> + + * src/sp-rect.c (sp_rect_write_transform): Scale rx and ry + (sp_rect_menu): Implement + (sp_rect_rect_properties): Implement + + * src/dialogs/object-properties.c (sp_object_properties_apply_fill): Use + float value, not percentage + (sp_object_properties_apply_stroke): Ditto + + * src/file.c (file_save_ok): Update relative image references + + * src/sp-image.c (sp_image_destroy): Unregister resource + (sp_image_build): Register resource + + * src/sp-spiral.c (sp_spiral_menu): Implement + (sp_spiral_spiral_properties): Generic attributes dialog + +2001-11-10 Lauris Kaplinski <lauris@ximian.com> + + * src/sp-anchor.c (sp_anchor_menu): New method + (sp_anchor_link_properties): Ditto + (sp_anchor_link_follow): Ditto + (sp_anchor_link_remove): Ditto + + * src/sp-star.c (sp_star_menu): New method + (sp_star_star_properties): Ditto + + * src/sp-item.c (sp_item_create_link): New method + + * src/sp-item-group.c (sp_item_group_ungroup): Ungroup anchors too + + * src/forward.h: Added SPAnchor + + * src/dialogs/sp-attribute-widget.h: New file, implement generic + asynchronous attribute widget, and table of attribute widgets + + * src/dialogs/sp-attribute-widget.c: New file + + * src/dialogs/object-attributes.h: New file, implement generic + asynchronous object attribute dialog + + * src/dialogs/object-attributes.c: New file + + * src/display/Makefile.am (INCLUDES): Added SODIPODI_CFLAGS + + * src/sp-anchor.c: New file, implement SVG <a> element. Actual event + code is pure experimental and need some serious thinking. + + * src/sp-anchor.h: Ditto + + * src/svg-view.c (arena_handler): Forward arena events to SPEvents + + * src/sp-object-repr.c (sp_object_type_lookup): parse <a> as anchor + + * src/sp-item.h: Added ::event virtual method plus some test code + + * src/sp-item.c (sp_item_event): New method + + * src/desktop.c (sp_desktop_new): Moved drawing behind all other layers + (sp_desktop_document_resized): Resize page frame + + * src/helper/sodipodi-ctrlrect.h: More complex structure to represent + page frame as well + + * src/helper/sodipodi-ctrlrect.c (sp_ctrlrect_hline): New render method + (sp_ctrlrect_vline): Ditto + (sp_ctrlrect_area): Ditto + (sp_ctrlrect_render): Use more complex structure + (sp_ctrlrect_update): Ditto + (sp_ctrlrect_set_area): New method + (sp_ctrlrect_set_color): Ditto + (sp_ctrlrect_set_shadow): Ditto + +2001-11-09 Lauris Kaplinski <lauris@ximian.com> + + * src/display/nr-arena-image.c (nr_arena_image_update): Implemented + explicit geometry + (nr_arena_image_set_geometry): New method + + * src/sp-image.c: Implemented "x", "y", "width", "height" + (sp_image_read_attr): Ditto + (sp_image_bbox): Ditto + (sp_image_print): Ditto + (sp_image_show): Ditto + (sp_image_write_transform): Implement + + * src/file.c (file_import_ok): Try to load pixbuf and set + "width" and "height" attributes + + * src/desktop.c: Some cleanups of View/Widget structure + + * src/desktop.h: Ditto + + * glade/Makefile.am (images): Added about.svg + +2001-11-08 Lauris Kaplinski <lauris@ximian.com> + + * src/svg/svg-affine.c (sp_svg_write_affine): Write scale and + translate, if everything can be represented by these + + * src/sp-text.c (sp_text_write_transform): Implement + + * src/sp-rect.c (sp_rect_write_transform): Implement + + * src/sp-item.c (sp_item_write_transform): New class and virtual + method pair, to allow object to optimize representation (i.e. + rects can set x,y,width,height instead of just transformation + + * src/seltrans.c (sp_sel_trans_ungrab): Use sp_item_write_transform + + * src/selection-chemistry.c: Use sp_item_write_transform + + * src/help.c (sp_help_about): Set title string to "Sodipodi VERSION" + + * src/Makefile.am (INCLUDES): Define SODIPODI_VERSION + + * src/xml/repr-io.c (repr_write): Avoid newlines in content + + * src/view.c: Sorted out lot os signalling stuff + + * src/svg-view.c: Lot of work, basically works + + * src/sp-root.c (sp_root_modified): Call parent method as well + + * src/interface.c (sp_ui_new_view_preview): New method + (sp_create_window): Sort out editable/non-editable views + + * src/help.c (sp_help_about): Create about maunally (not much here yet) + + * src/desktop.c: Use ::document_resized virtual method + +2001-10-31 Lauris Kaplinski <lauris@ximian.com> + + * src/dialogs/text-edit.c (sp_text_read_selection): Use gal + utf8/editable methods + (sp_text_dialog_apply): Ditto + (sp_text_dialog_text_changed): Ditto + + * src/sp-text.c (sp_text_set_shape): Use correct utf8 methods + + * src/display/nr-arena-image.c (nr_arena_image_class_init): Use + correct parent class + +2001-10-31 Mitsuru Oka <oka326@parkcity.ne.jp> + + * src/knotholder.c: + Removed unnecessary ref/unref. + Added sp_object_invoke_write_repr() to reflect item changes to repr + + * src/sp-object.c: Added new virtual function SPObject::write_repr() + + * src/sp-object.h: Ditto + + * src/sp-shape.c (sp_shape_write_repr): Added + + * src/sp-star.c (sp_star_write_repr): Added. + Moved subclass of SPShape to SPPolygon + + * src/star-context.c: Ditto + +2001-10-30 Mitsuru Oka <oka326@parkcity.ne.jp> + + * src/knotholder.c: New file + We can manage plural SPKnot in one SPKnotHolder. + SPKnotHolder is created by SPItem::knot_holder virtual function. + Moving SPKnot is propageted to another SPKnot. + * src/knotholder.h: Ditto + + * src/node-context.c: Added SPKnotHolder + * src/node-context.h: Ditto + + * src/sp-item.c: Added knot_holder virtual function. + * src/sp-item.h: Ditto + + * src/sp-shape.c: Added set_shape virtual function. + It is used to build bpath from extra shape attributes. + + * src/sp-shape.h: Ditto + + * src/sp-star.c: Added knot_holder and set_shape implementations. + (sp_star_build_repr): Modified function name. + * src/sp-star.h: Ditto + + * src/sp-spiral.c: Added set_shape implementation. + (sp_spiral_build_repr): Modified function name. + * src/sp-spiral.h: Ditto + + * src/star-context.c: Modified build_repr function name. + * src/spiral-context.c: Ditto + +2001-10-29 Lauris Kaplinski <lauris@ximian.com> + + * src/desktop.c (sp_desktop_coordinate_status): Free allocated memory + + * src/display/nr-arena-shape.c (nr_arena_shape_group_add_component): Unref + item once it is added + +2001-10-29 Mitsuru Oka <oka326@parkcity.ne.jp> + + * src/desktop.c: + Added gtk_object_unref() after *_add_child to fix memory leaks. + + * src/document: Ditto + + * src/selection-chemistry.c: Ditto + + * src/sp-item-group.c: Ditto + + * src/sp-clippath.c, src/sp-use.c: Ditto + Missing to add ChangeLog before commiting. + +2001-10-23 Mitsuru Oka <oka326@parkcity.ne.jp> + + * src/sp-star.*, src/sp-spiral.*, src/star-context.* and + spiral-context.*: + Add SPStar, SPStarContext, SPSpiral and SPSpiralContext classes. + SPStar and SPSpiral behave as new shape and they can convert to + bezier curves. More works are required. + + * glade/draw_star.xpm, glade/draw_spiral.xpm, src/pixmaps/cursor-star.xpm, + src/pixmaps/cursor-spiral.xpm: + Add toolbox icon and mouse cursor for star and spiral. + + * src/helper/bezier-utils.*: + Add lowlevel APIs and reformat source code. + + * src/xml/repr-io.c: + Fix repr_write() to generate more short SVG. + New code support <foo /> tags generation. + + * src/xml/repr-util.c, src/xml/repr.*, src/sodipodi.c: + Add new SPRepr APIs sp_repr_lookup_child(), sp_repr_overwrite (), + and sp_repr_document_overwrite () + Now, we can merge ~/.sodipodi/preferences into preferences_skeleton. + +2001-10-23 Lauris Kaplinski <lauris@ximian.com> + + * src/file.c (sp_file_new): Use new signatures + (file_open_ok): Ditto + + * src/interface.c (sp_create_window): New signature + + * src/desktop.c: Break desktop functionality into SPView/SPViewWidget + parts, wrap most of the old code in ugly way, but we can go on + cleaning it up method-by-method + + * src/desktop.h: Ditto + + * src/view.h: New file + + * src/view.c: New file, we implement abstract base classes for + all document views (editable, noneditable, widget, non-widget) + here + + * src/svg-view.h: New file + + * src/svg-view.c: New file, implementing SVG preview + + * src/marshal.h: New file + + * src/marshal.c: New file + +2001-10-20 Lauris Kaplinski <lauris@ximian.com> + + * src/sp-root.c (sp_root_read_attr): Removed desktop->document coordinate + setup from here - it has to be done in desktop instead + +2001-10-19 Frank Felfe <innerspace@iname.com> + + * src/widgets/sp-toolbox.*: patch from MenTaLguY <mental@rydia.net> + change seperate button into toggle button and add arrow to + hide button indicating state of toolbox + + * src/path-chemistry.c (sp_selected_path_to_curves): apply to all paths in selection + + * src/selection-chemistry.c (sp_selection_delete): remove widget text + + * src/desktop.c (sp_desktop_set_focus): make canvas catch key events + + * src/desktop-events.c (sp_desktop_root_handler): don't grab focus here + +2001-10-18 Lauris Kaplinski <lauris@ximian.com> + + * src/display/nr-arena-image.c (nr_arena_image_render): Use right + pixel coposers + + * configure.in: Version 0.25 + +2001-10-18 Lauris Kaplinski <lauris@ximian.com> + + * src/sp-item-group.c: Removed paint virtual method implementation + + * src/sp-image.c: Ditto + + * src/sp-shape.c: Ditto + + * src/sp-use.c: Ditto + + * src/sp-item.c (sp_item_paint): Ported to NRArena/::show() + + * src/sp-item.h: Removed ::paint() + + * samples: Removed extra sample files (these are in clipart distribution) + +2001-10-17 Lauris Kaplinski <lauris@ximian.com> + + * src/display/nr-arena*: Merged NR_ARENA branch into HEAD. + NRArena is new experimental display list engine, that replaces + most canvas stuff for SVG items (old canvas code is still + used for controls etc.). + It is less integrated with Gtk widgetry, and should also allow reuse + of code for paint-server type things (patterns, symbols etc.). + NRArena rendering also allows higher-level graphic stuff, from + masking to filters, to be implemented. + +2001-10-13 Mitsuru Oka <oka326@parkcity.ne.jp> + + * src/dynadraw-context.c: Removed rotating brush bug + + * src/draw-context.h: Removed duplicate bezier-fitting code + +2001-10-12 Lauris Kaplinski <lauris@ximian.com> + + * src/sp-clippath.c: New file + + * src/sp-clippath.h: New file + + * src/sp-object-group.c (sp_objectgroup_build): Check child type + (sp_objectgroup_child_added): Ditto + + * src/sp-object-group.h: Removed useless 'tranparent' member + +2001-10-07 Lauris Kaplinski <lauris@ximian.com> + + * src/display/nr-primitives.c (nr_irect_union): New method + + * src/helper/nr-buffers.h: New file + + * src/helper/nr-buffers.c: New file + + * src/helper/nr-plain-stuff.c (nr_render_rgba32_rgba32): New method + +2001-10-06 Lauris Kaplinski <lauris@ximian.com> + + * src/sp-item.c (sp_item_read_attr): Query presentation attributes + + * src/style.c (sp_style_read_from_object): Added some presentation attributes + +2001-10-05 Lauris Kaplinski <lauris@ximian.com> + + * src/sp-use.c (sp_use_build): Reinclude, change 'href' to 'xlink:href' + + * src/sp-object.c (sp_object_style_changed): Use SP_OBJECT_MODIFIED_FLAG + + * src/document.c (sp_document_new): Force "height" and "width" attributes, + if not present already + (sp_document_new_from_mem): Ditto + +2001-10-04 Lauris Kaplinski <lauris@ximian.com> + + * src/xml/repr-io.c (sp_repr_save_stream): Correct header + +2001-10-02 Peter Moulder <pmoulder@csse.monash.edu.au> + + * src/xml/repr-io.c (repr_quote_write): New method, quotes + special chars correctly for xml + (repr_write): Use repr_quote_write + +2001-10-02 Lauris Kaplinski <lauris@ximian.com> + + * src/dyna-draw-context.c: Stroking by Mitsuru Oka + + * src/helper/bezier-utils.h: New file by Motsuru oka + + * src/helper/bezier-utils.c: Ditto + + * src/sp-shape.c (sp_shape_print): Translate gradients the right way + +2001-10-01 Lauris Kaplinski <lauris@ximian.com> + + * src/sp-shape.c (sp_shape_print): Use rule for clip and fill + (sp_shape_paint): Use winding rule + +2001-09-30 Lauris Kaplinski <lauris@ximian.com> + + * src/style.c (sp_style_write_string): Write rule + (sp_style_read_from_string): Parse rule + + * src/style.h: Made rule libart enum + + * src/display/path-archetype.c (sp_path_at): Search by rule + (sp_path_at_new): Rewind with rule + (sp_pat_equal): Compare rules + + * src/display/path-archetype.h: Added rule argument + + * src/display/cpath-component.c (sp_cpath_comp_new): Init rule + (sp_cpath_comp_update): Use rule + (sp_cpath_comp_change): Ditto + + * src/display/cpath-component.h: Added rule member + + * src/display/canvas-shape.c (sp_canvas_shape_update): Set fill rule + +2001-09-29 Lauris Kaplinski <lauris@ximian.com> + + * src/selection-chemistry.c (sp_selection_lower_to_bottom): Do not lower + behind non-items (i.e. base <defs> object) + (sp_selection_lower): Ditto + + * configure.in: Version 0.24.1 + + * src/document.c (sp_document_new): Set xmlns:xlink + (sp_document_new_from_mem): Ditto + + * src/sp-defs.c (sp_defs_destroy): Correct list emptying + + * src/dialogs/gradient-selector.c (sp_gradient_selector_add_vector_clicked): unref repr + + * src/gradient-chemistry.c (sp_object_ensure_fill_gradient_normalized): unref repr + + * src/helper/art-utils.c (art_rgb_run_rgba): Fix 255/256 bug + + * src/display/canvas-shape.c (sp_canvas_shape_render): Removed #ifdef 0 code + + * src/widgets/gradient-image.c (sp_gradient_image_expose): Draw grabage + using fresh new nr functions + (sp_gradient_image_update): Ditto (not used) + + * src/helper/nr-plain-stuff.h: New file + + * src/helper/nr-plain-stuff.c: New file + + * src/helper/nr-plain-stuff-gdk.h: New file + + * src/helper/nr-plain-stuff-gdk.c: New file + +2001-09-27 Lauris Kaplinski <lauris@ximian.com> + + * src/dialogs/object-properties.c (sp_object_properties_dialog): Create + dynamic fill page + + * src/sp-shape.c (sp_shape_print): Print gradients (somewhat) + (sp_shape_paint): Paint gradients (somewhat) + + * src/document.c (sp_document_new_from_mem): Use fresh namespace + + * src/xml/repr-io.c (sp_repr_save_stream): Write fresher descriptor + + * src/widgets/gradient-position.c: New file and widget + + * src/widgets/gradient-position.h: New file and widget + + * src/dialogs/gradient-selector.c (sp_gradient_widget_new): Make + delete vector inactive, shorter button names, create gradient + positioning widget + (sp_gradient_selector_load_selection): Update positioning widget + (sp_gradient_selection_position_dragged): Implement + (sp_gradient_selection_position_changed): Implement + + * src/sodipodi.c (sodipodi_segv_handler): Abort on recursion + +2001-09-26 Lauris Kaplinski <lauris@ximian.com> + + * src/sp-text.c (sp_text_read_attr): Use unit-loading method for x & y + +2001-09-25 Christopher R. Gabriel <cgabriel@cgabriel.org> + + * sodipodi.1.in: new man page + * configure.in: Likewise + * Makefile.am (man_MANS): Likewise + +2001-09-24 Frank Felfe <innerspace@iname.com> + + * src/helper/sodipodi-ctrl.*: New ctrl-shapes + + * src/knot.*: Ditto + + * src/pixmaps/cursor-node-d.xpm: New file + + * src/pixmaps/cursor-node-m.xpm: New file + + * src/pixmaps/cursor-select-d.xpm: New file + + * src/pixmaps/cursor-select-m.xpm: New file + + * src/pixmaps/handles.xpm: New file + + * src/sp-cursor.* (sp_cursor_new_from_xpm): New function + + * src/seltrans.c: Use new ctrl-shapes and cursors + + * src/seltrans-handles.*: Use new ctrl-shapes + + * src/select-context.c (sp_node_context_class_init): Init cursors and handle pix + + * src/nodepath.* (node_event): Redirect key events + (node_key): New key handler + (sp_node_selected_break): Handle first and last node + (node_ctrl_moved): Update ctrlline after setting coords + (sp_nodepath_node_new): Use new ctrl-shapes and cursors + + * src/node-context.c (sp_node_context_class_init): Init cursors + +2001-09-22 Mitsuru Oka <oka326@parkcity.ne.jp> + + * src/dynadraw-context.c: New file + + * src/dynadraw-context.h: New file + + * src/event-context.c (sp_event_context_set_dynahand): New handler + +2001-09-21 Lauris Kaplinski <lauris@ximian.com> + + * src/svg/svg-path.c: Quick port of latest librsvg path code + +2001-09-19 Lauris Kaplinski <lauris@ximian.com> + + * src/document.c (sp_document_destroy): Remove document + (sp_document_new): Add document + (sp_document_new_from_mem): Ditto + + * src/sodipodi.c (sodpodi_remove_document): New method + (sodpodi_add_document): Ditto + (sodipodi_segv_handler): Not very intelligent signal handler + +2001-09-18 Lauris Kaplinski <lauris@ximian.com> + + * src/dialogs/gradient-selector.c (sp_gradient_selector_add_vector_clicked): + New handler + (sp_gradient_selector_delete_vector_clicked): Ditto (empty) + (sp_gradient_selector_load_selection): New method + + * src/desktop.c (sp_desktop_init): Typo fix + +2001-09-17 Lauris Kaplinski <lauris@ximian.com> + + * src/dialogs/gradient-vector.c (sp_gradient_vector_widget_destroy): Handler + (sp_gradient_vector_gradient_destroy): Ditto + (sp_gradient_vector_gradient_modified): Ditto + (sp_gradient_vector_color_dragged): Ditto + (sp_gradient_vector_color_changed): Ditto + (sp_gradient_vector_widget_load_gradient): Connect/disconnect signals, + handle NULL gradient etc. + + * src/sp-gradient.c (sp_gradient_set_vector): New method + + * src/widgets/gradient-image.c (sp_gradient_image_update): New method + (sp_gradient_image_gradient_modified): Handler + (sp_gradient_image_gradient_destroy): Ditto + (sp_gradient_image_set_gradient): New method + (sp_gradient_image_unrealize): Implement + (sp_gradient_image_realize): Ditto + +2001-09-16 Lauris Kaplinski <lauris@ximian.com> + + * src/dialogs/gradient-selector.c (sp_gradient_widget_new): Added buttons + (sp_gradient_selector_edit_vector_clicked): Handler + + * src/sp-defs.c (sp_defs_build): Use attach method + +2001-09-15 Lauris Kaplinski <lauris@ximian.com> + + * src/sp-gradient.c: Added radial gradient + + * src/sp-gradient.h: Ditto + + * src/sp-paint-server.c (sp_paint_server_destroy): Do not leak painters + + * src/gradient-chemistry.c (sp_gradient_ensure_vector_normalized): New method + (sp_item_force_fill_lineargradient_vector): Ditto + + * src/sp-object.h (SP_OBJECT_STYLE): New macro + +2001-09-14 Lauris Kaplinski <lauris@ximian.com> + + * src/zoom-context.c (sp_zoom_2_to_1): Noop if no active desktop + (sp_zoom_1_to_2): Ditto + +2001-09-07 Lauris Kaplinski <lauris@ximian.com> + + * src/sp-header.c: New file, implements document header, consisting + of nested <defs> nodes, for different resource definitions + + * src/sp-header.h: New file + + * src/forward.h: Added SPHeader forward typedefs + +2001-09-05 Lauris Kaplinski <lauris@ximian.com> + + * src/document.c (sp_document_del_repr): Moved here, commented out + (sp_document_add_repr): Moved here, made non-item compatible + + * src/style.c (sp_style_object_destroyed): Catcher method + (sp_style_new): Signature change + (sp_style_ref): Ditto + (sp_style_unref): Ditto + + * src/sp-paint-server.c (sp_paint_server_destroy): Removed insane + paint server referencing by painters and replaced it witw (a bit) + less insane stale painter maintenance + (sp_paint_server_painter_new): Ditto + (sp_paint_server_painter_free): Ditto + (sp_painter_free): Ditto + (sp_painter_stale_fill): Ditto + + * src/sp-object.c (sp_object_invoke_build): Added verbose error + + * src/style.c (sp_style_paint_server_destroy): Implemented signal-based + paintserver spying, instead of hardrefing it + (sp_style_paint_server_changed): Ditto + (sp_style_merge_paint): Ditto + + * src/sp-object.c (sp_object_ref): Wrapper method for debugging + (sp_object_unref): Ditto + (sp_object_attach_reref): Convenience connect method + (sp_object_detach_unref): Ditto + +2001-09-04 Lauris Kaplinski <lauris@ximian.com> + + * src/sp-shape.c (sp_shape_print): Do not fill open paths + + * src/document.c (sp_document_add_resource): Implemented simple + named resource lists + (sp_document_remove_resource): Ditto + (sp_document_get_resource_list): Ditto + +2001-09-03 Lauris Kaplinski <lauris@ximian.com> + + * src/sp-gradient.c: Added middle SPGradient class and morphed + LinearGradient accordingly + + * src/sp-gradient.h: Added middle SPGradient Class + + * src/forward.h: Declare stops and gradients here + + * src/dialogs/gradient-vector.c: New file + + * src/dialogs/gradient-vector.h: New file + + * src/bonobo/embeddable-document.c (sp_embeddable_document_ps_save): + Kill warning + + * src/select-context.c: Kill warning + +2001-08-31 Lauris Kaplinski <lauris@ximian.com> + + * src/forward.h: typedef SPDefs[Class] here + + * src/sp-root.h: Added pointer to root-level <defs> node + + * src/sp-gradient.c (sp_stop_get_type): Fixed type on type init + +2001-08-30 Lauris Kaplinski <lauris@ximian.com> + + * src/document.c (sp_document_new): Use fill-opacity 0.5, not 50% + +2001-08-21 Lauris Kaplinski <lauris@ximian.com> + + * src/dialogs/fill-style.c: Implement CMYK/RGB colorspace switching + + * src/widgets/sp-color-selector.c: Implement CMYK read/set methods + + * src/widgets/sp-color-slider.c (sp_color_slider_adjustment_value_changed): Set + local value, even if arrow is not visible + + * src/color.c: New file + + * src/color.h: New file + + * src/sp-item.c (sp_item_read_attr): Check for "fill-cmyk" + + * src/style.c (sp_style_read_from_object): Parse "fill-cmyk" (quick hack) + +2001-08-20 Lauris Kaplinski <lauris@ximian.com> + + * src/svg/svg-path.c (svg_parse_path_data): Kill warning + + * src/widgets/sp-color-selector.c: New file & class + + * src/widgets/sp-color-slider.c: New file & class + + * src/sp-object.c (sp_object_style_changed): New virtual method + +2001-08-13 Lauris Kaplinski <lauris@ximian.com> + + * src/selection-chemistry.c (sp_selection_copy): Use prepend/reverse + (sp_item_compare_order): New method + (sp_item_list_sort_by_visual_order): New method + + * src/sp-path.c (sp_path_read_attr): Req modification + + * src/sp-item.c (sp_item_toggle_sensitivity): Call document::done + (sp_item_reset_transformation): Ditto + (sp_item_read_attr): Request modifiaction for style change + + * src/sp-object.h (SP_OBJECT_PARENT): Added convenience macros + +2001-08-01 Lauris Kaplinski <lauris@ximian.com> + + * src/document-undo.c (sp_document_undo): Fresh logic + (sp_document_redo): Ditto + (sp_document_child_added): Real listener + (sp_document_child_removed): Ditto + (sp_document_attr_changed): Ditto + (sp_document_content_changed): Ditto + (sp_document_order_changed): Ditto + (sp_document_add_repr): Fresh logic, use only as wrapper + (sp_document_del_repr): Ditto + (sp_document_clear_undo): Use new logic, free actions at last + (sp_document_clear_redo): Ditto + (sp_action_list_undo): New functions, plus handful children + (sp_action_list_redo): Ditto + (sp_action_new): New function + (sp_action_free): Ditto + (sp_action_free_list): Ditto + +2001-07-31 Lauris Kaplinski <lauris@ximian.com> + + * src/xml/repr.c (sp_repr_ref): Return referenced repr + (sp_repr_unref): Ditto + (sp_repr_duplicate): Cleanup + (sp_repr_set_content): Ditto, new handler signatures + + * src/xml/repr-private.h: Lot of signature changes + +2001-07-30 Lauris Kaplinski <lauris@ximian.com> + + * src/sp-item-group.c: #include <config.h> for i18n + + * src/sp-item.c: Ditto + + * src/event-context.c: Ditto + + * src/toolbox.c: Ditto + +2001-07-25 Lauris Kaplinski <lauris@ximian.com> + + * src/document-undo.c (sp_document_maybe_done): New function + +2001-07-19 Lauris Kaplinski <lauris@ximian.com> + + * src/dialogs/sp-widget.c (sp_widget_modify_selection): New function + (sp_widget_show): Connect "modify_selection" + (sp_widget_hide): Disconnect by data + (sp_widget_new): New function + (sp_widget_class_init): Added signals + (sp_widget_change_selection): Emit signal + (sp_widget_set_selection): Ditto + + * src/sodipodi.c (sodipodi_selection_modified): New function + (sodipodi_class_init): Added "modify_selection" signal + + * src/selection.c (sp_selection_idle_handler): Signal sodipodi + + * src/document.c (sp_document_class_init): Added "modified" signal + (sp_document_idle_handler): Emit modified signal + + * src/seltrans.c (sp_sel_trans_sel_modified): New function + + * src/sp-item.c (sp_item_set_item_transform): New function + + * src/sp-object.c (sp_object_class_init): Add "modified" signal + (sp_object_request_modified): New function + (sp_object_modified): New base method + + * src/sp-object.h (SP_OBJECT_UNSET_FLAGS): Added modifiaction state flags + and handlers for scheduling and emitting modifiaction signal + + * src/selection.c (sp_selection_class_init): Added "modified" signal + (sp_selection_destroy): Remove pending idle, if present + (sp_selection_selected_item_modified): Added handler for object signal + (sp_selection_idle_handler): Emit our own modified signal in idle loop + + * src/selection.h: Added idle id and ::modified virtual member + +2001-07-17 Lauris Kaplinski <lauris@ximian.com> + + * src/sp-namedview.c (sp_namedview_get_name): Initialize exception + + * src/sp-item-group.c (sp_item_group_ungroup_activate): New function + (sp_item_group_ungroup): Implement this + + * src/sp-item.c (sp_item_select_this): New function + (sp_item_private_menu): Added "Select this" + (sp_item_properties): Select item + + * src/desktop.c (sp_desktop_menu_popup): Use new signature + + * src/event-context.c (sp_event_root_menu_popup): Use desktop + in signature instead of widget + + * src/sp-object.c (sp_object_getAttribute): Return NULL, if + exception is not clear + (sp_object_setAttribute): Ditto + (sp_object_removeAttribute): Ditto + +2001-07-08 Lauris Kaplinski <lauris@ximian.com> + + * src/xml/repr-io.c (sp_repr_svg_read_node): Preserve namespaces for + everything but "svg" + +2001-07-07 F.J.Franklin <F.J.Franklin@sheffield.ac.uk> + + * src/svg/svg-color.c (sp_svg_read_color): Accept ';' as + terminator + + * src/sp_image.c (sp_image_repr_read_dataURI): New function + (sp_image_repr_read_b64): New function + (sp_image_read_attr): Accept embedded data + + * configure.in: Added --with-libwmf switch + + * src/xml/repr-io.c (sp_repr_read_file): Read *.wmf using libwmf + (sp_wmf_convert): New function + (sp_wmf_image_name): New function + +2001-07-07 Frank Felfe <innerspace@iname.com> + + * src/desktop.h: Added number field + + * src/desktop.c (sp_desktop_new): Initialize number from + namedview viewcount + (sp_desktop_set_title): Compose name from uri, nameview and number + + * src/document.c (sp_document_set_uri): New method + + * src/file.c (file_save_ok): Set ducument uri + + * src/interface.c (sp_create_window): Set desktop title + + * src/select-context.c (sp_select_context_root_handler): Added + backward cycling + + * src/selection-chemistry.c (sp_selection_item_next): Cleared + list mess + (sp_selection_item_prev): New function + + * src/sp-item-group.c (sp_item_group_item_list): New function + + * src/sp-namedview.h: Added viewcount field + + * src/sp-namedview.c (sp_namedview_get_name): New method + + * doc/keybindings.txt: Added Shift-Tab + +2001-06-07 Lauris Kaplinski <lauris@ximian.com> + + * configure.in: Version 0.24 + + * src/sp-item.c (sp_item_read_attr): Quick noscale hack + for style stroke widths + + * src/display/canvas-shape.c (sp_canvas_shape_update): Use + stroke_width as well ;) + +2001-05-24 Lauris Kaplinski <lauris@ximian.com> + + * src/seltrans-handles.*: Make structs const + + * src/seltrans.*: Make view type variable, move it to + header for adding GUI later + +2001-05-23 Frank Felfe <innerspace@iname.com> + + * src/desktop-snap.*: Implement circualr and list snapping + + * src/sp-item.*: New virtual function ::snappoints() + + * src/seltrans.c: New structure + + * src/sp-rect.c (sp_rect_snappointss): Implement + + * src/sp-ellipse.c (sp_ellipse_snappoints): Ditto + + * src/sp-text.c (sp_text_snappoints): Ditto + + * src/sp-image.c (sp_image_snappoints): Ditto + +2001-05-18 Lauris Kaplinski <lauris@ximian.com> + + * configure.in: Version 0.23 final + + * src/sp-gradient.c (sp_lg_fill): Do opacity + + * src/document-undo.c (sp_document_redo): Fixed bug in redoing + order changes + +2001-05-17 Lauris Kaplinski <lauris@ximian.com> + + * src/toolbox.c (sp_maintoolbox_create): Show toolbox, if + it already exists and reference sodipodi + (sp_maintoolbox_close): Hide toolbox + + * glade/Makefile.am (glade_DATA): Added item.glade, item.c + + * configure.in: Version 0.23 + + * src/dialogs/display-settings.h: New file + + * glade/Makefile.am (glade_DATA): Added display.glade, display.c + +2001-05-06 Lauris Kaplinski <lauris@ximian.com> + + * configure.in (use_arena): Added with-arena flag + + * acconfig.h: Added ARENA + +2001-04-16 Jesus Bravo Alvarez <jba@pobox.com> + + * configure.in: Added gl (Galician) to ALL_LINGUAS + +2001-04-14 Lauris Kaplinski <lauris@ximian.com> + + * everywhere (TM): Changed the basic structure of Reprs (they are + not GtkObjects any more) and SPObjects (they have own list sequence + instead of using GLists) + +2001-04-06 Lauris Kaplinski <lauris@ximian.com> + + * src/sp-item-group.c (sp_item_group_ungroup): New method + + * src/draw-context.c (set_to_accumulated): Transform path instead of + setting initial transform, so clear transform does not do interesting + things for freehand curves ;-) + +2001-04-04 Lauris Kaplinski <lauris@ximian.com> + + * src/file.c (sp_file_open): Do not connect "delete_event" + (sp_file_save_as): Ditto + (sp_file_import): Ditto, do not use static widget pointer + (sp_file_export): Ditto + (sp_file_save_document): Clear "modified" attribute + (file_save_ok): Ditto + + * src/svg/svg.h: #include glib.h instead of full gtk.h + + * src/svg/svg-stroke.c: #include string.h, kill warning + + * src/svg/svg-font.c: Ditto + + * src/sp-shape-style.c: Ditto + + * src/sp-metrics.h: #include gtkruler.h intead of full gtk.h + + * src/zoom-context.c (sp_zoom_page): Get document from desktop + instead of using ACTIVE_DOCUMENT + + * src/slide-context.c: New file, implement slideshow context + + * src/main.c (main): Create slideshow, if requested + +2001-03-22 Lauris Kaplinski <lauris@ximian.com> + + * src/svg/Makefile.am (INCLUDES): Add SODIPODI_CFLAGS + +2001-03-21 Lauris Kaplinski <lauris@ximian.com> + + * src/sodipodi.h: Remove Sodipodi typedef + + * src/forward.h: Typedef Sodipodi here + + * src/dialogs/sp-widget.c: New file + + * src/dialogs/sp-widget.h: New file, implement abstract base class for + configuration widgets + + * glade/Makefile.am (pixmaps): Added guide_dialog.png + + * src/dialogs/document-properties.c (sp_document_dialog_delete): New function, or + we crash if user closes dialog + + * src/dialogs/desktop-properties.c (sp_desktop_dialog_delete): New function, or + we crash if user closes window + + * src/draw-context.c (sp_draw_context_root_handler): Do not crash for zero + length lines PLEEAAAASSSSEEEEE! + + * src/selection-chemistry.c (sp_selection_group): Use copy/del/add to make + undo system happy + +2001-03-20 Frank Felfe <innerspace@iname.com> + + * src/nodepath.c (node_ctrl_moved) : set coorinate status + + * src/seltrans.c (sp_sel_trans_handle_new_event) : set coordinate status + + * src/sp-guide.* : new functions sp_guide_set, sp_guide_remove + + * src/helper/unit-menu.h : add abbreviation string into unitdesc + + * src/event-context.c (set_event_location) : set coordinate status + popup desktop-properties on double click + + * src/desktop.* : new functions for statusbars + (sp_desktop_indicator_*) : make indicator only show when decorations are visible + + * src/desktop-events.* : new guideline dialog + small changes in sp_dt_ruler_event, sp_dt_guide_event + + * src/*_context.c (sp_*_context_root_handler) : make desktop->acetate + grab mouse events during drawing + + * glade/guide_dialog.png: New file + +2001-03-20 Lauris Kaplinski <lauris@ximian.com> + + * src/sp-item-group.c (sp_group_menu): Add "Ungroup" item (does nothing at moment) + + * src/display/canvas-bgroup.c (sp_canvas_bgroup_point): Test sensitivity and stickyness + (sp_canvas_bgroup_set_sensitive): New function + + * src/display/canvas-shape.c (sp_canvas_shape_point): Test sensitivity and stickyness + (sp_canvas_shape_set_sensitive): New function + + * src/sp-item-group.c (sp_group_read_attr): Read "insensitive" too + + * src/sp-shape.c (sp_shape_read_attr): Read "insensitive" too + + * src/sp-item.c (sp_item_private_menu): Set menuitem label depending on sensibility + + * src/desktop.c (sp_desktop_init): Bind "event" to manipulate sticky state + + * src/display/canvas-image.c (sp_canvas_image_point): Check for + SP_CANVAS_STICKY_FLAG + + * src/desktop.c (sp_desktop_event): New function, Set SP_CANVAS_STICKY_FLAG if + user holds Shift key + +2001-03-09 Lauris Kaplinski <lauris@ximian.com> + + * glade/Makefile.am (pixmaps): Added all pixmaps to dist + + * configure.in: Version 0.22 + +2001-03-09 Frank Felfe <innerspace@iname.com> + + * src/desktop.c (sp_desktop_update_scrollbars): Cleanup + + * src/event-context.c (sp_event_context_private_root_handler): Use + Gdk keysyms instead of numeric values. Add moving/panning keybindings, + space for root menu popup + (sp_event_root_menu_popup): Pop menu on space + + * select-context.c (sp_select_context_root_handler): Use Gdk keysyms + instead of numeric values + + * selection-chemistry.c (sp_selection_move_screen): New function + (sp_selection_item_next): New function + + * doc/keybingings.txt: New keybingings + +2001-03-09 Lauris Kaplinski <lauris@ximian.com> + + * src/nodepath.c (node_event): Update repr after deletion + + * src/file.c (file_open_ok): Destroy widget instead of hiding + (file_open_cancel): New function + (sp_file_open): Connect new cancel handler + (file_save_ok): Exit from private main loop + (file_save_cancel): New function + (sp_file_save_as): Connect new cancel handler, enter private loop + (file_import_cancel): New function + (sp_file_import): Connect new cancel handler + (file_export_cancel): New function + (sp_file_export): Connect new cancel handler + +2001-03-08 Lauris Kaplinski <lauris@ximian.com> + + * src/interface.c (sp_ui_delete): New function presenting close + dialog box if needed + (sp_ui_close_view): Use sp_ui_delete () + (sp_create_window): Connect "delete_event" and set window title + + * src/file.c (sp_file_save_document): New function + + * src/document-undo.c (sp_document_done): Set "modified" attribute + + * src/file.c (file_save_ok): Clear "modified" attribute + +2001-03-07 Lauris Kaplinski <lauris@ximian.com> + + * doc/keybindings.txt: Register node editing keystrokes + + * src/desktop.c (sp_desktop_new): Do not grab focus here + + * src/helper/sodipodi-ctrl.c: Added shape argument type + (sp_ctrl_class_init): Ditto + (sp_ctrl_init): Ditto + (sp_ctrl_set_arg): Ditto + (sp_ctrl_update): New logic, keep node absolute size always odd number + (sp_ctrl_point): Ditto + (draw_line): New function + (draw_point): New function + (sp_ctrl_render): New logic, draw diamond shape + + * src/desktop-events.c (sp_desktop_root_handler): Grab focus on + acetate enter notify + + * src/knot.c (sp_knot_set_arg): Set shape attribute + (sp_knot_handler): Grab focus on enter notify + (sp_knot_update_ctrl): Set shape + (sp_knot_set_ctrl_state): New function + + * src/node-context.c (sp_node_context_root_handler): Process keypresses + + * src/nodepath.c (sp_nodepath_node_new): Connect "event" and set knot shape + (node_clicked): Toggle type on Ctrl-click + (node_event): New signal handler for keypresses + (sp_nodepath_set_node_type): Set knot shape + +2001-02-21 Michael Meeks <michael@ximian.com> + + * configure.in: depend on Bonobo >= 0.37. + +2001-02-21 Lauris Kaplinski <lauris@ximian.com> + + * configure.in: Commented out GNOME_PRINT_CHECK + +2001-02-19 Lauris Kaplinski <lauris@ximian.com> + + * src/desktop.c (sp_desktop_connect_item): New function + + * src/sp-item.c (sp_item_view_new_prepend): View list management + (sp_item_view_list_remove): Ditto + + * src/sp-item.h: SPItemView - new object encapsulating view. I also induced + changes in almost all source files + + * src/sp-item-group.h: New file + + * src/bonobo/embeddable-drawing.c (sp_embeddable_drawing_get_type): + Use new bonobo object stuff + (sp_embeddable_drawing_factory): Ditto + + * src/bonobo/embeddable-desktop.c (sp_embeddable_desktop_get_type): + Use new bonobo object stuff + (sp_embeddable_desktop_factory): Ditto + + * src/bonobo/embeddable-document.c (sp_embeddable_document_get_type): + Use new bonobo object stuff + (sp_embeddable_document_new): Ditto + +2001-02-17 Lauris Kaplinski <lauris@ximian.com> + + * src/sp-object.c (sp_object_getAttribute): New function + (sp_object_setAttribute): New function + (sp_object_removeAttribute): New function + +2001-02-11 Lauris Kaplinski <lauris@ximian.com> + + * configure.in: Added es to ALL_LINGUAS + +2001-02-07 Lauris Kaplinski <lauris@ximian.com> + + * src/dialogs/object-properties.c: Added channel sliders + * glade/object_props.glade: Ditto + * samples/mangatips6.svg: New file + * samples/mangatips7.svg: New file + * samples/mangatips8.svg: New file + * samples/mangatips9.svg: New file + * samples/mangatips10.svg: New file + +2001-02-06 Lauris Kaplinski <lauris@ximian.com> + + * samples/mangatips3.svg: New file + * samples/mangatips4.svg: New file + * samples/mangatips5.svg: New file + +2001-01-29 Fatih Demir <kabalak@gmx.net> + + * src/widgets/.cvsignore: Added this. + +2001-01-26 Lauris Kaplinski <lauris@ximian.com> + + * configure.in: Version 0.21 + +2001-01-24 Lauris Kaplinski <lauris@ximian.com> + + * src/document-undo.c (sp_document_add_repr): Do not expect repr + always correspond to item + + * src/toolbox.c (sp_maintoolbox_create): Save edit/undo/redo widgets + (sp_update_draw_toolbox): Unsensitize undo/redo for draw and node + contexts + +2001-01-09 Lauris Kaplinski <lauris@ximian.com> + + * src/desktop (sp_desktop_change_document): Update namedviews aslo + +2001-01-09 Lauris Kaplinski <lauris@ximian.com> + + * samples/mangatips1.svg: New file + * samples/mangatips2.svg: New file + + * src/xml/Makefile.am: Use SODIPODI_CFLAGS + +2001-01-08 Frank Felfe <innerspace@iname.com> + + * desktop.*: use gnomeappbar in desktop-window, + use gtk_combo_text widget from libgal + + * src/desktop-events.c: use gnomeappbar + + * src/event-context.c: global keybindings + + * src/select-context.c: keybindings + + * src/text-context.c: filter Ctrl-keys for keybindings + + * src/interface.c: connect to focus-in-event from desktop-window + + * glade/toolbox.glade: keybindings for the maintoolbox-menu + + * doc/keybindings.txt + +2001-01-08 Lauris Kaplinski <lauris@helixcode.com> + + * src/selection-chemistry.c (sp_selection_rotate_90): Brought + function here from toolbox.c and renamed + + * glade/toolbox.glade: Use sp_selection_rotate_90 + + * src/desktop_snap.* (sp_desktop_circular_snap): New function + + * src/rect-context.c (sp_rect_context_destroy): Finish object, if exists + + * src/ellipse-context.c: (sp_ellipse_context_destroy): Ditto + +2001-01-04 Lauris Kaplinski <lauris@helixcode.com> + + * src/helper/sodipodi-ctrlrect.*: Draw by hand instead of using + libart. That fixed ugly-ugly freezing bug in Mandrake + + * src/preferences-skeleton.h: New file, encoding default preferences + + * glade/sodipodi.glade: Changes _Uus to _New in menu ;) + + * src_sodipodi.* (sodipodi_load_preferences): New function + (sodipodi_save_preferences): New function + (sodipodi_get_repr): New function for retrieving data from preferences + DOM tree. + + * src/draw-context.c (set_to_accumulated): Use style preferences + * src/rect-context.c (sp_rect_drag): Ditto + * src/ellipse-context.c (sp_ellipse_drag): Ditto + * src/text-context.c (sp_text_context_root_handler): Ditto + (sp_text_complete): ungrab keyboard + + * src/toolbox.c (sp_toolbox_create): Use preferences + +2001-01-02 Lauris Kaplinski <lauris@helixcode.com> + + * src/widgets/sp-toolbox.*: general toolbox implementation + + * src/toolbox.c: Use SPToolBox widget, load and save toolbox states + + * src/sodipodi.* (sodipodi_set_key): New function for setting + preference values into xml tree + (sodipodi_get_key): Ditto + (sodipodi_set_key_as_number): Ditto + (sodipodi_get_key_as_number): Ditto + + * src/xml/repr-io.c (sp_repr_read_file): Load whatever element node as root + (sp_repr_read_mem): Ditto + +2000-12-31 Michael Meeks <michael@helixcode.com> + + * src/xml/repr-io.c (sp_repr_save_file): split into + (sp_repr_save_stream): here. + + * src/bonobo/embeddable-document.c (sp_embeddable_document_pf_load), + (sp_embeddable_document_pf_save): update signatures for new persistfile API. + +2000-12-30 Lauris Kaplinski <lauris@helixcode.com> + + * src/main.c (main): Reenable command-line filenames + + * src/sodipodi.* (sodipodi_application_new): New function + +2000-12-29 Michael Meeks <michael@helixcode.com> + + * src/bonobo/embeddable-document.c (sp_embeddable_document_factory): upd. + + * Makefile.am (oafdir): kill gnorba bits, update naming. + + * src/bonobo/svg-doc-factory.c (sp_svg_doc_factory_init): upd. + (sp_svg_factory): new multi factory. + + * GNOME_Sodipodi.oafinfo: add, rename stuff. + + * configure.in (have_bonobo): require bonobo >= 0.30 + +2000-12-28 Christopher R. Gabriel <cgabriel@softwarelibero.org> + + * configure.in (ALL_LINGUAS): 'it' + +2000-12-27 Lauris Kaplinski <lauris@helixcode.com> + + * src/display/nr-svp-uncross.c: Lot of clenaup + + * src/display/nr-svp-render: Comment out printouts + + * src/display/nr-primitives.h: #define NR_COORD_TOLERANCE + +2000-12-26 Lauris Kaplinski <lauris@helixcode.com> + + * src/display/nr-svp-uncross.c (nr_svp_uncross_full): more cases - + rays, intersection - some cleanups + + * src/display/nr-svp-render.c (nr_svp_render_rgb_rgba): Cleanups + +2000-12-25 Lauris Kaplinski <lauris@helixcode.com> + + * src/display/nr-primitives.h: Move NRCoord and NRPoint here + * src/display/nr-primitives.c: NRDRect methods + + * src/display/nr-svp.*: Rewrite. NRSVP is now simple ordered + segment and we use linked (sorted) lists for describing more + complex geometries + * src/display/nr-svp-uncross.*: Ditto, partial implementation + * src/display/nr-svp-render.* Ditto. Works. + +2000-12-21 Lauris Kaplinski <lauris@helixcode.com> + + * src/display/nr-svp-render.c: Lot's of cleanup + +2000-12-20 Lauris Kaplinski <lauris@helixcode.com> + + * src/display/nr-svp-render.c (nr_svp_render_rgb_rgba): It + works to some extent! + * src/display/canvas-shape.c (sp-canvas_shape_render): Use New + Rendering, #ifdef NEW_RENDER + + * src/display/testnr.c: Silly file + +2000-12-19 Lauris Kaplinski <lauris@helixcode.com> + + * src/display/nr-uta.*: UTA Implementation + + * src/display/nr-aa-canvas.*: RGB Buffer canvas + + * src/display/sp-arena.*: Widget, using RGB canvas + + * src/display/sp-canvas-item.*: Item subclass for arena + * src/display/sp-canvas-group.*: Ditto + +2000-12-17 Lauris Kaplinski <lauris@helixcode.com> + + * src/display/nr-primitves.h: typedef NRPoint + + * src/display/nr-canvas.*: More code + * src/display/nr-canvas-item.*: Ditto + * src/display/nr-canvas-group.*: Ditto + +2000-12-16 Lauris Kaplinski <lauris@helixcode.com> + + * src/display/nr-canvas-group.*: Base class for canvas groups + * src/display/nr-primitives.*: Graphic primitives + +2000-12-15 Lauris Kaplinski <lauris@helixcode.com> + + * src/display/nr-canvas.*: Experimental new rendering stuff (not working) + * src/display/nr-canvas-item.*: Ditto (not working) + * src/display/nr-svp.*: Ditto (works) + * src/display/nr-svp-uncross.*: Ditto (works) + * src/display/nr-svp-render.*: Not working yet + + * configure.in: Added {with|without}-new-render switch + +2000-11-30 Szabolcs Ban <shooby@gnome.hu> + + * glade/toolbox.c: corrected "zom factor" to "zoom factor" + +2000-11-30 Szabolcs Ban <shooby@gnome.hu> + + * configure.in (ALL_LINGUAS): add hu. + +2000-11-26 Lauris Kaplinski <lauris@helixcode.com> + + * src/toolbox.c (sp_maintoolbox_create): Strip toolbox names + (sp_toolbox_create_widgets): Make windows toplevel + + * glade/*.glade: Make windows to be toplevel + +2000-11-25 Christopher R. Gabriel <cgabriel@softwarelibero.org> + + * debian/: added the debian scripts from package maintainer, + Davide Puricelli <evo@debian.org> + +2000-11-17 Yuri Syrota <rasta@renome.rovno.ua> + + * glade/transformation.c + * glade/transformation.glade: correct "vertival move" to "vertical move" + +2000-11-17 Lauris Kaplinski <lauris@helixcode.com> + + * src/dialogs/text/edit.c (sp-text-dialog-close): Destroy + dialog, so font listing will be regenerated + +2000-11-02 Michael Meeks <michael@helixcode.com> + + * configure.in: Check for bonobo >= 0.27 + +2000-10-27 Michael Meeks <michael@helixcode.com> + + * configure.in (ALL_LINGUAS): add pt_BR. + +2000-10-26 Lauris Kaplinski <lauris@helixcode.com> + + * configure.in: Define libxml include path + + * src/Makefile.am: Use libxml include path + + * src/main.c: Ditto + + * src/xml/Makefile.am: Ditto + + * src/xml/repr-io.c: Ditto + +2000-10-21 Zbigniew Chyla <cyba@gnome.pl> + + * configure.in: Added pl to ALL_LINGUAS. + +2000-10-21 Zbigniew Chyla <cyba@gnome.pl> + + * sodipodi/src/toolbox.c (sp_maintoolbox_create): + Marked strings for translation. + +2000-10-18 Christophe Merlet <christophe@merlet.net> + + * configure.in: Oups, forgotten to add French (fr) to $ALL_LINGUAS + +2000-10-18 Christophe Merlet <christophe@merlet.net> + + * sodipodi.desktop: Added French string. + +2000-10-17 Lauris Kaplinski <lauris@helixcode.com> + + * src/nodepath.c (sp_nodepath_node_destroy): fixed YANC (Yet + Another Nodepath Crash) + +2000-10-16 Frank Felfe <innerspace@iname.com> + + * glade/toolbox.glade: Updated zoom toolbox + + * src/desktop-events.*: Added sp_canvas_root_handler + + * src/desktop.c: Added statusbar, clean up zooming + + * src/sp-metrics.* (sp_metric_to_metric_string): A way to + suppress metric identifier in strings + + * src/sp-ruler.c: Copy GtkRuler object + + * src/zoom-context.c: Use desktop region markup with border + + * src/bonobo/embeddable-desktop.c: Ditto + +2000-10-13 Lauris Kaplinski <lauris@helixcode.com> + + * src/text-context.c (sp_text_context_item_handler): Return + if repr == NULL; Commit changes to undo stack. + +2000-10-11 Lauris Kaplinski <lauris@helixcode.com> + + * src/draw-context.c (sp_draw_context-destroy): Detach signal + +2000-10-11 Frederic Devernay <Frederic.Devernay@sophia.inria.fr> + + * Makefile.am: Use test -r for compatibility + + * src/Makefile.am: Remove -export-dynamic + + * src/main.c: Use libxml 1.8.8/2.0 + + * src/interface.c: Make fake_dialogs nonstatic + + * src/xml/repr-io.c: Use libxml 1.8.8/2.0 + +2000-10-09 Lauris Kaplinski <lauris@helixcode.com> + + * configure.in: Version 0.20 + + * src/helper/unit-menu.*: New convenience object + + * src/desktop.c (sp_desktop_destroy): Destroy first eventcontext, + then selection + + * src/draw-context.c: Make silent + + * src/file.c (sp_file_import_ok): Use "xlink:href" for images + + * src/sp-image.c (sp_image_read_attr): Use "xlink:href" + (sp_image_repr_read_image): Ditto + + * src/svg/svg.h: Use bitfield for units + +2000-10-08 Lauris Kaplinski <lauris@helixcode.com> + + * src/dialogs/object-properties.c: Do not keep CSS objects, so + fill & stroke do not overwrite each other settings + +2000-10-08 Frank Felfe <innerspace@iname.com> + + * glade/align.glade: Improvements + + * glade/object_props.glade: New layout + + * src/sp-ruler.*: New files, implementing wrapper for Gtk rulers + + * src/sp-metrics.*: Default metrics, ruler metrics + + * src/desktop.c (sp_desktop_init): use ruler wrappers + +2000-10-07 Lauris Kaplinski <lauris@helixcode.com> + + * src/desktop.c (sp_desktop_realize): Zoom to page on first display + + * src/document-undo.c (sp_document_done): Limit undo to 128 levels + + * src/document.c (sp_document_new): Set docbase & docname before + creating object tree + + * src/sp-image.c (sp_image_repr_read_image): Find right root repr + + * src/sp-shape.c (sp_shape_paint): Use right stroke width + + * src/dialogs/export.c (sp_export_do_export): use ::paint() method + + * src/xml/repr-io.c (sp_repr_svg_read_node): Return on comment and text + nodes + + * src/xml/repr.c (sp_repr_document): Implement + +2000-10-06 Lauris Kaplinski <lauris@helixcode.com> + + * glade/document.glade: Page setup dialog + + * src/dialogs/document-properties.c: Implement page + setup dialog + + * src/desktop.*: Keep page rectangle in SPDesktop + + * src/sp-root.c: Update page rectangle + + * src/file.c (sp_file_print_to_printer): gnome_print_bgeinpage () + Remove FRGBA creation + + * src/dialogs/export.c (sp_export_do_export): gnome_print_beginpage () + + * glade/sodipodi.glade: Add document & xml tree to properties menu + + * src/interface.c (sp_create_window): Remove ugly buttons + + * src/mdi-ui.*: Removed + * src/dialogs/object-fill.*, object-stroke.*: Removed + +2000-10-05 Lauris Kaplinski <lauris@helixcode.com> + + * src/helper/canvas-grid.*: Grid item for canvas + + * src/sp-namedview.c: Use & update grid + + * src/desktop-snap.c: Snap to grid + +2000-10-04 Frank Felfe <innerspace@iname.com> + + * glade/transformation.glade: Improved dialog + + * glade/*.xpm: New icons + + * src/dialogs/transformation.*: Improved dialog + + * src/selection-chemistry.*: new transformation functions + + * src/sp-metrics.*: New files + +2000-10-04 Lauris Kaplinski <lauris@helixcode.com> + + * src/nodepath.c: #define reasonable knot colors + (sp_nodepath_selected_nodes_move): Implement snapping + (node_ctrl_request): Implement snapping + +2000-10-03 Lauris Kaplinski <lauris@helixcode.com> + + * src/nodepath.c (update_repr): Call sp_document_done () + + * src/dialogs/desktop-properties.*: Use new dialog layout + + * glade/desktop.glade: Use new dialog layout + + * src/sp-guide.*: "color" and "hicolor" attributes + + * src/sp-namedview.*: Bunch of new attributes + + * src/desktop-events.c (sp_dt_guide_event): Use guide colors + (sp_dt_ruler_event): Use guide colors + +2000-10-02 Lauris Kaplinski <lauris@helixcode.com> + + * src/knot.c (sp_knot_set_flag): Implement different outlines + (sp_knot_update_ctrl): New function to set SPCtrl colors + + * src/nodepath.*: Mostly rewritten + + * src/node-context.*: Use new SPNodePath + +2000-09-30 Yukihiro Nakai <nakai@gnome.gr.jp> + + * configure.in ALL_LINGUAS: Add Japanese 'ja' + +2000-09-21 Pablo Saratxaga <pablo@mandrakesoft.com> + + * configure.in: ALL_LINGUAS: added 'ca' for Catalan translation. + +2000-09-18 Lauris Kaplinski <lauris@helixcode.com> + + * src/dialogs/object-properties.*: New combined fill + stroke + + transformation dialog by Frank Felfe + + * glade/*.xpm: Lots of new icons etc. by Frank Felfe + + * src/desktop.*, interface.c, select-context.c, seltrans.c: Changes + + * selection-chemistry.* (sp_selection_apply_affine): New function by + Frank Felfe + (sp_selection_remove_transforms): Same + +2000-09-17 Lauris Kaplinski <lauris@helixcode.com> + + * src/draw-context.c (sp_draw_context_root_handler): Handle Ctrl + and fix an missing segment, while continuing Ctrl-aligned line. + + * src/ellipse-context.c (sp_ellipse_read-attr): Use sodipodi namespace + for "start", "end". Replace "closed" with "open", so closed is default + + * src/sp-ellipse_context.c: Ditto + + * src/sp-object.c: #define SP_OBJECT_CLONED_FLAG + + * src/sp-root.c (sp_root_read_attr): Tru to read "viewBox" attribute. + The implementation is hackish, but it works, until document size is fixed + + * src/display/canvas-shape.c (sp_canvas_shape_update): Calculate correct + line thickness + +2000-09-16 Lauris Kaplinski <lauris@helixcode.com> + + * src/draw-context.*: Freehand should work OK now + + * src/display/canvas-shape.c (sp_canvas_shape_render): Test, if + archetype has stroke SVP + + * src/display/path-archetype.c (sp_path_at_new): Disturb Vpaths + before stroking - this removes ugly random crashing in art_uta_from_svp + +2000-09-15 Lauris Kaplinski <lauris@helixcode.com> + + * src/sp-line.h, sp-line.c: <line> item + + * src/sp-polyline.h, sp-polyline.c: <polyline> item + + * src/sp-polygon.c, sp-polygon.h: <polygon> item + + * src/sp-object-repr.c (sp_object_type_lookup): Register new item types + + * src/helper/curve.c (sp_curve_closepath): Add point, if end != start + +2000-09-14 Lauris Kaplinski <lauris@helixcode.com> + + * src/Makefile.am: Define GNOME_PIXMAPDIR + + * src/main.c (main): Set default icon + + * interface.c (sp_create_window): Set icon + + * src/sp-text.c (sp_text_set_shape): Use helvetica for unknown font + + * src/helper/art-utils.* (art_svp_translate): New function + (art_uta_from_svp_translated): Use art_svp_translate () + + * draw-context.*: Use experimental spline fitting for freehand + lines, during drawing generate many small lines, instead of + one big. + +2000-09-13 Lauris Kaplinski <lauris@helixcode.com> + + * desktop-snap.c, desktop-snap.h (sp_desktop_horizontal_snap): + Implemented + (sp_desktop_vertical_snap): Ditto + (sp_desktop_free_snap): Rewrote, using horiz. and vert. snapping + (sp-desktop_vector_snap): Implemented + + * rect-context.c, rect-context.h: Rewrote event handling stuff, + so it now supports (hopefully) all snapping chemistry + + * sp-namedview.c (sp_namedview_build, sp_namedview_read_arg): + Implemented arguments "snaptoguides" and "guidetolerance" + + * sp-rect.c (sp_rect_set_arg): Implemented Gtk+ argument setting + + * ellipse-context.c, ellipse-context.h: Ditto + +2000-09-12 Lauris Kaplinski <lauris@helixcode.com> + + * src/*.c, glade/desktop.*, src/dialog/desktop-properties.*: + Hacked together a preliminary guideline support stuff. It + sucks really for anything other than scaling, but now we have + at least something to improve in future. + +2000-09-09 Lauris Kaplinski <lauris@helixcode.com> + + * sodipodi.c, sodipodi-private.h: New filed. Bye-bye to + Gnome-MDI interface, instead we have much more convenient + sodipodi object. + This introduced many changes mostly everywhere. + + * src/helper/gt1*, src/helper/parseAFM.*: removed gt1 library, + as it is now accessible through gnome-print + + * Makefile.am, src/Makefile.am, glade/Makefile.am: We'll pass + 'make distcheck' again + + * src/sp-item-group.c: Children update, if parent's style is + changed + +2000-09-06 Lauris Kaplinski <lauris@helixcode.com> + + * glade/*: Added Frank Felfe new icons and toolbopx stuff + + * src/toolbox.*: Toolbox stuff (Frank Felfe) + + * src/sp-item-transform.*: Same + +2000-08-24 Alastait McKinstry <mckinstry@computer.org> + + * configure.in: ALL_LINGUAS: added 'ga' for Irish translation. + +2000-08-19 Lauris Kaplinski <lauris@helixcode.com> + + * glade/transformation.glade: Transformation dialog (Frank Felfe) + + * src/dilaogs/transfomration.*: Transfomration dialog (Frank Felfe) + + * src/mdi-ui.c: Added transformation dialog + + * po/POTFILES.in: Added glade/transformation.c + +2000-08-18 Lauris Kaplinski <lauris@helixcode.com> + + * configure.in: Version 0.19 + * Makefile.am: Comment out dist-hook + * sodipodi.spec.in: Build 0 + + * glade/align.glade: Added alignment base selection + + * po/POTFILES.in: Added src/dialogs/align.c + + * src/desktop.c: Display page borders + + * src/sp-text.c: break text at newlines + + * src/dialogs/align.c: New algorithm plus alignment base selection + +2000-08-15 Lauris Kaplinski <lauris@helixcode.com> + + * glade/stroke.glade: Moved dialog to separate file + * Added Frank Felfe icons, that I forgot last time + +2000-08-10 Lauris Kaplinski <lauris@helixcode.com> + + * src/main.c (main): Commented out arg parsing - it segfaulted for me + + * glade/align.glade + * glade/al* + * src/dialogs/align.*: Alignmeant dialog by Frank Felfe <innerspace@iname.com> + + * configure.in: Need bonobo >= 0.17 + + * src/bonobo/embeddable-document.c (sp_bonobo_stream_read): Bonobo API change + +2000-08-10 Lauris Kaplinski <lauris@helixcode.com> + + * doc/architecture.txt: First step in generating developers documentation + +2000-08-09 Lauris Kaplinski <lauris@helixcode.com> + + * glade/*.xpm: Added Frank Felfe's node editing icons and node dialog + + * src/sp-ellipse.c (sp_ellipse_description): return "Ellipse" + + * src/sp-text.c (sp_text_description): Return either contents or "Text" if NULL + +2000-08-07 Lauris Kaplinski <lauris@helixcode.com> + + * configure.in: Require gnome-print >= 0.21 + + * glade/text-dialog.glade: New layout, suitable for gnome-font-selection + + * src/Makefile.am: Add libunicode + + * src/sp-chars.h: + * src/sp-chars.c: + * src/sp-text.h: + * src/sp-text.c: Use gnome-font instead of wrapper + + * src/dialogs/text-edit.c: Use new GnomeFontSelection and GnomeFontPreview + +2000-08-03 Michael Meeks <michael@helixcode.com> + + * configure.in: update for BonoboX + +2000-07-01 Lauris Kaplinski <lauris@helixcode.com> + + * src/sp-namedview.c (and everywhere else): Guides are visible, + although not functional yet. + + * src/desktop.c (sp_desktop_new): Use document + namedview + combination for creating desktop. + +2000-07-01 Lauris Kaplinski <lauris@helixcode.com> + + * src/file.c (sp_do_file_print_preview): Don't use FRGBA, as + print preview can handle alpha itself + + * src/sp-object-group.h + * src/object-group.c: Added SPObjectGroup to handle groups of + invisible objects (such as NamedViews) + + * src/sp-namedview.h: + * src/sp-namedview.c: Extends SPObjectGroup + + * src/xml/sp-repr.c (sp-repr-destroy): fix hash table destroy + +2000-06-21 Chema Celorio <chema@celorio.com> + + * src/file.c (sp_do_file_print_preview): added print preview + stuff. new function + (sp_print_preview_destroy_cb): new function + (sp_file_print_preview): new function + modified the menu to include a print preview item + +2000-06-21 Lauris Kaplinski <lauris@helixcode.com> + + * src/selection.c (sp_selection_update_statusbar): Added original + idea of printing sp_image_description (), if single item is + selected + + * glade/*.xpm: Jeff's icons. I need to find a way to use png + variants, xpm sucks + +2000-06-21 Chema Celorio <chema@celorio.com> + + * src/desktop.c (sp_desktop_set_status): it was #if'ed out, + reenabel it. + + * src/selection.c (SP_SELECTION_C): added debug messages and macro + If lauris does not like them I will take them away. + (sp_selection_update_statusbar): new function + + * src/mdi.c (sp_mdi_app_created): add statusbar to main window. + +2000-06-11 Benedikt Roth <Benedikt.Roth@gmx.net> + + * configure.in: Added de to ALL_LINGUAS. + * sodipodi.desktop: Added German translations + +2000-06-05 Lauris Kaplinski <lauris@kaplinski.com> + + * src/dialogs/export.c (sp_export_do_export): use pixbuf context, + instead of rbuf + +2000-06-05 Michael Meeks <michael@helixcode.com> + + * src/dialogs/export.c (sp_export_do_export): s/rbuf_rgba_new/rbuf_new/ + + * src/bonobo/embeddable-document.c: kill a load of redundant prototypes, + and re-order to suit. (sp_embeddable_document_ps_save), + (sp_embeddable_document_ps_load): fix for new stream API. + (sp_embeddable_document_factory): update stream constructor. + +2000-05-14 Lauris Kaplinski <lauris@ariman.ee> + + * src/knot.*: Lot of rearranging, new signals + + * src/seltrans.c: Changes induced by new knot signalling + Added fake snapping to PostScript points (remove it, if you dare ;) + +2000-05-13 Lauris Kaplinski <lauris@ariman.ee> + + * src/document-private.h: Removed width and height attributes + + * src/sp-root.c: Added "width" and "height" readable attributes + +2000-05-12 Lauris Kaplinski <lauris@ariman.ee> + + * src/xml/repr.h: A bit rearranging, added SPReprDoc, induces + changes almost everywhere else + + * src/document-private.h: Hide all document internal structure + +2000-05-12 Lauris Kaplinski <lauris@ariman.ee> + + * src/sp-namedview.*: Implemented skeleton + + * src/sp-guide.*: Implemented skeleton + + * src/sp-object-repr.c: Added NamedView and Guide + + * src/helper/sp-guide.*: Changed name to SPGuideLine + +2000-05-11 Lauris Kaplinski <lauris@ariman.ee> + + * src/desktop-events.c: Collected events to separate file + Added guidline and grid positioning skeleton + + * src/helper/sp-guide.*: Guideline implementation + +2000-05-10 Lauris Kaplinski <lauris@ariman.ee> + + * glade/*.xpm: Some new icons (thanks to Jeff Mrochuk) + + * src/knot.*: signals clicked, grabbed, ungrabbed, moved + Many fixes and enhancements + + * src/seltrans.c: Use knots instead of Ctrl canvas items + +2000-05-09 Michael Meeks <michael@helixcode.com> + + * src/bonobo/svg-doc-factory.c (sp_svg_doc_factory_init): add + config.h + OAFIID. + + * Makefile.am: Install oaf data. + + * src/main.c (main): re-tool for oaf. + + * configure.in: Check for oaf. + +2000-05-06 Lauris Kaplinski <lauris@ariman.ee> + + * src/knot.h: Added signals "grab", "ungrab" and "move" + * src/knot.c: Implemented signals, event etc. + +2000-05-05 Lauris Kaplinski <lauris@ariman.ee> + + * src/desktop-handles.h: Added SP_DT_IS_EDITABLE + * src/knot.*: started implementing universal handle object for + all contexts + +2000-05-05 Lauris Kaplinski <lauris@ariman.ee> + + * src/Makefile.am: Define $gladedir, which has been forgotten :) + * src/sp-image.c (sp_image_print): Do it :) + +2000-05-03 Lauris Kaplinski <lauris@ariman.ee> + + * src/main.c: Uncommented line interpreting unknown command-line + arguments as filenames + * src/document-undo.c (sp_document_undo): If attribute is 'id', find + affected object from 'new' instead of 'key' + * src/dialogs/xml-tree.c: Added missing sp_document_done flushes + * src/sp-object.c (sp_object_read_attr): Fixed def-ing repr + id attribute instead of objects one + +2000-05-02 Lauris Kaplinski <lauris@ariman.ee> + + * src/sp-item-group.c (sp_group_build): Check that xml node is + known, before trying to build object from it + +2000-05-02 Lauris Kaplinski <lauris@ariman.ee> + + * src/sp-gradient.*: Implemented skeleton for gradient fills + * src/sp-object-repr.c: Gradient parsing + +2000-05-01 Lauris Kaplinski <lauris@ariman.ee> + + * src/helper/sodipodi-ctrl.c: Fixed bug in ::render, which left + buffer->is_bg untouched + * src/sp-defs.*: New objects, implementing <defs> nodes + * src/sp-group.*: Groups have both item and non-item members + * src/sp-image.c: Changed "src" attribute to "href" + +2000-04-29 Lauris Kaplinski <lauris@ariman.ee> + + * xml/repr.*: Reprs are now GtkObjects + * xml/repr-io.c: Preliminary namespacing (xmlns:sodipodi) + +2000-04-29 Lauris Kaplinski <lauris@ariman.ee> + + * src/dialogs/xml-tree.c (sp_xml_tree_change_attribute_long): + new function to change long attribute (GtkEntry does not like + long strings). Also attribute changing in xml pushes Undo stack. + +2000-04-28 Lauris Kaplinski <lauris@ariman.ee> + + * glade/Makefile.am: Added xml-tree.glade + + * src/dialogs/xml-tree.c (sp_xml_tree_change_attribute): implemented + this + +2000-04-27 Miguel de Icaza <miguel@helixcode.com> + + * glade/Makefile.am: New file. + + * src/dialogs/Makefile.am (gladedir): Define gladedir based on + $datadir + + * Makefile.am: Remove the local install hack stuff. And process + the glade directory. + + * configure.in: Do not define PACKAGE_GLADEDIR based on the output + of gnome-config. Let the Makefile.am compute that value from the + various $prefix settings. + +2000-04-27 Lauris Kaplinski <lauris@ariman.ee> + + * src/dialogs/xml-tree.c: Attribute deletion mostly work + +2000-04-27 Lauris Kaplinski <lauris@ariman.ee> + + * src/dialogs/xml-tree.*: Started implementing direct xml editing + + * glade/xml-tree.glade: XML editing dialogs + +2000-04-26 Lauris Kaplinski <lauris@ariman.ee> + + * helper/curve.c (sp_curve_split): Fixed evil memcpy size bug + +2000-04-24 Lauris Kaplinski <lauris@ariman.ee> + + * src/selection-chemistry.c: Implemented Cut/Copy/Paste + +2000-04-23 Lauris Kaplinski <lauris@ariman.ee> + + * src/document.h: added aspect and clip attributes + + * src/bonobo/embeddable-desktop.c: keep full page always visible + + * src/bonobo/embeddable-document.c: print scaled full page + +2000-04-21 Lauris Kaplinski <lauris@ariman.ee> + + * src/mdi-document.c: extract ACTIVE_DOCUMENT for ACTIVE_DESKTOP + instead of MDIChild + + * glade/sodipodi.glade: Popup menu + + * src/event-context.c: (sp_event_context_private_root_handler) + Popup menu on button 3, if event is not consumed + + * src/zoom-context.c: (sp_zoom_context_root_handler) + Assign zoom_out to Shift+Button1 to free Button3 for popup + + * src/draw-context.c: (sp_draw_context_root_handler) + Invoke parent handler, if event is not consumed + +2000-04-21 Lauris Kaplinski <lauris@ariman.ee> + + * configure.in: removed plugins/Makefile (not yet folks!) + + * src/bonobo/embeddable-document.c (sp_embeddable_document_factory): + switched to original gnome-print-context instead of FRGBA + +2000-04-21 Michael Meeks <michael@helixcode.com> + + * configure.in (have_bonobo): add -lbonobo-print + + * src/bonobo/embeddable-document.c (sp_embeddable_document_factory): + add the print interface. + +2000-04-21 Fatih Demir <kabalak@gmx.net> + + * configure.in : Added tr to ALL_LINGUAS . + + * sodipodi.desktop : Added [tr] .. + +2000-04-20 Lauris Kaplinski <lauris@ariman.ee> + + * glade/sodipodi.glade: toggling rulers and scrollbars on/off + * desktop.c: construct it by hand, borders can be removed + * mdi-desktop.c: new logic for activating desktops (bonobo needed it) + * bonobo/embeddable-document.c: removed MDI refcounting + * bonobo/embeddable-desktop.c: added MDI refcounting, active desktop + management and hiding borders, if not active + +2000-04-20 Andreas Hyden <a.hyden@cyberpoint.se> + + * sodipodi.desktop: Added Swedish translation. + * configure.in: Added sv to ALL_LINGUAS. + +2000-04-19 Lauris Kaplinski <lauris@ariman.ee> + + * configure.in: Added chack for GnomePrintRBuf and GnomePrintFRGBA + * sp-shape.c: if FRGBA is present, do not emulate alpha + * file.c: print via FRGBA, if present + * dialogs/export.c: export via RBuf, if present + * sp-object.c: fixed infinite loop in allocating id-s + +2000-04-17 Lauris Kaplinski <lauris@ariman.ee> + + * src/sp-image.c: completed migration to new gdk-pixbuf + * src/display/canvas-image.c: completed migration + +2000-04-17 Michael Meeks <michael@helixcode.com> + + * src/sp-image.c (sp_image_pixbuf_force_rgba): fix. + (sp_image_bbox): fix. + +2000-04-14 Lauris Kaplinski <lauris@ariman.ee> + + * Makefile.am: fixed .desktop inclusion to distribution + +2000-04-12 Pablo Saratxaga Pablo <pablo@mandrakesoft.com> + + * configure.in (ALL_LINGUAS): Add Danish + +200-04-09 Lauris Kaplinski <lauris@ariman.ee> + + * bonobo/canvas-translator.*: implemented a translator group, which + translates xlib canvas calls to antialiased canvas ones. + +200-04-09 Lauris Kaplinski <lauris@ariman.ee> + + * document.c: Removed bad memory corruption bug in ::destroy + * embeddable-document.c: Added PersistentFile interface + * embeddable-drawing.*: Added BonoboCanvasComponent interface + +200-04-08 Lauris Kaplinski <lauris@ariman.ee> + + * Makefile.am: create sodipodi-bonobo symlink if we use bonobo + * src/sodipodi/*: Added bonobo component, nothing interesting yet + +200-04-07 Lauris Kaplinski <lauris@ariman.ee> + + * sodipodi.gnorba: added this, embeddable document will follow soon + * configure.in: added bonobo check + +200-04-07 Lauris Kaplinski <lauris@ariman.ee> + + * sp-shape.c: It prints now semitransparent shapes, rendering these + to bitmaps. No clipping yet and resolution is hardcoded to 72dpi + +200-04-05 Kjartan Maraas <kmaraas@online.no> + + * no.po: Added no to ALL_LINGUAS. + +2000-04-05 Lauris Kaplinski <lauris@ariman.ee> + + * sp-document.c, sp-file.c, sp-image.c: removed namespace. How to + extract this correctly from libxml? + +2000-04-05 Lauris Kaplinski <lauris@ariman.ee> + + * xml/repr.c: added order_changed_pre callback + * document-undo.c: stacking order changes are now undoable + * sp-document.c, sp-file.c, sp-image.c: added namespace "sodipodi", + still have to do official definition + +2000-04-04 Lauris Kaplinski <lauris@ariman.ee> + + * xml/repr-io.c: save DTD & standard header + * dialogs/object-*: modify default fill & stroke, if nothing selected + +2000-04-04 Lauris Kaplinski <lauris@ariman.ee> + + * selection.*: Added functions to select via reprs (now when we have + unique id-s there isn't any reason thare wasn't such) + +2000-04-02 Lauris Kaplinski <lauris@ariman.ee> + + * xml/repr-io.c: A very quick hack to load real svg code (DTD & stuff). + * sp-shape.c: Fixed bug in exporting open paths, so they are not filled + anymore. + * sp-image.c: We can print semitransparent images, although better do not + stretch these very much + +2000-04-02 Lauris Kaplinski <lauris@ariman.ee> + + * document-undo.c, document.c: Undo should now work! + +2000-04-01 Lauris Kaplinski <lauris@ariman.ee> + + * document.c: Some undoing/redoing works (duplicate & delete) + +2000-04-01 Lauris Kaplinski <lauris@ariman.ee> + + * sp-item-group.c: cleaned up signals, reordering should work now + * hunted memory leaks & removed most obvious ones + +2000-03-31 Lauris Kaplinski <lauris@ariman.ee> + + * Basically completed rewrite, most things do not work + +2000-03-30 Lauris Kaplinski <lauris@ariman.ee> + + * Bumped version number to 0.18 & started rewrite of object system + +2000-03-29 Lauris Kaplinski <lauris@ariman.ee> + + * Modified argument parsing, --without-gui, if present, has to be first + * argument, but otherwise now all GNOME/Gtk args work + * You can also specify multiple files for displaying or printing + +2000-03-28 Lauris Kaplinski <lauris@ariman.ee> + + * Added cute little squirrel to /gnome/apps/Graphics ;-) + * src/desktop.c: Set canvas background to white + * Makefile.am: added samples to tarball + +2000-03-27 Lauris Kaplinski <lauris@ariman.ee> + + * main.c: Applied Yukihiro Nakai FreeBSD patches + * main.c: Set LC_NUMERIC to "C", to avoid localisation of SVG files :-( + +2000-01-25 Lauris Kaplinski <lauris@ariman.ee> + + * dialogs/export.*: a bit better png exporting, still sucks + +2000-01-25 Lauris Kaplinski <lauris@ariman.ee> + + * sp-image.c: Cleanups here and there + * display/canvas-image.c: point method uses alpha, removed SVP-s + +2000-01-23 Lauris Kaplinski <lauris@ariman.ee> + + * helper/art*: functions for rendering into RGBA buffer + * file.*, sp-shape.*, sp-image.*: exporting png bitmaps + +2000-01-23 Lauris Kaplinski <lauris@ariman.ee> + + * Uses SPCurve everywhere + +2000-01-19 Lauris Kaplinski <lauris@ariman.ee> + + * src/helper/sodipodi-ctrl.*: removed aa rendering + +2000-01-18 David Metcalfe (crdjm@sgi.com) + + * Added command line options: + . [ -f ] file to load file at startup + . -p file to print the file without the GUI starting + . -t file to send the print output to the named file + * -t is currently required for -p as I couldn't find a way of creating + a GnomePrinter that goes to the default printer. ?? + * Printing doesn't require that X be started + +2000-01-16 Lauris Kaplinski <lauris@ariman.ee> + + * Bumped version to 0.17 + * Most things, that worked in 0.15 work again + * still looses selections, dialogs suck etc. + +2000-01-14 Lauris Kaplinski <lauris@ariman.ee> + + * Now uses Gnome MDI + * Stroke & fill dialogs almost work for multiple displays + +2000-01-08 Lauris Kaplinski <lauris@ariman.ee> + + * Major rewrite of object system + * Multiple views almost work + * Multiple documents almost work + * Rects, Ellipses, Drawing and Nodes almost work + * Nothing else works ;-( + +1999-12-30 Lauris Kaplinski <lauris@ariman.ee> + + * Bumped version number to 0.15 + * Node editing works enough to be usable + * Images use relative paths, if possible + * Text can show accented chars + +1999-12-25 Lauris Kaplinski <lauris@ariman.ee> + + * Increased version number to 0.14 + * Preliminary node editing mode + * Stacking order can be changed again + * Convert to Curves, Combine & Separate functions + * Corrected repr refcounting - much fewer segfaults now + * Countless bugfixes here & there + +1999-12-23 Lauris Kaplinski <lauris@ariman.ee> + + * Major cleanup - most things work better now, but some + don't work at all :-( + * Implemented SPChars class + * Text editing + * svg importing + * loading, saving and printing almost works + +1999-09-02 Lauris Kaplinski <lauris@ariman.ee> + + * Rewrote many things and hacked up the rest. + Removed Gdome dependency, as I had neither time nor patience + to mess with it. As a temporary solution I've created SPRepr objects, + which can contain xml data. + Added functions: group, ungroup, delete, duplicate, to_front, + to_back, up, down + Freehand drawing almost works although need some cleanup + Outlines are implemented, although not usable yet + Rect can handle round corners i hope + Ellipse can be sliced + +# Local Variables: +# tab-width:8 +# indent-tabs-mode:t +# End: +# vim: tabstop=4:noexpandtab:shiftwidth=4 diff --git a/doc/Makefile.am b/doc/Makefile.am new file mode 100644 index 000000000..ef23aed1a --- /dev/null +++ b/doc/Makefile.am @@ -0,0 +1,16 @@ +EXTRA_DIST = API \ + README.document \ + WISHLIST \ + architecture.svg \ + architecture.txt \ + class-hierarchy.dia \ + coordinates.txt \ + fonts.txt \ + inkscape-shadow.README \ + keys.README \ + keys.xml \ + keys.fr.xml \ + keys-svg.xsl \ + keys-html.xsl \ + keys.html \ + keys.fr.html diff --git a/doc/NewAppArchitecture/01-title.svg b/doc/NewAppArchitecture/01-title.svg new file mode 100644 index 000000000..3c53650a5 --- /dev/null +++ b/doc/NewAppArchitecture/01-title.svg @@ -0,0 +1,216 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> +<svg + xmlns:xml="http://www.w3.org/XML/1998/namespace" + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://web.resource.org/cc/" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + sodipodi:docname="01-title.svg" + sodipodi:docbase="/home/bryce/src/Inkscape/InkAppPresent" + height="480.00000pt" + width="640.00000pt" + inkscape:version="0.40+cvs" + sodipodi:version="0.32" + id="svg1"> + <defs + id="defs3"> + <linearGradient + id="linearGradient1222"> + <stop + id="stop1223" + offset="0.0000000" + style="stop-color:#0081ac;stop-opacity:1.0000000;" /> + <stop + id="stop1722" + offset="0.29347107" + style="stop-color:#006d91;stop-opacity:0.62745100;" /> + <stop + id="stop1224" + offset="1.0000000" + style="stop-color:#ffffff;stop-opacity:0.0000000;" /> + </linearGradient> + <linearGradient + id="linearGradient1309" + xlink:href="#linearGradient1222" /> + <linearGradient + id="linearGradient1673"> + <stop + id="stop1674" + offset="0" + style="stop-color:#000;stop-opacity:1;" /> + <stop + id="stop1675" + offset="1" + style="stop-color:#fff;stop-opacity:1;" /> + </linearGradient> + <linearGradient + y2="1.0227273" + x2="0.49466193" + y1="-0.13636364" + x1="0.49466193" + id="linearGradient1677" + xlink:href="#linearGradient1222" + inkscape:collect="always" /> + </defs> + <sodipodi:namedview + inkscape:current-layer="svg1" + inkscape:window-y="136" + inkscape:window-x="211" + inkscape:window-height="664" + inkscape:window-width="919" + inkscape:cy="290.64195" + inkscape:cx="320.00000" + inkscape:zoom="0.75625000" + inkscape:pageshadow="2" + inkscape:pageopacity="1.0" + borderopacity="1.0" + bordercolor="#666666" + pagecolor="#ffffff" + id="base" /> + <metadata + id="metadata4"> + <rdf:RDF + id="RDF5"> + <cc:Work + id="Work6" + rdf:about=""> + <dc:format + id="format7">image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" + id="type9" /> + </cc:Work> + </rdf:RDF> + </metadata> + <rect + y="-12.603310" + x="0.0000000" + height="125.00000" + width="800.00000" + id="rect1051" + style="fill:url(#linearGradient1677);fill-opacity:0.75000000;fill-rule:evenodd;stroke:none;stroke-width:3.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;" /> + <g + transform="matrix(1.181942,0.000000,0.000000,1.181942,-52.09282,-16.43612)" + id="g1046"> + <path + id="path1178" + d="M 532.02195,122.72701 L 532.02195,155.32955 L 523.15965,155.32955 L 523.15965,146.62838 C 521.11859,150.10169 518.57628,152.66191 515.53269,154.30905 C 512.52485,155.99199 508.81880,156.83346 504.41453,156.83346 C 498.90019,156.83346 494.49590,155.16842 491.20164,151.83834 C 487.94317,148.57989 486.31394,144.19350 486.31394,138.67916 C 486.31394,132.26968 488.35495,127.43570 492.43699,124.17721 C 496.48320,120.88297 502.55253,119.23584 510.64500,119.23580 L 523.15965,119.23580 L 523.15965,118.32272 C 523.15960,114.02588 521.81683,110.67791 519.13133,108.27877 C 516.40994,105.95135 512.61437,104.78761 507.74461,104.78756 C 504.66516,104.78761 501.65735,105.16359 498.72117,105.91549 C 495.78496,106.70330 492.97409,107.88494 490.28855,109.46041 L 490.28855,100.75924 C 493.54700,99.434427 496.69804,98.431824 499.74168,97.751428 C 502.78528,97.106955 505.77518,96.784690 508.71140,96.784631 C 516.51736,96.784690 522.35394,98.933125 526.22117,103.22994 C 530.08831,107.52687 532.02190,114.02588 532.02195,122.72701" + style="font-size:110.00000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#000000;fill-opacity:1.0000000;stroke:none;stroke-width:3.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Arial;text-anchor:start;writing-mode:lr;" + transform="translate(-8.025000,0.000000)" /> + <path + id="text1044" + d="M 640.35510,124.39205 L 640.35510,129.01119 L 599.48107,129.01119 C 599.83913,135.45653 601.68321,140.38002 605.01330,143.78170 C 608.30755,147.14760 612.90878,148.83054 618.81701,148.83053 C 622.21867,148.83054 625.51293,148.40085 628.69982,147.54147 C 631.92243,146.64629 635.10928,145.32143 638.26037,143.56686 L 638.26037,152.42916 C 635.07347,153.86146 631.81501,154.95358 628.48498,155.70553 C 625.11905,156.45748 621.71737,156.83346 618.27990,156.83346 C 609.61451,156.83346 602.77533,154.16582 597.76232,148.83053 C 592.71349,143.53106 590.18908,136.35171 590.18908,127.29244 C 590.18908,117.94678 592.58816,110.51677 597.38635,105.00241 C 602.14870,99.523945 608.59401,96.784690 616.72228,96.784631 C 623.99113,96.784690 629.75609,99.255391 634.01720,104.19674 C 638.24241,109.17400 640.35504,115.90577 640.35510,124.39205" + style="font-size:110.00000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#000000;fill-opacity:1.0000000;stroke:none;stroke-width:3.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Arial;text-anchor:start;writing-mode:lr;" + transform="translate(-8.025000,0.000000)" /> + <path + id="path1182" + d="M 631.43908,121.65280 C 631.40323,116.53239 630.04255,112.43246 627.35705,109.35299 C 624.70727,106.30942 621.19816,104.78761 616.82970,104.78756 C 611.85247,104.78761 607.87786,106.25571 604.90588,109.19186 C 601.93386,112.16391 600.21511,116.33545 599.74963,121.70651 L 631.43908,121.65280" + style="font-size:110.00000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#ffffff;fill-opacity:1.0000000;stroke:none;stroke-width:3.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Arial;text-anchor:start;writing-mode:lr;" + transform="translate(-8.025000,0.000000)" /> + <path + id="path1181" + d="M 545.94274,146.73580 L 545.94274,177.08248 L 537.02672,177.08248 L 537.02672,98.181116 L 545.94274,98.181116 L 545.94274,106.88229 C 547.80470,103.44484 550.16798,100.92043 553.03258,99.309045 C 555.89714,97.626160 559.29883,96.784690 563.23766,96.784631 C 569.82616,96.784690 575.17935,99.541849 579.29723,105.05612 C 583.41501,110.57048 585.47393,117.82145 585.47399,126.80905 C 585.47393,135.79670 583.41501,143.04766 579.29723,148.56198 C 575.17935,154.07630 569.82616,156.83346 563.23766,156.83346 C 559.29883,156.83346 555.89714,155.99199 553.03258,154.30905 C 550.16798,152.66191 547.80470,150.13750 545.94274,146.73580" + style="font-size:110.00000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#000000;fill-opacity:1.0000000;stroke:none;stroke-width:3.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Arial;text-anchor:start;writing-mode:lr;" + transform="translate(-8.025000,0.000000)" /> + <path + id="path1179" + d="M 514.29734,126.59420 C 507.10005,126.59423 502.12284,127.47151 499.36570,129.22604 C 496.57272,130.94481 495.17623,133.89891 495.17625,138.08834 C 495.17623,141.41843 496.23255,144.06817 498.34519,146.03756 C 500.38619,147.97116 503.19706,148.93796 506.77781,148.93795 C 511.71919,148.93796 515.67589,147.09388 518.64793,143.40573 C 521.65570,139.71759 523.15960,134.81200 523.15965,128.68893 L 523.15965,126.59420 L 514.29734,126.59420" + style="font-size:110.00000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#ffffff;fill-opacity:1.0000000;stroke:none;stroke-width:3.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Arial;text-anchor:start;writing-mode:lr;" + transform="translate(-8.025000,0.000000)" /> + <path + id="path1177" + d="M 481.48087,100.38326 L 481.48087,109.13815 C 478.97431,107.67010 476.44990,106.56007 473.90762,105.80807 C 471.40108,105.12778 468.85876,104.78761 466.28067,104.78756 C 460.47986,104.78761 455.98605,106.70330 452.79923,110.53463 C 449.61236,114.40186 448.01894,119.82666 448.01895,126.80905 C 448.01894,133.79149 449.61236,139.21629 452.79923,143.08346 C 455.98605,146.91485 460.47986,148.83054 466.28067,148.83053 C 468.85876,148.83054 471.40108,148.47246 473.90762,147.75631 C 476.44990,147.00437 478.97431,145.91224 481.48087,144.47994 L 481.48087,153.12740 C 479.01012,154.34485 476.44990,155.25794 473.80020,155.86666 C 471.11462,156.51119 468.28585,156.83346 465.31387,156.83346 C 457.14979,156.83346 450.66868,154.11211 445.87051,148.66940 C 441.07233,143.26251 438.67325,135.97573 438.67325,126.80905 C 438.67325,117.49919 441.10814,110.17660 445.97794,104.84127 C 450.77610,99.470234 457.40044,96.784690 465.85098,96.784631 C 468.60811,96.784690 471.29366,97.071148 473.90762,97.644006 C 476.52151,98.288595 479.04593,99.201680 481.48087,100.38326" + style="font-size:110.00000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#000000;fill-opacity:1.0000000;stroke:none;stroke-width:3.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Arial;text-anchor:start;writing-mode:lr;" + transform="translate(-8.025000,0.000000)" /> + <path + id="path1176" + d="M 431.22946,99.846155 L 431.22946,108.76217 C 428.72291,107.40154 426.10898,106.38103 423.38766,105.70065 C 420.70208,105.02036 417.89121,104.68019 414.95504,104.68014 C 410.55072,104.68019 407.23855,105.39633 405.01852,106.82858 C 402.83426,108.22511 401.74214,110.35564 401.74215,113.22018 C 401.74214,115.40446 402.52990,117.12321 404.10543,118.37643 C 405.68094,119.59391 408.84988,120.77555 413.61227,121.92135 L 416.67379,122.61959 C 422.97584,124.05192 427.46965,126.07503 430.15524,128.68893 C 432.80493,131.26708 434.12980,134.88361 434.12985,139.53854 C 434.12980,144.87383 432.12460,149.08119 428.11422,152.16061 C 424.17539,155.27584 418.71478,156.83346 411.73239,156.83346 C 408.83198,156.83346 405.82417,156.52910 402.70895,155.92037 C 399.55790,155.31165 396.22782,154.41647 392.71872,153.23483 L 392.71872,143.56686 C 396.01298,145.35723 399.25354,146.70000 402.44039,147.59518 C 405.62723,148.49037 408.79617,148.93796 411.94723,148.93795 C 416.13666,148.93796 419.35931,148.16810 421.61520,146.62838 C 423.87102,145.16029 424.99895,143.04766 424.99899,140.29049 C 424.99895,137.71238 424.17539,135.74298 422.52829,134.38229 C 420.91692,133.02163 417.35410,131.71467 411.83981,130.46139 L 408.72457,129.70944 C 403.21024,128.49201 399.23563,126.63004 396.80075,124.12350 C 394.36584,121.54541 393.14840,118.05420 393.14840,113.64987 C 393.14840,108.27882 394.93876,104.12518 398.51950,101.18893 C 402.13602,98.252787 407.27436,96.784690 413.93454,96.784631 C 417.19297,96.784690 420.29030,97.053244 423.22653,97.590295 C 426.09107,98.091655 428.75871,98.843607 431.22946,99.846155" + style="font-size:110.00000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#000000;fill-opacity:1.0000000;stroke:none;stroke-width:3.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Arial;text-anchor:start;writing-mode:lr;" + transform="translate(-8.025000,0.000000)" /> + <path + id="path1175" + d="M 342.80086,75.944788 L 351.71688,75.944788 L 351.71688,122.83444 L 378.25008,98.181116 L 389.63680,98.181116 L 360.90145,124.92916 L 390.81844,155.32955 L 379.21688,155.32955 L 351.71688,127.39987 L 351.71688,155.32955 L 342.80086,155.32955 L 342.80086,75.944788" + style="font-size:110.00000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#000000;fill-opacity:1.0000000;stroke:none;stroke-width:3.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Arial;text-anchor:start;writing-mode:lr;" + transform="translate(-8.025000,0.000000)" /> + <path + id="path1174" + d="M 338.47858,120.84713 L 338.47858,155.32955 L 329.61628,155.32955 L 329.61628,121.16940 C 329.61624,115.72673 328.61363,111.66261 326.60847,108.97701 C 324.60322,106.29152 321.61331,104.94874 317.63874,104.94869 C 312.84054,104.94874 309.04497,106.57797 306.25202,109.83639 C 303.49484,113.05909 302.11626,117.46338 302.11628,123.04928 L 302.11628,155.32955 L 293.14655,155.32955 L 293.14655,98.181116 L 302.11628,98.181116 L 302.11628,107.04342 C 304.22889,103.60597 306.73540,101.04575 309.63581,99.362756 C 312.50037,97.644064 315.81254,96.784690 319.57233,96.784631 C 325.80276,96.784690 330.51142,98.807800 333.69831,102.85397 C 336.88511,106.93605 338.47853,112.93376 338.47858,120.84713" + style="font-size:110.00000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#000000;fill-opacity:1.0000000;stroke:none;stroke-width:3.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Arial;text-anchor:start;writing-mode:lr;" + transform="translate(-8.025000,0.000000)" /> + <path + id="path1173" + d="M 278.57604,79.167444 L 288.29772,79.167444 L 288.29772,155.32955 L 278.57604,155.32955 L 278.57604,79.167444" + style="font-size:110.00000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#000000;fill-opacity:1.0000000;stroke:none;stroke-width:3.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Arial;text-anchor:start;writing-mode:lr;" + transform="translate(-8.025000,0.000000)" /> + <path + id="path1180" + d="M 576.23570,126.80905 C 576.23566,119.89827 574.87498,114.47347 572.15367,110.53463 C 569.46809,106.63169 565.77994,104.68019 561.08922,104.68014 C 556.39844,104.68019 552.71029,106.63169 550.02477,110.53463 C 547.30340,114.47347 545.94272,119.89827 545.94274,126.80905 C 545.94272,133.71987 547.30340,139.14467 550.02477,143.08346 C 552.71029,146.98646 556.39844,148.93796 561.08922,148.93795 C 565.77994,148.93796 569.46809,146.98646 572.15367,143.08346 C 574.87498,139.14467 576.23566,133.71987 576.23570,126.80905" + style="font-size:110.00000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#ffffff;fill-opacity:1.0000000;stroke:none;stroke-width:3.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Arial;text-anchor:start;writing-mode:lr;" + transform="translate(-8.025000,0.000000)" /> + <path + id="text1805" + d="M 529.07239,167.42212 C 529.07238,166.18515 528.83475,165.22486 528.35950,164.54126 C 527.87121,163.86419 527.19087,163.52564 526.31848,163.52563 C 525.45259,163.52564 524.77876,163.86419 524.29700,164.54126 C 523.80871,165.22486 523.56457,166.18515 523.56458,167.42212 C 523.56457,168.65259 523.80871,169.60637 524.29700,170.28345 C 524.77876,170.96704 525.45259,171.30884 526.31848,171.30884 C 527.19087,171.30884 527.87121,170.96704 528.35950,170.28345 C 528.83475,169.60637 529.07238,168.65259 529.07239,167.42212 M 530.69348,171.44556 C 530.69347,173.21639 530.32238,174.53149 529.58020,175.39087 C 528.83149,176.25675 527.69217,176.68969 526.16223,176.68970 C 525.58931,176.68969 525.05220,176.64412 524.55090,176.55298 C 524.04309,176.46183 523.55481,176.32511 523.08606,176.14282 L 523.08606,174.48267 C 523.55481,174.74959 524.02356,174.94816 524.49231,175.07837 C 524.95455,175.20857 525.42329,175.27368 525.89856,175.27368 C 526.95975,175.27368 527.75402,174.98397 528.28137,174.40454 C 528.80871,173.81860 529.07238,172.93319 529.07239,171.74829 L 529.07239,170.90845 C 528.74035,171.52043 528.31392,171.97616 527.79309,172.27563 C 527.27225,172.58162 526.64725,172.73462 525.91809,172.73462 C 524.71366,172.73462 523.74361,172.24959 523.00793,171.27954 C 522.26575,170.30949 521.89465,169.02369 521.89465,167.42212 C 521.89465,165.81405 522.26575,164.52499 523.00793,163.55493 C 523.74361,162.57838 524.71366,162.09010 525.91809,162.09009 C 526.64725,162.09010 527.27225,162.24309 527.79309,162.54907 C 528.31392,162.84856 528.74035,163.30755 529.07239,163.92603 L 529.07239,162.34399 L 530.69348,162.34399 L 530.69348,171.44556 M 513.71106,163.93579 C 513.52876,163.82512 513.33019,163.74700 513.11536,163.70142 C 512.90051,163.64283 512.66288,163.61353 512.40247,163.61353 C 511.49100,163.61353 510.79113,163.92603 510.30286,164.55103 C 509.81457,165.18254 509.57043,166.08749 509.57043,167.26587 L 509.57043,172.73462 L 507.93958,172.73462 L 507.93958,162.34399 L 509.57043,162.34399 L 509.57043,163.95532 C 509.90897,163.32382 510.35168,162.85507 510.89856,162.54907 C 511.43892,162.24309 512.09973,162.09010 512.88098,162.09009 C 512.99165,162.09010 513.11535,162.09986 513.25208,162.11938 C 513.38228,162.13242 513.53202,162.15520 513.70129,162.18774 L 513.71106,163.93579 M 494.87317,163.54517 C 494.00728,163.54518 493.32043,163.89999 492.81262,164.60962 C 492.31132,165.32577 492.06067,166.30559 492.06067,167.54907 C 492.06067,168.79257 492.30806,169.77238 492.80286,170.48853 C 493.31067,171.19816 494.00077,171.55298 494.87317,171.55298 C 495.73254,171.55298 496.41613,171.19491 496.92395,170.47876 C 497.42524,169.76262 497.67590,168.78606 497.67590,167.54907 C 497.67590,166.31861 497.42524,165.34530 496.92395,164.62915 C 496.41613,163.90650 495.73254,163.54518 494.87317,163.54517 M 494.87317,162.09009 C 496.27941,162.09010 497.38293,162.57512 498.18372,163.54517 C 498.99100,164.50872 499.39464,165.84335 499.39465,167.54907 C 499.39464,169.24829 498.99100,170.57967 498.18372,171.54321 C 497.38293,172.51978 496.27941,173.00806 494.87317,173.00806 C 493.46040,173.00806 492.35689,172.51978 491.56262,171.54321 C 490.75533,170.57967 490.35168,169.24829 490.35168,167.54907 C 490.35168,165.84335 490.75533,164.50872 491.56262,163.54517 C 492.35689,162.57512 493.46040,162.09010 494.87317,162.09009 M 480.09778,170.38110 L 481.95325,170.38110 L 481.95325,172.73462 L 480.09778,172.73462 L 480.09778,170.38110 M 472.07043,167.10962 L 472.07043,167.94946 L 464.63879,167.94946 C 464.70390,169.12134 465.03918,170.01652 465.64465,170.63501 C 466.24361,171.24699 467.08020,171.55298 468.15442,171.55298 C 468.77290,171.55298 469.37186,171.47485 469.95129,171.31860 C 470.53722,171.15584 471.11665,170.91496 471.68958,170.59595 L 471.68958,172.20728 C 471.11014,172.46769 470.51769,172.66626 469.91223,172.80298 C 469.30025,172.93970 468.68176,173.00806 468.05676,173.00806 C 466.48124,173.00806 465.23775,172.52303 464.32629,171.55298 C 463.40832,170.58944 462.94934,169.28410 462.94934,167.63696 C 462.94934,165.93775 463.38554,164.58684 464.25793,163.58423 C 465.12382,162.58814 466.29569,162.09010 467.77356,162.09009 C 469.09517,162.09010 470.14334,162.53932 470.91809,163.43774 C 471.68631,164.34270 472.07042,165.56666 472.07043,167.10962 M 470.44934,166.61157 C 470.44282,165.68059 470.19543,164.93515 469.70715,164.37524 C 469.22538,163.82187 468.58736,163.54518 467.79309,163.54517 C 466.88814,163.54518 466.16548,163.81210 465.62512,164.34595 C 465.08475,164.88632 464.77226,165.64478 464.68762,166.62134 L 470.44934,166.61157 M 447.52942,171.17212 L 447.52942,176.68970 L 445.90833,176.68970 L 445.90833,162.34399 L 447.52942,162.34399 L 447.52942,163.92603 C 447.86796,163.30103 448.29764,162.84205 448.81848,162.54907 C 449.33931,162.24309 449.95780,162.09010 450.67395,162.09009 C 451.87186,162.09010 452.84517,162.59140 453.59387,163.59399 C 454.34256,164.59661 454.71691,165.91496 454.71692,167.54907 C 454.71691,169.18319 454.34256,170.50155 453.59387,171.50415 C 452.84517,172.50675 451.87186,173.00806 450.67395,173.00806 C 449.95780,173.00806 449.33931,172.85506 448.81848,172.54907 C 448.29764,172.24959 447.86796,171.79061 447.52942,171.17212 M 453.03723,167.54907 C 453.03722,166.29257 452.78983,165.30624 452.29504,164.59009 C 451.80676,163.88046 451.13618,163.52564 450.28333,163.52563 C 449.43046,163.52564 448.75988,163.88046 448.27161,164.59009 C 447.77681,165.30624 447.52942,166.29257 447.52942,167.54907 C 447.52942,168.80559 447.77681,169.79191 448.27161,170.50806 C 448.75988,171.21769 449.43046,171.57251 450.28333,171.57251 C 451.13618,171.57251 451.80676,171.21769 452.29504,170.50806 C 452.78983,169.79191 453.03722,168.80559 453.03723,167.54907 M 433.97473,167.51001 C 432.66613,167.51001 431.76119,167.66952 431.25989,167.98853 C 430.75207,168.30103 430.49817,168.83814 430.49817,169.59985 C 430.49817,170.20532 430.69022,170.68710 431.07434,171.04517 C 431.44543,171.39673 431.95650,171.57251 432.60754,171.57251 C 433.50598,171.57251 434.22538,171.23722 434.76575,170.56665 C 435.31261,169.89608 435.58605,169.00415 435.58606,167.89087 L 435.58606,167.51001 L 433.97473,167.51001 M 437.19739,166.80688 L 437.19739,172.73462 L 435.58606,172.73462 L 435.58606,171.15259 C 435.21496,171.78410 434.75272,172.24959 434.19934,172.54907 C 433.65246,172.85506 432.97863,173.00806 432.17786,173.00806 C 431.17525,173.00806 430.37447,172.70532 429.77551,172.09985 C 429.18306,171.50741 428.88684,170.70988 428.88684,169.70728 C 428.88684,168.54191 429.25793,167.66301 430.00012,167.07056 C 430.73580,166.47160 431.83931,166.17213 433.31067,166.17212 L 435.58606,166.17212 L 435.58606,166.00610 C 435.58605,165.22486 435.34191,164.61614 434.85364,164.17993 C 434.35884,163.75676 433.66874,163.54518 432.78333,163.54517 C 432.22343,163.54518 431.67655,163.61353 431.14270,163.75024 C 430.60884,163.89348 430.09778,164.10833 429.60950,164.39478 L 429.60950,162.81274 C 430.20194,162.57187 430.77486,162.38958 431.32825,162.26587 C 431.88163,162.14869 432.42525,162.09010 432.95911,162.09009 C 434.37837,162.09010 435.43957,162.48072 436.14270,163.26196 C 436.84582,164.04322 437.19738,165.22486 437.19739,166.80688 M 420.42004,162.74438 L 420.42004,164.33618 C 419.96431,164.06926 419.50532,163.86744 419.04309,163.73071 C 418.58736,163.60702 418.12512,163.54518 417.65637,163.54517 C 416.60168,163.54518 415.78462,163.89348 415.20520,164.59009 C 414.62577,165.29322 414.33606,166.27955 414.33606,167.54907 C 414.33606,168.81861 414.62577,169.80493 415.20520,170.50806 C 415.78462,171.20467 416.60168,171.55298 417.65637,171.55298 C 418.12512,171.55298 418.58736,171.48788 419.04309,171.35767 C 419.50532,171.22095 419.96431,171.02238 420.42004,170.76196 L 420.42004,172.33423 C 419.97082,172.55558 419.50532,172.72160 419.02356,172.83228 C 418.53527,172.94946 418.02095,173.00806 417.48059,173.00806 C 415.99621,173.00806 414.81783,172.51327 413.94543,171.52368 C 413.07304,170.54061 412.63684,169.21574 412.63684,167.54907 C 412.63684,165.85637 413.07955,164.52499 413.96497,163.55493 C 414.83736,162.57838 416.04178,162.09010 417.57825,162.09009 C 418.07954,162.09010 418.56782,162.14218 419.04309,162.24634 C 419.51834,162.36354 419.97733,162.52955 420.42004,162.74438 M 404.12122,162.64673 L 404.12122,164.26782 C 403.66548,164.02044 403.19022,163.83489 402.69543,163.71118 C 402.20715,163.58749 401.69608,163.52564 401.16223,163.52563 C 400.36145,163.52564 399.75923,163.65585 399.35559,163.91626 C 398.95845,164.17017 398.75989,164.55754 398.75989,165.07837 C 398.75989,165.47551 398.90311,165.78801 399.18958,166.01587 C 399.47603,166.23723 400.05220,166.45207 400.91809,166.66040 L 401.47473,166.78735 C 402.62056,167.04778 403.43761,167.41561 403.92590,167.89087 C 404.40767,168.35962 404.64855,169.01717 404.64856,169.86353 C 404.64855,170.83358 404.28397,171.59855 403.55481,172.15845 C 402.83866,172.72485 401.84582,173.00806 400.57629,173.00806 C 400.04895,173.00806 399.50207,172.95272 398.93567,172.84204 C 398.36275,172.73136 397.75728,172.56860 397.11926,172.35376 L 397.11926,170.59595 C 397.71822,170.92147 398.30741,171.16561 398.88684,171.32837 C 399.46626,171.49113 400.04244,171.57251 400.61536,171.57251 C 401.37707,171.57251 401.96301,171.43254 402.37317,171.15259 C 402.78332,170.88566 402.98840,170.50155 402.98840,170.00024 C 402.98840,169.53150 402.83866,169.17342 402.53918,168.92603 C 402.24621,168.67863 401.59842,168.44100 400.59583,168.21313 L 400.02942,168.07642 C 399.02681,167.85507 398.30416,167.51653 397.86145,167.06079 C 397.41874,166.59205 397.19739,165.95728 397.19739,165.15649 C 397.19739,164.17994 397.52291,163.42473 398.17395,162.89087 C 398.83150,162.35703 399.76574,162.09010 400.97668,162.09009 C 401.56913,162.09010 402.13228,162.13893 402.66614,162.23657 C 403.18696,162.32773 403.67199,162.46445 404.12122,162.64673 M 379.83411,158.30103 L 381.45520,158.30103 L 381.45520,166.82642 L 386.27942,162.34399 L 388.34973,162.34399 L 383.12512,167.20728 L 388.56458,172.73462 L 386.45520,172.73462 L 381.45520,167.65649 L 381.45520,172.73462 L 379.83411,172.73462 L 379.83411,158.30103 M 371.02551,166.46509 L 371.02551,172.73462 L 369.41418,172.73462 L 369.41418,166.52368 C 369.41418,165.53411 369.23189,164.79517 368.86731,164.30688 C 368.50272,163.81861 367.95910,163.57447 367.23645,163.57446 C 366.36405,163.57447 365.67395,163.87070 365.16614,164.46313 C 364.66483,165.04908 364.41418,165.84986 364.41418,166.86548 L 364.41418,172.73462 L 362.78333,172.73462 L 362.78333,162.34399 L 364.41418,162.34399 L 364.41418,163.95532 C 364.79830,163.33033 365.25402,162.86484 365.78137,162.55884 C 366.30220,162.24635 366.90441,162.09010 367.58801,162.09009 C 368.72082,162.09010 369.57694,162.45794 370.15637,163.19360 C 370.73579,163.93580 371.02550,165.02629 371.02551,166.46509 M 352.49036,162.34399 L 354.10168,162.34399 L 354.10168,172.73462 L 352.49036,172.73462 L 352.49036,162.34399 M 352.49036,160.45923 C 352.49036,159.02044 352.49036,158.30104 352.49036,158.30103 L 354.10168,158.30103 L 354.10168,160.45923 L 352.49036,160.45923 M 341.81653,170.38110 L 343.67200,170.38110 L 343.67200,172.73462 L 341.81653,172.73462 L 341.81653,170.38110 M 320.94739,162.34399 L 322.55872,162.34399 L 324.58997,170.44946 L 326.60168,162.34399 L 328.50598,162.34399 L 330.52747,170.44946 L 332.53918,162.34399 L 334.16028,162.34399 L 331.58215,172.73462 L 329.67786,172.73462 L 327.55872,164.21899 L 325.42981,172.73462 L 323.52551,172.73462 L 320.94739,162.34399 M 300.04895,162.34399 L 301.66028,162.34399 L 303.69153,170.44946 L 305.70325,162.34399 L 307.60754,162.34399 L 309.62903,170.44946 L 311.64075,162.34399 L 313.26184,162.34399 L 310.68372,172.73462 L 308.77942,172.73462 L 306.66028,164.21899 L 304.53137,172.73462 L 302.62708,172.73462 L 300.04895,162.34399 M 279.15051,162.34399 L 280.76184,162.34399 L 282.79309,170.44946 L 284.80481,162.34399 L 286.70911,162.34399 L 288.73059,170.44946 L 290.74231,162.34399 L 292.36340,162.34399 L 289.78528,172.73462 L 287.88098,172.73462 L 285.76184,164.21899 L 283.63293,172.73462 L 281.72864,172.73462 L 279.15051,162.34399" + style="font-size:20.000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#000000;fill-opacity:1.0000000;stroke:none;stroke-width:3.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Arial;text-anchor:start;writing-mode:lr;" + transform="translate(-8.025000,0.000000)" /> + <g + transform="matrix(0.297633,0.000000,0.000000,0.297633,84.78546,65.43388)" + id="g839"> + <path + id="whiteSpace" + d="M 397.64309,320.25301 L 280.39197,282.51700 L 250.74227,124.83447 L 345.08225,29.146783 L 393.59996,46.667064 L 483.89679,135.61619 L 397.64309,320.25301 z " + style="font-size:12.000000;fill:#ffffff;fill-rule:evenodd;stroke:#000000;stroke-width:0.93619299pt;" /> + <path + id="droplet01" + d="M 476.95792,339.17168 C 495.78197,342.93607 499.54842,356.11361 495.78197,359.87802 C 492.01856,363.64340 482.60650,367.40781 475.07663,361.76014 C 467.54478,356.11361 467.54478,342.93607 476.95792,339.17168 z " + style="font-size:12.000000;fill:#000000;fill-opacity:1.0000000;fill-rule:evenodd;stroke-width:1.0000000pt;" /> + <path + id="droplet02" + d="M 286.46194,340.42914 C 284.62770,340.91835 269.30405,327.71337 257.16909,333.83380 C 245.03722,339.95336 236.89276,353.65666 248.22676,359.27982 C 259.56184,364.90298 267.66433,358.41867 277.60113,351.44119 C 287.53903,344.46477 287.18046,343.12060 286.46194,340.42914 z " + style="font-size:12.000000;fill:#000000;fill-opacity:1.0000000;fill-rule:evenodd;stroke-width:1.0000000pt;" /> + <path + id="droplet03" + d="M 510.35756,306.92856 C 520.59494,304.36879 544.24333,306.92856 540.47688,321.98634 C 536.71354,337.04806 504.71297,331.39827 484.00371,323.87156 C 482.12141,308.81083 505.53237,308.13423 510.35756,306.92856 z " + style="font-size:12.000000;fill:#000000;fill-opacity:1.0000000;fill-rule:evenodd;stroke-width:1.0000000pt;" /> + <path + id="mountainDroplet" + d="M 359.24030,21.362537 C 347.92693,21.362537 336.63470,25.683095 327.96556,34.352230 L 173.87387,188.41466 C 165.37697,196.91140 161.11160,207.95813 160.94269,219.04577 L 160.88418,219.04577 C 160.88418,219.08524 160.94076,219.12322 160.94269,219.16279 C 160.94033,219.34888 160.88418,219.53256 160.88418,219.71865 L 161.14748,219.71865 C 164.09660,230.93917 240.29699,245.24198 248.79866,253.74346 C 261.63771,266.58263 199.56520,276.01151 212.40410,288.85074 C 225.24316,301.68979 289.99433,313.69330 302.83460,326.53254 C 315.67368,339.37161 276.59610,353.04289 289.43532,365.88196 C 302.27439,378.72118 345.40201,362.67257 337.59080,396.16198 C 354.92909,413.50026 391.10302,405.22080 415.32417,387.88252 C 428.16323,375.04345 390.69480,376.17577 403.53397,363.33668 C 416.37304,350.49745 448.78128,350.42820 476.08902,319.71589 C 465.09739,302.62116 429.10801,295.34136 441.94719,282.50217 C 454.78625,269.66311 479.74708,276.18423 533.60644,251.72479 C 559.89837,239.78398 557.72636,230.71459 557.62567,219.71865 C 557.62356,219.48727 557.62567,219.27892 557.62567,219.04577 L 557.56716,219.04577 C 557.39830,207.95812 553.10345,196.91140 544.60673,188.41466 L 390.54428,34.352230 C 381.87515,25.683095 370.55366,21.362537 359.24030,21.362537 z M 357.92378,41.402939 C 362.95327,41.533963 367.01541,45.368018 374.98006,50.530832 L 447.76915,104.50827 C 448.56596,105.02498 449.32484,105.56400 450.02187,106.11735 C 450.71890,106.67062 451.35560,107.25745 451.95277,107.84347 C 452.54997,108.42842 453.09281,109.01553 453.59111,109.62808 C 454.08837,110.24052 454.53956,110.86661 454.93688,111.50048 C 455.33532,112.13538 455.69164,112.78029 455.99010,113.43137 C 456.28877,114.08363 456.52291,114.75639 456.72150,115.42078 C 456.92126,116.08419 457.08982,116.73973 457.18961,117.41019 C 457.28949,118.08184 457.33588,118.75535 457.33588,119.42886 L 414.21245,98.598549 L 409.91180,131.16055 L 386.18512,120.04324 L 349.55654,144.50131 L 335.54288,96.170300 L 317.49190,138.44530 L 267.08369,143.47735 L 267.63956,121.03795 C 267.63956,115.64823 296.69685,77.915899 314.39075,68.932902 L 346.77721,45.674327 C 351.55594,42.576634 354.90608,41.324327 357.92378,41.402939 z M 290.92738,261.61333 C 313.87149,267.56365 339.40299,275.37038 359.88393,275.50997 L 360.76161,284.72563 C 343.22350,282.91785 306.11346,274.45012 297.36372,269.98057 L 290.92738,261.61333 z " + style="font-size:12.000000;fill:#000000;fill-opacity:1.0000000;fill-rule:evenodd;stroke-width:1.0000000pt;" /> + </g> + </g> + <rect + transform="scale(1.000000,-1.000000)" + y="-614.87604" + x="1.6551374e-07" + height="125.00000" + width="800.00000" + id="rect1814" + style="fill:url(#linearGradient1677);fill-opacity:0.75000000;fill-rule:evenodd;stroke:none;stroke-width:3.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;" /> + <text + transform="translate(5.078125e-2,166.2625)" + sodipodi:linespacing="120%" + id="text1815" + y="311.49857" + x="400" + style="line-height:120%;writing-mode:lr;text-anchor:middle;font-family:Arial;stroke-opacity:1.0000000;stroke-linejoin:miter;stroke-linecap:butt;stroke-width:3.0000000pt;stroke:none;fill-opacity:1.0000000;fill:#000000;font-stretch:normal;font-weight:normal;font-variant:normal;font-style:normal;font-size:26.000000" + xml:space="preserve"><tspan + id="tspan3" + sodipodi:role="line" + y="311.49857" + x="400.00000">Bryce Harrington</tspan></text> + <text + sodipodi:linespacing="100%" + id="text1113" + y="342.61221" + x="110.56248" + style="font-size:56.000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#000000;fill-opacity:1.0000000;stroke:none;stroke-width:3.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Arial;text-anchor:start;writing-mode:lr-tb" + xml:space="preserve"><tspan + id="tspan2" + sodipodi:role="line" + y="342.61221" + x="110.56248">Application Architecture</tspan></text> +</svg> diff --git a/doc/NewAppArchitecture/02-outline.svg b/doc/NewAppArchitecture/02-outline.svg new file mode 100644 index 000000000..8e5fe3366 --- /dev/null +++ b/doc/NewAppArchitecture/02-outline.svg @@ -0,0 +1,416 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN" +"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd"> +<!-- Created with Inkscape (http://www.inkscape.org/) --> +<svg + id="svg586" + sodipodi:version="0.32" + inkscape:version="0.40" + width="640pt" + height="480pt" + sodipodi:docname="02-outline.svg" + sodipodi:docbase="/home/bryce/src/Inkscape/InkAppPresent" + xmlns="http://www.w3.org/2000/svg" + xmlns:cc="http://web.resource.org/cc/" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:xml="http://www.w3.org/XML/1998/namespace" + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:xlink="http://www.w3.org/1999/xlink"> + <defs + id="defs588"> + <linearGradient + id="linearGradient2570"> + <stop + style="stop-color:#000000;stop-opacity:1.0000000;" + offset="0.0000000" + id="stop2571" /> + <stop + style="stop-color:#000000;stop-opacity:0.62745100;" + offset="0.58504134" + id="stop2572" /> + <stop + style="stop-color:#ffffff;stop-opacity:0.0000000;" + offset="1.0000000" + id="stop2573" /> + </linearGradient> + <linearGradient + xlink:href="#linearGradient1218" + id="linearGradient1322" + x1="0.50352114" + y1="0.097472921" + x2="0.27112675" + y2="0.98555958" /> + <linearGradient + xlink:href="#linearGradient1273" + id="linearGradient1318" + x1="0.50704223" + y1="0.27741936" + x2="-0.17253521" + y2="0.99354839" /> + <linearGradient + xlink:href="#linearGradient1222" + id="linearGradient1307" + x1="0.45376351" + y1="1.9347328" + x2="0.41986585" + y2="0.12454049" + gradientTransform="scale(1.004208,0.995809)" /> + <linearGradient + xlink:href="#linearGradient1222" + id="linearGradient1306" + x1="0.45009527" + y1="1.9667202" + x2="0.41548476" + y2="0.11846013" + gradientTransform="scale(1.006361,0.993679)" /> + <linearGradient + xlink:href="#linearGradient1222" + id="linearGradient1305" + x1="0.45839140" + y1="1.8676205" + x2="0.42603236" + y2="0.13959341" + gradientTransform="scale(1.002016,0.997989)" /> + <linearGradient + xlink:href="#linearGradient1273" + id="linearGradient1277" + x1="-0.36619717" + y1="1.5228426" + x2="0.36971831" + y2="0.80203044" /> + <linearGradient + xlink:href="#linearGradient1273" + id="linearGradient1272" + x1="1.0739436" + y1="0.23580793" + x2="0.53521127" + y2="0.55458528" /> + <linearGradient + xlink:href="#linearGradient1222" + id="linearGradient1270" /> + <linearGradient + xlink:href="#linearGradient1323" + id="linearGradient1231" + x1="0.00000000" + y1="0.50000000" + x2="1.0000000" + y2="0.50000000" /> + <linearGradient + xlink:href="#linearGradient1222" + id="linearGradient1221" + x1="-0.96478873" + y1="2.1597939" + x2="0.42605633" + y2="0.24742271" /> + <linearGradient + id="linearGradient1218"> + <stop + style="stop-color:#000000;stop-opacity:1.0000000;" + offset="0.00000000" + id="stop1219" /> + <stop + style="stop-color:#323232;stop-opacity:1.0000000;" + offset="0.073255815" + id="stop1321" /> + <stop + style="stop-color:#000000;stop-opacity:1.0000000;" + offset="0.65260679" + id="stop1320" /> + <stop + style="stop-color:#fff;stop-opacity:1;" + offset="1" + id="stop1220" /> + </linearGradient> + <linearGradient + id="linearGradient1222"> + <stop + style="stop-color:#0081ac;stop-opacity:1.0000000;" + offset="0.0000000" + id="stop1223" /> + <stop + style="stop-color:#006d91;stop-opacity:0.62745100;" + offset="0.50000000" + id="stop1722" /> + <stop + style="stop-color:#000000;stop-opacity:0.0000000;" + offset="1.0000000" + id="stop1224" /> + </linearGradient> + <linearGradient + id="linearGradient1273"> + <stop + style="stop-color:#ffffff;stop-opacity:1.0000000;" + offset="0.00000000" + id="stop1274" /> + <stop + style="stop-color:#ffffff;stop-opacity:0.00000000;" + offset="1.0000000" + id="stop1275" /> + </linearGradient> + <linearGradient + id="linearGradient1323"> + <stop + style="stop-color:#000000;stop-opacity:0.77685952;" + offset="0.00000000" + id="stop1324" /> + <stop + style="stop-color:#000000;stop-opacity:0.00000000;" + offset="1.0000000" + id="stop1325" /> + </linearGradient> + <radialGradient + xlink:href="#linearGradient826" + id="radialGradient829" + cx="0.49382716" + cy="0.46875000" + r="0.41400504" + fx="0.50617284" + fy="0.15625000" /> + <linearGradient + id="linearGradient826"> + <stop + style="stop-color:#000000;stop-opacity:0.95294118;" + offset="0.00000000" + id="stop827" /> + <stop + style="stop-color:#000000;stop-opacity:0.76078433;" + offset="0.36585677" + id="stop830" /> + <stop + style="stop-color:#000000;stop-opacity:0.52941179;" + offset="0.47107276" + id="stop847" /> + <stop + style="stop-color:#ffffff;stop-opacity:0.00000000;" + offset="1.0000000" + id="stop828" /> + </linearGradient> + <linearGradient + xlink:href="#linearGradient909" + id="linearGradient907" + x1="0.50000000" + y1="0.66667551" + x2="0.50000000" + y2="-1.7333326" /> + <linearGradient + id="linearGradient909"> + <stop + style="stop-color:#000000;stop-opacity:0.00000000;" + offset="0.00000000" + id="stop910" /> + <stop + style="stop-color:#000000;stop-opacity:0.17000000;" + offset="1.0000000" + id="stop913" /> + </linearGradient> + <linearGradient + xlink:href="#linearGradient1222" + id="linearGradient1309" /> + <linearGradient + xlink:href="#linearGradient2570" + id="linearGradient1308" + x1="0.0000000" + y1="0.50000000" + x2="1.0000000" + y2="0.50000000" /> + </defs> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="1.0500000" + inkscape:cx="320.00000" + inkscape:cy="240.00000" + inkscape:window-width="764" + inkscape:window-height="687" + inkscape:window-x="432" + inkscape:window-y="41" + showguides="true" + inkscape:guide-bbox="true" + inkscape:current-layer="layer2"> + <sodipodi:guide + orientation="horizontal" + position="435" + id="guide607" /> + </sodipodi:namedview> + <metadata + id="metadata33"> + <rdf:RDF + id="RDF34"> + <cc:Work + rdf:about="" + id="Work35"> + <dc:format + id="format36">image/svg+xml</dc:format> + <dc:type + id="type38" + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + </cc:Work> + </rdf:RDF> + </metadata> + <g + inkscape:groupmode="layer" + id="layer1" + inkscape:label="Background" + style="display:block"> + <rect + style="font-size:12.000000;fill:url(#linearGradient1309);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:3.0000000pt;" + id="topbluebox" + width="800.00000" + height="112.50000" + x="0.0000000" + y="1.7763568e-15" /> + <path + style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:url(#linearGradient1308);stroke-width:4.9844480;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;" + d="M -0.034245957,110.20928 L 797.51553,110.00778" + id="path654" + sodipodi:nodetypes="cc" /> + <g + id="g1085" + transform="translate(646.2792,-9.754791)"> + <g + id="g1394" + transform="matrix(0.875802,0.000000,0.000000,0.869278,1.048583,-7.965682)"> + <path + sodipodi:type="arc" + id="path898" + sodipodi:cx="300.00000" + sodipodi:cy="300.00000" + sodipodi:rx="300.00000" + sodipodi:ry="300.00000" + d="M 600.00000 300.00000 A 300.00000 300.00000 0 1 0 0.0000000,300.00000 A 300.00000 300.00000 0 1 0 600.00000 300.00000 z" + style="opacity:0.69398910;fill:url(#radialGradient829);stroke-width:4.4309568;stroke-dasharray:17.723827 17.723827 ;stroke-dashoffset:0.0000000;" + transform="matrix(0.394071,0.000000,0.000000,8.155385e-2,-31.69751,94.58860)" /> + <path + sodipodi:type="arc" + id="ball1" + sodipodi:cx="300.00000" + sodipodi:cy="300.00000" + sodipodi:rx="300.00000" + sodipodi:ry="300.00000" + d="M 600.00000 300.00000 A 300.00000 300.00000 0 1 0 0.0000000,300.00000 A 300.00000 300.00000 0 1 0 600.00000 300.00000 z" + style="fill:url(#radialGradient829);stroke-width:4.4309568;stroke-dasharray:17.723827 17.723827 ;stroke-dashoffset:0.0000000;" + transform="matrix(0.280658,0.000000,0.000000,0.148676,4.082687,91.98483)" /> + </g> + <g + id="g1310" + transform="matrix(1.822197,0.000000,0.000000,1.662749,-180.0082,12.26653)" + style="fill:url(#linearGradient1221);"> + <path + style="fill-opacity:0.074380167;fill-rule:evenodd;stroke-width:1.0000000pt;" + d="M 139.27138,11.077118 C 137.22042,11.077119 135.15548,11.849270 133.58388,13.420868 L 105.67763,41.358368 C 104.13725,42.898711 103.33325,44.910828 103.30263,46.920868 C 103.30220,46.954601 103.30263,47.012134 103.30263,47.045868 L 103.36513,47.045868 C 103.89976,49.079999 117.69889,51.660911 119.24013,53.202118 C 121.56768,55.529685 110.31886,57.249538 112.64638,59.577118 C 114.97392,61.904658 126.72486,64.062038 129.05263,66.389620 C 131.38019,68.717170 124.28755,71.187070 126.61513,73.514620 C 128.94268,75.842201 136.74995,72.943440 135.33388,79.014621 C 138.47707,82.157811 145.03666,80.657811 149.42763,77.514621 C 151.75518,75.187070 144.97506,75.404670 147.30263,73.077120 C 149.63018,70.749540 155.50836,70.738600 160.45888,65.170868 C 158.46624,62.071818 151.94381,60.748438 154.27138,58.420868 C 156.59893,56.093323 161.10115,57.261288 170.86513,52.827118 C 175.63150,50.662408 175.25838,49.039285 175.24013,47.045868 C 175.23975,47.003922 175.24013,46.963136 175.24013,46.920868 L 175.20888,46.920868 C 175.17827,44.910830 174.40547,42.898714 172.86513,41.358368 L 144.92763,13.420868 C 143.35604,11.849272 141.32234,11.077118 139.27138,11.077118 z M 139.02138,14.702118 C 139.93315,14.725869 140.67125,15.422422 142.11513,16.358368 L 155.30263,26.139618 C 155.44708,26.233292 155.58252,26.320552 155.70888,26.420868 C 155.83525,26.521171 155.97562,26.627132 156.08388,26.733368 C 156.19214,26.839410 156.27479,26.966073 156.36513,27.077118 C 156.45527,27.188145 156.54310,27.305955 156.61513,27.420868 C 156.68737,27.535969 156.74853,27.646585 156.80263,27.764618 C 156.85677,27.882866 156.89163,27.987920 156.92763,28.108368 C 156.96385,28.228632 157.00329,28.361823 157.02138,28.483368 C 157.03948,28.605130 157.05263,28.736271 157.05263,28.858368 L 149.24013,25.077118 L 148.45888,30.983368 L 144.14638,28.952118 L 137.52138,33.389618 L 134.95888,24.639618 L 131.70888,32.295868 L 122.55263,33.202118 L 122.64638,29.139618 C 122.64638,28.162533 127.93872,21.330614 131.14638,19.702118 L 137.02138,15.483368 C 137.88771,14.921800 138.47431,14.687867 139.02138,14.702118 z M 126.89638,54.639618 C 131.05584,55.718333 135.68346,57.114312 139.39638,57.139618 L 139.55263,58.827118 C 136.37321,58.499388 129.63884,56.949888 128.05263,56.139618 L 126.89638,54.639618 z M 170.24013,62.045868 C 169.60518,62.025518 169.00430,62.089178 168.55263,62.202118 C 167.70107,62.414898 163.56419,62.512928 163.89638,65.170868 C 167.55118,66.499190 173.20097,67.516500 173.86513,64.858368 C 174.36366,62.865308 172.14497,62.106908 170.24013,62.045868 z M 122.45888,67.452120 C 121.88389,67.385110 121.32136,67.455980 120.77138,67.733370 C 118.57203,68.842760 117.09168,71.307720 119.14638,72.327120 C 121.20129,73.346520 122.65747,72.185800 124.45888,70.920870 C 126.26050,69.656140 126.21414,69.408800 126.08388,68.920870 C 125.83449,68.987380 124.18386,67.653150 122.45888,67.452120 z M 162.64638,67.889620 C 160.98514,68.553960 161.00465,70.861860 162.33388,71.858370 C 163.66277,72.855080 165.32597,72.210400 165.99013,71.545870 C 166.65484,70.881530 165.96848,68.553970 162.64638,67.889620 z " + id="path1278" /> + <path + style="fill-opacity:0.074380167;fill-rule:evenodd;stroke-width:1.0000000pt;" + d="M 137.96875,10.718750 C 134.70402,11.060845 132.45341,13.855395 130.15790,15.940974 C 121.77155,24.503910 113.19525,32.911552 104.88478,41.529122 C 103.53165,43.257666 102.98133,45.293623 102.71875,47.437500 C 107.43946,50.886242 113.69835,50.905815 118.71875,53.781250 C 117.30484,56.014138 113.86394,55.927723 112.30534,58.153586 C 110.95047,59.066432 112.87438,60.562599 113.88390,60.907202 C 118.07998,63.025863 122.80956,63.838835 126.97834,66.068813 C 129.14039,66.223477 128.99465,68.397410 127.55968,69.465540 C 126.42313,70.610466 124.66557,72.512182 126.40386,73.938766 C 128.52893,75.415674 131.34635,75.011355 133.71875,75.875000 C 135.38587,76.789177 134.20286,78.442002 135.34375,79.593750 C 138.20878,81.840481 142.17613,81.444087 145.36980,80.162063 C 147.01184,79.679133 148.50293,78.612108 149.93750,77.781250 C 151.32137,76.168445 149.16317,75.014407 147.93750,74.343750 C 147.13207,73.007556 149.81258,72.471472 150.72621,71.835396 C 154.22932,70.415525 157.63139,68.772275 160.32323,66.076023 C 162.00146,65.040055 159.53684,63.566475 158.75000,62.750000 C 157.29555,61.671425 155.38495,61.005736 154.46875,59.343750 C 156.83166,56.736844 160.77991,57.222943 163.82692,55.886662 C 167.48614,54.956060 170.96688,53.327613 174.19128,51.441061 C 176.31894,49.855420 175.75931,47.094289 175.34438,44.858149 C 173.82714,40.146659 169.32671,37.346121 166.14614,33.782162 C 159.00255,26.737555 151.96598,19.558149 144.75603,12.597114 C 142.83187,11.117125 140.40461,10.324926 137.96875,10.718750 z M 140.15625,15.718750 C 145.33185,19.512142 150.51925,23.291773 155.68750,27.093750 C 155.79568,28.128330 152.96647,25.994412 151.88519,25.704486 C 150.56126,25.310550 148.23232,22.990502 148.60160,25.735802 C 148.03383,26.854222 148.89364,30.614243 147.25375,29.748789 C 145.77079,28.952048 143.79956,27.767016 142.39696,29.393778 C 140.87922,30.408352 139.36149,31.422926 137.84375,32.437500 C 136.92659,29.270978 136.01364,26.103230 135.09375,22.937500 C 133.83186,25.869891 132.59553,28.813265 131.34375,31.750000 C 128.60417,32.020833 125.86458,32.291667 123.12500,32.562500 C 122.93577,30.531586 123.37937,28.492090 124.78964,27.051727 C 127.83705,22.165897 132.91432,19.181067 137.48762,15.928279 C 138.38080,15.399443 139.18306,15.465846 140.15625,15.718750 z M 132.06250,56.562500 C 134.25968,57.131800 136.54653,57.244809 138.78125,57.625000 C 137.93164,58.641801 135.83490,57.320885 134.50134,57.277133 C 132.75919,56.896272 131.01731,56.527068 129.37500,55.812500 C 130.27083,56.062500 131.16667,56.312500 132.06250,56.562500 z M 168.50000,61.625000 C 166.47980,62.095190 163.59992,62.369201 163.34375,64.968750 C 164.00781,65.934196 166.11962,66.292948 167.47626,66.551501 C 169.60910,66.891924 172.52463,67.659468 174.01886,65.672524 C 175.29513,63.892929 173.38643,61.628153 171.40540,61.754929 C 170.44376,61.426788 169.48969,61.503021 168.50000,61.625000 z M 120.65625,67.156250 C 119.17864,68.173454 117.17273,69.706513 117.81250,71.750000 C 119.32360,73.943032 122.44871,73.328157 124.17581,71.744685 C 125.31806,71.095411 127.22708,69.849349 126.34375,68.406250 C 124.53029,67.617814 122.70705,66.421404 120.65625,67.156250 z M 162.25000,67.468750 C 160.98536,68.304844 160.47655,70.055902 161.35305,71.321264 C 162.02451,73.004295 164.27223,73.179865 165.64672,72.263080 C 167.48408,71.700360 166.67812,69.347513 165.33731,68.658474 C 164.66189,67.815250 163.12029,67.406310 162.25000,67.468750 z " + id="path1283" /> + <path + style="fill-opacity:0.074380167;fill-rule:evenodd;stroke-width:1.0000000pt;" + d="M 137.09375,12.062500 C 133.45264,13.658306 130.89510,17.054651 128.02763,19.760075 C 120.64992,27.277135 113.11748,34.668181 105.81675,42.244521 C 104.77302,43.583830 104.19848,45.113312 103.93750,46.781250 C 108.02500,49.661848 113.35464,49.814484 117.77247,52.034312 C 119.23732,52.180074 120.83004,53.663696 119.47530,54.914506 C 117.72685,56.714093 114.64707,56.868986 113.18750,58.937500 C 116.98689,61.678185 121.72461,62.314645 125.91888,64.199775 C 127.35246,65.248996 129.93899,65.341959 130.00000,67.531250 C 129.61283,69.469175 127.68115,70.594821 126.84375,72.343750 C 128.66657,74.916318 132.41661,73.526770 134.81763,75.194505 C 136.12150,75.998634 135.76289,77.719238 136.33739,78.786112 C 139.34189,80.984126 143.56705,80.023489 146.59979,78.262860 C 147.57821,77.931235 150.25551,76.737683 148.25234,75.866570 C 146.79311,75.539319 145.57083,73.791727 146.98575,72.676315 C 150.59379,69.928273 155.52636,69.300230 158.75379,65.912819 C 160.44061,64.636839 157.51978,63.512312 156.64603,62.784855 C 155.31686,61.805358 153.02074,60.864770 153.31250,58.906250 C 155.52467,55.836091 159.76350,56.249927 162.98171,54.909139 C 166.64088,54.011598 170.17880,52.442724 173.39619,50.585767 C 175.44759,48.766928 174.40312,45.854433 173.70402,43.674602 C 170.01715,38.505895 164.93468,34.528530 160.60640,29.906454 C 155.05848,24.484276 149.68028,18.831089 144.02714,13.552135 C 142.01313,12.267231 139.68457,11.155741 137.26959,12.030263 L 137.09375,12.062500 z M 139.25000,14.156250 C 144.36849,16.573687 148.44456,20.615673 153.06166,23.857057 C 154.79682,25.417824 157.75256,26.462276 157.65625,29.218750 C 155.98301,29.620934 154.51821,27.909197 152.92283,27.467153 C 151.47889,26.979622 149.05912,24.688826 149.46490,27.619328 C 148.95092,28.676042 149.67609,32.096323 148.30430,31.528870 C 146.86362,30.916675 145.25114,29.742049 143.73062,29.880583 C 141.56112,31.359522 139.38321,32.826259 137.21875,34.312500 C 136.40063,31.654144 135.63994,28.977747 134.84375,26.312500 C 133.78712,28.431959 132.98467,30.961875 131.78125,32.843750 C 128.52084,33.166779 125.26035,33.488957 122.00000,33.812500 C 122.02692,31.439278 121.58820,28.751334 123.45144,26.900643 C 126.38650,21.928911 131.54097,18.937382 135.96875,15.531250 C 137.05500,15.131227 138.17386,14.356070 139.25000,14.156250 z M 126.34375,53.906250 C 130.81931,55.099287 135.33348,56.080112 139.93750,56.625000 C 140.81508,58.380031 139.61654,59.889689 137.75155,59.030564 C 134.35469,58.342143 130.95451,57.411091 127.62500,56.500000 C 127.37596,56.018046 124.72663,53.333015 126.34375,53.906250 z M 168.68750,62.750000 C 167.26725,63.145732 165.19352,63.022642 164.68750,64.750000 C 167.41558,65.272026 170.36127,66.626958 173.03125,65.187500 C 173.94813,63.333514 171.22391,62.807999 169.92452,62.707344 C 169.51218,62.721563 169.09984,62.735781 168.68750,62.750000 z M 120.96875,68.250000 C 119.88102,69.094191 117.71809,71.141191 120.00567,71.867660 C 122.11744,72.377527 123.71955,70.573549 125.28125,69.468750 C 124.17010,68.379529 122.48301,67.967608 120.96875,68.250000 z M 162.25000,68.937500 C 161.26655,70.838341 164.03769,72.707639 165.32625,71.028976 C 165.98639,69.968138 163.10932,68.105539 162.25000,68.937500 z " + id="path1286" /> + <path + style="fill-opacity:0.074380167;fill-rule:evenodd;stroke-width:1.0000000pt;" + d="M 137.50000,12.562500 C 131.56402,15.884438 127.47918,21.513076 122.59316,26.106819 C 117.07494,31.800872 111.33765,37.333066 105.95500,43.127274 C 105.27016,44.232264 103.90274,46.716455 105.88806,47.110513 C 110.48303,49.525949 116.07018,49.897473 120.25000,52.937500 C 121.19557,55.258014 118.31954,56.204644 116.77699,57.135076 C 115.14828,57.646504 113.25757,59.174666 115.98524,59.736007 C 120.51650,62.179113 125.90956,62.812244 130.06250,65.968750 C 131.40440,68.155882 128.87852,70.088345 127.96429,71.816940 C 127.97548,73.606583 130.61198,73.210238 131.85374,73.694589 C 134.00698,73.861384 136.31306,75.067306 136.52629,77.437982 C 137.24770,79.315251 139.82104,79.377347 141.56250,79.375000 C 143.88381,79.081698 145.88731,77.848938 148.00000,76.937500 C 147.89289,75.484280 145.47385,75.343455 145.78125,73.562500 C 147.65028,70.568783 151.46696,69.934698 154.32757,68.211442 C 155.95166,67.507534 157.40819,66.436524 158.50000,65.031250 C 156.69534,62.893495 153.11684,62.207207 152.76893,59.025530 C 153.13476,57.911585 154.90043,56.856141 156.14992,56.314935 C 161.47352,54.305871 167.29666,53.530281 172.18291,50.436255 C 174.75469,49.397100 173.90347,46.181096 173.15013,44.168122 C 170.99740,41.143850 168.08639,38.542958 165.64236,35.681332 C 163.12371,33.093790 160.49665,30.610931 157.93750,28.062500 C 158.99092,29.594714 157.00835,30.333418 155.86310,29.376751 C 153.95887,28.546062 152.06033,27.726589 150.12500,26.968750 C 150.04976,28.633800 149.69671,30.253091 149.34375,31.875000 C 146.94959,32.517021 144.62510,29.359512 142.44997,31.405021 C 140.65579,32.399012 139.25573,34.074138 137.34005,34.698602 C 135.96867,34.449689 136.15225,31.657450 135.44638,30.368996 C 135.03220,27.477998 134.31032,28.114323 133.43720,30.484434 C 132.63691,31.983328 132.29360,34.079093 130.12469,33.576560 C 127.22896,33.863646 124.33317,34.149933 121.43750,34.437500 C 121.45635,31.458390 121.16984,28.094375 123.52595,25.839572 C 126.82257,21.188668 131.69023,18.019711 136.23357,14.793262 C 137.75437,14.087412 139.64327,13.037594 141.05071,14.536711 C 144.77608,17.093755 148.56965,19.491887 152.06250,22.343750 C 149.06655,19.513772 146.25485,16.420638 143.14594,13.751994 C 141.38445,12.871744 139.52020,11.789900 137.50000,12.562500 z M 126.40625,53.343750 C 131.09445,54.266714 135.77718,55.221773 140.46875,56.125000 C 140.66311,57.490600 140.90400,59.768414 138.90019,59.717011 C 134.99279,58.970773 131.04202,57.882901 127.18750,56.875000 C 126.61048,55.955764 124.83534,54.556620 125.40625,53.625000 C 125.73497,53.577157 126.08499,53.292470 126.40625,53.343750 z M 166.53125,63.812500 C 164.90117,64.830649 168.72302,64.879550 169.60036,65.161786 C 170.82454,65.513571 173.80209,64.644903 171.50000,63.593750 C 169.78209,63.217030 168.21140,63.255613 166.53125,63.812500 z M 120.81250,69.187500 C 118.77488,70.497531 120.63987,72.049766 122.29985,70.780747 C 124.22011,70.547064 124.25797,68.584075 122.13849,68.857155 C 121.62590,68.786616 121.20364,68.805690 120.81250,69.187500 z M 162.78125,70.250000 C 165.04372,72.410337 164.50416,68.582957 162.78125,69.787913 C 162.78125,69.883882 162.78125,70.191942 162.78125,70.250000 z " + id="path1295" /> + <path + style="fill-opacity:0.074380167;fill-rule:evenodd;stroke-width:1.0000000pt;" + d="M 137.25000,10.312500 C 134.57328,10.811904 132.67255,13.050780 130.64866,14.715585 C 121.77957,23.451854 113.11785,32.437236 104.37500,41.281250 C 103.17019,43.288146 102.47259,45.456013 102.06250,47.750000 C 105.83476,49.628698 109.64657,51.368815 113.75481,52.377095 C 114.74672,53.000901 118.15181,53.211596 117.03125,54.625000 C 114.87625,55.770623 112.18432,56.545814 111.25000,59.062500 C 113.07397,62.261249 117.13309,62.448994 120.14188,63.972108 C 122.66750,64.970987 125.19313,65.969869 127.71875,66.968750 C 127.79709,69.608591 127.12737,68.724937 125.79671,67.542170 C 123.76150,66.508388 120.74167,65.559916 119.14266,67.799744 C 117.68910,68.685330 116.55779,70.940149 117.66673,72.361712 C 119.74129,74.610002 123.29896,73.558599 125.22361,71.631365 C 125.39044,71.451948 124.94524,74.329263 126.55554,74.625682 C 128.75187,75.888131 131.56113,75.535204 133.75000,76.781250 C 134.17453,78.637203 134.92263,80.738750 137.10053,81.029661 C 140.53970,82.420114 144.41944,81.397273 147.50485,79.584682 C 148.81540,78.872018 151.32795,78.343669 150.75195,76.374975 C 150.70713,75.080531 147.53803,74.300613 149.31250,73.093750 C 153.55943,71.203594 157.91230,69.209830 161.18750,65.843750 C 161.99115,63.731003 159.07145,62.849633 157.93750,61.562500 C 156.57653,60.417748 154.30116,59.195844 157.17010,58.407983 C 162.44672,56.428116 168.30037,55.651561 173.14000,52.536010 C 175.69933,51.724285 176.75286,48.825627 176.01594,46.382200 C 175.99204,43.921497 174.36450,41.884430 172.99509,39.973772 C 168.23708,34.553265 162.73310,29.839073 157.72691,24.648245 C 153.37676,20.454464 149.19589,15.998891 144.74248,11.964991 C 142.49218,10.519398 139.90204,10.047325 137.25000,10.312500 z M 140.40625,16.625000 C 144.38180,19.415210 148.26381,22.371245 152.21875,25.218750 C 151.00059,24.471219 149.71107,24.008458 148.28125,23.906250 C 148.08169,25.616789 147.84012,27.322499 147.62500,29.031250 C 145.77312,28.480352 143.67622,27.363820 142.02088,28.944411 C 140.79579,29.321785 138.71876,32.029330 138.02739,30.946881 C 137.09069,27.714729 136.15797,24.481420 135.21875,21.250000 C 133.79126,24.568262 132.38708,27.896549 130.96875,31.218750 C 128.56250,31.458333 126.15625,31.697917 123.75000,31.937500 C 123.73611,28.504117 126.40867,25.941624 128.50533,23.538181 C 131.60340,20.877921 134.84009,18.280137 138.37100,16.266120 C 139.05687,15.927768 139.72649,16.501380 140.40625,16.625000 z M 165.12500,61.937500 C 163.94994,62.683294 162.04675,64.163789 163.31250,65.625000 C 165.77599,67.237331 168.84980,67.346191 171.68759,67.438839 C 173.79767,67.380039 175.87709,64.882603 174.44068,62.966319 C 173.10190,60.663393 170.05340,61.177216 167.81605,61.201002 C 166.91904,61.446503 166.02202,61.692001 165.12500,61.937500 z M 162.03125,67.031250 C 160.83535,68.000188 160.29043,69.695123 160.76346,71.258236 C 161.16730,73.039050 163.22496,73.494707 164.78719,72.992478 C 167.13879,73.181332 168.09248,69.825149 166.13394,68.653373 C 164.96960,67.668728 163.65541,66.689296 162.03125,67.031250 z " + id="path1300" /> + <path + style="fill-opacity:0.074380167;fill-rule:evenodd;stroke-width:1.0000000pt;" + d="M 136.87500,9.5625000 C 131.65304,11.769127 128.14544,16.384624 124.15881,20.216605 C 117.35142,27.117414 110.49657,33.984328 103.71875,40.906250 C 102.85273,43.332808 101.99819,45.763562 101.12500,48.187500 C 105.93068,50.283305 110.76347,52.276496 115.75000,53.906250 C 115.44333,55.363555 112.99770,55.191635 112.24058,56.587946 C 110.89606,57.445273 110.01695,59.785906 111.89556,60.567820 C 114.86490,63.357428 118.93991,64.363020 122.62500,65.875000 C 119.72774,65.033632 117.80750,68.090788 116.68750,70.250000 C 116.01105,72.950420 119.11437,74.651083 121.43923,74.259441 C 122.88425,74.778519 124.87048,71.894366 125.06555,74.129447 C 127.21708,76.574392 131.35224,75.998123 133.59751,78.288768 C 134.32398,80.302303 135.99246,81.986172 138.23383,82.006618 C 140.25772,82.589257 142.23898,82.314480 144.19142,81.614260 C 146.47188,81.098710 148.64271,79.959926 150.63761,78.824244 C 152.14711,77.754911 151.81527,75.346631 150.43750,74.312500 C 150.23406,72.704926 152.73875,72.682794 153.75639,71.819616 C 156.49819,70.564020 158.90600,68.804050 161.21875,66.906250 C 160.19643,68.376408 159.81043,70.315970 160.38112,71.987759 C 161.34634,74.267655 164.22210,73.656108 166.15625,73.531250 C 168.08949,72.610730 168.83732,69.631414 166.87500,68.343750 C 164.02568,66.581529 166.47357,67.403459 168.27836,67.911665 C 170.51415,68.044548 173.31226,68.747610 174.83495,66.581402 C 176.52328,64.952843 175.46252,62.386049 173.84375,61.125000 C 171.82924,60.052772 169.41179,60.364713 167.22781,60.468857 C 165.26732,60.816302 163.77932,61.981088 162.56250,63.500000 C 161.07416,64.693238 164.27576,66.891706 162.51264,66.451187 C 161.23611,66.670932 162.80138,64.122782 161.27178,63.293106 C 160.27477,61.829766 158.59216,60.917429 157.34375,59.656250 C 163.37320,56.739900 170.41697,55.950383 175.81250,51.750000 C 177.79054,49.403625 176.89111,46.297658 176.31250,43.625000 C 172.71709,37.077334 166.72680,32.381991 161.58112,27.092054 C 156.10204,21.754721 150.65568,16.371055 145.15625,11.062500 C 142.76062,10.099303 140.31053,9.4347862 137.70606,9.5684113 C 137.43820,9.5943662 137.13013,9.4705862 136.87500,9.5625000 z M 144.00000,20.125000 C 145.41913,21.217458 146.85549,22.290152 148.28125,23.375000 C 146.97140,24.376925 147.43473,26.306660 146.96875,27.718750 C 145.01335,27.188020 142.88412,27.117042 141.28969,28.567875 C 140.30436,29.400862 138.46017,30.323076 138.31032,28.383898 C 137.43025,25.351664 136.59470,22.304201 135.68750,19.281250 C 137.21838,18.817776 138.78213,16.344334 140.28250,17.745803 C 141.52167,18.538869 142.76083,19.331934 144.00000,20.125000 z M 130.53125,30.406250 C 128.68750,30.593750 126.84375,30.781250 125.00000,30.968750 C 125.70615,27.451641 128.61722,24.990200 131.09307,22.632488 C 132.44877,21.648343 133.72082,20.531920 135.12500,19.625000 C 133.59375,23.218750 132.06250,26.812500 130.53125,30.406250 z " + id="path1304" /> + </g> + <path + style="fill:url(#linearGradient1322);fill-rule:evenodd;stroke-width:1.0000000pt;" + d="M 78.468542,10.216821 C 75.406213,10.216823 72.323010,11.369737 69.976423,13.716321 L 28.309048,55.430356 C 26.009076,57.730272 24.808608,60.734604 24.762888,63.735835 C 24.762246,63.786202 24.762888,63.872106 24.762888,63.922475 L 24.856208,63.922475 C 25.654475,66.959676 46.258230,70.813287 48.559486,73.114494 C 52.034797,76.589830 35.238960,79.157777 38.714227,82.633131 C 42.189523,86.108431 59.735084,89.329652 63.210724,92.805012 C 66.686050,96.280332 56.095888,99.968182 59.571244,103.44349 C 63.046555,106.91885 74.703745,102.59065 72.589383,111.65565 C 77.282542,116.34881 87.076796,114.10913 93.633042,109.41597 C 97.108353,105.94066 86.984820,106.26556 90.460160,102.79025 C 93.935473,99.314902 102.71230,99.298562 110.10402,90.985272 C 107.12876,86.358021 97.390000,84.382051 100.86534,80.906713 C 104.34065,77.431409 111.06300,79.175321 125.64179,72.554574 C 132.75855,69.322402 132.20143,66.898885 132.17419,63.922475 C 132.17362,63.859844 132.17419,63.798946 132.17419,63.735835 L 132.12753,63.735835 C 132.08182,60.734607 130.92794,57.730277 128.62803,55.430356 L 86.914001,13.716321 C 84.567429,11.369740 81.530871,10.216821 78.468542,10.216821 z M 59.991184,75.260853 C 66.201756,76.871504 73.111347,78.955868 78.655182,78.993653 L 78.888482,81.513293 C 74.141227,81.023952 64.086006,78.710363 61.717604,77.500533 L 59.991184,75.260853 z M 124.70859,86.319271 C 123.76053,86.288891 122.86335,86.383941 122.18895,86.552571 C 120.91747,86.870282 114.74061,87.016652 115.23661,90.985272 C 120.69367,92.968622 129.12948,94.487582 130.12115,90.518672 C 130.86551,87.542792 127.55274,86.410411 124.70859,86.319271 z M 53.365465,94.391452 C 52.506936,94.291402 51.667011,94.397222 50.845825,94.811392 C 47.561932,96.467852 45.351592,100.14833 48.419506,101.67041 C 51.487732,103.19250 53.661984,101.45941 56.351705,99.570712 C 59.041739,97.682322 58.972518,97.313012 58.778024,96.584472 C 58.405655,96.683782 55.941067,94.691622 53.365465,94.391452 z M 113.37021,95.044692 C 110.88978,96.036632 110.91892,99.482602 112.90361,100.97051 C 114.88780,102.45872 117.37116,101.49614 118.36283,100.50391 C 119.35532,99.511972 118.33051,96.036652 113.37021,95.044692 z " + id="path1217" + sodipodi:nodetypes="cccccccccccccccccccccccccccccccccccccccccc" + transform="matrix(1.220396,0.000000,0.000000,1.220396,-20.19444,7.307033)" /> + <path + style="fill:url(#linearGradient1231);fill-rule:evenodd;stroke-width:1.0000000pt;" + d="M 25.748195,58.983802 C 25.069168,60.484820 24.699511,62.088386 24.675015,63.696461 C 24.674375,63.746824 24.675015,63.832738 24.675015,63.883101 L 24.768335,63.883101 C 25.532194,66.789384 44.034284,70.422637 47.678393,72.748500 C 49.285306,71.792649 50.340763,70.791543 49.264832,69.715600 C 46.963576,67.414389 26.359823,63.560781 25.561555,60.523581 L 25.468235,60.523581 C 25.468235,60.473204 25.467595,60.387304 25.468235,60.336942 C 25.475280,59.874537 25.686531,59.443757 25.748195,58.983802 z M 132.03964,65.049601 C 131.22443,66.340254 129.65777,67.652109 126.34713,69.155680 C 111.76835,75.776420 105.04600,74.032516 101.57069,77.507812 C 100.51786,78.560641 100.89350,79.461052 101.71067,80.354072 C 105.38973,77.752669 112.01329,78.664472 125.55391,72.515200 C 131.70333,69.722349 132.05669,67.513308 132.03964,65.049601 z M 60.696531,71.861960 L 62.422951,74.101632 C 64.791352,75.311463 74.846572,77.625067 79.593829,78.114392 L 79.360529,75.594752 C 73.816694,75.556961 66.907102,73.472618 60.696531,71.861960 z M 40.119473,79.607512 C 38.565476,80.548088 37.568913,81.536279 38.626354,82.593751 C 42.101651,86.069051 59.647211,89.290272 63.122851,92.765632 C 63.275692,92.918462 63.255326,93.078602 63.356151,93.232232 C 64.435614,91.947532 65.165573,90.655612 63.916071,89.406112 C 60.566937,86.057251 44.419333,82.939151 40.119473,79.607512 z M 117.10845,87.866332 C 115.91482,88.486362 114.95058,89.360392 115.14873,90.945882 C 120.60578,92.929232 129.04159,94.448192 130.03326,90.479292 C 130.22625,89.707762 130.12018,89.057262 129.84662,88.519572 C 127.48913,90.422432 121.65703,89.359992 117.10845,87.866332 z M 108.52303,89.546092 C 101.68539,95.627832 94.291059,96.265772 91.165507,99.391352 C 89.908251,100.64860 90.617583,101.33525 91.632107,101.95765 C 95.620160,99.286262 103.30109,98.498152 110.01615,90.945882 C 109.67197,90.410612 109.01729,90.016842 108.52303,89.546092 z M 112.39580,95.705212 C 110.96059,97.100002 111.14367,99.677592 112.81574,100.93113 C 114.79992,102.41933 117.28328,101.45675 118.27495,100.46453 C 118.78497,99.954792 118.71737,98.812252 117.90167,97.664932 C 116.69163,98.288052 115.10107,98.690742 113.60896,97.571612 C 112.97842,97.098902 112.61381,96.431702 112.39580,95.705212 z M 57.383671,95.891852 C 57.217332,96.012982 57.251127,96.035572 57.057051,96.171812 C 54.367330,98.060502 52.193078,99.793612 49.124852,98.271512 C 48.483305,97.953222 48.223383,97.480502 48.005012,97.011692 C 46.640740,98.694072 46.307086,100.62659 48.331632,101.63103 C 51.399861,103.15311 53.574111,101.42002 56.263832,99.531332 C 58.953868,97.642932 58.884645,97.273622 58.690151,96.545092 C 58.562389,96.579162 57.924006,96.197372 57.383671,95.891852 z M 60.043291,99.577992 C 58.963831,100.86268 58.233858,102.15460 59.483371,103.40410 C 62.958684,106.87946 74.615872,102.55126 72.501510,111.61626 C 77.194670,116.30942 86.988927,114.06974 93.545171,109.37658 C 94.825402,108.09634 94.082889,107.39241 93.031907,106.76362 C 86.534250,110.87138 77.700406,112.66245 73.294729,108.25674 C 75.409092,99.191752 63.751901,103.51996 60.276591,100.04459 C 60.123748,99.891752 60.144117,99.731612 60.043291,99.577992 z " + id="path1269" + sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc" + transform="matrix(1.220396,0.000000,0.000000,1.220396,-20.19444,7.307033)" /> + <path + style="fill:url(#linearGradient1272);fill-opacity:0.75000000;fill-rule:evenodd;stroke-width:1.0000000pt;" + d="M 99.186075,30.398236 L 124.44205,57.534989 C 124.44205,57.534989 131.96512,65.595411 126.05415,68.819579 C 120.14317,72.043747 102.14157,76.880001 102.14157,76.880001 L 69.422516,29.764596 L 99.186075,30.398236 z " + id="path1271" + sodipodi:nodetypes="cccccc" + transform="matrix(1.220396,0.000000,0.000000,1.220396,-20.19444,7.307033)" /> + <path + style="fill:url(#linearGradient1277);fill-opacity:0.75000000;fill-rule:evenodd;stroke-width:1.0000000pt;" + d="M 63.243695,31.078988 L 42.657304,54.706552 C 42.657304,54.706552 34.703472,61.724642 39.850070,64.531876 C 44.996668,67.339111 78.917426,78.801990 102.77892,74.591136 L 75.408382,33.652287 L 63.243695,31.078988 z " + id="path1276" + sodipodi:nodetypes="cccccc" + transform="matrix(1.401650,0.000000,0.000000,1.401650,-35.26049,-4.181157)" /> + <path + style="fill:url(#linearGradient1318);fill-rule:evenodd;stroke-width:1.0000000pt;" + d="M 79.571944,14.847933 C 83.032254,14.873506 97.565101,29.009298 101.72458,31.925491 C 105.88407,34.841684 104.90857,36.754316 104.90857,36.936622 L 93.243582,31.290763 L 92.077082,40.109502 L 85.638002,37.076602 L 75.746078,43.702321 L 71.919958,30.637523 L 67.067318,42.069221 L 53.395938,43.422361 L 53.535918,37.356562 L 73.730570,17.473723 C 75.195738,16.031178 76.175081,14.822360 79.571944,14.847933 z " + id="path1317" + sodipodi:nodetypes="ccccccccccczz" + transform="matrix(1.220396,0.000000,0.000000,1.220396,-20.19444,7.307033)" /> + </g> + </g> + <g + inkscape:groupmode="layer" + id="layer2" + inkscape:label="Title"> + <text + x="45" + y="70" + style="font-size:48.000000;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1.0000000;stroke:none;stroke-width:3.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;display:block;font-family:Arial;text-anchor:start;writing-mode:lr" + id="text48"><tspan + id="tspan49">Overview</tspan></text> + <text + xml:space="preserve" + style="font-size:32.000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;color:#000000;fill:#000000;fill-opacity:1.0000000;fill-rule:nonzero;stroke:none;stroke-width:3.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible;display:block;font-family:Arial;letter-spacing:0.0000000;text-anchor:start;writing-mode:lr;" + x="221.42857" + y="176.19048" + id="text1126" + transform="translate(-178.0067,-2.380952)" + sodipodi:linespacing="140%"><tspan + x="221.42857" + y="176.19048" + sodipodi:role="line" + id="tspan1270">* Current inkscape gui/app architecture</tspan><tspan + x="221.42857" + y="220.99047" + sodipodi:role="line" + id="tspan1272">* Problems with current architecture</tspan><tspan + x="221.42857" + y="265.79047" + sodipodi:role="line" + id="tspan1274"></tspan><tspan + x="221.42857" + y="310.59047" + sodipodi:role="line" + id="tspan1276">* Current inkscape_gtkmm architecture</tspan><tspan + x="221.42857" + y="355.39047" + sodipodi:role="line" + id="tspan1278">* Future capabilities we'd like to support</tspan><tspan + x="221.42857" + y="400.19047" + sodipodi:role="line" + id="tspan1280"></tspan><tspan + x="221.42857" + y="444.99047" + sodipodi:role="line" + id="tspan1282">* Next generation architecture</tspan><tspan + x="221.42857" + y="489.79047" + sodipodi:role="line" + id="tspan1284">* Evolving to next gen inkscape architecture</tspan></text> + </g> + <g + inkscape:groupmode="layer" + id="layer3" + inkscape:label="Drawing Area" /> +</svg> diff --git a/doc/NewAppArchitecture/03-current.svg b/doc/NewAppArchitecture/03-current.svg new file mode 100644 index 000000000..af762c9bf --- /dev/null +++ b/doc/NewAppArchitecture/03-current.svg @@ -0,0 +1,476 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN" +"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd"> +<!-- Created with Inkscape (http://www.inkscape.org/) --> +<svg + sodipodi:docbase="/home/bryce/src/Inkscape/InkAppPresent" + sodipodi:docname="04-current-main.svg" + height="480pt" + width="640pt" + inkscape:version="0.40" + sodipodi:version="0.32" + id="svg586" + xmlns="http://www.w3.org/2000/svg" + xmlns:cc="http://web.resource.org/cc/" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:xlink="http://www.w3.org/1999/xlink"> + <defs + id="defs588"> + <marker + style="overflow:visible;" + id="TriangleOutL" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="TriangleOutL"> + <path + transform="scale(0.8)" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" + d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z " + id="path2817" + sodipodi:nodetypes="cccc" /> + </marker> + <marker + style="overflow:visible;" + id="TriangleInL" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="TriangleInL"> + <path + transform="scale(-0.8)" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" + d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z " + id="path2823" + sodipodi:nodetypes="cccc" /> + </marker> + <marker + style="overflow:visible;" + id="Arrow2L" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="Arrow2L"> + <path + transform="scale(1.1) translate(-5,0)" + d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " + style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;" + id="path2863" + sodipodi:nodetypes="cccc" /> + </marker> + <linearGradient + id="linearGradient2570"> + <stop + id="stop2571" + offset="0.0000000" + style="stop-color:#000000;stop-opacity:1.0000000;" /> + <stop + id="stop2572" + offset="0.58504134" + style="stop-color:#000000;stop-opacity:0.62745100;" /> + <stop + id="stop2573" + offset="1.0000000" + style="stop-color:#ffffff;stop-opacity:0.0000000;" /> + </linearGradient> + <linearGradient + y2="0.98555958" + x2="0.27112675" + y1="0.097472921" + x1="0.50352114" + id="linearGradient1322" + xlink:href="#linearGradient1218" /> + <linearGradient + y2="0.99354839" + x2="-0.17253521" + y1="0.27741936" + x1="0.50704223" + id="linearGradient1318" + xlink:href="#linearGradient1273" /> + <linearGradient + gradientTransform="scale(1.004208,0.995809)" + y2="0.12454049" + x2="0.41986585" + y1="1.9347328" + x1="0.45376351" + id="linearGradient1307" + xlink:href="#linearGradient1222" /> + <linearGradient + gradientTransform="scale(1.006361,0.993679)" + y2="0.11846013" + x2="0.41548476" + y1="1.9667202" + x1="0.45009527" + id="linearGradient1306" + xlink:href="#linearGradient1222" /> + <linearGradient + gradientTransform="scale(1.002016,0.997989)" + y2="0.13959341" + x2="0.42603236" + y1="1.8676205" + x1="0.45839140" + id="linearGradient1305" + xlink:href="#linearGradient1222" /> + <linearGradient + y2="0.80203044" + x2="0.36971831" + y1="1.5228426" + x1="-0.36619717" + id="linearGradient1277" + xlink:href="#linearGradient1273" /> + <linearGradient + y2="0.55458528" + x2="0.53521127" + y1="0.23580793" + x1="1.0739436" + id="linearGradient1272" + xlink:href="#linearGradient1273" /> + <linearGradient + id="linearGradient1270" + xlink:href="#linearGradient1222" /> + <linearGradient + y2="0.50000000" + x2="1.0000000" + y1="0.50000000" + x1="0.00000000" + id="linearGradient1231" + xlink:href="#linearGradient1323" /> + <linearGradient + y2="0.24742271" + x2="0.42605633" + y1="2.1597939" + x1="-0.96478873" + id="linearGradient1221" + xlink:href="#linearGradient1222" /> + <linearGradient + id="linearGradient1218"> + <stop + id="stop1219" + offset="0.00000000" + style="stop-color:#000000;stop-opacity:1.0000000;" /> + <stop + id="stop1321" + offset="0.073255815" + style="stop-color:#323232;stop-opacity:1.0000000;" /> + <stop + id="stop1320" + offset="0.65260679" + style="stop-color:#000000;stop-opacity:1.0000000;" /> + <stop + id="stop1220" + offset="1" + style="stop-color:#fff;stop-opacity:1;" /> + </linearGradient> + <linearGradient + id="linearGradient1222"> + <stop + id="stop1223" + offset="0.0000000" + style="stop-color:#0081ac;stop-opacity:1.0000000;" /> + <stop + id="stop1722" + offset="0.50000000" + style="stop-color:#006d91;stop-opacity:0.62745100;" /> + <stop + id="stop1224" + offset="1.0000000" + style="stop-color:#000000;stop-opacity:0.0000000;" /> + </linearGradient> + <linearGradient + id="linearGradient1273"> + <stop + id="stop1274" + offset="0.00000000" + style="stop-color:#ffffff;stop-opacity:1.0000000;" /> + <stop + id="stop1275" + offset="1.0000000" + style="stop-color:#ffffff;stop-opacity:0.00000000;" /> + </linearGradient> + <linearGradient + id="linearGradient1323"> + <stop + id="stop1324" + offset="0.00000000" + style="stop-color:#000000;stop-opacity:0.77685952;" /> + <stop + id="stop1325" + offset="1.0000000" + style="stop-color:#000000;stop-opacity:0.00000000;" /> + </linearGradient> + <radialGradient + fy="0.15625000" + fx="0.50617284" + r="0.41400504" + cy="0.46875000" + cx="0.49382716" + id="radialGradient829" + xlink:href="#linearGradient826" /> + <linearGradient + id="linearGradient826"> + <stop + id="stop827" + offset="0.00000000" + style="stop-color:#000000;stop-opacity:0.95294118;" /> + <stop + id="stop830" + offset="0.36585677" + style="stop-color:#000000;stop-opacity:0.76078433;" /> + <stop + id="stop847" + offset="0.47107276" + style="stop-color:#000000;stop-opacity:0.52941179;" /> + <stop + id="stop828" + offset="1.0000000" + style="stop-color:#ffffff;stop-opacity:0.00000000;" /> + </linearGradient> + <linearGradient + y2="-1.7333326" + x2="0.50000000" + y1="0.66667551" + x1="0.50000000" + id="linearGradient907" + xlink:href="#linearGradient909" /> + <linearGradient + id="linearGradient909"> + <stop + id="stop910" + offset="0.00000000" + style="stop-color:#000000;stop-opacity:0.00000000;" /> + <stop + id="stop913" + offset="1.0000000" + style="stop-color:#000000;stop-opacity:0.17000000;" /> + </linearGradient> + <linearGradient + id="linearGradient1309" + xlink:href="#linearGradient1222" /> + <linearGradient + y2="0.50000000" + x2="1.0000000" + y1="0.50000000" + x1="0.0000000" + id="linearGradient1308" + xlink:href="#linearGradient2570" /> + </defs> + <sodipodi:namedview + inkscape:current-layer="layer2" + inkscape:guide-bbox="true" + showguides="true" + inkscape:window-y="105" + inkscape:window-x="410" + inkscape:window-height="687" + inkscape:window-width="764" + inkscape:cy="232.38095" + inkscape:cx="348.40278" + inkscape:zoom="1.0500000" + inkscape:pageshadow="2" + inkscape:pageopacity="0.0" + borderopacity="1.0" + bordercolor="#666666" + pagecolor="#ffffff" + id="base" /> + <metadata + id="metadata33"> + <rdf:RDF + id="RDF34"> + <cc:Work + id="Work35" + rdf:about=""> + <dc:format + id="format36">image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" + id="type38" /> + </cc:Work> + </rdf:RDF> + </metadata> + <g + style="display:block" + inkscape:label="Background" + id="layer1" + inkscape:groupmode="layer"> + <rect + y="1.7763568e-15" + x="0.0000000" + height="112.50000" + width="800.00000" + id="topbluebox" + style="font-size:12.000000;fill:url(#linearGradient1309);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:3.0000000pt;" /> + <path + sodipodi:nodetypes="cc" + id="path654" + d="M -0.034245957,110.20928 L 797.51553,110.00778" + style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:url(#linearGradient1308);stroke-width:4.9844480;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;" /> + <g + transform="translate(646.2792,-9.754791)" + id="g1085"> + <g + transform="matrix(0.875802,0.000000,0.000000,0.869278,1.048583,-7.965682)" + id="g1394"> + <path + transform="matrix(0.394071,0.000000,0.000000,8.155385e-2,-31.69751,94.58860)" + style="opacity:0.69398910;fill:url(#radialGradient829);stroke-width:4.4309568;stroke-dasharray:17.723827 17.723827 ;stroke-dashoffset:0.0000000;" + d="M 600.00000 300.00000 A 300.00000 300.00000 0 1 0 0.0000000,300.00000 A 300.00000 300.00000 0 1 0 600.00000 300.00000 z" + sodipodi:ry="300.00000" + sodipodi:rx="300.00000" + sodipodi:cy="300.00000" + sodipodi:cx="300.00000" + id="path898" + sodipodi:type="arc" /> + <path + transform="matrix(0.280658,0.000000,0.000000,0.148676,4.082687,91.98483)" + style="fill:url(#radialGradient829);stroke-width:4.4309568;stroke-dasharray:17.723827 17.723827 ;stroke-dashoffset:0.0000000;" + d="M 600.00000 300.00000 A 300.00000 300.00000 0 1 0 0.0000000,300.00000 A 300.00000 300.00000 0 1 0 600.00000 300.00000 z" + sodipodi:ry="300.00000" + sodipodi:rx="300.00000" + sodipodi:cy="300.00000" + sodipodi:cx="300.00000" + id="ball1" + sodipodi:type="arc" /> + </g> + <g + style="fill:url(#linearGradient1221);" + transform="matrix(1.822197,0.000000,0.000000,1.662749,-180.0082,12.26653)" + id="g1310"> + <path + id="path1278" + d="M 139.27138,11.077118 C 137.22042,11.077119 135.15548,11.849270 133.58388,13.420868 L 105.67763,41.358368 C 104.13725,42.898711 103.33325,44.910828 103.30263,46.920868 C 103.30220,46.954601 103.30263,47.012134 103.30263,47.045868 L 103.36513,47.045868 C 103.89976,49.079999 117.69889,51.660911 119.24013,53.202118 C 121.56768,55.529685 110.31886,57.249538 112.64638,59.577118 C 114.97392,61.904658 126.72486,64.062038 129.05263,66.389620 C 131.38019,68.717170 124.28755,71.187070 126.61513,73.514620 C 128.94268,75.842201 136.74995,72.943440 135.33388,79.014621 C 138.47707,82.157811 145.03666,80.657811 149.42763,77.514621 C 151.75518,75.187070 144.97506,75.404670 147.30263,73.077120 C 149.63018,70.749540 155.50836,70.738600 160.45888,65.170868 C 158.46624,62.071818 151.94381,60.748438 154.27138,58.420868 C 156.59893,56.093323 161.10115,57.261288 170.86513,52.827118 C 175.63150,50.662408 175.25838,49.039285 175.24013,47.045868 C 175.23975,47.003922 175.24013,46.963136 175.24013,46.920868 L 175.20888,46.920868 C 175.17827,44.910830 174.40547,42.898714 172.86513,41.358368 L 144.92763,13.420868 C 143.35604,11.849272 141.32234,11.077118 139.27138,11.077118 z M 139.02138,14.702118 C 139.93315,14.725869 140.67125,15.422422 142.11513,16.358368 L 155.30263,26.139618 C 155.44708,26.233292 155.58252,26.320552 155.70888,26.420868 C 155.83525,26.521171 155.97562,26.627132 156.08388,26.733368 C 156.19214,26.839410 156.27479,26.966073 156.36513,27.077118 C 156.45527,27.188145 156.54310,27.305955 156.61513,27.420868 C 156.68737,27.535969 156.74853,27.646585 156.80263,27.764618 C 156.85677,27.882866 156.89163,27.987920 156.92763,28.108368 C 156.96385,28.228632 157.00329,28.361823 157.02138,28.483368 C 157.03948,28.605130 157.05263,28.736271 157.05263,28.858368 L 149.24013,25.077118 L 148.45888,30.983368 L 144.14638,28.952118 L 137.52138,33.389618 L 134.95888,24.639618 L 131.70888,32.295868 L 122.55263,33.202118 L 122.64638,29.139618 C 122.64638,28.162533 127.93872,21.330614 131.14638,19.702118 L 137.02138,15.483368 C 137.88771,14.921800 138.47431,14.687867 139.02138,14.702118 z M 126.89638,54.639618 C 131.05584,55.718333 135.68346,57.114312 139.39638,57.139618 L 139.55263,58.827118 C 136.37321,58.499388 129.63884,56.949888 128.05263,56.139618 L 126.89638,54.639618 z M 170.24013,62.045868 C 169.60518,62.025518 169.00430,62.089178 168.55263,62.202118 C 167.70107,62.414898 163.56419,62.512928 163.89638,65.170868 C 167.55118,66.499190 173.20097,67.516500 173.86513,64.858368 C 174.36366,62.865308 172.14497,62.106908 170.24013,62.045868 z M 122.45888,67.452120 C 121.88389,67.385110 121.32136,67.455980 120.77138,67.733370 C 118.57203,68.842760 117.09168,71.307720 119.14638,72.327120 C 121.20129,73.346520 122.65747,72.185800 124.45888,70.920870 C 126.26050,69.656140 126.21414,69.408800 126.08388,68.920870 C 125.83449,68.987380 124.18386,67.653150 122.45888,67.452120 z M 162.64638,67.889620 C 160.98514,68.553960 161.00465,70.861860 162.33388,71.858370 C 163.66277,72.855080 165.32597,72.210400 165.99013,71.545870 C 166.65484,70.881530 165.96848,68.553970 162.64638,67.889620 z " + style="fill-opacity:0.074380167;fill-rule:evenodd;stroke-width:1.0000000pt;" /> + <path + id="path1283" + d="M 137.96875,10.718750 C 134.70402,11.060845 132.45341,13.855395 130.15790,15.940974 C 121.77155,24.503910 113.19525,32.911552 104.88478,41.529122 C 103.53165,43.257666 102.98133,45.293623 102.71875,47.437500 C 107.43946,50.886242 113.69835,50.905815 118.71875,53.781250 C 117.30484,56.014138 113.86394,55.927723 112.30534,58.153586 C 110.95047,59.066432 112.87438,60.562599 113.88390,60.907202 C 118.07998,63.025863 122.80956,63.838835 126.97834,66.068813 C 129.14039,66.223477 128.99465,68.397410 127.55968,69.465540 C 126.42313,70.610466 124.66557,72.512182 126.40386,73.938766 C 128.52893,75.415674 131.34635,75.011355 133.71875,75.875000 C 135.38587,76.789177 134.20286,78.442002 135.34375,79.593750 C 138.20878,81.840481 142.17613,81.444087 145.36980,80.162063 C 147.01184,79.679133 148.50293,78.612108 149.93750,77.781250 C 151.32137,76.168445 149.16317,75.014407 147.93750,74.343750 C 147.13207,73.007556 149.81258,72.471472 150.72621,71.835396 C 154.22932,70.415525 157.63139,68.772275 160.32323,66.076023 C 162.00146,65.040055 159.53684,63.566475 158.75000,62.750000 C 157.29555,61.671425 155.38495,61.005736 154.46875,59.343750 C 156.83166,56.736844 160.77991,57.222943 163.82692,55.886662 C 167.48614,54.956060 170.96688,53.327613 174.19128,51.441061 C 176.31894,49.855420 175.75931,47.094289 175.34438,44.858149 C 173.82714,40.146659 169.32671,37.346121 166.14614,33.782162 C 159.00255,26.737555 151.96598,19.558149 144.75603,12.597114 C 142.83187,11.117125 140.40461,10.324926 137.96875,10.718750 z M 140.15625,15.718750 C 145.33185,19.512142 150.51925,23.291773 155.68750,27.093750 C 155.79568,28.128330 152.96647,25.994412 151.88519,25.704486 C 150.56126,25.310550 148.23232,22.990502 148.60160,25.735802 C 148.03383,26.854222 148.89364,30.614243 147.25375,29.748789 C 145.77079,28.952048 143.79956,27.767016 142.39696,29.393778 C 140.87922,30.408352 139.36149,31.422926 137.84375,32.437500 C 136.92659,29.270978 136.01364,26.103230 135.09375,22.937500 C 133.83186,25.869891 132.59553,28.813265 131.34375,31.750000 C 128.60417,32.020833 125.86458,32.291667 123.12500,32.562500 C 122.93577,30.531586 123.37937,28.492090 124.78964,27.051727 C 127.83705,22.165897 132.91432,19.181067 137.48762,15.928279 C 138.38080,15.399443 139.18306,15.465846 140.15625,15.718750 z M 132.06250,56.562500 C 134.25968,57.131800 136.54653,57.244809 138.78125,57.625000 C 137.93164,58.641801 135.83490,57.320885 134.50134,57.277133 C 132.75919,56.896272 131.01731,56.527068 129.37500,55.812500 C 130.27083,56.062500 131.16667,56.312500 132.06250,56.562500 z M 168.50000,61.625000 C 166.47980,62.095190 163.59992,62.369201 163.34375,64.968750 C 164.00781,65.934196 166.11962,66.292948 167.47626,66.551501 C 169.60910,66.891924 172.52463,67.659468 174.01886,65.672524 C 175.29513,63.892929 173.38643,61.628153 171.40540,61.754929 C 170.44376,61.426788 169.48969,61.503021 168.50000,61.625000 z M 120.65625,67.156250 C 119.17864,68.173454 117.17273,69.706513 117.81250,71.750000 C 119.32360,73.943032 122.44871,73.328157 124.17581,71.744685 C 125.31806,71.095411 127.22708,69.849349 126.34375,68.406250 C 124.53029,67.617814 122.70705,66.421404 120.65625,67.156250 z M 162.25000,67.468750 C 160.98536,68.304844 160.47655,70.055902 161.35305,71.321264 C 162.02451,73.004295 164.27223,73.179865 165.64672,72.263080 C 167.48408,71.700360 166.67812,69.347513 165.33731,68.658474 C 164.66189,67.815250 163.12029,67.406310 162.25000,67.468750 z " + style="fill-opacity:0.074380167;fill-rule:evenodd;stroke-width:1.0000000pt;" /> + <path + id="path1286" + d="M 137.09375,12.062500 C 133.45264,13.658306 130.89510,17.054651 128.02763,19.760075 C 120.64992,27.277135 113.11748,34.668181 105.81675,42.244521 C 104.77302,43.583830 104.19848,45.113312 103.93750,46.781250 C 108.02500,49.661848 113.35464,49.814484 117.77247,52.034312 C 119.23732,52.180074 120.83004,53.663696 119.47530,54.914506 C 117.72685,56.714093 114.64707,56.868986 113.18750,58.937500 C 116.98689,61.678185 121.72461,62.314645 125.91888,64.199775 C 127.35246,65.248996 129.93899,65.341959 130.00000,67.531250 C 129.61283,69.469175 127.68115,70.594821 126.84375,72.343750 C 128.66657,74.916318 132.41661,73.526770 134.81763,75.194505 C 136.12150,75.998634 135.76289,77.719238 136.33739,78.786112 C 139.34189,80.984126 143.56705,80.023489 146.59979,78.262860 C 147.57821,77.931235 150.25551,76.737683 148.25234,75.866570 C 146.79311,75.539319 145.57083,73.791727 146.98575,72.676315 C 150.59379,69.928273 155.52636,69.300230 158.75379,65.912819 C 160.44061,64.636839 157.51978,63.512312 156.64603,62.784855 C 155.31686,61.805358 153.02074,60.864770 153.31250,58.906250 C 155.52467,55.836091 159.76350,56.249927 162.98171,54.909139 C 166.64088,54.011598 170.17880,52.442724 173.39619,50.585767 C 175.44759,48.766928 174.40312,45.854433 173.70402,43.674602 C 170.01715,38.505895 164.93468,34.528530 160.60640,29.906454 C 155.05848,24.484276 149.68028,18.831089 144.02714,13.552135 C 142.01313,12.267231 139.68457,11.155741 137.26959,12.030263 L 137.09375,12.062500 z M 139.25000,14.156250 C 144.36849,16.573687 148.44456,20.615673 153.06166,23.857057 C 154.79682,25.417824 157.75256,26.462276 157.65625,29.218750 C 155.98301,29.620934 154.51821,27.909197 152.92283,27.467153 C 151.47889,26.979622 149.05912,24.688826 149.46490,27.619328 C 148.95092,28.676042 149.67609,32.096323 148.30430,31.528870 C 146.86362,30.916675 145.25114,29.742049 143.73062,29.880583 C 141.56112,31.359522 139.38321,32.826259 137.21875,34.312500 C 136.40063,31.654144 135.63994,28.977747 134.84375,26.312500 C 133.78712,28.431959 132.98467,30.961875 131.78125,32.843750 C 128.52084,33.166779 125.26035,33.488957 122.00000,33.812500 C 122.02692,31.439278 121.58820,28.751334 123.45144,26.900643 C 126.38650,21.928911 131.54097,18.937382 135.96875,15.531250 C 137.05500,15.131227 138.17386,14.356070 139.25000,14.156250 z M 126.34375,53.906250 C 130.81931,55.099287 135.33348,56.080112 139.93750,56.625000 C 140.81508,58.380031 139.61654,59.889689 137.75155,59.030564 C 134.35469,58.342143 130.95451,57.411091 127.62500,56.500000 C 127.37596,56.018046 124.72663,53.333015 126.34375,53.906250 z M 168.68750,62.750000 C 167.26725,63.145732 165.19352,63.022642 164.68750,64.750000 C 167.41558,65.272026 170.36127,66.626958 173.03125,65.187500 C 173.94813,63.333514 171.22391,62.807999 169.92452,62.707344 C 169.51218,62.721563 169.09984,62.735781 168.68750,62.750000 z M 120.96875,68.250000 C 119.88102,69.094191 117.71809,71.141191 120.00567,71.867660 C 122.11744,72.377527 123.71955,70.573549 125.28125,69.468750 C 124.17010,68.379529 122.48301,67.967608 120.96875,68.250000 z M 162.25000,68.937500 C 161.26655,70.838341 164.03769,72.707639 165.32625,71.028976 C 165.98639,69.968138 163.10932,68.105539 162.25000,68.937500 z " + style="fill-opacity:0.074380167;fill-rule:evenodd;stroke-width:1.0000000pt;" /> + <path + id="path1295" + d="M 137.50000,12.562500 C 131.56402,15.884438 127.47918,21.513076 122.59316,26.106819 C 117.07494,31.800872 111.33765,37.333066 105.95500,43.127274 C 105.27016,44.232264 103.90274,46.716455 105.88806,47.110513 C 110.48303,49.525949 116.07018,49.897473 120.25000,52.937500 C 121.19557,55.258014 118.31954,56.204644 116.77699,57.135076 C 115.14828,57.646504 113.25757,59.174666 115.98524,59.736007 C 120.51650,62.179113 125.90956,62.812244 130.06250,65.968750 C 131.40440,68.155882 128.87852,70.088345 127.96429,71.816940 C 127.97548,73.606583 130.61198,73.210238 131.85374,73.694589 C 134.00698,73.861384 136.31306,75.067306 136.52629,77.437982 C 137.24770,79.315251 139.82104,79.377347 141.56250,79.375000 C 143.88381,79.081698 145.88731,77.848938 148.00000,76.937500 C 147.89289,75.484280 145.47385,75.343455 145.78125,73.562500 C 147.65028,70.568783 151.46696,69.934698 154.32757,68.211442 C 155.95166,67.507534 157.40819,66.436524 158.50000,65.031250 C 156.69534,62.893495 153.11684,62.207207 152.76893,59.025530 C 153.13476,57.911585 154.90043,56.856141 156.14992,56.314935 C 161.47352,54.305871 167.29666,53.530281 172.18291,50.436255 C 174.75469,49.397100 173.90347,46.181096 173.15013,44.168122 C 170.99740,41.143850 168.08639,38.542958 165.64236,35.681332 C 163.12371,33.093790 160.49665,30.610931 157.93750,28.062500 C 158.99092,29.594714 157.00835,30.333418 155.86310,29.376751 C 153.95887,28.546062 152.06033,27.726589 150.12500,26.968750 C 150.04976,28.633800 149.69671,30.253091 149.34375,31.875000 C 146.94959,32.517021 144.62510,29.359512 142.44997,31.405021 C 140.65579,32.399012 139.25573,34.074138 137.34005,34.698602 C 135.96867,34.449689 136.15225,31.657450 135.44638,30.368996 C 135.03220,27.477998 134.31032,28.114323 133.43720,30.484434 C 132.63691,31.983328 132.29360,34.079093 130.12469,33.576560 C 127.22896,33.863646 124.33317,34.149933 121.43750,34.437500 C 121.45635,31.458390 121.16984,28.094375 123.52595,25.839572 C 126.82257,21.188668 131.69023,18.019711 136.23357,14.793262 C 137.75437,14.087412 139.64327,13.037594 141.05071,14.536711 C 144.77608,17.093755 148.56965,19.491887 152.06250,22.343750 C 149.06655,19.513772 146.25485,16.420638 143.14594,13.751994 C 141.38445,12.871744 139.52020,11.789900 137.50000,12.562500 z M 126.40625,53.343750 C 131.09445,54.266714 135.77718,55.221773 140.46875,56.125000 C 140.66311,57.490600 140.90400,59.768414 138.90019,59.717011 C 134.99279,58.970773 131.04202,57.882901 127.18750,56.875000 C 126.61048,55.955764 124.83534,54.556620 125.40625,53.625000 C 125.73497,53.577157 126.08499,53.292470 126.40625,53.343750 z M 166.53125,63.812500 C 164.90117,64.830649 168.72302,64.879550 169.60036,65.161786 C 170.82454,65.513571 173.80209,64.644903 171.50000,63.593750 C 169.78209,63.217030 168.21140,63.255613 166.53125,63.812500 z M 120.81250,69.187500 C 118.77488,70.497531 120.63987,72.049766 122.29985,70.780747 C 124.22011,70.547064 124.25797,68.584075 122.13849,68.857155 C 121.62590,68.786616 121.20364,68.805690 120.81250,69.187500 z M 162.78125,70.250000 C 165.04372,72.410337 164.50416,68.582957 162.78125,69.787913 C 162.78125,69.883882 162.78125,70.191942 162.78125,70.250000 z " + style="fill-opacity:0.074380167;fill-rule:evenodd;stroke-width:1.0000000pt;" /> + <path + id="path1300" + d="M 137.25000,10.312500 C 134.57328,10.811904 132.67255,13.050780 130.64866,14.715585 C 121.77957,23.451854 113.11785,32.437236 104.37500,41.281250 C 103.17019,43.288146 102.47259,45.456013 102.06250,47.750000 C 105.83476,49.628698 109.64657,51.368815 113.75481,52.377095 C 114.74672,53.000901 118.15181,53.211596 117.03125,54.625000 C 114.87625,55.770623 112.18432,56.545814 111.25000,59.062500 C 113.07397,62.261249 117.13309,62.448994 120.14188,63.972108 C 122.66750,64.970987 125.19313,65.969869 127.71875,66.968750 C 127.79709,69.608591 127.12737,68.724937 125.79671,67.542170 C 123.76150,66.508388 120.74167,65.559916 119.14266,67.799744 C 117.68910,68.685330 116.55779,70.940149 117.66673,72.361712 C 119.74129,74.610002 123.29896,73.558599 125.22361,71.631365 C 125.39044,71.451948 124.94524,74.329263 126.55554,74.625682 C 128.75187,75.888131 131.56113,75.535204 133.75000,76.781250 C 134.17453,78.637203 134.92263,80.738750 137.10053,81.029661 C 140.53970,82.420114 144.41944,81.397273 147.50485,79.584682 C 148.81540,78.872018 151.32795,78.343669 150.75195,76.374975 C 150.70713,75.080531 147.53803,74.300613 149.31250,73.093750 C 153.55943,71.203594 157.91230,69.209830 161.18750,65.843750 C 161.99115,63.731003 159.07145,62.849633 157.93750,61.562500 C 156.57653,60.417748 154.30116,59.195844 157.17010,58.407983 C 162.44672,56.428116 168.30037,55.651561 173.14000,52.536010 C 175.69933,51.724285 176.75286,48.825627 176.01594,46.382200 C 175.99204,43.921497 174.36450,41.884430 172.99509,39.973772 C 168.23708,34.553265 162.73310,29.839073 157.72691,24.648245 C 153.37676,20.454464 149.19589,15.998891 144.74248,11.964991 C 142.49218,10.519398 139.90204,10.047325 137.25000,10.312500 z M 140.40625,16.625000 C 144.38180,19.415210 148.26381,22.371245 152.21875,25.218750 C 151.00059,24.471219 149.71107,24.008458 148.28125,23.906250 C 148.08169,25.616789 147.84012,27.322499 147.62500,29.031250 C 145.77312,28.480352 143.67622,27.363820 142.02088,28.944411 C 140.79579,29.321785 138.71876,32.029330 138.02739,30.946881 C 137.09069,27.714729 136.15797,24.481420 135.21875,21.250000 C 133.79126,24.568262 132.38708,27.896549 130.96875,31.218750 C 128.56250,31.458333 126.15625,31.697917 123.75000,31.937500 C 123.73611,28.504117 126.40867,25.941624 128.50533,23.538181 C 131.60340,20.877921 134.84009,18.280137 138.37100,16.266120 C 139.05687,15.927768 139.72649,16.501380 140.40625,16.625000 z M 165.12500,61.937500 C 163.94994,62.683294 162.04675,64.163789 163.31250,65.625000 C 165.77599,67.237331 168.84980,67.346191 171.68759,67.438839 C 173.79767,67.380039 175.87709,64.882603 174.44068,62.966319 C 173.10190,60.663393 170.05340,61.177216 167.81605,61.201002 C 166.91904,61.446503 166.02202,61.692001 165.12500,61.937500 z M 162.03125,67.031250 C 160.83535,68.000188 160.29043,69.695123 160.76346,71.258236 C 161.16730,73.039050 163.22496,73.494707 164.78719,72.992478 C 167.13879,73.181332 168.09248,69.825149 166.13394,68.653373 C 164.96960,67.668728 163.65541,66.689296 162.03125,67.031250 z " + style="fill-opacity:0.074380167;fill-rule:evenodd;stroke-width:1.0000000pt;" /> + <path + id="path1304" + d="M 136.87500,9.5625000 C 131.65304,11.769127 128.14544,16.384624 124.15881,20.216605 C 117.35142,27.117414 110.49657,33.984328 103.71875,40.906250 C 102.85273,43.332808 101.99819,45.763562 101.12500,48.187500 C 105.93068,50.283305 110.76347,52.276496 115.75000,53.906250 C 115.44333,55.363555 112.99770,55.191635 112.24058,56.587946 C 110.89606,57.445273 110.01695,59.785906 111.89556,60.567820 C 114.86490,63.357428 118.93991,64.363020 122.62500,65.875000 C 119.72774,65.033632 117.80750,68.090788 116.68750,70.250000 C 116.01105,72.950420 119.11437,74.651083 121.43923,74.259441 C 122.88425,74.778519 124.87048,71.894366 125.06555,74.129447 C 127.21708,76.574392 131.35224,75.998123 133.59751,78.288768 C 134.32398,80.302303 135.99246,81.986172 138.23383,82.006618 C 140.25772,82.589257 142.23898,82.314480 144.19142,81.614260 C 146.47188,81.098710 148.64271,79.959926 150.63761,78.824244 C 152.14711,77.754911 151.81527,75.346631 150.43750,74.312500 C 150.23406,72.704926 152.73875,72.682794 153.75639,71.819616 C 156.49819,70.564020 158.90600,68.804050 161.21875,66.906250 C 160.19643,68.376408 159.81043,70.315970 160.38112,71.987759 C 161.34634,74.267655 164.22210,73.656108 166.15625,73.531250 C 168.08949,72.610730 168.83732,69.631414 166.87500,68.343750 C 164.02568,66.581529 166.47357,67.403459 168.27836,67.911665 C 170.51415,68.044548 173.31226,68.747610 174.83495,66.581402 C 176.52328,64.952843 175.46252,62.386049 173.84375,61.125000 C 171.82924,60.052772 169.41179,60.364713 167.22781,60.468857 C 165.26732,60.816302 163.77932,61.981088 162.56250,63.500000 C 161.07416,64.693238 164.27576,66.891706 162.51264,66.451187 C 161.23611,66.670932 162.80138,64.122782 161.27178,63.293106 C 160.27477,61.829766 158.59216,60.917429 157.34375,59.656250 C 163.37320,56.739900 170.41697,55.950383 175.81250,51.750000 C 177.79054,49.403625 176.89111,46.297658 176.31250,43.625000 C 172.71709,37.077334 166.72680,32.381991 161.58112,27.092054 C 156.10204,21.754721 150.65568,16.371055 145.15625,11.062500 C 142.76062,10.099303 140.31053,9.4347862 137.70606,9.5684113 C 137.43820,9.5943662 137.13013,9.4705862 136.87500,9.5625000 z M 144.00000,20.125000 C 145.41913,21.217458 146.85549,22.290152 148.28125,23.375000 C 146.97140,24.376925 147.43473,26.306660 146.96875,27.718750 C 145.01335,27.188020 142.88412,27.117042 141.28969,28.567875 C 140.30436,29.400862 138.46017,30.323076 138.31032,28.383898 C 137.43025,25.351664 136.59470,22.304201 135.68750,19.281250 C 137.21838,18.817776 138.78213,16.344334 140.28250,17.745803 C 141.52167,18.538869 142.76083,19.331934 144.00000,20.125000 z M 130.53125,30.406250 C 128.68750,30.593750 126.84375,30.781250 125.00000,30.968750 C 125.70615,27.451641 128.61722,24.990200 131.09307,22.632488 C 132.44877,21.648343 133.72082,20.531920 135.12500,19.625000 C 133.59375,23.218750 132.06250,26.812500 130.53125,30.406250 z " + style="fill-opacity:0.074380167;fill-rule:evenodd;stroke-width:1.0000000pt;" /> + </g> + <path + transform="matrix(1.220396,0.000000,0.000000,1.220396,-20.19444,7.307033)" + sodipodi:nodetypes="cccccccccccccccccccccccccccccccccccccccccc" + id="path1217" + d="M 78.468542,10.216821 C 75.406213,10.216823 72.323010,11.369737 69.976423,13.716321 L 28.309048,55.430356 C 26.009076,57.730272 24.808608,60.734604 24.762888,63.735835 C 24.762246,63.786202 24.762888,63.872106 24.762888,63.922475 L 24.856208,63.922475 C 25.654475,66.959676 46.258230,70.813287 48.559486,73.114494 C 52.034797,76.589830 35.238960,79.157777 38.714227,82.633131 C 42.189523,86.108431 59.735084,89.329652 63.210724,92.805012 C 66.686050,96.280332 56.095888,99.968182 59.571244,103.44349 C 63.046555,106.91885 74.703745,102.59065 72.589383,111.65565 C 77.282542,116.34881 87.076796,114.10913 93.633042,109.41597 C 97.108353,105.94066 86.984820,106.26556 90.460160,102.79025 C 93.935473,99.314902 102.71230,99.298562 110.10402,90.985272 C 107.12876,86.358021 97.390000,84.382051 100.86534,80.906713 C 104.34065,77.431409 111.06300,79.175321 125.64179,72.554574 C 132.75855,69.322402 132.20143,66.898885 132.17419,63.922475 C 132.17362,63.859844 132.17419,63.798946 132.17419,63.735835 L 132.12753,63.735835 C 132.08182,60.734607 130.92794,57.730277 128.62803,55.430356 L 86.914001,13.716321 C 84.567429,11.369740 81.530871,10.216821 78.468542,10.216821 z M 59.991184,75.260853 C 66.201756,76.871504 73.111347,78.955868 78.655182,78.993653 L 78.888482,81.513293 C 74.141227,81.023952 64.086006,78.710363 61.717604,77.500533 L 59.991184,75.260853 z M 124.70859,86.319271 C 123.76053,86.288891 122.86335,86.383941 122.18895,86.552571 C 120.91747,86.870282 114.74061,87.016652 115.23661,90.985272 C 120.69367,92.968622 129.12948,94.487582 130.12115,90.518672 C 130.86551,87.542792 127.55274,86.410411 124.70859,86.319271 z M 53.365465,94.391452 C 52.506936,94.291402 51.667011,94.397222 50.845825,94.811392 C 47.561932,96.467852 45.351592,100.14833 48.419506,101.67041 C 51.487732,103.19250 53.661984,101.45941 56.351705,99.570712 C 59.041739,97.682322 58.972518,97.313012 58.778024,96.584472 C 58.405655,96.683782 55.941067,94.691622 53.365465,94.391452 z M 113.37021,95.044692 C 110.88978,96.036632 110.91892,99.482602 112.90361,100.97051 C 114.88780,102.45872 117.37116,101.49614 118.36283,100.50391 C 119.35532,99.511972 118.33051,96.036652 113.37021,95.044692 z " + style="fill:url(#linearGradient1322);fill-rule:evenodd;stroke-width:1.0000000pt;" /> + <path + transform="matrix(1.220396,0.000000,0.000000,1.220396,-20.19444,7.307033)" + sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc" + id="path1269" + d="M 25.748195,58.983802 C 25.069168,60.484820 24.699511,62.088386 24.675015,63.696461 C 24.674375,63.746824 24.675015,63.832738 24.675015,63.883101 L 24.768335,63.883101 C 25.532194,66.789384 44.034284,70.422637 47.678393,72.748500 C 49.285306,71.792649 50.340763,70.791543 49.264832,69.715600 C 46.963576,67.414389 26.359823,63.560781 25.561555,60.523581 L 25.468235,60.523581 C 25.468235,60.473204 25.467595,60.387304 25.468235,60.336942 C 25.475280,59.874537 25.686531,59.443757 25.748195,58.983802 z M 132.03964,65.049601 C 131.22443,66.340254 129.65777,67.652109 126.34713,69.155680 C 111.76835,75.776420 105.04600,74.032516 101.57069,77.507812 C 100.51786,78.560641 100.89350,79.461052 101.71067,80.354072 C 105.38973,77.752669 112.01329,78.664472 125.55391,72.515200 C 131.70333,69.722349 132.05669,67.513308 132.03964,65.049601 z M 60.696531,71.861960 L 62.422951,74.101632 C 64.791352,75.311463 74.846572,77.625067 79.593829,78.114392 L 79.360529,75.594752 C 73.816694,75.556961 66.907102,73.472618 60.696531,71.861960 z M 40.119473,79.607512 C 38.565476,80.548088 37.568913,81.536279 38.626354,82.593751 C 42.101651,86.069051 59.647211,89.290272 63.122851,92.765632 C 63.275692,92.918462 63.255326,93.078602 63.356151,93.232232 C 64.435614,91.947532 65.165573,90.655612 63.916071,89.406112 C 60.566937,86.057251 44.419333,82.939151 40.119473,79.607512 z M 117.10845,87.866332 C 115.91482,88.486362 114.95058,89.360392 115.14873,90.945882 C 120.60578,92.929232 129.04159,94.448192 130.03326,90.479292 C 130.22625,89.707762 130.12018,89.057262 129.84662,88.519572 C 127.48913,90.422432 121.65703,89.359992 117.10845,87.866332 z M 108.52303,89.546092 C 101.68539,95.627832 94.291059,96.265772 91.165507,99.391352 C 89.908251,100.64860 90.617583,101.33525 91.632107,101.95765 C 95.620160,99.286262 103.30109,98.498152 110.01615,90.945882 C 109.67197,90.410612 109.01729,90.016842 108.52303,89.546092 z M 112.39580,95.705212 C 110.96059,97.100002 111.14367,99.677592 112.81574,100.93113 C 114.79992,102.41933 117.28328,101.45675 118.27495,100.46453 C 118.78497,99.954792 118.71737,98.812252 117.90167,97.664932 C 116.69163,98.288052 115.10107,98.690742 113.60896,97.571612 C 112.97842,97.098902 112.61381,96.431702 112.39580,95.705212 z M 57.383671,95.891852 C 57.217332,96.012982 57.251127,96.035572 57.057051,96.171812 C 54.367330,98.060502 52.193078,99.793612 49.124852,98.271512 C 48.483305,97.953222 48.223383,97.480502 48.005012,97.011692 C 46.640740,98.694072 46.307086,100.62659 48.331632,101.63103 C 51.399861,103.15311 53.574111,101.42002 56.263832,99.531332 C 58.953868,97.642932 58.884645,97.273622 58.690151,96.545092 C 58.562389,96.579162 57.924006,96.197372 57.383671,95.891852 z M 60.043291,99.577992 C 58.963831,100.86268 58.233858,102.15460 59.483371,103.40410 C 62.958684,106.87946 74.615872,102.55126 72.501510,111.61626 C 77.194670,116.30942 86.988927,114.06974 93.545171,109.37658 C 94.825402,108.09634 94.082889,107.39241 93.031907,106.76362 C 86.534250,110.87138 77.700406,112.66245 73.294729,108.25674 C 75.409092,99.191752 63.751901,103.51996 60.276591,100.04459 C 60.123748,99.891752 60.144117,99.731612 60.043291,99.577992 z " + style="fill:url(#linearGradient1231);fill-rule:evenodd;stroke-width:1.0000000pt;" /> + <path + transform="matrix(1.220396,0.000000,0.000000,1.220396,-20.19444,7.307033)" + sodipodi:nodetypes="cccccc" + id="path1271" + d="M 99.186075,30.398236 L 124.44205,57.534989 C 124.44205,57.534989 131.96512,65.595411 126.05415,68.819579 C 120.14317,72.043747 102.14157,76.880001 102.14157,76.880001 L 69.422516,29.764596 L 99.186075,30.398236 z " + style="fill:url(#linearGradient1272);fill-opacity:0.75000000;fill-rule:evenodd;stroke-width:1.0000000pt;" /> + <path + transform="matrix(1.401650,0.000000,0.000000,1.401650,-35.26049,-4.181157)" + sodipodi:nodetypes="cccccc" + id="path1276" + d="M 63.243695,31.078988 L 42.657304,54.706552 C 42.657304,54.706552 34.703472,61.724642 39.850070,64.531876 C 44.996668,67.339111 78.917426,78.801990 102.77892,74.591136 L 75.408382,33.652287 L 63.243695,31.078988 z " + style="fill:url(#linearGradient1277);fill-opacity:0.75000000;fill-rule:evenodd;stroke-width:1.0000000pt;" /> + <path + transform="matrix(1.220396,0.000000,0.000000,1.220396,-20.19444,7.307033)" + sodipodi:nodetypes="ccccccccccczz" + id="path1317" + d="M 79.571944,14.847933 C 83.032254,14.873506 97.565101,29.009298 101.72458,31.925491 C 105.88407,34.841684 104.90857,36.754316 104.90857,36.936622 L 93.243582,31.290763 L 92.077082,40.109502 L 85.638002,37.076602 L 75.746078,43.702321 L 71.919958,30.637523 L 67.067318,42.069221 L 53.395938,43.422361 L 53.535918,37.356562 L 73.730570,17.473723 C 75.195738,16.031178 76.175081,14.822360 79.571944,14.847933 z " + style="fill:url(#linearGradient1318);fill-rule:evenodd;stroke-width:1.0000000pt;" /> + </g> + </g> + <g + inkscape:label="Title" + id="layer2" + inkscape:groupmode="layer"> + <text + id="text48" + style="font-size:48.000000;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1.0000000;stroke:none;stroke-width:3.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;display:block;font-family:Arial;text-anchor:start;writing-mode:lr;font-stretch:normal;font-variant:normal;" + y="70" + x="45" + sodipodi:linespacing="100%"><tspan + x="45.000000" + y="70.000000" + sodipodi:role="line" + id="tspan1508">Current Inkscape Architecture</tspan></text> + <text + xml:space="preserve" + style="font-size:24.000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#000000;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Sans;text-anchor:start;writing-mode:lr;" + x="61.904762" + y="171.42857" + id="text3025" + sodipodi:linespacing="140%" + transform="translate(-8.333333,-13.09524)"><tspan + x="61.904762" + y="171.42857" + sodipodi:role="line" + id="tspan3452">* Core assumption: This is a Linux GUI Editor _only_</tspan><tspan + x="61.904762" + y="205.02857" + sodipodi:role="line" + id="tspan3454"> + Well, plus a GUI viewer, too</tspan><tspan + x="61.904762" + y="238.62857" + sodipodi:role="line" + id="tspan3456"> + Well, plus non-GUI cmdline tool, too</tspan><tspan + x="61.904762" + y="272.22857" + sodipodi:role="line" + id="tspan3458"> + Well, plus all the above on Windows, too</tspan><tspan + x="61.904762" + y="305.82857" + sodipodi:role="line" + id="tspan3460"> + (Architecture has grown organically)</tspan><tspan + x="61.904762" + y="339.42857" + sodipodi:role="line" + id="tspan3462"></tspan><tspan + x="61.904762" + y="373.02857" + sodipodi:role="line" + id="tspan3464">* Core architecture</tspan><tspan + x="61.904762" + y="406.62857" + sodipodi:role="line" + id="tspan3466"> + Gtk::Main - runs program</tspan><tspan + x="61.904762" + y="440.22857" + sodipodi:role="line" + id="tspan3468"> + Inkscape::Application - GUI editing mode</tspan><tspan + x="61.904762" + y="473.82857" + sodipodi:role="line" + id="tspan3470"> - Contains 'Document's</tspan><tspan + x="61.904762" + y="507.42857" + sodipodi:role="line" + id="tspan3472"> - Each Document has one or more 'View's</tspan><tspan + x="61.904762" + y="541.02857" + sodipodi:role="line" + id="tspan3474"> - An editable View is called a 'Desktop'</tspan><tspan + x="61.904762" + y="574.62857" + sodipodi:role="line" + id="tspan3476"> + Other run modes (inkview, cmdline) handled uniquely</tspan></text> + </g> + <g + inkscape:label="Drawing Area" + id="layer3" + inkscape:groupmode="layer" /> +</svg> diff --git a/doc/NewAppArchitecture/04-current-main.svg b/doc/NewAppArchitecture/04-current-main.svg new file mode 100644 index 000000000..ba7446884 --- /dev/null +++ b/doc/NewAppArchitecture/04-current-main.svg @@ -0,0 +1,584 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://web.resource.org/cc/" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + id="svg586" + sodipodi:version="0.32" + inkscape:version="0.40+cvs" + width="640pt" + height="480pt" + sodipodi:docname="04-current-main.svg" + sodipodi:docbase="/home/bryce/src/Inkscape/InkAppPresent"> + <defs + id="defs588"> + <marker + inkscape:stockid="TriangleOutL" + orient="auto" + refY="0.0" + refX="0.0" + id="marker396" + style="overflow:visible;"> + <path + sodipodi:nodetypes="cccc" + id="path397" + d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z " + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" + transform="scale(0.8)" /> + </marker> + <marker + inkscape:stockid="TriangleOutL" + orient="auto" + refY="0.0" + refX="0.0" + id="marker394" + style="overflow:visible;"> + <path + sodipodi:nodetypes="cccc" + id="path395" + d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z " + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" + transform="scale(0.8)" /> + </marker> + <marker + inkscape:stockid="TriangleOutL" + orient="auto" + refY="0.0" + refX="0.0" + id="marker391" + style="overflow:visible;"> + <path + sodipodi:nodetypes="cccc" + id="path392" + d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z " + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" + transform="scale(0.8)" /> + </marker> + <marker + inkscape:stockid="TriangleOutL" + orient="auto" + refY="0.0" + refX="0.0" + id="marker319" + style="overflow:visible;"> + <path + sodipodi:nodetypes="cccc" + id="path320" + d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z " + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" + transform="scale(0.8)" /> + </marker> + <marker + inkscape:stockid="TriangleOutL" + orient="auto" + refY="0.0" + refX="0.0" + id="TriangleOutL" + style="overflow:visible;"> + <path + sodipodi:nodetypes="cccc" + id="path224" + d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z " + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" + transform="scale(0.8)" /> + </marker> + <linearGradient + id="linearGradient2570"> + <stop + style="stop-color:#000000;stop-opacity:1.0000000;" + offset="0.0000000" + id="stop2571" /> + <stop + style="stop-color:#000000;stop-opacity:0.62745100;" + offset="0.58504134" + id="stop2572" /> + <stop + style="stop-color:#ffffff;stop-opacity:0.0000000;" + offset="1.0000000" + id="stop2573" /> + </linearGradient> + <linearGradient + xlink:href="#linearGradient1218" + id="linearGradient1322" + x1="0.50352114" + y1="0.097472921" + x2="0.27112675" + y2="0.98555958" /> + <linearGradient + xlink:href="#linearGradient1273" + id="linearGradient1318" + x1="0.50704223" + y1="0.27741936" + x2="-0.17253521" + y2="0.99354839" /> + <linearGradient + xlink:href="#linearGradient1222" + id="linearGradient1307" + x1="0.45376351" + y1="1.9347328" + x2="0.41986585" + y2="0.12454049" + gradientTransform="scale(1.004208,0.995809)" /> + <linearGradient + xlink:href="#linearGradient1222" + id="linearGradient1306" + x1="0.45009527" + y1="1.9667202" + x2="0.41548476" + y2="0.11846013" + gradientTransform="scale(1.006361,0.993679)" /> + <linearGradient + xlink:href="#linearGradient1222" + id="linearGradient1305" + x1="0.45839140" + y1="1.8676205" + x2="0.42603236" + y2="0.13959341" + gradientTransform="scale(1.002016,0.997989)" /> + <linearGradient + xlink:href="#linearGradient1273" + id="linearGradient1277" + x1="-0.36619717" + y1="1.5228426" + x2="0.36971831" + y2="0.80203044" /> + <linearGradient + xlink:href="#linearGradient1273" + id="linearGradient1272" + x1="1.0739436" + y1="0.23580793" + x2="0.53521127" + y2="0.55458528" /> + <linearGradient + xlink:href="#linearGradient1222" + id="linearGradient1270" /> + <linearGradient + xlink:href="#linearGradient1323" + id="linearGradient1231" + x1="0.00000000" + y1="0.50000000" + x2="1.0000000" + y2="0.50000000" /> + <linearGradient + xlink:href="#linearGradient1222" + id="linearGradient1221" + x1="-0.96478873" + y1="2.1597939" + x2="0.42605633" + y2="0.24742271" /> + <linearGradient + id="linearGradient1218"> + <stop + style="stop-color:#000000;stop-opacity:1.0000000;" + offset="0.00000000" + id="stop1219" /> + <stop + style="stop-color:#323232;stop-opacity:1.0000000;" + offset="0.073255815" + id="stop1321" /> + <stop + style="stop-color:#000000;stop-opacity:1.0000000;" + offset="0.65260679" + id="stop1320" /> + <stop + style="stop-color:#fff;stop-opacity:1;" + offset="1" + id="stop1220" /> + </linearGradient> + <linearGradient + id="linearGradient1222"> + <stop + style="stop-color:#0081ac;stop-opacity:1.0000000;" + offset="0.0000000" + id="stop1223" /> + <stop + style="stop-color:#006d91;stop-opacity:0.62745100;" + offset="0.50000000" + id="stop1722" /> + <stop + style="stop-color:#000000;stop-opacity:0.0000000;" + offset="1.0000000" + id="stop1224" /> + </linearGradient> + <linearGradient + id="linearGradient1273"> + <stop + style="stop-color:#ffffff;stop-opacity:1.0000000;" + offset="0.00000000" + id="stop1274" /> + <stop + style="stop-color:#ffffff;stop-opacity:0.00000000;" + offset="1.0000000" + id="stop1275" /> + </linearGradient> + <linearGradient + id="linearGradient1323"> + <stop + style="stop-color:#000000;stop-opacity:0.77685952;" + offset="0.00000000" + id="stop1324" /> + <stop + style="stop-color:#000000;stop-opacity:0.00000000;" + offset="1.0000000" + id="stop1325" /> + </linearGradient> + <radialGradient + xlink:href="#linearGradient826" + id="radialGradient829" + cx="0.49382716" + cy="0.46875000" + r="0.41400504" + fx="0.50617284" + fy="0.15625000" /> + <linearGradient + id="linearGradient826"> + <stop + style="stop-color:#000000;stop-opacity:0.95294118;" + offset="0.00000000" + id="stop827" /> + <stop + style="stop-color:#000000;stop-opacity:0.76078433;" + offset="0.36585677" + id="stop830" /> + <stop + style="stop-color:#000000;stop-opacity:0.52941179;" + offset="0.47107276" + id="stop847" /> + <stop + style="stop-color:#ffffff;stop-opacity:0.00000000;" + offset="1.0000000" + id="stop828" /> + </linearGradient> + <linearGradient + xlink:href="#linearGradient909" + id="linearGradient907" + x1="0.50000000" + y1="0.66667551" + x2="0.50000000" + y2="-1.7333326" /> + <linearGradient + id="linearGradient909"> + <stop + style="stop-color:#000000;stop-opacity:0.00000000;" + offset="0.00000000" + id="stop910" /> + <stop + style="stop-color:#000000;stop-opacity:0.17000000;" + offset="1.0000000" + id="stop913" /> + </linearGradient> + <linearGradient + xlink:href="#linearGradient1222" + id="linearGradient1309" /> + <linearGradient + xlink:href="#linearGradient2570" + id="linearGradient1308" + x1="0.0000000" + y1="0.50000000" + x2="1.0000000" + y2="0.50000000" /> + </defs> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="0.70710678" + inkscape:cx="372.43198" + inkscape:cy="354.28570" + inkscape:window-width="968" + inkscape:window-height="821" + inkscape:window-x="133" + inkscape:window-y="71" + showguides="true" + inkscape:guide-bbox="true" + inkscape:current-layer="layer2" /> + <metadata + id="metadata33"> + <rdf:RDF + id="RDF34"> + <cc:Work + rdf:about="" + id="Work35"> + <dc:format + id="format36">image/svg+xml</dc:format> + <dc:type + id="type38" + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + </cc:Work> + </rdf:RDF> + </metadata> + <g + inkscape:groupmode="layer" + id="layer1" + inkscape:label="Background" + style="display:block"> + <rect + style="font-size:12.000000;fill:url(#linearGradient1309);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:3.0000000pt;" + id="topbluebox" + width="800.00000" + height="112.50000" + x="0.0000000" + y="1.7763568e-15" /> + <path + style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:url(#linearGradient1308);stroke-width:4.9844480;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;" + d="M -0.034245957,110.20928 L 797.51553,110.00778" + id="path654" + sodipodi:nodetypes="cc" /> + <g + id="g1085" + transform="translate(646.2792,-9.754791)"> + <g + id="g1394" + transform="matrix(0.875802,0.000000,0.000000,0.869278,1.048583,-7.965682)"> + <path + sodipodi:type="arc" + id="path898" + sodipodi:cx="300.00000" + sodipodi:cy="300.00000" + sodipodi:rx="300.00000" + sodipodi:ry="300.00000" + d="M 600.00000 300.00000 A 300.00000 300.00000 0 1 0 0.0000000,300.00000 A 300.00000 300.00000 0 1 0 600.00000 300.00000 z" + style="opacity:0.69398910;fill:url(#radialGradient829);stroke-width:4.4309568;stroke-dasharray:17.723827 17.723827 ;stroke-dashoffset:0.0000000;" + transform="matrix(0.394071,0.000000,0.000000,8.155385e-2,-31.69751,94.58860)" /> + <path + sodipodi:type="arc" + id="ball1" + sodipodi:cx="300.00000" + sodipodi:cy="300.00000" + sodipodi:rx="300.00000" + sodipodi:ry="300.00000" + d="M 600.00000 300.00000 A 300.00000 300.00000 0 1 0 0.0000000,300.00000 A 300.00000 300.00000 0 1 0 600.00000 300.00000 z" + style="fill:url(#radialGradient829);stroke-width:4.4309568;stroke-dasharray:17.723827 17.723827 ;stroke-dashoffset:0.0000000;" + transform="matrix(0.280658,0.000000,0.000000,0.148676,4.082687,91.98483)" /> + </g> + <g + id="g1310" + transform="matrix(1.822197,0.000000,0.000000,1.662749,-180.0082,12.26653)" + style="fill:url(#linearGradient1221);"> + <path + style="fill-opacity:0.074380167;fill-rule:evenodd;stroke-width:1.0000000pt;" + d="M 139.27138,11.077118 C 137.22042,11.077119 135.15548,11.849270 133.58388,13.420868 L 105.67763,41.358368 C 104.13725,42.898711 103.33325,44.910828 103.30263,46.920868 C 103.30220,46.954601 103.30263,47.012134 103.30263,47.045868 L 103.36513,47.045868 C 103.89976,49.079999 117.69889,51.660911 119.24013,53.202118 C 121.56768,55.529685 110.31886,57.249538 112.64638,59.577118 C 114.97392,61.904658 126.72486,64.062038 129.05263,66.389620 C 131.38019,68.717170 124.28755,71.187070 126.61513,73.514620 C 128.94268,75.842201 136.74995,72.943440 135.33388,79.014621 C 138.47707,82.157811 145.03666,80.657811 149.42763,77.514621 C 151.75518,75.187070 144.97506,75.404670 147.30263,73.077120 C 149.63018,70.749540 155.50836,70.738600 160.45888,65.170868 C 158.46624,62.071818 151.94381,60.748438 154.27138,58.420868 C 156.59893,56.093323 161.10115,57.261288 170.86513,52.827118 C 175.63150,50.662408 175.25838,49.039285 175.24013,47.045868 C 175.23975,47.003922 175.24013,46.963136 175.24013,46.920868 L 175.20888,46.920868 C 175.17827,44.910830 174.40547,42.898714 172.86513,41.358368 L 144.92763,13.420868 C 143.35604,11.849272 141.32234,11.077118 139.27138,11.077118 z M 139.02138,14.702118 C 139.93315,14.725869 140.67125,15.422422 142.11513,16.358368 L 155.30263,26.139618 C 155.44708,26.233292 155.58252,26.320552 155.70888,26.420868 C 155.83525,26.521171 155.97562,26.627132 156.08388,26.733368 C 156.19214,26.839410 156.27479,26.966073 156.36513,27.077118 C 156.45527,27.188145 156.54310,27.305955 156.61513,27.420868 C 156.68737,27.535969 156.74853,27.646585 156.80263,27.764618 C 156.85677,27.882866 156.89163,27.987920 156.92763,28.108368 C 156.96385,28.228632 157.00329,28.361823 157.02138,28.483368 C 157.03948,28.605130 157.05263,28.736271 157.05263,28.858368 L 149.24013,25.077118 L 148.45888,30.983368 L 144.14638,28.952118 L 137.52138,33.389618 L 134.95888,24.639618 L 131.70888,32.295868 L 122.55263,33.202118 L 122.64638,29.139618 C 122.64638,28.162533 127.93872,21.330614 131.14638,19.702118 L 137.02138,15.483368 C 137.88771,14.921800 138.47431,14.687867 139.02138,14.702118 z M 126.89638,54.639618 C 131.05584,55.718333 135.68346,57.114312 139.39638,57.139618 L 139.55263,58.827118 C 136.37321,58.499388 129.63884,56.949888 128.05263,56.139618 L 126.89638,54.639618 z M 170.24013,62.045868 C 169.60518,62.025518 169.00430,62.089178 168.55263,62.202118 C 167.70107,62.414898 163.56419,62.512928 163.89638,65.170868 C 167.55118,66.499190 173.20097,67.516500 173.86513,64.858368 C 174.36366,62.865308 172.14497,62.106908 170.24013,62.045868 z M 122.45888,67.452120 C 121.88389,67.385110 121.32136,67.455980 120.77138,67.733370 C 118.57203,68.842760 117.09168,71.307720 119.14638,72.327120 C 121.20129,73.346520 122.65747,72.185800 124.45888,70.920870 C 126.26050,69.656140 126.21414,69.408800 126.08388,68.920870 C 125.83449,68.987380 124.18386,67.653150 122.45888,67.452120 z M 162.64638,67.889620 C 160.98514,68.553960 161.00465,70.861860 162.33388,71.858370 C 163.66277,72.855080 165.32597,72.210400 165.99013,71.545870 C 166.65484,70.881530 165.96848,68.553970 162.64638,67.889620 z " + id="path1278" /> + <path + style="fill-opacity:0.074380167;fill-rule:evenodd;stroke-width:1.0000000pt;" + d="M 137.96875,10.718750 C 134.70402,11.060845 132.45341,13.855395 130.15790,15.940974 C 121.77155,24.503910 113.19525,32.911552 104.88478,41.529122 C 103.53165,43.257666 102.98133,45.293623 102.71875,47.437500 C 107.43946,50.886242 113.69835,50.905815 118.71875,53.781250 C 117.30484,56.014138 113.86394,55.927723 112.30534,58.153586 C 110.95047,59.066432 112.87438,60.562599 113.88390,60.907202 C 118.07998,63.025863 122.80956,63.838835 126.97834,66.068813 C 129.14039,66.223477 128.99465,68.397410 127.55968,69.465540 C 126.42313,70.610466 124.66557,72.512182 126.40386,73.938766 C 128.52893,75.415674 131.34635,75.011355 133.71875,75.875000 C 135.38587,76.789177 134.20286,78.442002 135.34375,79.593750 C 138.20878,81.840481 142.17613,81.444087 145.36980,80.162063 C 147.01184,79.679133 148.50293,78.612108 149.93750,77.781250 C 151.32137,76.168445 149.16317,75.014407 147.93750,74.343750 C 147.13207,73.007556 149.81258,72.471472 150.72621,71.835396 C 154.22932,70.415525 157.63139,68.772275 160.32323,66.076023 C 162.00146,65.040055 159.53684,63.566475 158.75000,62.750000 C 157.29555,61.671425 155.38495,61.005736 154.46875,59.343750 C 156.83166,56.736844 160.77991,57.222943 163.82692,55.886662 C 167.48614,54.956060 170.96688,53.327613 174.19128,51.441061 C 176.31894,49.855420 175.75931,47.094289 175.34438,44.858149 C 173.82714,40.146659 169.32671,37.346121 166.14614,33.782162 C 159.00255,26.737555 151.96598,19.558149 144.75603,12.597114 C 142.83187,11.117125 140.40461,10.324926 137.96875,10.718750 z M 140.15625,15.718750 C 145.33185,19.512142 150.51925,23.291773 155.68750,27.093750 C 155.79568,28.128330 152.96647,25.994412 151.88519,25.704486 C 150.56126,25.310550 148.23232,22.990502 148.60160,25.735802 C 148.03383,26.854222 148.89364,30.614243 147.25375,29.748789 C 145.77079,28.952048 143.79956,27.767016 142.39696,29.393778 C 140.87922,30.408352 139.36149,31.422926 137.84375,32.437500 C 136.92659,29.270978 136.01364,26.103230 135.09375,22.937500 C 133.83186,25.869891 132.59553,28.813265 131.34375,31.750000 C 128.60417,32.020833 125.86458,32.291667 123.12500,32.562500 C 122.93577,30.531586 123.37937,28.492090 124.78964,27.051727 C 127.83705,22.165897 132.91432,19.181067 137.48762,15.928279 C 138.38080,15.399443 139.18306,15.465846 140.15625,15.718750 z M 132.06250,56.562500 C 134.25968,57.131800 136.54653,57.244809 138.78125,57.625000 C 137.93164,58.641801 135.83490,57.320885 134.50134,57.277133 C 132.75919,56.896272 131.01731,56.527068 129.37500,55.812500 C 130.27083,56.062500 131.16667,56.312500 132.06250,56.562500 z M 168.50000,61.625000 C 166.47980,62.095190 163.59992,62.369201 163.34375,64.968750 C 164.00781,65.934196 166.11962,66.292948 167.47626,66.551501 C 169.60910,66.891924 172.52463,67.659468 174.01886,65.672524 C 175.29513,63.892929 173.38643,61.628153 171.40540,61.754929 C 170.44376,61.426788 169.48969,61.503021 168.50000,61.625000 z M 120.65625,67.156250 C 119.17864,68.173454 117.17273,69.706513 117.81250,71.750000 C 119.32360,73.943032 122.44871,73.328157 124.17581,71.744685 C 125.31806,71.095411 127.22708,69.849349 126.34375,68.406250 C 124.53029,67.617814 122.70705,66.421404 120.65625,67.156250 z M 162.25000,67.468750 C 160.98536,68.304844 160.47655,70.055902 161.35305,71.321264 C 162.02451,73.004295 164.27223,73.179865 165.64672,72.263080 C 167.48408,71.700360 166.67812,69.347513 165.33731,68.658474 C 164.66189,67.815250 163.12029,67.406310 162.25000,67.468750 z " + id="path1283" /> + <path + style="fill-opacity:0.074380167;fill-rule:evenodd;stroke-width:1.0000000pt;" + d="M 137.09375,12.062500 C 133.45264,13.658306 130.89510,17.054651 128.02763,19.760075 C 120.64992,27.277135 113.11748,34.668181 105.81675,42.244521 C 104.77302,43.583830 104.19848,45.113312 103.93750,46.781250 C 108.02500,49.661848 113.35464,49.814484 117.77247,52.034312 C 119.23732,52.180074 120.83004,53.663696 119.47530,54.914506 C 117.72685,56.714093 114.64707,56.868986 113.18750,58.937500 C 116.98689,61.678185 121.72461,62.314645 125.91888,64.199775 C 127.35246,65.248996 129.93899,65.341959 130.00000,67.531250 C 129.61283,69.469175 127.68115,70.594821 126.84375,72.343750 C 128.66657,74.916318 132.41661,73.526770 134.81763,75.194505 C 136.12150,75.998634 135.76289,77.719238 136.33739,78.786112 C 139.34189,80.984126 143.56705,80.023489 146.59979,78.262860 C 147.57821,77.931235 150.25551,76.737683 148.25234,75.866570 C 146.79311,75.539319 145.57083,73.791727 146.98575,72.676315 C 150.59379,69.928273 155.52636,69.300230 158.75379,65.912819 C 160.44061,64.636839 157.51978,63.512312 156.64603,62.784855 C 155.31686,61.805358 153.02074,60.864770 153.31250,58.906250 C 155.52467,55.836091 159.76350,56.249927 162.98171,54.909139 C 166.64088,54.011598 170.17880,52.442724 173.39619,50.585767 C 175.44759,48.766928 174.40312,45.854433 173.70402,43.674602 C 170.01715,38.505895 164.93468,34.528530 160.60640,29.906454 C 155.05848,24.484276 149.68028,18.831089 144.02714,13.552135 C 142.01313,12.267231 139.68457,11.155741 137.26959,12.030263 L 137.09375,12.062500 z M 139.25000,14.156250 C 144.36849,16.573687 148.44456,20.615673 153.06166,23.857057 C 154.79682,25.417824 157.75256,26.462276 157.65625,29.218750 C 155.98301,29.620934 154.51821,27.909197 152.92283,27.467153 C 151.47889,26.979622 149.05912,24.688826 149.46490,27.619328 C 148.95092,28.676042 149.67609,32.096323 148.30430,31.528870 C 146.86362,30.916675 145.25114,29.742049 143.73062,29.880583 C 141.56112,31.359522 139.38321,32.826259 137.21875,34.312500 C 136.40063,31.654144 135.63994,28.977747 134.84375,26.312500 C 133.78712,28.431959 132.98467,30.961875 131.78125,32.843750 C 128.52084,33.166779 125.26035,33.488957 122.00000,33.812500 C 122.02692,31.439278 121.58820,28.751334 123.45144,26.900643 C 126.38650,21.928911 131.54097,18.937382 135.96875,15.531250 C 137.05500,15.131227 138.17386,14.356070 139.25000,14.156250 z M 126.34375,53.906250 C 130.81931,55.099287 135.33348,56.080112 139.93750,56.625000 C 140.81508,58.380031 139.61654,59.889689 137.75155,59.030564 C 134.35469,58.342143 130.95451,57.411091 127.62500,56.500000 C 127.37596,56.018046 124.72663,53.333015 126.34375,53.906250 z M 168.68750,62.750000 C 167.26725,63.145732 165.19352,63.022642 164.68750,64.750000 C 167.41558,65.272026 170.36127,66.626958 173.03125,65.187500 C 173.94813,63.333514 171.22391,62.807999 169.92452,62.707344 C 169.51218,62.721563 169.09984,62.735781 168.68750,62.750000 z M 120.96875,68.250000 C 119.88102,69.094191 117.71809,71.141191 120.00567,71.867660 C 122.11744,72.377527 123.71955,70.573549 125.28125,69.468750 C 124.17010,68.379529 122.48301,67.967608 120.96875,68.250000 z M 162.25000,68.937500 C 161.26655,70.838341 164.03769,72.707639 165.32625,71.028976 C 165.98639,69.968138 163.10932,68.105539 162.25000,68.937500 z " + id="path1286" /> + <path + style="fill-opacity:0.074380167;fill-rule:evenodd;stroke-width:1.0000000pt;" + d="M 137.50000,12.562500 C 131.56402,15.884438 127.47918,21.513076 122.59316,26.106819 C 117.07494,31.800872 111.33765,37.333066 105.95500,43.127274 C 105.27016,44.232264 103.90274,46.716455 105.88806,47.110513 C 110.48303,49.525949 116.07018,49.897473 120.25000,52.937500 C 121.19557,55.258014 118.31954,56.204644 116.77699,57.135076 C 115.14828,57.646504 113.25757,59.174666 115.98524,59.736007 C 120.51650,62.179113 125.90956,62.812244 130.06250,65.968750 C 131.40440,68.155882 128.87852,70.088345 127.96429,71.816940 C 127.97548,73.606583 130.61198,73.210238 131.85374,73.694589 C 134.00698,73.861384 136.31306,75.067306 136.52629,77.437982 C 137.24770,79.315251 139.82104,79.377347 141.56250,79.375000 C 143.88381,79.081698 145.88731,77.848938 148.00000,76.937500 C 147.89289,75.484280 145.47385,75.343455 145.78125,73.562500 C 147.65028,70.568783 151.46696,69.934698 154.32757,68.211442 C 155.95166,67.507534 157.40819,66.436524 158.50000,65.031250 C 156.69534,62.893495 153.11684,62.207207 152.76893,59.025530 C 153.13476,57.911585 154.90043,56.856141 156.14992,56.314935 C 161.47352,54.305871 167.29666,53.530281 172.18291,50.436255 C 174.75469,49.397100 173.90347,46.181096 173.15013,44.168122 C 170.99740,41.143850 168.08639,38.542958 165.64236,35.681332 C 163.12371,33.093790 160.49665,30.610931 157.93750,28.062500 C 158.99092,29.594714 157.00835,30.333418 155.86310,29.376751 C 153.95887,28.546062 152.06033,27.726589 150.12500,26.968750 C 150.04976,28.633800 149.69671,30.253091 149.34375,31.875000 C 146.94959,32.517021 144.62510,29.359512 142.44997,31.405021 C 140.65579,32.399012 139.25573,34.074138 137.34005,34.698602 C 135.96867,34.449689 136.15225,31.657450 135.44638,30.368996 C 135.03220,27.477998 134.31032,28.114323 133.43720,30.484434 C 132.63691,31.983328 132.29360,34.079093 130.12469,33.576560 C 127.22896,33.863646 124.33317,34.149933 121.43750,34.437500 C 121.45635,31.458390 121.16984,28.094375 123.52595,25.839572 C 126.82257,21.188668 131.69023,18.019711 136.23357,14.793262 C 137.75437,14.087412 139.64327,13.037594 141.05071,14.536711 C 144.77608,17.093755 148.56965,19.491887 152.06250,22.343750 C 149.06655,19.513772 146.25485,16.420638 143.14594,13.751994 C 141.38445,12.871744 139.52020,11.789900 137.50000,12.562500 z M 126.40625,53.343750 C 131.09445,54.266714 135.77718,55.221773 140.46875,56.125000 C 140.66311,57.490600 140.90400,59.768414 138.90019,59.717011 C 134.99279,58.970773 131.04202,57.882901 127.18750,56.875000 C 126.61048,55.955764 124.83534,54.556620 125.40625,53.625000 C 125.73497,53.577157 126.08499,53.292470 126.40625,53.343750 z M 166.53125,63.812500 C 164.90117,64.830649 168.72302,64.879550 169.60036,65.161786 C 170.82454,65.513571 173.80209,64.644903 171.50000,63.593750 C 169.78209,63.217030 168.21140,63.255613 166.53125,63.812500 z M 120.81250,69.187500 C 118.77488,70.497531 120.63987,72.049766 122.29985,70.780747 C 124.22011,70.547064 124.25797,68.584075 122.13849,68.857155 C 121.62590,68.786616 121.20364,68.805690 120.81250,69.187500 z M 162.78125,70.250000 C 165.04372,72.410337 164.50416,68.582957 162.78125,69.787913 C 162.78125,69.883882 162.78125,70.191942 162.78125,70.250000 z " + id="path1295" /> + <path + style="fill-opacity:0.074380167;fill-rule:evenodd;stroke-width:1.0000000pt;" + d="M 137.25000,10.312500 C 134.57328,10.811904 132.67255,13.050780 130.64866,14.715585 C 121.77957,23.451854 113.11785,32.437236 104.37500,41.281250 C 103.17019,43.288146 102.47259,45.456013 102.06250,47.750000 C 105.83476,49.628698 109.64657,51.368815 113.75481,52.377095 C 114.74672,53.000901 118.15181,53.211596 117.03125,54.625000 C 114.87625,55.770623 112.18432,56.545814 111.25000,59.062500 C 113.07397,62.261249 117.13309,62.448994 120.14188,63.972108 C 122.66750,64.970987 125.19313,65.969869 127.71875,66.968750 C 127.79709,69.608591 127.12737,68.724937 125.79671,67.542170 C 123.76150,66.508388 120.74167,65.559916 119.14266,67.799744 C 117.68910,68.685330 116.55779,70.940149 117.66673,72.361712 C 119.74129,74.610002 123.29896,73.558599 125.22361,71.631365 C 125.39044,71.451948 124.94524,74.329263 126.55554,74.625682 C 128.75187,75.888131 131.56113,75.535204 133.75000,76.781250 C 134.17453,78.637203 134.92263,80.738750 137.10053,81.029661 C 140.53970,82.420114 144.41944,81.397273 147.50485,79.584682 C 148.81540,78.872018 151.32795,78.343669 150.75195,76.374975 C 150.70713,75.080531 147.53803,74.300613 149.31250,73.093750 C 153.55943,71.203594 157.91230,69.209830 161.18750,65.843750 C 161.99115,63.731003 159.07145,62.849633 157.93750,61.562500 C 156.57653,60.417748 154.30116,59.195844 157.17010,58.407983 C 162.44672,56.428116 168.30037,55.651561 173.14000,52.536010 C 175.69933,51.724285 176.75286,48.825627 176.01594,46.382200 C 175.99204,43.921497 174.36450,41.884430 172.99509,39.973772 C 168.23708,34.553265 162.73310,29.839073 157.72691,24.648245 C 153.37676,20.454464 149.19589,15.998891 144.74248,11.964991 C 142.49218,10.519398 139.90204,10.047325 137.25000,10.312500 z M 140.40625,16.625000 C 144.38180,19.415210 148.26381,22.371245 152.21875,25.218750 C 151.00059,24.471219 149.71107,24.008458 148.28125,23.906250 C 148.08169,25.616789 147.84012,27.322499 147.62500,29.031250 C 145.77312,28.480352 143.67622,27.363820 142.02088,28.944411 C 140.79579,29.321785 138.71876,32.029330 138.02739,30.946881 C 137.09069,27.714729 136.15797,24.481420 135.21875,21.250000 C 133.79126,24.568262 132.38708,27.896549 130.96875,31.218750 C 128.56250,31.458333 126.15625,31.697917 123.75000,31.937500 C 123.73611,28.504117 126.40867,25.941624 128.50533,23.538181 C 131.60340,20.877921 134.84009,18.280137 138.37100,16.266120 C 139.05687,15.927768 139.72649,16.501380 140.40625,16.625000 z M 165.12500,61.937500 C 163.94994,62.683294 162.04675,64.163789 163.31250,65.625000 C 165.77599,67.237331 168.84980,67.346191 171.68759,67.438839 C 173.79767,67.380039 175.87709,64.882603 174.44068,62.966319 C 173.10190,60.663393 170.05340,61.177216 167.81605,61.201002 C 166.91904,61.446503 166.02202,61.692001 165.12500,61.937500 z M 162.03125,67.031250 C 160.83535,68.000188 160.29043,69.695123 160.76346,71.258236 C 161.16730,73.039050 163.22496,73.494707 164.78719,72.992478 C 167.13879,73.181332 168.09248,69.825149 166.13394,68.653373 C 164.96960,67.668728 163.65541,66.689296 162.03125,67.031250 z " + id="path1300" /> + <path + style="fill-opacity:0.074380167;fill-rule:evenodd;stroke-width:1.0000000pt;" + d="M 136.87500,9.5625000 C 131.65304,11.769127 128.14544,16.384624 124.15881,20.216605 C 117.35142,27.117414 110.49657,33.984328 103.71875,40.906250 C 102.85273,43.332808 101.99819,45.763562 101.12500,48.187500 C 105.93068,50.283305 110.76347,52.276496 115.75000,53.906250 C 115.44333,55.363555 112.99770,55.191635 112.24058,56.587946 C 110.89606,57.445273 110.01695,59.785906 111.89556,60.567820 C 114.86490,63.357428 118.93991,64.363020 122.62500,65.875000 C 119.72774,65.033632 117.80750,68.090788 116.68750,70.250000 C 116.01105,72.950420 119.11437,74.651083 121.43923,74.259441 C 122.88425,74.778519 124.87048,71.894366 125.06555,74.129447 C 127.21708,76.574392 131.35224,75.998123 133.59751,78.288768 C 134.32398,80.302303 135.99246,81.986172 138.23383,82.006618 C 140.25772,82.589257 142.23898,82.314480 144.19142,81.614260 C 146.47188,81.098710 148.64271,79.959926 150.63761,78.824244 C 152.14711,77.754911 151.81527,75.346631 150.43750,74.312500 C 150.23406,72.704926 152.73875,72.682794 153.75639,71.819616 C 156.49819,70.564020 158.90600,68.804050 161.21875,66.906250 C 160.19643,68.376408 159.81043,70.315970 160.38112,71.987759 C 161.34634,74.267655 164.22210,73.656108 166.15625,73.531250 C 168.08949,72.610730 168.83732,69.631414 166.87500,68.343750 C 164.02568,66.581529 166.47357,67.403459 168.27836,67.911665 C 170.51415,68.044548 173.31226,68.747610 174.83495,66.581402 C 176.52328,64.952843 175.46252,62.386049 173.84375,61.125000 C 171.82924,60.052772 169.41179,60.364713 167.22781,60.468857 C 165.26732,60.816302 163.77932,61.981088 162.56250,63.500000 C 161.07416,64.693238 164.27576,66.891706 162.51264,66.451187 C 161.23611,66.670932 162.80138,64.122782 161.27178,63.293106 C 160.27477,61.829766 158.59216,60.917429 157.34375,59.656250 C 163.37320,56.739900 170.41697,55.950383 175.81250,51.750000 C 177.79054,49.403625 176.89111,46.297658 176.31250,43.625000 C 172.71709,37.077334 166.72680,32.381991 161.58112,27.092054 C 156.10204,21.754721 150.65568,16.371055 145.15625,11.062500 C 142.76062,10.099303 140.31053,9.4347862 137.70606,9.5684113 C 137.43820,9.5943662 137.13013,9.4705862 136.87500,9.5625000 z M 144.00000,20.125000 C 145.41913,21.217458 146.85549,22.290152 148.28125,23.375000 C 146.97140,24.376925 147.43473,26.306660 146.96875,27.718750 C 145.01335,27.188020 142.88412,27.117042 141.28969,28.567875 C 140.30436,29.400862 138.46017,30.323076 138.31032,28.383898 C 137.43025,25.351664 136.59470,22.304201 135.68750,19.281250 C 137.21838,18.817776 138.78213,16.344334 140.28250,17.745803 C 141.52167,18.538869 142.76083,19.331934 144.00000,20.125000 z M 130.53125,30.406250 C 128.68750,30.593750 126.84375,30.781250 125.00000,30.968750 C 125.70615,27.451641 128.61722,24.990200 131.09307,22.632488 C 132.44877,21.648343 133.72082,20.531920 135.12500,19.625000 C 133.59375,23.218750 132.06250,26.812500 130.53125,30.406250 z " + id="path1304" /> + </g> + <path + style="fill:url(#linearGradient1322);fill-rule:evenodd;stroke-width:1.0000000pt;" + d="M 78.468542,10.216821 C 75.406213,10.216823 72.323010,11.369737 69.976423,13.716321 L 28.309048,55.430356 C 26.009076,57.730272 24.808608,60.734604 24.762888,63.735835 C 24.762246,63.786202 24.762888,63.872106 24.762888,63.922475 L 24.856208,63.922475 C 25.654475,66.959676 46.258230,70.813287 48.559486,73.114494 C 52.034797,76.589830 35.238960,79.157777 38.714227,82.633131 C 42.189523,86.108431 59.735084,89.329652 63.210724,92.805012 C 66.686050,96.280332 56.095888,99.968182 59.571244,103.44349 C 63.046555,106.91885 74.703745,102.59065 72.589383,111.65565 C 77.282542,116.34881 87.076796,114.10913 93.633042,109.41597 C 97.108353,105.94066 86.984820,106.26556 90.460160,102.79025 C 93.935473,99.314902 102.71230,99.298562 110.10402,90.985272 C 107.12876,86.358021 97.390000,84.382051 100.86534,80.906713 C 104.34065,77.431409 111.06300,79.175321 125.64179,72.554574 C 132.75855,69.322402 132.20143,66.898885 132.17419,63.922475 C 132.17362,63.859844 132.17419,63.798946 132.17419,63.735835 L 132.12753,63.735835 C 132.08182,60.734607 130.92794,57.730277 128.62803,55.430356 L 86.914001,13.716321 C 84.567429,11.369740 81.530871,10.216821 78.468542,10.216821 z M 59.991184,75.260853 C 66.201756,76.871504 73.111347,78.955868 78.655182,78.993653 L 78.888482,81.513293 C 74.141227,81.023952 64.086006,78.710363 61.717604,77.500533 L 59.991184,75.260853 z M 124.70859,86.319271 C 123.76053,86.288891 122.86335,86.383941 122.18895,86.552571 C 120.91747,86.870282 114.74061,87.016652 115.23661,90.985272 C 120.69367,92.968622 129.12948,94.487582 130.12115,90.518672 C 130.86551,87.542792 127.55274,86.410411 124.70859,86.319271 z M 53.365465,94.391452 C 52.506936,94.291402 51.667011,94.397222 50.845825,94.811392 C 47.561932,96.467852 45.351592,100.14833 48.419506,101.67041 C 51.487732,103.19250 53.661984,101.45941 56.351705,99.570712 C 59.041739,97.682322 58.972518,97.313012 58.778024,96.584472 C 58.405655,96.683782 55.941067,94.691622 53.365465,94.391452 z M 113.37021,95.044692 C 110.88978,96.036632 110.91892,99.482602 112.90361,100.97051 C 114.88780,102.45872 117.37116,101.49614 118.36283,100.50391 C 119.35532,99.511972 118.33051,96.036652 113.37021,95.044692 z " + id="path1217" + sodipodi:nodetypes="cccccccccccccccccccccccccccccccccccccccccc" + transform="matrix(1.220396,0.000000,0.000000,1.220396,-20.19444,7.307033)" /> + <path + style="fill:url(#linearGradient1231);fill-rule:evenodd;stroke-width:1.0000000pt;" + d="M 25.748195,58.983802 C 25.069168,60.484820 24.699511,62.088386 24.675015,63.696461 C 24.674375,63.746824 24.675015,63.832738 24.675015,63.883101 L 24.768335,63.883101 C 25.532194,66.789384 44.034284,70.422637 47.678393,72.748500 C 49.285306,71.792649 50.340763,70.791543 49.264832,69.715600 C 46.963576,67.414389 26.359823,63.560781 25.561555,60.523581 L 25.468235,60.523581 C 25.468235,60.473204 25.467595,60.387304 25.468235,60.336942 C 25.475280,59.874537 25.686531,59.443757 25.748195,58.983802 z M 132.03964,65.049601 C 131.22443,66.340254 129.65777,67.652109 126.34713,69.155680 C 111.76835,75.776420 105.04600,74.032516 101.57069,77.507812 C 100.51786,78.560641 100.89350,79.461052 101.71067,80.354072 C 105.38973,77.752669 112.01329,78.664472 125.55391,72.515200 C 131.70333,69.722349 132.05669,67.513308 132.03964,65.049601 z M 60.696531,71.861960 L 62.422951,74.101632 C 64.791352,75.311463 74.846572,77.625067 79.593829,78.114392 L 79.360529,75.594752 C 73.816694,75.556961 66.907102,73.472618 60.696531,71.861960 z M 40.119473,79.607512 C 38.565476,80.548088 37.568913,81.536279 38.626354,82.593751 C 42.101651,86.069051 59.647211,89.290272 63.122851,92.765632 C 63.275692,92.918462 63.255326,93.078602 63.356151,93.232232 C 64.435614,91.947532 65.165573,90.655612 63.916071,89.406112 C 60.566937,86.057251 44.419333,82.939151 40.119473,79.607512 z M 117.10845,87.866332 C 115.91482,88.486362 114.95058,89.360392 115.14873,90.945882 C 120.60578,92.929232 129.04159,94.448192 130.03326,90.479292 C 130.22625,89.707762 130.12018,89.057262 129.84662,88.519572 C 127.48913,90.422432 121.65703,89.359992 117.10845,87.866332 z M 108.52303,89.546092 C 101.68539,95.627832 94.291059,96.265772 91.165507,99.391352 C 89.908251,100.64860 90.617583,101.33525 91.632107,101.95765 C 95.620160,99.286262 103.30109,98.498152 110.01615,90.945882 C 109.67197,90.410612 109.01729,90.016842 108.52303,89.546092 z M 112.39580,95.705212 C 110.96059,97.100002 111.14367,99.677592 112.81574,100.93113 C 114.79992,102.41933 117.28328,101.45675 118.27495,100.46453 C 118.78497,99.954792 118.71737,98.812252 117.90167,97.664932 C 116.69163,98.288052 115.10107,98.690742 113.60896,97.571612 C 112.97842,97.098902 112.61381,96.431702 112.39580,95.705212 z M 57.383671,95.891852 C 57.217332,96.012982 57.251127,96.035572 57.057051,96.171812 C 54.367330,98.060502 52.193078,99.793612 49.124852,98.271512 C 48.483305,97.953222 48.223383,97.480502 48.005012,97.011692 C 46.640740,98.694072 46.307086,100.62659 48.331632,101.63103 C 51.399861,103.15311 53.574111,101.42002 56.263832,99.531332 C 58.953868,97.642932 58.884645,97.273622 58.690151,96.545092 C 58.562389,96.579162 57.924006,96.197372 57.383671,95.891852 z M 60.043291,99.577992 C 58.963831,100.86268 58.233858,102.15460 59.483371,103.40410 C 62.958684,106.87946 74.615872,102.55126 72.501510,111.61626 C 77.194670,116.30942 86.988927,114.06974 93.545171,109.37658 C 94.825402,108.09634 94.082889,107.39241 93.031907,106.76362 C 86.534250,110.87138 77.700406,112.66245 73.294729,108.25674 C 75.409092,99.191752 63.751901,103.51996 60.276591,100.04459 C 60.123748,99.891752 60.144117,99.731612 60.043291,99.577992 z " + id="path1269" + sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc" + transform="matrix(1.220396,0.000000,0.000000,1.220396,-20.19444,7.307033)" /> + <path + style="fill:url(#linearGradient1272);fill-opacity:0.75000000;fill-rule:evenodd;stroke-width:1.0000000pt;" + d="M 99.186075,30.398236 L 124.44205,57.534989 C 124.44205,57.534989 131.96512,65.595411 126.05415,68.819579 C 120.14317,72.043747 102.14157,76.880001 102.14157,76.880001 L 69.422516,29.764596 L 99.186075,30.398236 z " + id="path1271" + sodipodi:nodetypes="cccccc" + transform="matrix(1.220396,0.000000,0.000000,1.220396,-20.19444,7.307033)" /> + <path + style="fill:url(#linearGradient1277);fill-opacity:0.75000000;fill-rule:evenodd;stroke-width:1.0000000pt;" + d="M 63.243695,31.078988 L 42.657304,54.706552 C 42.657304,54.706552 34.703472,61.724642 39.850070,64.531876 C 44.996668,67.339111 78.917426,78.801990 102.77892,74.591136 L 75.408382,33.652287 L 63.243695,31.078988 z " + id="path1276" + sodipodi:nodetypes="cccccc" + transform="matrix(1.401650,0.000000,0.000000,1.401650,-35.26049,-4.181157)" /> + <path + style="fill:url(#linearGradient1318);fill-rule:evenodd;stroke-width:1.0000000pt;" + d="M 79.571944,14.847933 C 83.032254,14.873506 97.565101,29.009298 101.72458,31.925491 C 105.88407,34.841684 104.90857,36.754316 104.90857,36.936622 L 93.243582,31.290763 L 92.077082,40.109502 L 85.638002,37.076602 L 75.746078,43.702321 L 71.919958,30.637523 L 67.067318,42.069221 L 53.395938,43.422361 L 53.535918,37.356562 L 73.730570,17.473723 C 75.195738,16.031178 76.175081,14.822360 79.571944,14.847933 z " + id="path1317" + sodipodi:nodetypes="ccccccccccczz" + transform="matrix(1.220396,0.000000,0.000000,1.220396,-20.19444,7.307033)" /> + </g> + </g> + <g + inkscape:groupmode="layer" + id="layer2" + inkscape:label="Title"> + <text + sodipodi:linespacing="100%" + x="45" + y="70" + style="font-size:48.000000;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1.0000000;stroke:none;stroke-width:3.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;display:block;font-family:Arial;text-anchor:start;writing-mode:lr;font-stretch:normal;font-variant:normal;line-height:100%" + id="text48"><tspan + id="tspan415" + sodipodi:role="line" + y="70.000000" + x="45.000000">main() Process Flow</tspan></text> + <rect + y="165.83644" + x="305.47012" + height="66.468033" + width="141.42136" + id="rect1" + style="color:#000000;fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible" /> + <text + sodipodi:linespacing="100%" + id="text74" + y="206.84863" + x="333.75439" + style="font-size:24.000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#000000;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Sans;text-anchor:start;writing-mode:lr-tb" + xml:space="preserve"><tspan + y="206.84863" + x="333.75439" + id="tspan75" + sodipodi:role="line">main()</tspan></text> + <text + sodipodi:linespacing="100%" + id="text77" + y="240.08266" + x="601.04077" + style="line-height:100%;writing-mode:lr;text-anchor:start;font-family:Sans;stroke-opacity:1.0000000;stroke-linejoin:miter;stroke-linecap:butt;stroke-width:1.0000000pt;stroke:none;fill-opacity:1.0000000;fill:#000000;font-stretch:normal;font-weight:normal;font-variant:normal;font-style:normal;font-size:24.000000" + xml:space="preserve"><tspan + id="tspan150" + sodipodi:role="line" + y="240.08266" + x="601.04077">WinMain()</tspan></text> + <rect + y="194.12071" + x="568.51385" + height="80.610161" + width="185.26218" + id="rect79" + style="visibility:visible;marker-end:none;marker-mid:none;marker-start:none;marker:none;stroke-opacity:1.0000000;stroke-dashoffset:0.0000000;stroke-dasharray:1.2500000,5.0000000;stroke-miterlimit:4.0000000;stroke-linejoin:miter;stroke-linecap:butt;stroke-width:1.2500000;stroke:#000000;fill-rule:evenodd;fill-opacity:1.0000000;fill:none;color:#000000" /> + <path + sodipodi:nodetypes="cc" + id="path151" + d="M 571.34228,233.71869 L 453.96256,199.77756" + style="stroke-dashoffset:0.0000000;fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;stroke-dasharray:1.2500000,5.0000000;stroke-miterlimit:4.0000000;marker-end:url(#TriangleOutL)" /> + <rect + y="309.37912" + x="25.455843" + height="66.468033" + width="278.60007" + id="rect311" + style="color:#000000;fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible" /> + <text + sodipodi:linespacing="100%" + id="text312" + y="350.3913" + x="53.740112" + style="font-size:24.000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#000000;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Sans;text-anchor:start;writing-mode:lr-tb" + xml:space="preserve"><tspan + id="tspan317" + sodipodi:role="line" + y="350.39130" + x="53.740112">sp_main_console()</tspan></text> + <rect + y="309.37912" + x="439.82040" + height="66.468033" + width="223.44574" + id="rect314" + style="color:#000000;fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible" /> + <text + sodipodi:linespacing="100%" + id="text315" + y="350.39133" + x="468.10468" + style="font-size:24.000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#000000;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Sans;text-anchor:start;writing-mode:lr-tb" + xml:space="preserve"><tspan + id="tspan318" + sodipodi:role="line" + y="350.39133" + x="468.10468">sp_main_gui()</tspan></text> + <path + sodipodi:nodetypes="cc" + id="path321" + d="M 344.36100,232.30447 L 251.02291,301.60093" + style="marker-end:url(#TriangleOutL);stroke-opacity:1.0000000;stroke-dashoffset:0.0000000;stroke-dasharray:none;stroke-miterlimit:4.0000000;stroke-linejoin:miter;stroke-linecap:butt;stroke-width:1.2500000;stroke:#000000;fill-rule:evenodd;fill-opacity:0.75000000;fill:none" /> + <path + sodipodi:nodetypes="cc" + id="path393" + d="M 415.77880,233.01159 L 509.11689,302.30805" + style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;marker-end:url(#TriangleOutL)" /> + <path + sodipodi:nodetypes="cc" + id="path400" + d="M 450.07346,376.16656 L 356.73537,445.46302" + style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;marker-end:url(#TriangleOutL)" /> + <path + sodipodi:nodetypes="cc" + id="path401" + d="M 524.31968,375.45946 L 617.65777,444.75592" + style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;marker-end:url(#TriangleOutL)" /> + <rect + y="453.59607" + x="67.882248" + height="120.20815" + width="359.21033" + id="rect402" + style="color:#000000;fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible" /> + <text + sodipodi:linespacing="150%" + id="text403" + y="494.60828" + x="97.389999" + style="line-height:150%;writing-mode:lr;text-anchor:start;font-family:Sans;stroke-opacity:1.0000000;stroke-linejoin:miter;stroke-linecap:butt;stroke-width:1.0000000pt;stroke:none;fill-opacity:1.0000000;fill:#000000;font-stretch:normal;font-weight:normal;font-variant:normal;font-style:normal;font-size:24.000000" + xml:space="preserve"><tspan + id="tspan420" + sodipodi:role="line" + y="494.60828" + x="97.389999">slideshow mode</tspan><tspan + id="tspan421" + sodipodi:role="line" + y="530.60828" + x="97.389999">sp_slideshow_new(files)</tspan></text> + <rect + y="453.59607" + x="475.98373" + height="118.79394" + width="272.94324" + id="rect408" + style="color:#000000;fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible" /> + <text + sodipodi:linespacing="150%" + id="text409" + y="494.60828" + x="502.7746" + style="line-height:150%;writing-mode:lr;text-anchor:start;font-family:Sans;stroke-opacity:1.0000000;stroke-linejoin:miter;stroke-linecap:butt;stroke-width:1.0000000pt;stroke:none;fill-opacity:1.0000000;fill:#000000;font-stretch:normal;font-weight:normal;font-variant:normal;font-style:normal;font-size:24.000000" + xml:space="preserve"><tspan + id="tspan418" + sodipodi:role="line" + y="494.60828" + x="502.77460">editor mode</tspan><tspan + id="tspan419" + sodipodi:role="line" + y="530.60828" + x="502.77460">sp_file_open(files)</tspan></text> + </g> + <g + inkscape:groupmode="layer" + id="layer3" + inkscape:label="Drawing Area" /> +</svg> diff --git a/doc/NewAppArchitecture/05-current-objects.svg b/doc/NewAppArchitecture/05-current-objects.svg new file mode 100644 index 000000000..9892f628e --- /dev/null +++ b/doc/NewAppArchitecture/05-current-objects.svg @@ -0,0 +1,1145 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> +<svg + xmlns:xml="http://www.w3.org/XML/1998/namespace" + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://web.resource.org/cc/" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + id="svg586" + sodipodi:version="0.32" + inkscape:version="0.40+cvs" + width="640pt" + height="480pt" + sodipodi:docname="05-current-objects.svg" + sodipodi:docbase="/home/bryce/src/Inkscape/InkAppPresent"> + <defs + id="defs588"> + <marker + style="overflow:visible;" + id="marker358" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="DiamondL"> + <path + transform="scale(0.8)" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" + d="M -2.1579186e-005,-7.0710768 L -7.0710894,-8.9383918e-006 L -2.1579186e-005,7.0710589 L 7.0710462,-8.9383918e-006 L -2.1579186e-005,-7.0710768 z " + id="path359" /> + </marker> + <marker + style="overflow:visible;" + id="marker355" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="DiamondL"> + <path + transform="scale(0.8)" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" + d="M -2.1579186e-005,-7.0710768 L -7.0710894,-8.9383918e-006 L -2.1579186e-005,7.0710589 L 7.0710462,-8.9383918e-006 L -2.1579186e-005,-7.0710768 z " + id="path356" /> + </marker> + <marker + style="overflow:visible;" + id="marker352" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="DiamondL"> + <path + transform="scale(0.8)" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" + d="M -2.1579186e-005,-7.0710768 L -7.0710894,-8.9383918e-006 L -2.1579186e-005,7.0710589 L 7.0710462,-8.9383918e-006 L -2.1579186e-005,-7.0710768 z " + id="path353" /> + </marker> + <marker + style="overflow:visible;" + id="marker349" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="DiamondL"> + <path + transform="scale(0.8)" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" + d="M -2.1579186e-005,-7.0710768 L -7.0710894,-8.9383918e-006 L -2.1579186e-005,7.0710589 L 7.0710462,-8.9383918e-006 L -2.1579186e-005,-7.0710768 z " + id="path350" /> + </marker> + <marker + style="overflow:visible;" + id="marker346" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="DiamondL"> + <path + transform="scale(0.8)" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" + d="M -2.1579186e-005,-7.0710768 L -7.0710894,-8.9383918e-006 L -2.1579186e-005,7.0710589 L 7.0710462,-8.9383918e-006 L -2.1579186e-005,-7.0710768 z " + id="path347" /> + </marker> + <marker + style="overflow:visible;" + id="marker343" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="Dot_m"> + <path + transform="scale(0.4) translate(7.125493, 1)" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;marker-end:none;" + d="M -2.5,-1.0 C -2.5,1.7600000 -4.7400000,4.0 -7.5,4.0 C -10.260000,4.0 -12.5,1.7600000 -12.5,-1.0 C -12.5,-3.7600000 -10.260000,-6.0 -7.5,-6.0 C -4.7400000,-6.0 -2.5,-3.7600000 -2.5,-1.0 z " + id="path344" /> + </marker> + <marker + style="overflow:visible;" + id="marker341" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="Dot_m"> + <path + transform="scale(0.4) translate(7.125493, 1)" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;marker-end:none;" + d="M -2.5,-1.0 C -2.5,1.7600000 -4.7400000,4.0 -7.5,4.0 C -10.260000,4.0 -12.5,1.7600000 -12.5,-1.0 C -12.5,-3.7600000 -10.260000,-6.0 -7.5,-6.0 C -4.7400000,-6.0 -2.5,-3.7600000 -2.5,-1.0 z " + id="path342" /> + </marker> + <marker + style="overflow:visible;" + id="marker338" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="Dot_m"> + <path + transform="scale(0.4) translate(7.125493, 1)" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;marker-end:none;" + d="M -2.5,-1.0 C -2.5,1.7600000 -4.7400000,4.0 -7.5,4.0 C -10.260000,4.0 -12.5,1.7600000 -12.5,-1.0 C -12.5,-3.7600000 -10.260000,-6.0 -7.5,-6.0 C -4.7400000,-6.0 -2.5,-3.7600000 -2.5,-1.0 z " + id="path339" /> + </marker> + <marker + style="overflow:visible;" + id="marker336" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="Dot_m"> + <path + transform="scale(0.4) translate(7.125493, 1)" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;marker-end:none;" + d="M -2.5,-1.0 C -2.5,1.7600000 -4.7400000,4.0 -7.5,4.0 C -10.260000,4.0 -12.5,1.7600000 -12.5,-1.0 C -12.5,-3.7600000 -10.260000,-6.0 -7.5,-6.0 C -4.7400000,-6.0 -2.5,-3.7600000 -2.5,-1.0 z " + id="path337" /> + </marker> + <marker + style="overflow:visible;" + id="marker333" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="Dot_m"> + <path + transform="scale(0.4) translate(7.125493, 1)" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;marker-end:none;" + d="M -2.5,-1.0 C -2.5,1.7600000 -4.7400000,4.0 -7.5,4.0 C -10.260000,4.0 -12.5,1.7600000 -12.5,-1.0 C -12.5,-3.7600000 -10.260000,-6.0 -7.5,-6.0 C -4.7400000,-6.0 -2.5,-3.7600000 -2.5,-1.0 z " + id="path334" /> + </marker> + <marker + style="overflow:visible;" + id="marker331" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="Dot_m"> + <path + transform="scale(0.4) translate(7.125493, 1)" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;marker-end:none;" + d="M -2.5,-1.0 C -2.5,1.7600000 -4.7400000,4.0 -7.5,4.0 C -10.260000,4.0 -12.5,1.7600000 -12.5,-1.0 C -12.5,-3.7600000 -10.260000,-6.0 -7.5,-6.0 C -4.7400000,-6.0 -2.5,-3.7600000 -2.5,-1.0 z " + id="path332" /> + </marker> + <marker + style="overflow:visible;" + id="marker328" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="Dot_m"> + <path + transform="scale(0.4) translate(7.125493, 1)" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;marker-end:none;" + d="M -2.5,-1.0 C -2.5,1.7600000 -4.7400000,4.0 -7.5,4.0 C -10.260000,4.0 -12.5,1.7600000 -12.5,-1.0 C -12.5,-3.7600000 -10.260000,-6.0 -7.5,-6.0 C -4.7400000,-6.0 -2.5,-3.7600000 -2.5,-1.0 z " + id="path329" /> + </marker> + <marker + style="overflow:visible;" + id="marker326" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="Dot_m"> + <path + transform="scale(0.4) translate(7.125493, 1)" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;marker-end:none;" + d="M -2.5,-1.0 C -2.5,1.7600000 -4.7400000,4.0 -7.5,4.0 C -10.260000,4.0 -12.5,1.7600000 -12.5,-1.0 C -12.5,-3.7600000 -10.260000,-6.0 -7.5,-6.0 C -4.7400000,-6.0 -2.5,-3.7600000 -2.5,-1.0 z " + id="path327" /> + </marker> + <marker + style="overflow:visible;" + id="Dot_m" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="Dot_m"> + <path + transform="scale(0.4) translate(7.125493, 1)" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;marker-end:none;" + d="M -2.5,-1.0 C -2.5,1.7600000 -4.7400000,4.0 -7.5,4.0 C -10.260000,4.0 -12.5,1.7600000 -12.5,-1.0 C -12.5,-3.7600000 -10.260000,-6.0 -7.5,-6.0 C -4.7400000,-6.0 -2.5,-3.7600000 -2.5,-1.0 z " + id="path39" /> + </marker> + <marker + style="overflow:visible;" + id="marker254" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="DiamondL"> + <path + transform="scale(0.8)" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" + d="M -2.1579186e-005,-7.0710768 L -7.0710894,-8.9383918e-006 L -2.1579186e-005,7.0710589 L 7.0710462,-8.9383918e-006 L -2.1579186e-005,-7.0710768 z " + id="path255" /> + </marker> + <marker + style="overflow:visible;" + id="marker251" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="DiamondL"> + <path + transform="scale(0.8)" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" + d="M -2.1579186e-005,-7.0710768 L -7.0710894,-8.9383918e-006 L -2.1579186e-005,7.0710589 L 7.0710462,-8.9383918e-006 L -2.1579186e-005,-7.0710768 z " + id="path252" /> + </marker> + <marker + style="overflow:visible;" + id="marker248" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="DiamondL"> + <path + transform="scale(0.8)" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" + d="M -2.1579186e-005,-7.0710768 L -7.0710894,-8.9383918e-006 L -2.1579186e-005,7.0710589 L 7.0710462,-8.9383918e-006 L -2.1579186e-005,-7.0710768 z " + id="path249" /> + </marker> + <marker + style="overflow:visible;" + id="DiamondL" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="DiamondL"> + <path + transform="scale(0.8)" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" + d="M -2.1579186e-005,-7.0710768 L -7.0710894,-8.9383918e-006 L -2.1579186e-005,7.0710589 L 7.0710462,-8.9383918e-006 L -2.1579186e-005,-7.0710768 z " + id="path235" /> + </marker> + <marker + style="overflow:visible;" + id="DiamondS" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="DiamondS"> + <path + transform="scale(0.2)" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" + d="M -2.1579186e-005,-7.0710768 L -7.0710894,-8.9383918e-006 L -2.1579186e-005,7.0710589 L 7.0710462,-8.9383918e-006 L -2.1579186e-005,-7.0710768 z " + id="path840" /> + </marker> + <marker + inkscape:stockid="TriangleOutL" + orient="auto" + refY="0.0" + refX="0.0" + id="marker155" + style="overflow:visible;"> + <path + sodipodi:nodetypes="cccc" + id="path156" + d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z " + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" + transform="scale(0.8)" /> + </marker> + <marker + inkscape:stockid="TriangleInL" + orient="auto" + refY="0.0" + refX="0.0" + id="marker153" + style="overflow:visible;"> + <path + sodipodi:nodetypes="cccc" + id="path154" + d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z " + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" + transform="scale(-0.8)" /> + </marker> + <marker + inkscape:stockid="TriangleOutL" + orient="auto" + refY="0.0" + refX="0.0" + id="marker198" + style="overflow:visible;"> + <path + sodipodi:nodetypes="cccc" + id="path199" + d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z " + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" + transform="scale(0.8)" /> + </marker> + <marker + inkscape:stockid="TriangleInL" + orient="auto" + refY="0.0" + refX="0.0" + id="marker196" + style="overflow:visible;"> + <path + sodipodi:nodetypes="cccc" + id="path197" + d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z " + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" + transform="scale(-0.8)" /> + </marker> + <marker + inkscape:stockid="TriangleOutL" + orient="auto" + refY="0.0" + refX="0.0" + id="marker193" + style="overflow:visible;"> + <path + sodipodi:nodetypes="cccc" + id="path194" + d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z " + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" + transform="scale(0.8)" /> + </marker> + <marker + inkscape:stockid="TriangleInL" + orient="auto" + refY="0.0" + refX="0.0" + id="marker191" + style="overflow:visible;"> + <path + sodipodi:nodetypes="cccc" + id="path192" + d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z " + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" + transform="scale(-0.8)" /> + </marker> + <marker + inkscape:stockid="TriangleOutL" + orient="auto" + refY="0.0" + refX="0.0" + id="marker791" + style="overflow:visible;"> + <path + sodipodi:nodetypes="cccc" + id="path792" + d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z " + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" + transform="scale(0.8)" /> + </marker> + <marker + inkscape:stockid="TriangleOutL" + orient="auto" + refY="0.0" + refX="0.0" + id="marker719" + style="overflow:visible;"> + <path + sodipodi:nodetypes="cccc" + id="path720" + d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z " + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" + transform="scale(0.8)" /> + </marker> + <marker + inkscape:stockid="TriangleInL" + orient="auto" + refY="0.0" + refX="0.0" + id="marker717" + style="overflow:visible;"> + <path + sodipodi:nodetypes="cccc" + id="path718" + d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z " + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" + transform="scale(-0.8)" /> + </marker> + <marker + inkscape:stockid="TriangleOutL" + orient="auto" + refY="0.0" + refX="0.0" + id="marker714" + style="overflow:visible;"> + <path + sodipodi:nodetypes="cccc" + id="path715" + d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z " + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" + transform="scale(0.8)" /> + </marker> + <marker + inkscape:stockid="TriangleInL" + orient="auto" + refY="0.0" + refX="0.0" + id="marker712" + style="overflow:visible;"> + <path + sodipodi:nodetypes="cccc" + id="path713" + d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z " + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" + transform="scale(-0.8)" /> + </marker> + <marker + inkscape:stockid="TriangleOutL" + orient="auto" + refY="0.0" + refX="0.0" + id="marker709" + style="overflow:visible;"> + <path + sodipodi:nodetypes="cccc" + id="path710" + d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z " + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" + transform="scale(0.8)" /> + </marker> + <marker + inkscape:stockid="TriangleInL" + orient="auto" + refY="0.0" + refX="0.0" + id="marker707" + style="overflow:visible;"> + <path + sodipodi:nodetypes="cccc" + id="path708" + d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z " + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" + transform="scale(-0.8)" /> + </marker> + <marker + inkscape:stockid="TriangleOutL" + orient="auto" + refY="0.0" + refX="0.0" + id="marker704" + style="overflow:visible;"> + <path + sodipodi:nodetypes="cccc" + id="path705" + d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z " + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" + transform="scale(0.8)" /> + </marker> + <marker + inkscape:stockid="TriangleInL" + orient="auto" + refY="0.0" + refX="0.0" + id="marker702" + style="overflow:visible;"> + <path + sodipodi:nodetypes="cccc" + id="path703" + d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z " + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" + transform="scale(-0.8)" /> + </marker> + <marker + inkscape:stockid="TriangleOutL" + orient="auto" + refY="0.0" + refX="0.0" + id="TriangleOutL" + style="overflow:visible;"> + <path + sodipodi:nodetypes="cccc" + id="path2817" + d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z " + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" + transform="scale(0.8)" /> + </marker> + <marker + inkscape:stockid="TriangleInL" + orient="auto" + refY="0.0" + refX="0.0" + id="TriangleInL" + style="overflow:visible;"> + <path + sodipodi:nodetypes="cccc" + id="path2823" + d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z " + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" + transform="scale(-0.8)" /> + </marker> + <marker + inkscape:stockid="Arrow2L" + orient="auto" + refY="0.0" + refX="0.0" + id="Arrow2L" + style="overflow:visible;"> + <path + sodipodi:nodetypes="cccc" + id="path2863" + style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;" + d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " + transform="scale(1.1) translate(-5,0)" /> + </marker> + <linearGradient + id="linearGradient2570"> + <stop + style="stop-color:#000000;stop-opacity:1.0000000;" + offset="0.0000000" + id="stop2571" /> + <stop + style="stop-color:#000000;stop-opacity:0.62745100;" + offset="0.58504134" + id="stop2572" /> + <stop + style="stop-color:#ffffff;stop-opacity:0.0000000;" + offset="1.0000000" + id="stop2573" /> + </linearGradient> + <linearGradient + xlink:href="#linearGradient1218" + id="linearGradient1322" + x1="0.50352114" + y1="0.097472921" + x2="0.27112675" + y2="0.98555958" /> + <linearGradient + xlink:href="#linearGradient1273" + id="linearGradient1318" + x1="0.50704223" + y1="0.27741936" + x2="-0.17253521" + y2="0.99354839" /> + <linearGradient + xlink:href="#linearGradient1222" + id="linearGradient1307" + x1="0.45376351" + y1="1.9347328" + x2="0.41986585" + y2="0.12454049" + gradientTransform="scale(1.004208,0.995809)" /> + <linearGradient + xlink:href="#linearGradient1222" + id="linearGradient1306" + x1="0.45009527" + y1="1.9667202" + x2="0.41548476" + y2="0.11846013" + gradientTransform="scale(1.006361,0.993679)" /> + <linearGradient + xlink:href="#linearGradient1222" + id="linearGradient1305" + x1="0.45839140" + y1="1.8676205" + x2="0.42603236" + y2="0.13959341" + gradientTransform="scale(1.002016,0.997989)" /> + <linearGradient + xlink:href="#linearGradient1273" + id="linearGradient1277" + x1="-0.36619717" + y1="1.5228426" + x2="0.36971831" + y2="0.80203044" /> + <linearGradient + xlink:href="#linearGradient1273" + id="linearGradient1272" + x1="1.0739436" + y1="0.23580793" + x2="0.53521127" + y2="0.55458528" /> + <linearGradient + xlink:href="#linearGradient1222" + id="linearGradient1270" /> + <linearGradient + xlink:href="#linearGradient1323" + id="linearGradient1231" + x1="0.00000000" + y1="0.50000000" + x2="1.0000000" + y2="0.50000000" /> + <linearGradient + xlink:href="#linearGradient1222" + id="linearGradient1221" + x1="-0.96478873" + y1="2.1597939" + x2="0.42605633" + y2="0.24742271" /> + <linearGradient + id="linearGradient1218"> + <stop + style="stop-color:#000000;stop-opacity:1.0000000;" + offset="0.00000000" + id="stop1219" /> + <stop + style="stop-color:#323232;stop-opacity:1.0000000;" + offset="0.073255815" + id="stop1321" /> + <stop + style="stop-color:#000000;stop-opacity:1.0000000;" + offset="0.65260679" + id="stop1320" /> + <stop + style="stop-color:#fff;stop-opacity:1;" + offset="1" + id="stop1220" /> + </linearGradient> + <linearGradient + id="linearGradient1222"> + <stop + style="stop-color:#0081ac;stop-opacity:1.0000000;" + offset="0.0000000" + id="stop1223" /> + <stop + style="stop-color:#006d91;stop-opacity:0.62745100;" + offset="0.50000000" + id="stop1722" /> + <stop + style="stop-color:#000000;stop-opacity:0.0000000;" + offset="1.0000000" + id="stop1224" /> + </linearGradient> + <linearGradient + id="linearGradient1273"> + <stop + style="stop-color:#ffffff;stop-opacity:1.0000000;" + offset="0.00000000" + id="stop1274" /> + <stop + style="stop-color:#ffffff;stop-opacity:0.00000000;" + offset="1.0000000" + id="stop1275" /> + </linearGradient> + <linearGradient + id="linearGradient1323"> + <stop + style="stop-color:#000000;stop-opacity:0.77685952;" + offset="0.00000000" + id="stop1324" /> + <stop + style="stop-color:#000000;stop-opacity:0.00000000;" + offset="1.0000000" + id="stop1325" /> + </linearGradient> + <radialGradient + xlink:href="#linearGradient826" + id="radialGradient829" + cx="0.49382716" + cy="0.46875000" + r="0.41400504" + fx="0.50617284" + fy="0.15625000" /> + <linearGradient + id="linearGradient826"> + <stop + style="stop-color:#000000;stop-opacity:0.95294118;" + offset="0.00000000" + id="stop827" /> + <stop + style="stop-color:#000000;stop-opacity:0.76078433;" + offset="0.36585677" + id="stop830" /> + <stop + style="stop-color:#000000;stop-opacity:0.52941179;" + offset="0.47107276" + id="stop847" /> + <stop + style="stop-color:#ffffff;stop-opacity:0.00000000;" + offset="1.0000000" + id="stop828" /> + </linearGradient> + <linearGradient + xlink:href="#linearGradient909" + id="linearGradient907" + x1="0.50000000" + y1="0.66667551" + x2="0.50000000" + y2="-1.7333326" /> + <linearGradient + id="linearGradient909"> + <stop + style="stop-color:#000000;stop-opacity:0.00000000;" + offset="0.00000000" + id="stop910" /> + <stop + style="stop-color:#000000;stop-opacity:0.17000000;" + offset="1.0000000" + id="stop913" /> + </linearGradient> + <linearGradient + xlink:href="#linearGradient1222" + id="linearGradient1309" /> + <linearGradient + xlink:href="#linearGradient2570" + id="linearGradient1308" + x1="0.0000000" + y1="0.50000000" + x2="1.0000000" + y2="0.50000000" /> + </defs> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="1.4849242" + inkscape:cx="304.10642" + inkscape:cy="169.57624" + inkscape:window-width="1248" + inkscape:window-height="964" + inkscape:window-x="24" + inkscape:window-y="0" + showguides="true" + inkscape:guide-bbox="false" + inkscape:current-layer="layer2" + showgrid="true" + inkscape:guide-points="true" + gridspacingy="5.0000000pt" + gridspacingx="5.0000000pt" + gridtolerance="50.000000pt" + inkscape:grid-points="true" + inkscape:grid-bbox="true" /> + <metadata + id="metadata33"> + <rdf:RDF + id="RDF34"> + <cc:Work + rdf:about="" + id="Work35"> + <dc:format + id="format36">image/svg+xml</dc:format> + <dc:type + id="type38" + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + </cc:Work> + </rdf:RDF> + </metadata> + <g + inkscape:groupmode="layer" + id="layer1" + inkscape:label="Background" + style="display:block"> + <rect + style="font-size:12.000000;fill:url(#linearGradient1309);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:3.0000000pt;" + id="topbluebox" + width="800.00000" + height="112.50000" + x="0.0000000" + y="1.7763568e-15" /> + <path + style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:url(#linearGradient1308);stroke-width:4.9844480;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;" + d="M -0.034245957,110.20928 L 797.51553,110.00778" + id="path654" + sodipodi:nodetypes="cc" /> + <g + id="g1085" + transform="translate(646.2792,-9.754791)"> + <g + id="g1394" + transform="matrix(0.875802,0.000000,0.000000,0.869278,1.048583,-7.965682)"> + <path + sodipodi:type="arc" + id="path898" + sodipodi:cx="300.00000" + sodipodi:cy="300.00000" + sodipodi:rx="300.00000" + sodipodi:ry="300.00000" + d="M 600.00000 300.00000 A 300.00000 300.00000 0 1 0 0.0000000,300.00000 A 300.00000 300.00000 0 1 0 600.00000 300.00000 z" + style="opacity:0.69398910;fill:url(#radialGradient829);stroke-width:4.4309568;stroke-dasharray:17.723827 17.723827 ;stroke-dashoffset:0.0000000;" + transform="matrix(0.394071,0.000000,0.000000,8.155385e-2,-31.69751,94.58860)" /> + <path + sodipodi:type="arc" + id="ball1" + sodipodi:cx="300.00000" + sodipodi:cy="300.00000" + sodipodi:rx="300.00000" + sodipodi:ry="300.00000" + d="M 600.00000 300.00000 A 300.00000 300.00000 0 1 0 0.0000000,300.00000 A 300.00000 300.00000 0 1 0 600.00000 300.00000 z" + style="fill:url(#radialGradient829);stroke-width:4.4309568;stroke-dasharray:17.723827 17.723827 ;stroke-dashoffset:0.0000000;" + transform="matrix(0.280658,0.000000,0.000000,0.148676,4.082687,91.98483)" /> + </g> + <g + id="g1310" + transform="matrix(1.822197,0.000000,0.000000,1.662749,-180.0082,12.26653)" + style="fill:url(#linearGradient1221);"> + <path + style="fill-opacity:0.074380167;fill-rule:evenodd;stroke-width:1.0000000pt;" + d="M 139.27138,11.077118 C 137.22042,11.077119 135.15548,11.849270 133.58388,13.420868 L 105.67763,41.358368 C 104.13725,42.898711 103.33325,44.910828 103.30263,46.920868 C 103.30220,46.954601 103.30263,47.012134 103.30263,47.045868 L 103.36513,47.045868 C 103.89976,49.079999 117.69889,51.660911 119.24013,53.202118 C 121.56768,55.529685 110.31886,57.249538 112.64638,59.577118 C 114.97392,61.904658 126.72486,64.062038 129.05263,66.389620 C 131.38019,68.717170 124.28755,71.187070 126.61513,73.514620 C 128.94268,75.842201 136.74995,72.943440 135.33388,79.014621 C 138.47707,82.157811 145.03666,80.657811 149.42763,77.514621 C 151.75518,75.187070 144.97506,75.404670 147.30263,73.077120 C 149.63018,70.749540 155.50836,70.738600 160.45888,65.170868 C 158.46624,62.071818 151.94381,60.748438 154.27138,58.420868 C 156.59893,56.093323 161.10115,57.261288 170.86513,52.827118 C 175.63150,50.662408 175.25838,49.039285 175.24013,47.045868 C 175.23975,47.003922 175.24013,46.963136 175.24013,46.920868 L 175.20888,46.920868 C 175.17827,44.910830 174.40547,42.898714 172.86513,41.358368 L 144.92763,13.420868 C 143.35604,11.849272 141.32234,11.077118 139.27138,11.077118 z M 139.02138,14.702118 C 139.93315,14.725869 140.67125,15.422422 142.11513,16.358368 L 155.30263,26.139618 C 155.44708,26.233292 155.58252,26.320552 155.70888,26.420868 C 155.83525,26.521171 155.97562,26.627132 156.08388,26.733368 C 156.19214,26.839410 156.27479,26.966073 156.36513,27.077118 C 156.45527,27.188145 156.54310,27.305955 156.61513,27.420868 C 156.68737,27.535969 156.74853,27.646585 156.80263,27.764618 C 156.85677,27.882866 156.89163,27.987920 156.92763,28.108368 C 156.96385,28.228632 157.00329,28.361823 157.02138,28.483368 C 157.03948,28.605130 157.05263,28.736271 157.05263,28.858368 L 149.24013,25.077118 L 148.45888,30.983368 L 144.14638,28.952118 L 137.52138,33.389618 L 134.95888,24.639618 L 131.70888,32.295868 L 122.55263,33.202118 L 122.64638,29.139618 C 122.64638,28.162533 127.93872,21.330614 131.14638,19.702118 L 137.02138,15.483368 C 137.88771,14.921800 138.47431,14.687867 139.02138,14.702118 z M 126.89638,54.639618 C 131.05584,55.718333 135.68346,57.114312 139.39638,57.139618 L 139.55263,58.827118 C 136.37321,58.499388 129.63884,56.949888 128.05263,56.139618 L 126.89638,54.639618 z M 170.24013,62.045868 C 169.60518,62.025518 169.00430,62.089178 168.55263,62.202118 C 167.70107,62.414898 163.56419,62.512928 163.89638,65.170868 C 167.55118,66.499190 173.20097,67.516500 173.86513,64.858368 C 174.36366,62.865308 172.14497,62.106908 170.24013,62.045868 z M 122.45888,67.452120 C 121.88389,67.385110 121.32136,67.455980 120.77138,67.733370 C 118.57203,68.842760 117.09168,71.307720 119.14638,72.327120 C 121.20129,73.346520 122.65747,72.185800 124.45888,70.920870 C 126.26050,69.656140 126.21414,69.408800 126.08388,68.920870 C 125.83449,68.987380 124.18386,67.653150 122.45888,67.452120 z M 162.64638,67.889620 C 160.98514,68.553960 161.00465,70.861860 162.33388,71.858370 C 163.66277,72.855080 165.32597,72.210400 165.99013,71.545870 C 166.65484,70.881530 165.96848,68.553970 162.64638,67.889620 z " + id="path1278" /> + <path + style="fill-opacity:0.074380167;fill-rule:evenodd;stroke-width:1.0000000pt;" + d="M 137.96875,10.718750 C 134.70402,11.060845 132.45341,13.855395 130.15790,15.940974 C 121.77155,24.503910 113.19525,32.911552 104.88478,41.529122 C 103.53165,43.257666 102.98133,45.293623 102.71875,47.437500 C 107.43946,50.886242 113.69835,50.905815 118.71875,53.781250 C 117.30484,56.014138 113.86394,55.927723 112.30534,58.153586 C 110.95047,59.066432 112.87438,60.562599 113.88390,60.907202 C 118.07998,63.025863 122.80956,63.838835 126.97834,66.068813 C 129.14039,66.223477 128.99465,68.397410 127.55968,69.465540 C 126.42313,70.610466 124.66557,72.512182 126.40386,73.938766 C 128.52893,75.415674 131.34635,75.011355 133.71875,75.875000 C 135.38587,76.789177 134.20286,78.442002 135.34375,79.593750 C 138.20878,81.840481 142.17613,81.444087 145.36980,80.162063 C 147.01184,79.679133 148.50293,78.612108 149.93750,77.781250 C 151.32137,76.168445 149.16317,75.014407 147.93750,74.343750 C 147.13207,73.007556 149.81258,72.471472 150.72621,71.835396 C 154.22932,70.415525 157.63139,68.772275 160.32323,66.076023 C 162.00146,65.040055 159.53684,63.566475 158.75000,62.750000 C 157.29555,61.671425 155.38495,61.005736 154.46875,59.343750 C 156.83166,56.736844 160.77991,57.222943 163.82692,55.886662 C 167.48614,54.956060 170.96688,53.327613 174.19128,51.441061 C 176.31894,49.855420 175.75931,47.094289 175.34438,44.858149 C 173.82714,40.146659 169.32671,37.346121 166.14614,33.782162 C 159.00255,26.737555 151.96598,19.558149 144.75603,12.597114 C 142.83187,11.117125 140.40461,10.324926 137.96875,10.718750 z M 140.15625,15.718750 C 145.33185,19.512142 150.51925,23.291773 155.68750,27.093750 C 155.79568,28.128330 152.96647,25.994412 151.88519,25.704486 C 150.56126,25.310550 148.23232,22.990502 148.60160,25.735802 C 148.03383,26.854222 148.89364,30.614243 147.25375,29.748789 C 145.77079,28.952048 143.79956,27.767016 142.39696,29.393778 C 140.87922,30.408352 139.36149,31.422926 137.84375,32.437500 C 136.92659,29.270978 136.01364,26.103230 135.09375,22.937500 C 133.83186,25.869891 132.59553,28.813265 131.34375,31.750000 C 128.60417,32.020833 125.86458,32.291667 123.12500,32.562500 C 122.93577,30.531586 123.37937,28.492090 124.78964,27.051727 C 127.83705,22.165897 132.91432,19.181067 137.48762,15.928279 C 138.38080,15.399443 139.18306,15.465846 140.15625,15.718750 z M 132.06250,56.562500 C 134.25968,57.131800 136.54653,57.244809 138.78125,57.625000 C 137.93164,58.641801 135.83490,57.320885 134.50134,57.277133 C 132.75919,56.896272 131.01731,56.527068 129.37500,55.812500 C 130.27083,56.062500 131.16667,56.312500 132.06250,56.562500 z M 168.50000,61.625000 C 166.47980,62.095190 163.59992,62.369201 163.34375,64.968750 C 164.00781,65.934196 166.11962,66.292948 167.47626,66.551501 C 169.60910,66.891924 172.52463,67.659468 174.01886,65.672524 C 175.29513,63.892929 173.38643,61.628153 171.40540,61.754929 C 170.44376,61.426788 169.48969,61.503021 168.50000,61.625000 z M 120.65625,67.156250 C 119.17864,68.173454 117.17273,69.706513 117.81250,71.750000 C 119.32360,73.943032 122.44871,73.328157 124.17581,71.744685 C 125.31806,71.095411 127.22708,69.849349 126.34375,68.406250 C 124.53029,67.617814 122.70705,66.421404 120.65625,67.156250 z M 162.25000,67.468750 C 160.98536,68.304844 160.47655,70.055902 161.35305,71.321264 C 162.02451,73.004295 164.27223,73.179865 165.64672,72.263080 C 167.48408,71.700360 166.67812,69.347513 165.33731,68.658474 C 164.66189,67.815250 163.12029,67.406310 162.25000,67.468750 z " + id="path1283" /> + <path + style="fill-opacity:0.074380167;fill-rule:evenodd;stroke-width:1.0000000pt;" + d="M 137.09375,12.062500 C 133.45264,13.658306 130.89510,17.054651 128.02763,19.760075 C 120.64992,27.277135 113.11748,34.668181 105.81675,42.244521 C 104.77302,43.583830 104.19848,45.113312 103.93750,46.781250 C 108.02500,49.661848 113.35464,49.814484 117.77247,52.034312 C 119.23732,52.180074 120.83004,53.663696 119.47530,54.914506 C 117.72685,56.714093 114.64707,56.868986 113.18750,58.937500 C 116.98689,61.678185 121.72461,62.314645 125.91888,64.199775 C 127.35246,65.248996 129.93899,65.341959 130.00000,67.531250 C 129.61283,69.469175 127.68115,70.594821 126.84375,72.343750 C 128.66657,74.916318 132.41661,73.526770 134.81763,75.194505 C 136.12150,75.998634 135.76289,77.719238 136.33739,78.786112 C 139.34189,80.984126 143.56705,80.023489 146.59979,78.262860 C 147.57821,77.931235 150.25551,76.737683 148.25234,75.866570 C 146.79311,75.539319 145.57083,73.791727 146.98575,72.676315 C 150.59379,69.928273 155.52636,69.300230 158.75379,65.912819 C 160.44061,64.636839 157.51978,63.512312 156.64603,62.784855 C 155.31686,61.805358 153.02074,60.864770 153.31250,58.906250 C 155.52467,55.836091 159.76350,56.249927 162.98171,54.909139 C 166.64088,54.011598 170.17880,52.442724 173.39619,50.585767 C 175.44759,48.766928 174.40312,45.854433 173.70402,43.674602 C 170.01715,38.505895 164.93468,34.528530 160.60640,29.906454 C 155.05848,24.484276 149.68028,18.831089 144.02714,13.552135 C 142.01313,12.267231 139.68457,11.155741 137.26959,12.030263 L 137.09375,12.062500 z M 139.25000,14.156250 C 144.36849,16.573687 148.44456,20.615673 153.06166,23.857057 C 154.79682,25.417824 157.75256,26.462276 157.65625,29.218750 C 155.98301,29.620934 154.51821,27.909197 152.92283,27.467153 C 151.47889,26.979622 149.05912,24.688826 149.46490,27.619328 C 148.95092,28.676042 149.67609,32.096323 148.30430,31.528870 C 146.86362,30.916675 145.25114,29.742049 143.73062,29.880583 C 141.56112,31.359522 139.38321,32.826259 137.21875,34.312500 C 136.40063,31.654144 135.63994,28.977747 134.84375,26.312500 C 133.78712,28.431959 132.98467,30.961875 131.78125,32.843750 C 128.52084,33.166779 125.26035,33.488957 122.00000,33.812500 C 122.02692,31.439278 121.58820,28.751334 123.45144,26.900643 C 126.38650,21.928911 131.54097,18.937382 135.96875,15.531250 C 137.05500,15.131227 138.17386,14.356070 139.25000,14.156250 z M 126.34375,53.906250 C 130.81931,55.099287 135.33348,56.080112 139.93750,56.625000 C 140.81508,58.380031 139.61654,59.889689 137.75155,59.030564 C 134.35469,58.342143 130.95451,57.411091 127.62500,56.500000 C 127.37596,56.018046 124.72663,53.333015 126.34375,53.906250 z M 168.68750,62.750000 C 167.26725,63.145732 165.19352,63.022642 164.68750,64.750000 C 167.41558,65.272026 170.36127,66.626958 173.03125,65.187500 C 173.94813,63.333514 171.22391,62.807999 169.92452,62.707344 C 169.51218,62.721563 169.09984,62.735781 168.68750,62.750000 z M 120.96875,68.250000 C 119.88102,69.094191 117.71809,71.141191 120.00567,71.867660 C 122.11744,72.377527 123.71955,70.573549 125.28125,69.468750 C 124.17010,68.379529 122.48301,67.967608 120.96875,68.250000 z M 162.25000,68.937500 C 161.26655,70.838341 164.03769,72.707639 165.32625,71.028976 C 165.98639,69.968138 163.10932,68.105539 162.25000,68.937500 z " + id="path1286" /> + <path + style="fill-opacity:0.074380167;fill-rule:evenodd;stroke-width:1.0000000pt;" + d="M 137.50000,12.562500 C 131.56402,15.884438 127.47918,21.513076 122.59316,26.106819 C 117.07494,31.800872 111.33765,37.333066 105.95500,43.127274 C 105.27016,44.232264 103.90274,46.716455 105.88806,47.110513 C 110.48303,49.525949 116.07018,49.897473 120.25000,52.937500 C 121.19557,55.258014 118.31954,56.204644 116.77699,57.135076 C 115.14828,57.646504 113.25757,59.174666 115.98524,59.736007 C 120.51650,62.179113 125.90956,62.812244 130.06250,65.968750 C 131.40440,68.155882 128.87852,70.088345 127.96429,71.816940 C 127.97548,73.606583 130.61198,73.210238 131.85374,73.694589 C 134.00698,73.861384 136.31306,75.067306 136.52629,77.437982 C 137.24770,79.315251 139.82104,79.377347 141.56250,79.375000 C 143.88381,79.081698 145.88731,77.848938 148.00000,76.937500 C 147.89289,75.484280 145.47385,75.343455 145.78125,73.562500 C 147.65028,70.568783 151.46696,69.934698 154.32757,68.211442 C 155.95166,67.507534 157.40819,66.436524 158.50000,65.031250 C 156.69534,62.893495 153.11684,62.207207 152.76893,59.025530 C 153.13476,57.911585 154.90043,56.856141 156.14992,56.314935 C 161.47352,54.305871 167.29666,53.530281 172.18291,50.436255 C 174.75469,49.397100 173.90347,46.181096 173.15013,44.168122 C 170.99740,41.143850 168.08639,38.542958 165.64236,35.681332 C 163.12371,33.093790 160.49665,30.610931 157.93750,28.062500 C 158.99092,29.594714 157.00835,30.333418 155.86310,29.376751 C 153.95887,28.546062 152.06033,27.726589 150.12500,26.968750 C 150.04976,28.633800 149.69671,30.253091 149.34375,31.875000 C 146.94959,32.517021 144.62510,29.359512 142.44997,31.405021 C 140.65579,32.399012 139.25573,34.074138 137.34005,34.698602 C 135.96867,34.449689 136.15225,31.657450 135.44638,30.368996 C 135.03220,27.477998 134.31032,28.114323 133.43720,30.484434 C 132.63691,31.983328 132.29360,34.079093 130.12469,33.576560 C 127.22896,33.863646 124.33317,34.149933 121.43750,34.437500 C 121.45635,31.458390 121.16984,28.094375 123.52595,25.839572 C 126.82257,21.188668 131.69023,18.019711 136.23357,14.793262 C 137.75437,14.087412 139.64327,13.037594 141.05071,14.536711 C 144.77608,17.093755 148.56965,19.491887 152.06250,22.343750 C 149.06655,19.513772 146.25485,16.420638 143.14594,13.751994 C 141.38445,12.871744 139.52020,11.789900 137.50000,12.562500 z M 126.40625,53.343750 C 131.09445,54.266714 135.77718,55.221773 140.46875,56.125000 C 140.66311,57.490600 140.90400,59.768414 138.90019,59.717011 C 134.99279,58.970773 131.04202,57.882901 127.18750,56.875000 C 126.61048,55.955764 124.83534,54.556620 125.40625,53.625000 C 125.73497,53.577157 126.08499,53.292470 126.40625,53.343750 z M 166.53125,63.812500 C 164.90117,64.830649 168.72302,64.879550 169.60036,65.161786 C 170.82454,65.513571 173.80209,64.644903 171.50000,63.593750 C 169.78209,63.217030 168.21140,63.255613 166.53125,63.812500 z M 120.81250,69.187500 C 118.77488,70.497531 120.63987,72.049766 122.29985,70.780747 C 124.22011,70.547064 124.25797,68.584075 122.13849,68.857155 C 121.62590,68.786616 121.20364,68.805690 120.81250,69.187500 z M 162.78125,70.250000 C 165.04372,72.410337 164.50416,68.582957 162.78125,69.787913 C 162.78125,69.883882 162.78125,70.191942 162.78125,70.250000 z " + id="path1295" /> + <path + style="fill-opacity:0.074380167;fill-rule:evenodd;stroke-width:1.0000000pt;" + d="M 137.25000,10.312500 C 134.57328,10.811904 132.67255,13.050780 130.64866,14.715585 C 121.77957,23.451854 113.11785,32.437236 104.37500,41.281250 C 103.17019,43.288146 102.47259,45.456013 102.06250,47.750000 C 105.83476,49.628698 109.64657,51.368815 113.75481,52.377095 C 114.74672,53.000901 118.15181,53.211596 117.03125,54.625000 C 114.87625,55.770623 112.18432,56.545814 111.25000,59.062500 C 113.07397,62.261249 117.13309,62.448994 120.14188,63.972108 C 122.66750,64.970987 125.19313,65.969869 127.71875,66.968750 C 127.79709,69.608591 127.12737,68.724937 125.79671,67.542170 C 123.76150,66.508388 120.74167,65.559916 119.14266,67.799744 C 117.68910,68.685330 116.55779,70.940149 117.66673,72.361712 C 119.74129,74.610002 123.29896,73.558599 125.22361,71.631365 C 125.39044,71.451948 124.94524,74.329263 126.55554,74.625682 C 128.75187,75.888131 131.56113,75.535204 133.75000,76.781250 C 134.17453,78.637203 134.92263,80.738750 137.10053,81.029661 C 140.53970,82.420114 144.41944,81.397273 147.50485,79.584682 C 148.81540,78.872018 151.32795,78.343669 150.75195,76.374975 C 150.70713,75.080531 147.53803,74.300613 149.31250,73.093750 C 153.55943,71.203594 157.91230,69.209830 161.18750,65.843750 C 161.99115,63.731003 159.07145,62.849633 157.93750,61.562500 C 156.57653,60.417748 154.30116,59.195844 157.17010,58.407983 C 162.44672,56.428116 168.30037,55.651561 173.14000,52.536010 C 175.69933,51.724285 176.75286,48.825627 176.01594,46.382200 C 175.99204,43.921497 174.36450,41.884430 172.99509,39.973772 C 168.23708,34.553265 162.73310,29.839073 157.72691,24.648245 C 153.37676,20.454464 149.19589,15.998891 144.74248,11.964991 C 142.49218,10.519398 139.90204,10.047325 137.25000,10.312500 z M 140.40625,16.625000 C 144.38180,19.415210 148.26381,22.371245 152.21875,25.218750 C 151.00059,24.471219 149.71107,24.008458 148.28125,23.906250 C 148.08169,25.616789 147.84012,27.322499 147.62500,29.031250 C 145.77312,28.480352 143.67622,27.363820 142.02088,28.944411 C 140.79579,29.321785 138.71876,32.029330 138.02739,30.946881 C 137.09069,27.714729 136.15797,24.481420 135.21875,21.250000 C 133.79126,24.568262 132.38708,27.896549 130.96875,31.218750 C 128.56250,31.458333 126.15625,31.697917 123.75000,31.937500 C 123.73611,28.504117 126.40867,25.941624 128.50533,23.538181 C 131.60340,20.877921 134.84009,18.280137 138.37100,16.266120 C 139.05687,15.927768 139.72649,16.501380 140.40625,16.625000 z M 165.12500,61.937500 C 163.94994,62.683294 162.04675,64.163789 163.31250,65.625000 C 165.77599,67.237331 168.84980,67.346191 171.68759,67.438839 C 173.79767,67.380039 175.87709,64.882603 174.44068,62.966319 C 173.10190,60.663393 170.05340,61.177216 167.81605,61.201002 C 166.91904,61.446503 166.02202,61.692001 165.12500,61.937500 z M 162.03125,67.031250 C 160.83535,68.000188 160.29043,69.695123 160.76346,71.258236 C 161.16730,73.039050 163.22496,73.494707 164.78719,72.992478 C 167.13879,73.181332 168.09248,69.825149 166.13394,68.653373 C 164.96960,67.668728 163.65541,66.689296 162.03125,67.031250 z " + id="path1300" /> + <path + style="fill-opacity:0.074380167;fill-rule:evenodd;stroke-width:1.0000000pt;" + d="M 136.87500,9.5625000 C 131.65304,11.769127 128.14544,16.384624 124.15881,20.216605 C 117.35142,27.117414 110.49657,33.984328 103.71875,40.906250 C 102.85273,43.332808 101.99819,45.763562 101.12500,48.187500 C 105.93068,50.283305 110.76347,52.276496 115.75000,53.906250 C 115.44333,55.363555 112.99770,55.191635 112.24058,56.587946 C 110.89606,57.445273 110.01695,59.785906 111.89556,60.567820 C 114.86490,63.357428 118.93991,64.363020 122.62500,65.875000 C 119.72774,65.033632 117.80750,68.090788 116.68750,70.250000 C 116.01105,72.950420 119.11437,74.651083 121.43923,74.259441 C 122.88425,74.778519 124.87048,71.894366 125.06555,74.129447 C 127.21708,76.574392 131.35224,75.998123 133.59751,78.288768 C 134.32398,80.302303 135.99246,81.986172 138.23383,82.006618 C 140.25772,82.589257 142.23898,82.314480 144.19142,81.614260 C 146.47188,81.098710 148.64271,79.959926 150.63761,78.824244 C 152.14711,77.754911 151.81527,75.346631 150.43750,74.312500 C 150.23406,72.704926 152.73875,72.682794 153.75639,71.819616 C 156.49819,70.564020 158.90600,68.804050 161.21875,66.906250 C 160.19643,68.376408 159.81043,70.315970 160.38112,71.987759 C 161.34634,74.267655 164.22210,73.656108 166.15625,73.531250 C 168.08949,72.610730 168.83732,69.631414 166.87500,68.343750 C 164.02568,66.581529 166.47357,67.403459 168.27836,67.911665 C 170.51415,68.044548 173.31226,68.747610 174.83495,66.581402 C 176.52328,64.952843 175.46252,62.386049 173.84375,61.125000 C 171.82924,60.052772 169.41179,60.364713 167.22781,60.468857 C 165.26732,60.816302 163.77932,61.981088 162.56250,63.500000 C 161.07416,64.693238 164.27576,66.891706 162.51264,66.451187 C 161.23611,66.670932 162.80138,64.122782 161.27178,63.293106 C 160.27477,61.829766 158.59216,60.917429 157.34375,59.656250 C 163.37320,56.739900 170.41697,55.950383 175.81250,51.750000 C 177.79054,49.403625 176.89111,46.297658 176.31250,43.625000 C 172.71709,37.077334 166.72680,32.381991 161.58112,27.092054 C 156.10204,21.754721 150.65568,16.371055 145.15625,11.062500 C 142.76062,10.099303 140.31053,9.4347862 137.70606,9.5684113 C 137.43820,9.5943662 137.13013,9.4705862 136.87500,9.5625000 z M 144.00000,20.125000 C 145.41913,21.217458 146.85549,22.290152 148.28125,23.375000 C 146.97140,24.376925 147.43473,26.306660 146.96875,27.718750 C 145.01335,27.188020 142.88412,27.117042 141.28969,28.567875 C 140.30436,29.400862 138.46017,30.323076 138.31032,28.383898 C 137.43025,25.351664 136.59470,22.304201 135.68750,19.281250 C 137.21838,18.817776 138.78213,16.344334 140.28250,17.745803 C 141.52167,18.538869 142.76083,19.331934 144.00000,20.125000 z M 130.53125,30.406250 C 128.68750,30.593750 126.84375,30.781250 125.00000,30.968750 C 125.70615,27.451641 128.61722,24.990200 131.09307,22.632488 C 132.44877,21.648343 133.72082,20.531920 135.12500,19.625000 C 133.59375,23.218750 132.06250,26.812500 130.53125,30.406250 z " + id="path1304" /> + </g> + <path + style="fill:url(#linearGradient1322);fill-rule:evenodd;stroke-width:1.0000000pt;" + d="M 78.468542,10.216821 C 75.406213,10.216823 72.323010,11.369737 69.976423,13.716321 L 28.309048,55.430356 C 26.009076,57.730272 24.808608,60.734604 24.762888,63.735835 C 24.762246,63.786202 24.762888,63.872106 24.762888,63.922475 L 24.856208,63.922475 C 25.654475,66.959676 46.258230,70.813287 48.559486,73.114494 C 52.034797,76.589830 35.238960,79.157777 38.714227,82.633131 C 42.189523,86.108431 59.735084,89.329652 63.210724,92.805012 C 66.686050,96.280332 56.095888,99.968182 59.571244,103.44349 C 63.046555,106.91885 74.703745,102.59065 72.589383,111.65565 C 77.282542,116.34881 87.076796,114.10913 93.633042,109.41597 C 97.108353,105.94066 86.984820,106.26556 90.460160,102.79025 C 93.935473,99.314902 102.71230,99.298562 110.10402,90.985272 C 107.12876,86.358021 97.390000,84.382051 100.86534,80.906713 C 104.34065,77.431409 111.06300,79.175321 125.64179,72.554574 C 132.75855,69.322402 132.20143,66.898885 132.17419,63.922475 C 132.17362,63.859844 132.17419,63.798946 132.17419,63.735835 L 132.12753,63.735835 C 132.08182,60.734607 130.92794,57.730277 128.62803,55.430356 L 86.914001,13.716321 C 84.567429,11.369740 81.530871,10.216821 78.468542,10.216821 z M 59.991184,75.260853 C 66.201756,76.871504 73.111347,78.955868 78.655182,78.993653 L 78.888482,81.513293 C 74.141227,81.023952 64.086006,78.710363 61.717604,77.500533 L 59.991184,75.260853 z M 124.70859,86.319271 C 123.76053,86.288891 122.86335,86.383941 122.18895,86.552571 C 120.91747,86.870282 114.74061,87.016652 115.23661,90.985272 C 120.69367,92.968622 129.12948,94.487582 130.12115,90.518672 C 130.86551,87.542792 127.55274,86.410411 124.70859,86.319271 z M 53.365465,94.391452 C 52.506936,94.291402 51.667011,94.397222 50.845825,94.811392 C 47.561932,96.467852 45.351592,100.14833 48.419506,101.67041 C 51.487732,103.19250 53.661984,101.45941 56.351705,99.570712 C 59.041739,97.682322 58.972518,97.313012 58.778024,96.584472 C 58.405655,96.683782 55.941067,94.691622 53.365465,94.391452 z M 113.37021,95.044692 C 110.88978,96.036632 110.91892,99.482602 112.90361,100.97051 C 114.88780,102.45872 117.37116,101.49614 118.36283,100.50391 C 119.35532,99.511972 118.33051,96.036652 113.37021,95.044692 z " + id="path1217" + sodipodi:nodetypes="cccccccccccccccccccccccccccccccccccccccccc" + transform="matrix(1.220396,0.000000,0.000000,1.220396,-20.19444,7.307033)" /> + <path + style="fill:url(#linearGradient1231);fill-rule:evenodd;stroke-width:1.0000000pt;" + d="M 25.748195,58.983802 C 25.069168,60.484820 24.699511,62.088386 24.675015,63.696461 C 24.674375,63.746824 24.675015,63.832738 24.675015,63.883101 L 24.768335,63.883101 C 25.532194,66.789384 44.034284,70.422637 47.678393,72.748500 C 49.285306,71.792649 50.340763,70.791543 49.264832,69.715600 C 46.963576,67.414389 26.359823,63.560781 25.561555,60.523581 L 25.468235,60.523581 C 25.468235,60.473204 25.467595,60.387304 25.468235,60.336942 C 25.475280,59.874537 25.686531,59.443757 25.748195,58.983802 z M 132.03964,65.049601 C 131.22443,66.340254 129.65777,67.652109 126.34713,69.155680 C 111.76835,75.776420 105.04600,74.032516 101.57069,77.507812 C 100.51786,78.560641 100.89350,79.461052 101.71067,80.354072 C 105.38973,77.752669 112.01329,78.664472 125.55391,72.515200 C 131.70333,69.722349 132.05669,67.513308 132.03964,65.049601 z M 60.696531,71.861960 L 62.422951,74.101632 C 64.791352,75.311463 74.846572,77.625067 79.593829,78.114392 L 79.360529,75.594752 C 73.816694,75.556961 66.907102,73.472618 60.696531,71.861960 z M 40.119473,79.607512 C 38.565476,80.548088 37.568913,81.536279 38.626354,82.593751 C 42.101651,86.069051 59.647211,89.290272 63.122851,92.765632 C 63.275692,92.918462 63.255326,93.078602 63.356151,93.232232 C 64.435614,91.947532 65.165573,90.655612 63.916071,89.406112 C 60.566937,86.057251 44.419333,82.939151 40.119473,79.607512 z M 117.10845,87.866332 C 115.91482,88.486362 114.95058,89.360392 115.14873,90.945882 C 120.60578,92.929232 129.04159,94.448192 130.03326,90.479292 C 130.22625,89.707762 130.12018,89.057262 129.84662,88.519572 C 127.48913,90.422432 121.65703,89.359992 117.10845,87.866332 z M 108.52303,89.546092 C 101.68539,95.627832 94.291059,96.265772 91.165507,99.391352 C 89.908251,100.64860 90.617583,101.33525 91.632107,101.95765 C 95.620160,99.286262 103.30109,98.498152 110.01615,90.945882 C 109.67197,90.410612 109.01729,90.016842 108.52303,89.546092 z M 112.39580,95.705212 C 110.96059,97.100002 111.14367,99.677592 112.81574,100.93113 C 114.79992,102.41933 117.28328,101.45675 118.27495,100.46453 C 118.78497,99.954792 118.71737,98.812252 117.90167,97.664932 C 116.69163,98.288052 115.10107,98.690742 113.60896,97.571612 C 112.97842,97.098902 112.61381,96.431702 112.39580,95.705212 z M 57.383671,95.891852 C 57.217332,96.012982 57.251127,96.035572 57.057051,96.171812 C 54.367330,98.060502 52.193078,99.793612 49.124852,98.271512 C 48.483305,97.953222 48.223383,97.480502 48.005012,97.011692 C 46.640740,98.694072 46.307086,100.62659 48.331632,101.63103 C 51.399861,103.15311 53.574111,101.42002 56.263832,99.531332 C 58.953868,97.642932 58.884645,97.273622 58.690151,96.545092 C 58.562389,96.579162 57.924006,96.197372 57.383671,95.891852 z M 60.043291,99.577992 C 58.963831,100.86268 58.233858,102.15460 59.483371,103.40410 C 62.958684,106.87946 74.615872,102.55126 72.501510,111.61626 C 77.194670,116.30942 86.988927,114.06974 93.545171,109.37658 C 94.825402,108.09634 94.082889,107.39241 93.031907,106.76362 C 86.534250,110.87138 77.700406,112.66245 73.294729,108.25674 C 75.409092,99.191752 63.751901,103.51996 60.276591,100.04459 C 60.123748,99.891752 60.144117,99.731612 60.043291,99.577992 z " + id="path1269" + sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc" + transform="matrix(1.220396,0.000000,0.000000,1.220396,-20.19444,7.307033)" /> + <path + style="fill:url(#linearGradient1272);fill-opacity:0.75000000;fill-rule:evenodd;stroke-width:1.0000000pt;" + d="M 99.186075,30.398236 L 124.44205,57.534989 C 124.44205,57.534989 131.96512,65.595411 126.05415,68.819579 C 120.14317,72.043747 102.14157,76.880001 102.14157,76.880001 L 69.422516,29.764596 L 99.186075,30.398236 z " + id="path1271" + sodipodi:nodetypes="cccccc" + transform="matrix(1.220396,0.000000,0.000000,1.220396,-20.19444,7.307033)" /> + <path + style="fill:url(#linearGradient1277);fill-opacity:0.75000000;fill-rule:evenodd;stroke-width:1.0000000pt;" + d="M 63.243695,31.078988 L 42.657304,54.706552 C 42.657304,54.706552 34.703472,61.724642 39.850070,64.531876 C 44.996668,67.339111 78.917426,78.801990 102.77892,74.591136 L 75.408382,33.652287 L 63.243695,31.078988 z " + id="path1276" + sodipodi:nodetypes="cccccc" + transform="matrix(1.401650,0.000000,0.000000,1.401650,-35.26049,-4.181157)" /> + <path + style="fill:url(#linearGradient1318);fill-rule:evenodd;stroke-width:1.0000000pt;" + d="M 79.571944,14.847933 C 83.032254,14.873506 97.565101,29.009298 101.72458,31.925491 C 105.88407,34.841684 104.90857,36.754316 104.90857,36.936622 L 93.243582,31.290763 L 92.077082,40.109502 L 85.638002,37.076602 L 75.746078,43.702321 L 71.919958,30.637523 L 67.067318,42.069221 L 53.395938,43.422361 L 53.535918,37.356562 L 73.730570,17.473723 C 75.195738,16.031178 76.175081,14.822360 79.571944,14.847933 z " + id="path1317" + sodipodi:nodetypes="ccccccccccczz" + transform="matrix(1.220396,0.000000,0.000000,1.220396,-20.19444,7.307033)" /> + </g> + </g> + <g + inkscape:groupmode="layer" + id="layer2" + inkscape:label="Title"> + <rect + style="color:#000000;fill:#ffffff;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible" + id="rect148" + width="94.439514" + height="61.899979" + x="461.18549" + y="444.35004" + ry="13.333333" + rx="13.333333" /> + <path + sodipodi:nodetypes="cc" + id="path354" + d="M 550.00000,500.00000 L 550.00000,568.75000" + style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;marker-start:url(#DiamondL);marker-end:none" /> + <rect + style="color:#000000;fill:#ffffff;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible" + id="rect149" + width="94.439514" + height="61.899979" + x="450.14386" + y="456.01666" + ry="13.333333" + rx="13.333333" /> + <path + sodipodi:nodetypes="cc" + id="path357" + d="M 537.50000,512.50000 L 537.50000,568.75000" + style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;marker-start:url(#DiamondL);marker-end:none" /> + <text + sodipodi:linespacing="100%" + x="45" + y="70" + style="font-size:48.000000;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1.0000000;stroke:none;stroke-width:3.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;display:block;font-family:Arial;text-anchor:start;writing-mode:lr;font-stretch:normal;font-variant:normal;line-height:100%" + id="text48"><tspan + x="45.000000" + y="70.000000" + sodipodi:role="line" + id="tspan1">Current Objects</tspan></text> + <path + style="color:#000000;fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible" + d="M 93.750000,162.50000 L 718.75000,162.50000 L 718.75000,225.00000 L 93.750000,225.00000 L 93.750000,162.50000 z " + id="rect3" + sodipodi:nodetypes="ccccc" /> + <text + xml:space="preserve" + style="line-height:100%;writing-mode:lr;text-anchor:start;font-family:Sans;stroke-opacity:1.0000000;stroke-linejoin:miter;stroke-linecap:butt;stroke-width:1.0000000pt;stroke:none;fill-opacity:1.0000000;fill:#000000;font-stretch:normal;font-weight:normal;font-variant:normal;font-style:normal;font-size:24.000000" + x="116.20898" + y="202.36015" + id="text76" + sodipodi:linespacing="100%"><tspan + x="116.20898" + y="202.36015" + sodipodi:role="line" + id="tspan151">Inkscape::Application</tspan></text> + <rect + style="color:#000000;fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible" + id="rect18" + width="124.91570" + height="61.899807" + x="145.21207" + y="288.27856" + ry="0.0000000" /> + <text + xml:space="preserve" + style="font-size:24.000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#000000;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Sans;text-anchor:start;writing-mode:lr-tb" + x="180.94531" + y="325.47455" + id="text19" + sodipodi:linespacing="100%"><tspan + x="180.94531" + y="325.47455" + sodipodi:role="line" + id="tspan150">Args</tspan></text> + <rect + style="color:#000000;fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible" + id="rect21" + width="125.86808" + height="62.376175" + x="144.34247" + y="381.25000" + ry="0.0000000" /> + <text + xml:space="preserve" + style="font-size:24.000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#000000;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Sans;text-anchor:start;writing-mode:lr-tb" + x="176.60268" + y="421.45566" + id="text22" + sodipodi:linespacing="100%"><tspan + x="176.60268" + y="421.45566" + sodipodi:role="line" + id="tspan152">Prefs</tspan></text> + <path + style="color:#000000;fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible" + d="M 468.75000,288.12500 L 513.12500,288.12500 L 513.12500,306.87500 L 531.87500,306.87500 L 513.12500,288.12500 L 531.87500,306.87500 L 531.87500,381.87500 L 469.37500,381.87500 L 468.75000,288.12500 z " + id="rect24" + sodipodi:nodetypes="ccccccccc" /> + <rect + style="color:#000000;fill:#ffffff;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible" + id="rect27" + width="94.439514" + height="61.899979" + x="325.00003" + y="456.22504" + ry="13.333333" + rx="13.333333" /> + <path + sodipodi:nodetypes="ccc" + id="path50" + d="M 125.00000,225.00000 L 125.00000,256.25000 L 625.00000,256.25000" + style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000" /> + <path + sodipodi:nodetypes="ccc" + id="path121" + d="M 144.58707,318.90356 L 125.83707,318.90356 L 125.83707,256.40356" + style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;marker-start:url(#DiamondL);marker-end:none" /> + <path + sodipodi:nodetypes="cc" + id="path195" + d="M 375.00000,456.25000 L 375.00000,381.25000" + style="stroke-dasharray:1.2500000,5.0000000;stroke-dashoffset:0.0000000;marker-end:url(#Dot_m);marker-start:url(#Dot_m);stroke-opacity:1.0000000;stroke-miterlimit:4.0000000;stroke-linejoin:miter;stroke-linecap:butt;stroke-width:1.2500000;stroke:#000000;fill-rule:evenodd;fill-opacity:0.75000000;fill:none" /> + <path + style="color:#000000;fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible" + d="M 344.37500,286.87500 L 388.75000,286.87500 L 388.75000,305.62500 L 407.50000,305.62500 L 388.75000,286.87500 L 407.50000,305.62500 L 407.50000,380.62500 L 345.00000,380.62500 L 344.37500,286.87500 z " + id="path74" + sodipodi:nodetypes="ccccccccc" /> + <path + style="color:#000000;fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible" + d="M 594.81644,287.42505 L 637.50000,286.87500 L 637.50000,305.62500 L 656.25000,305.62500 L 637.50000,286.87500 L 656.25000,305.62500 L 656.25000,380.62500 L 593.75000,380.62500 L 594.81644,287.42505 z " + id="path75" + sodipodi:nodetypes="ccccccccc" /> + <rect + style="color:#000000;fill:#ffffff;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible" + id="rect76" + width="94.439514" + height="61.899979" + x="437.64383" + y="468.75000" + ry="13.333333" + rx="13.333333" /> + <rect + style="color:#000000;fill:#ffffff;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible" + id="rect77" + width="94.439514" + height="61.899979" + x="575.62500" + y="456.85004" + ry="13.333333" + rx="13.333333" /> + <path + sodipodi:nodetypes="ccc" + id="path157" + d="M 144.58707,412.65356 L 125.83707,412.65356 L 125.83707,318.90356" + style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;marker-start:url(#DiamondL);marker-end:none" /> + <path + sodipodi:nodetypes="cc" + id="path250" + d="M 375.62500,286.87500 L 375.62500,255.62500" + style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;marker-start:url(#DiamondL);marker-end:none" /> + <path + sodipodi:nodetypes="cc" + id="path253" + d="M 500.00000,287.50000 L 500.00000,256.25000" + style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;marker-start:url(#DiamondL);marker-end:none" /> + <path + sodipodi:nodetypes="cc" + id="path256" + d="M 625.00000,287.50000 L 625.00000,256.25000" + style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;marker-start:url(#DiamondL);marker-end:none" /> + <path + sodipodi:nodetypes="cc" + id="path330" + d="M 500.00000,456.25000 L 500.00000,381.25000" + style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dasharray:1.2500000 5.0000000 ;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;marker-start:url(#Dot_m);marker-end:url(#Dot_m)" /> + <path + sodipodi:nodetypes="cc" + id="path335" + d="M 487.50000,468.75000 L 500.00000,381.25000" + style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dasharray:1.2500000 5.0000000 ;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;marker-start:url(#Dot_m);marker-end:url(#Dot_m)" /> + <path + sodipodi:nodetypes="cc" + id="path340" + d="M 512.50000,443.75000 L 500.00000,381.25000" + style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dasharray:1.2500000 5.0000000 ;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;marker-start:url(#Dot_m);marker-end:url(#Dot_m)" /> + <path + sodipodi:nodetypes="cc" + id="path345" + d="M 625.00000,456.25000 L 625.00000,381.25000" + style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dasharray:1.2500000 5.0000000 ;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;marker-start:url(#Dot_m);marker-end:url(#Dot_m)" /> + <path + sodipodi:nodetypes="cc" + id="path348" + d="M 412.50000,512.50000 L 412.50000,568.75000" + style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;marker-start:url(#DiamondL);marker-end:none" /> + <path + sodipodi:nodetypes="cc" + id="path351" + d="M 525.00000,525.00000 L 525.00000,568.75000" + style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;marker-start:url(#DiamondL);marker-end:none" /> + <path + sodipodi:nodetypes="cc" + id="path360" + d="M 662.50000,512.50000 L 662.50000,568.75000" + style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;marker-start:url(#DiamondL);marker-end:none" /> + <path + sodipodi:nodetypes="ccc" + id="path361" + d="M 125.00000,412.50000 L 125.00000,568.75000 L 662.50000,568.75000" + style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000" /> + <text + xml:space="preserve" + style="font-size:24.000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#000000;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Sans;text-anchor:start;writing-mode:lr-tb" + x="352.29492" + y="342.29297" + id="text362" + sodipodi:linespacing="100%"><tspan + x="352.29492" + y="342.29297" + sodipodi:role="line" + id="tspan364">Doc</tspan></text> + <text + xml:space="preserve" + style="font-size:24.000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#000000;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Sans;text-anchor:start;writing-mode:lr-tb" + x="476.66992" + y="343.54297" + id="text365" + sodipodi:linespacing="100%"><tspan + x="476.66992" + y="343.54297" + sodipodi:role="line" + id="tspan366">Doc</tspan></text> + <text + xml:space="preserve" + style="font-size:24.000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#000000;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Sans;text-anchor:start;writing-mode:lr-tb" + x="601.35742" + y="342.29297" + id="text367" + sodipodi:linespacing="100%"><tspan + x="601.35742" + y="342.29297" + sodipodi:role="line" + id="tspan368">Doc</tspan></text> + <text + xml:space="preserve" + style="font-size:18.000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#000000;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Sans;text-anchor:start;writing-mode:lr-tb" + x="585.49121" + y="492.82736" + id="text369" + sodipodi:linespacing="100%"><tspan + x="585.49121" + y="492.82736" + sodipodi:role="line" + id="tspan371">Desktop</tspan></text> + <text + xml:space="preserve" + style="font-size:18.000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#000000;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Sans;text-anchor:start;writing-mode:lr-tb" + x="447.51007" + y="504.72733" + id="text372" + sodipodi:linespacing="100%"><tspan + x="447.51007" + y="504.72733" + sodipodi:role="line" + id="tspan373">Desktop</tspan></text> + <text + xml:space="preserve" + style="font-size:18.000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#000000;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Sans;text-anchor:start;writing-mode:lr-tb" + x="334.86627" + y="492.20236" + id="text374" + sodipodi:linespacing="100%"><tspan + x="334.86627" + y="492.20236" + sodipodi:role="line" + id="tspan375">Desktop</tspan></text> + </g> + <g + inkscape:groupmode="layer" + id="layer3" + inkscape:label="Drawing Area" /> +</svg> diff --git a/doc/NewAppArchitecture/06-current-desktop-view.svg b/doc/NewAppArchitecture/06-current-desktop-view.svg new file mode 100644 index 000000000..03a03c538 --- /dev/null +++ b/doc/NewAppArchitecture/06-current-desktop-view.svg @@ -0,0 +1,667 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> +<svg + xmlns:xml="http://www.w3.org/XML/1998/namespace" + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://web.resource.org/cc/" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + sodipodi:docbase="/home/bryce/src/Inkscape/inkscape/doc/NewAppArchitecture" + sodipodi:docname="06-current-desktop-view.svg" + height="480pt" + width="640pt" + inkscape:version="0.40+cvs" + sodipodi:version="0.32" + id="svg586"> + <defs + id="defs588"> + <marker + style="overflow:visible;" + id="marker791" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="TriangleOutL"> + <path + transform="scale(0.8)" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" + d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z " + id="path792" + sodipodi:nodetypes="cccc" /> + </marker> + <marker + style="overflow:visible;" + id="marker719" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="TriangleOutL"> + <path + transform="scale(0.8)" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" + d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z " + id="path720" + sodipodi:nodetypes="cccc" /> + </marker> + <marker + style="overflow:visible;" + id="marker717" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="TriangleInL"> + <path + transform="scale(-0.8)" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" + d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z " + id="path718" + sodipodi:nodetypes="cccc" /> + </marker> + <marker + style="overflow:visible;" + id="marker714" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="TriangleOutL"> + <path + transform="scale(0.8)" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" + d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z " + id="path715" + sodipodi:nodetypes="cccc" /> + </marker> + <marker + style="overflow:visible;" + id="marker712" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="TriangleInL"> + <path + transform="scale(-0.8)" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" + d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z " + id="path713" + sodipodi:nodetypes="cccc" /> + </marker> + <marker + style="overflow:visible;" + id="marker709" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="TriangleOutL"> + <path + transform="scale(0.8)" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" + d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z " + id="path710" + sodipodi:nodetypes="cccc" /> + </marker> + <marker + style="overflow:visible;" + id="marker707" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="TriangleInL"> + <path + transform="scale(-0.8)" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" + d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z " + id="path708" + sodipodi:nodetypes="cccc" /> + </marker> + <marker + style="overflow:visible;" + id="marker704" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="TriangleOutL"> + <path + transform="scale(0.8)" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" + d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z " + id="path705" + sodipodi:nodetypes="cccc" /> + </marker> + <marker + style="overflow:visible;" + id="marker702" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="TriangleInL"> + <path + transform="scale(-0.8)" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" + d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z " + id="path703" + sodipodi:nodetypes="cccc" /> + </marker> + <marker + style="overflow:visible;" + id="TriangleOutL" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="TriangleOutL"> + <path + transform="scale(0.8)" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" + d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z " + id="path2817" + sodipodi:nodetypes="cccc" /> + </marker> + <marker + style="overflow:visible;" + id="TriangleInL" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="TriangleInL"> + <path + transform="scale(-0.8)" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" + d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z " + id="path2823" + sodipodi:nodetypes="cccc" /> + </marker> + <marker + style="overflow:visible;" + id="Arrow2L" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="Arrow2L"> + <path + transform="scale(1.1) translate(-5,0)" + d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " + style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;" + id="path2863" + sodipodi:nodetypes="cccc" /> + </marker> + <linearGradient + id="linearGradient2570"> + <stop + id="stop2571" + offset="0.0000000" + style="stop-color:#000000;stop-opacity:1.0000000;" /> + <stop + id="stop2572" + offset="0.58504134" + style="stop-color:#000000;stop-opacity:0.62745100;" /> + <stop + id="stop2573" + offset="1.0000000" + style="stop-color:#ffffff;stop-opacity:0.0000000;" /> + </linearGradient> + <linearGradient + y2="0.98555958" + x2="0.27112675" + y1="0.097472921" + x1="0.50352114" + id="linearGradient1322" + xlink:href="#linearGradient1218" /> + <linearGradient + y2="0.99354839" + x2="-0.17253521" + y1="0.27741936" + x1="0.50704223" + id="linearGradient1318" + xlink:href="#linearGradient1273" /> + <linearGradient + gradientTransform="scale(1.004208,0.995809)" + y2="0.12454049" + x2="0.41986585" + y1="1.9347328" + x1="0.45376351" + id="linearGradient1307" + xlink:href="#linearGradient1222" /> + <linearGradient + gradientTransform="scale(1.006361,0.993679)" + y2="0.11846013" + x2="0.41548476" + y1="1.9667202" + x1="0.45009527" + id="linearGradient1306" + xlink:href="#linearGradient1222" /> + <linearGradient + gradientTransform="scale(1.002016,0.997989)" + y2="0.13959341" + x2="0.42603236" + y1="1.8676205" + x1="0.45839140" + id="linearGradient1305" + xlink:href="#linearGradient1222" /> + <linearGradient + y2="0.80203044" + x2="0.36971831" + y1="1.5228426" + x1="-0.36619717" + id="linearGradient1277" + xlink:href="#linearGradient1273" /> + <linearGradient + y2="0.55458528" + x2="0.53521127" + y1="0.23580793" + x1="1.0739436" + id="linearGradient1272" + xlink:href="#linearGradient1273" /> + <linearGradient + id="linearGradient1270" + xlink:href="#linearGradient1222" /> + <linearGradient + y2="0.50000000" + x2="1.0000000" + y1="0.50000000" + x1="0.00000000" + id="linearGradient1231" + xlink:href="#linearGradient1323" /> + <linearGradient + y2="0.24742271" + x2="0.42605633" + y1="2.1597939" + x1="-0.96478873" + id="linearGradient1221" + xlink:href="#linearGradient1222" /> + <linearGradient + id="linearGradient1218"> + <stop + id="stop1219" + offset="0.00000000" + style="stop-color:#000000;stop-opacity:1.0000000;" /> + <stop + id="stop1321" + offset="0.073255815" + style="stop-color:#323232;stop-opacity:1.0000000;" /> + <stop + id="stop1320" + offset="0.65260679" + style="stop-color:#000000;stop-opacity:1.0000000;" /> + <stop + id="stop1220" + offset="1" + style="stop-color:#fff;stop-opacity:1;" /> + </linearGradient> + <linearGradient + id="linearGradient1222"> + <stop + id="stop1223" + offset="0.0000000" + style="stop-color:#0081ac;stop-opacity:1.0000000;" /> + <stop + id="stop1722" + offset="0.50000000" + style="stop-color:#006d91;stop-opacity:0.62745100;" /> + <stop + id="stop1224" + offset="1.0000000" + style="stop-color:#000000;stop-opacity:0.0000000;" /> + </linearGradient> + <linearGradient + id="linearGradient1273"> + <stop + id="stop1274" + offset="0.00000000" + style="stop-color:#ffffff;stop-opacity:1.0000000;" /> + <stop + id="stop1275" + offset="1.0000000" + style="stop-color:#ffffff;stop-opacity:0.00000000;" /> + </linearGradient> + <linearGradient + id="linearGradient1323"> + <stop + id="stop1324" + offset="0.00000000" + style="stop-color:#000000;stop-opacity:0.77685952;" /> + <stop + id="stop1325" + offset="1.0000000" + style="stop-color:#000000;stop-opacity:0.00000000;" /> + </linearGradient> + <radialGradient + fy="0.15625000" + fx="0.50617284" + r="0.41400504" + cy="0.46875000" + cx="0.49382716" + id="radialGradient829" + xlink:href="#linearGradient826" /> + <linearGradient + id="linearGradient826"> + <stop + id="stop827" + offset="0.00000000" + style="stop-color:#000000;stop-opacity:0.95294118;" /> + <stop + id="stop830" + offset="0.36585677" + style="stop-color:#000000;stop-opacity:0.76078433;" /> + <stop + id="stop847" + offset="0.47107276" + style="stop-color:#000000;stop-opacity:0.52941179;" /> + <stop + id="stop828" + offset="1.0000000" + style="stop-color:#ffffff;stop-opacity:0.00000000;" /> + </linearGradient> + <linearGradient + y2="-1.7333326" + x2="0.50000000" + y1="0.66667551" + x1="0.50000000" + id="linearGradient907" + xlink:href="#linearGradient909" /> + <linearGradient + id="linearGradient909"> + <stop + id="stop910" + offset="0.00000000" + style="stop-color:#000000;stop-opacity:0.00000000;" /> + <stop + id="stop913" + offset="1.0000000" + style="stop-color:#000000;stop-opacity:0.17000000;" /> + </linearGradient> + <linearGradient + id="linearGradient1309" + xlink:href="#linearGradient1222" /> + <linearGradient + y2="0.50000000" + x2="1.0000000" + y1="0.50000000" + x1="0.0000000" + id="linearGradient1308" + xlink:href="#linearGradient2570" /> + </defs> + <sodipodi:namedview + inkscape:grid-bbox="true" + inkscape:grid-points="true" + gridtolerance="50.000000pt" + gridspacingx="5.0000000pt" + gridspacingy="5.0000000pt" + inkscape:guide-points="true" + showgrid="true" + inkscape:current-layer="layer2" + inkscape:guide-bbox="false" + showguides="true" + inkscape:window-y="105" + inkscape:window-x="190" + inkscape:window-height="845" + inkscape:window-width="984" + inkscape:cy="302.90957" + inkscape:cx="390.04016" + inkscape:zoom="1.0500000" + inkscape:pageshadow="2" + inkscape:pageopacity="0.0" + borderopacity="1.0" + bordercolor="#666666" + pagecolor="#ffffff" + id="base" /> + <metadata + id="metadata33"> + <rdf:RDF + id="RDF34"> + <cc:Work + id="Work35" + rdf:about=""> + <dc:format + id="format36">image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" + id="type38" /> + </cc:Work> + </rdf:RDF> + </metadata> + <g + style="display:block" + inkscape:label="Background" + id="layer1" + inkscape:groupmode="layer"> + <rect + y="1.7763568e-15" + x="0.0000000" + height="112.50000" + width="800.00000" + id="topbluebox" + style="font-size:12.000000;fill:url(#linearGradient1309);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:3.0000000pt;" /> + <path + sodipodi:nodetypes="cc" + id="path654" + d="M -0.034245957,110.20928 L 797.51553,110.00778" + style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:url(#linearGradient1308);stroke-width:4.9844480;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;" /> + <g + transform="translate(646.2792,-9.754791)" + id="g1085"> + <g + transform="matrix(0.875802,0.000000,0.000000,0.869278,1.048583,-7.965682)" + id="g1394"> + <path + transform="matrix(0.394071,0.000000,0.000000,8.155385e-2,-31.69751,94.58860)" + style="opacity:0.69398910;fill:url(#radialGradient829);stroke-width:4.4309568;stroke-dasharray:17.723827 17.723827 ;stroke-dashoffset:0.0000000;" + d="M 600.00000 300.00000 A 300.00000 300.00000 0 1 0 0.0000000,300.00000 A 300.00000 300.00000 0 1 0 600.00000 300.00000 z" + sodipodi:ry="300.00000" + sodipodi:rx="300.00000" + sodipodi:cy="300.00000" + sodipodi:cx="300.00000" + id="path898" + sodipodi:type="arc" /> + <path + transform="matrix(0.280658,0.000000,0.000000,0.148676,4.082687,91.98483)" + style="fill:url(#radialGradient829);stroke-width:4.4309568;stroke-dasharray:17.723827 17.723827 ;stroke-dashoffset:0.0000000;" + d="M 600.00000 300.00000 A 300.00000 300.00000 0 1 0 0.0000000,300.00000 A 300.00000 300.00000 0 1 0 600.00000 300.00000 z" + sodipodi:ry="300.00000" + sodipodi:rx="300.00000" + sodipodi:cy="300.00000" + sodipodi:cx="300.00000" + id="ball1" + sodipodi:type="arc" /> + </g> + <g + style="fill:url(#linearGradient1221);" + transform="matrix(1.822197,0.000000,0.000000,1.662749,-180.0082,12.26653)" + id="g1310"> + <path + id="path1278" + d="M 139.27138,11.077118 C 137.22042,11.077119 135.15548,11.849270 133.58388,13.420868 L 105.67763,41.358368 C 104.13725,42.898711 103.33325,44.910828 103.30263,46.920868 C 103.30220,46.954601 103.30263,47.012134 103.30263,47.045868 L 103.36513,47.045868 C 103.89976,49.079999 117.69889,51.660911 119.24013,53.202118 C 121.56768,55.529685 110.31886,57.249538 112.64638,59.577118 C 114.97392,61.904658 126.72486,64.062038 129.05263,66.389620 C 131.38019,68.717170 124.28755,71.187070 126.61513,73.514620 C 128.94268,75.842201 136.74995,72.943440 135.33388,79.014621 C 138.47707,82.157811 145.03666,80.657811 149.42763,77.514621 C 151.75518,75.187070 144.97506,75.404670 147.30263,73.077120 C 149.63018,70.749540 155.50836,70.738600 160.45888,65.170868 C 158.46624,62.071818 151.94381,60.748438 154.27138,58.420868 C 156.59893,56.093323 161.10115,57.261288 170.86513,52.827118 C 175.63150,50.662408 175.25838,49.039285 175.24013,47.045868 C 175.23975,47.003922 175.24013,46.963136 175.24013,46.920868 L 175.20888,46.920868 C 175.17827,44.910830 174.40547,42.898714 172.86513,41.358368 L 144.92763,13.420868 C 143.35604,11.849272 141.32234,11.077118 139.27138,11.077118 z M 139.02138,14.702118 C 139.93315,14.725869 140.67125,15.422422 142.11513,16.358368 L 155.30263,26.139618 C 155.44708,26.233292 155.58252,26.320552 155.70888,26.420868 C 155.83525,26.521171 155.97562,26.627132 156.08388,26.733368 C 156.19214,26.839410 156.27479,26.966073 156.36513,27.077118 C 156.45527,27.188145 156.54310,27.305955 156.61513,27.420868 C 156.68737,27.535969 156.74853,27.646585 156.80263,27.764618 C 156.85677,27.882866 156.89163,27.987920 156.92763,28.108368 C 156.96385,28.228632 157.00329,28.361823 157.02138,28.483368 C 157.03948,28.605130 157.05263,28.736271 157.05263,28.858368 L 149.24013,25.077118 L 148.45888,30.983368 L 144.14638,28.952118 L 137.52138,33.389618 L 134.95888,24.639618 L 131.70888,32.295868 L 122.55263,33.202118 L 122.64638,29.139618 C 122.64638,28.162533 127.93872,21.330614 131.14638,19.702118 L 137.02138,15.483368 C 137.88771,14.921800 138.47431,14.687867 139.02138,14.702118 z M 126.89638,54.639618 C 131.05584,55.718333 135.68346,57.114312 139.39638,57.139618 L 139.55263,58.827118 C 136.37321,58.499388 129.63884,56.949888 128.05263,56.139618 L 126.89638,54.639618 z M 170.24013,62.045868 C 169.60518,62.025518 169.00430,62.089178 168.55263,62.202118 C 167.70107,62.414898 163.56419,62.512928 163.89638,65.170868 C 167.55118,66.499190 173.20097,67.516500 173.86513,64.858368 C 174.36366,62.865308 172.14497,62.106908 170.24013,62.045868 z M 122.45888,67.452120 C 121.88389,67.385110 121.32136,67.455980 120.77138,67.733370 C 118.57203,68.842760 117.09168,71.307720 119.14638,72.327120 C 121.20129,73.346520 122.65747,72.185800 124.45888,70.920870 C 126.26050,69.656140 126.21414,69.408800 126.08388,68.920870 C 125.83449,68.987380 124.18386,67.653150 122.45888,67.452120 z M 162.64638,67.889620 C 160.98514,68.553960 161.00465,70.861860 162.33388,71.858370 C 163.66277,72.855080 165.32597,72.210400 165.99013,71.545870 C 166.65484,70.881530 165.96848,68.553970 162.64638,67.889620 z " + style="fill-opacity:0.074380167;fill-rule:evenodd;stroke-width:1.0000000pt;" /> + <path + id="path1283" + d="M 137.96875,10.718750 C 134.70402,11.060845 132.45341,13.855395 130.15790,15.940974 C 121.77155,24.503910 113.19525,32.911552 104.88478,41.529122 C 103.53165,43.257666 102.98133,45.293623 102.71875,47.437500 C 107.43946,50.886242 113.69835,50.905815 118.71875,53.781250 C 117.30484,56.014138 113.86394,55.927723 112.30534,58.153586 C 110.95047,59.066432 112.87438,60.562599 113.88390,60.907202 C 118.07998,63.025863 122.80956,63.838835 126.97834,66.068813 C 129.14039,66.223477 128.99465,68.397410 127.55968,69.465540 C 126.42313,70.610466 124.66557,72.512182 126.40386,73.938766 C 128.52893,75.415674 131.34635,75.011355 133.71875,75.875000 C 135.38587,76.789177 134.20286,78.442002 135.34375,79.593750 C 138.20878,81.840481 142.17613,81.444087 145.36980,80.162063 C 147.01184,79.679133 148.50293,78.612108 149.93750,77.781250 C 151.32137,76.168445 149.16317,75.014407 147.93750,74.343750 C 147.13207,73.007556 149.81258,72.471472 150.72621,71.835396 C 154.22932,70.415525 157.63139,68.772275 160.32323,66.076023 C 162.00146,65.040055 159.53684,63.566475 158.75000,62.750000 C 157.29555,61.671425 155.38495,61.005736 154.46875,59.343750 C 156.83166,56.736844 160.77991,57.222943 163.82692,55.886662 C 167.48614,54.956060 170.96688,53.327613 174.19128,51.441061 C 176.31894,49.855420 175.75931,47.094289 175.34438,44.858149 C 173.82714,40.146659 169.32671,37.346121 166.14614,33.782162 C 159.00255,26.737555 151.96598,19.558149 144.75603,12.597114 C 142.83187,11.117125 140.40461,10.324926 137.96875,10.718750 z M 140.15625,15.718750 C 145.33185,19.512142 150.51925,23.291773 155.68750,27.093750 C 155.79568,28.128330 152.96647,25.994412 151.88519,25.704486 C 150.56126,25.310550 148.23232,22.990502 148.60160,25.735802 C 148.03383,26.854222 148.89364,30.614243 147.25375,29.748789 C 145.77079,28.952048 143.79956,27.767016 142.39696,29.393778 C 140.87922,30.408352 139.36149,31.422926 137.84375,32.437500 C 136.92659,29.270978 136.01364,26.103230 135.09375,22.937500 C 133.83186,25.869891 132.59553,28.813265 131.34375,31.750000 C 128.60417,32.020833 125.86458,32.291667 123.12500,32.562500 C 122.93577,30.531586 123.37937,28.492090 124.78964,27.051727 C 127.83705,22.165897 132.91432,19.181067 137.48762,15.928279 C 138.38080,15.399443 139.18306,15.465846 140.15625,15.718750 z M 132.06250,56.562500 C 134.25968,57.131800 136.54653,57.244809 138.78125,57.625000 C 137.93164,58.641801 135.83490,57.320885 134.50134,57.277133 C 132.75919,56.896272 131.01731,56.527068 129.37500,55.812500 C 130.27083,56.062500 131.16667,56.312500 132.06250,56.562500 z M 168.50000,61.625000 C 166.47980,62.095190 163.59992,62.369201 163.34375,64.968750 C 164.00781,65.934196 166.11962,66.292948 167.47626,66.551501 C 169.60910,66.891924 172.52463,67.659468 174.01886,65.672524 C 175.29513,63.892929 173.38643,61.628153 171.40540,61.754929 C 170.44376,61.426788 169.48969,61.503021 168.50000,61.625000 z M 120.65625,67.156250 C 119.17864,68.173454 117.17273,69.706513 117.81250,71.750000 C 119.32360,73.943032 122.44871,73.328157 124.17581,71.744685 C 125.31806,71.095411 127.22708,69.849349 126.34375,68.406250 C 124.53029,67.617814 122.70705,66.421404 120.65625,67.156250 z M 162.25000,67.468750 C 160.98536,68.304844 160.47655,70.055902 161.35305,71.321264 C 162.02451,73.004295 164.27223,73.179865 165.64672,72.263080 C 167.48408,71.700360 166.67812,69.347513 165.33731,68.658474 C 164.66189,67.815250 163.12029,67.406310 162.25000,67.468750 z " + style="fill-opacity:0.074380167;fill-rule:evenodd;stroke-width:1.0000000pt;" /> + <path + id="path1286" + d="M 137.09375,12.062500 C 133.45264,13.658306 130.89510,17.054651 128.02763,19.760075 C 120.64992,27.277135 113.11748,34.668181 105.81675,42.244521 C 104.77302,43.583830 104.19848,45.113312 103.93750,46.781250 C 108.02500,49.661848 113.35464,49.814484 117.77247,52.034312 C 119.23732,52.180074 120.83004,53.663696 119.47530,54.914506 C 117.72685,56.714093 114.64707,56.868986 113.18750,58.937500 C 116.98689,61.678185 121.72461,62.314645 125.91888,64.199775 C 127.35246,65.248996 129.93899,65.341959 130.00000,67.531250 C 129.61283,69.469175 127.68115,70.594821 126.84375,72.343750 C 128.66657,74.916318 132.41661,73.526770 134.81763,75.194505 C 136.12150,75.998634 135.76289,77.719238 136.33739,78.786112 C 139.34189,80.984126 143.56705,80.023489 146.59979,78.262860 C 147.57821,77.931235 150.25551,76.737683 148.25234,75.866570 C 146.79311,75.539319 145.57083,73.791727 146.98575,72.676315 C 150.59379,69.928273 155.52636,69.300230 158.75379,65.912819 C 160.44061,64.636839 157.51978,63.512312 156.64603,62.784855 C 155.31686,61.805358 153.02074,60.864770 153.31250,58.906250 C 155.52467,55.836091 159.76350,56.249927 162.98171,54.909139 C 166.64088,54.011598 170.17880,52.442724 173.39619,50.585767 C 175.44759,48.766928 174.40312,45.854433 173.70402,43.674602 C 170.01715,38.505895 164.93468,34.528530 160.60640,29.906454 C 155.05848,24.484276 149.68028,18.831089 144.02714,13.552135 C 142.01313,12.267231 139.68457,11.155741 137.26959,12.030263 L 137.09375,12.062500 z M 139.25000,14.156250 C 144.36849,16.573687 148.44456,20.615673 153.06166,23.857057 C 154.79682,25.417824 157.75256,26.462276 157.65625,29.218750 C 155.98301,29.620934 154.51821,27.909197 152.92283,27.467153 C 151.47889,26.979622 149.05912,24.688826 149.46490,27.619328 C 148.95092,28.676042 149.67609,32.096323 148.30430,31.528870 C 146.86362,30.916675 145.25114,29.742049 143.73062,29.880583 C 141.56112,31.359522 139.38321,32.826259 137.21875,34.312500 C 136.40063,31.654144 135.63994,28.977747 134.84375,26.312500 C 133.78712,28.431959 132.98467,30.961875 131.78125,32.843750 C 128.52084,33.166779 125.26035,33.488957 122.00000,33.812500 C 122.02692,31.439278 121.58820,28.751334 123.45144,26.900643 C 126.38650,21.928911 131.54097,18.937382 135.96875,15.531250 C 137.05500,15.131227 138.17386,14.356070 139.25000,14.156250 z M 126.34375,53.906250 C 130.81931,55.099287 135.33348,56.080112 139.93750,56.625000 C 140.81508,58.380031 139.61654,59.889689 137.75155,59.030564 C 134.35469,58.342143 130.95451,57.411091 127.62500,56.500000 C 127.37596,56.018046 124.72663,53.333015 126.34375,53.906250 z M 168.68750,62.750000 C 167.26725,63.145732 165.19352,63.022642 164.68750,64.750000 C 167.41558,65.272026 170.36127,66.626958 173.03125,65.187500 C 173.94813,63.333514 171.22391,62.807999 169.92452,62.707344 C 169.51218,62.721563 169.09984,62.735781 168.68750,62.750000 z M 120.96875,68.250000 C 119.88102,69.094191 117.71809,71.141191 120.00567,71.867660 C 122.11744,72.377527 123.71955,70.573549 125.28125,69.468750 C 124.17010,68.379529 122.48301,67.967608 120.96875,68.250000 z M 162.25000,68.937500 C 161.26655,70.838341 164.03769,72.707639 165.32625,71.028976 C 165.98639,69.968138 163.10932,68.105539 162.25000,68.937500 z " + style="fill-opacity:0.074380167;fill-rule:evenodd;stroke-width:1.0000000pt;" /> + <path + id="path1295" + d="M 137.50000,12.562500 C 131.56402,15.884438 127.47918,21.513076 122.59316,26.106819 C 117.07494,31.800872 111.33765,37.333066 105.95500,43.127274 C 105.27016,44.232264 103.90274,46.716455 105.88806,47.110513 C 110.48303,49.525949 116.07018,49.897473 120.25000,52.937500 C 121.19557,55.258014 118.31954,56.204644 116.77699,57.135076 C 115.14828,57.646504 113.25757,59.174666 115.98524,59.736007 C 120.51650,62.179113 125.90956,62.812244 130.06250,65.968750 C 131.40440,68.155882 128.87852,70.088345 127.96429,71.816940 C 127.97548,73.606583 130.61198,73.210238 131.85374,73.694589 C 134.00698,73.861384 136.31306,75.067306 136.52629,77.437982 C 137.24770,79.315251 139.82104,79.377347 141.56250,79.375000 C 143.88381,79.081698 145.88731,77.848938 148.00000,76.937500 C 147.89289,75.484280 145.47385,75.343455 145.78125,73.562500 C 147.65028,70.568783 151.46696,69.934698 154.32757,68.211442 C 155.95166,67.507534 157.40819,66.436524 158.50000,65.031250 C 156.69534,62.893495 153.11684,62.207207 152.76893,59.025530 C 153.13476,57.911585 154.90043,56.856141 156.14992,56.314935 C 161.47352,54.305871 167.29666,53.530281 172.18291,50.436255 C 174.75469,49.397100 173.90347,46.181096 173.15013,44.168122 C 170.99740,41.143850 168.08639,38.542958 165.64236,35.681332 C 163.12371,33.093790 160.49665,30.610931 157.93750,28.062500 C 158.99092,29.594714 157.00835,30.333418 155.86310,29.376751 C 153.95887,28.546062 152.06033,27.726589 150.12500,26.968750 C 150.04976,28.633800 149.69671,30.253091 149.34375,31.875000 C 146.94959,32.517021 144.62510,29.359512 142.44997,31.405021 C 140.65579,32.399012 139.25573,34.074138 137.34005,34.698602 C 135.96867,34.449689 136.15225,31.657450 135.44638,30.368996 C 135.03220,27.477998 134.31032,28.114323 133.43720,30.484434 C 132.63691,31.983328 132.29360,34.079093 130.12469,33.576560 C 127.22896,33.863646 124.33317,34.149933 121.43750,34.437500 C 121.45635,31.458390 121.16984,28.094375 123.52595,25.839572 C 126.82257,21.188668 131.69023,18.019711 136.23357,14.793262 C 137.75437,14.087412 139.64327,13.037594 141.05071,14.536711 C 144.77608,17.093755 148.56965,19.491887 152.06250,22.343750 C 149.06655,19.513772 146.25485,16.420638 143.14594,13.751994 C 141.38445,12.871744 139.52020,11.789900 137.50000,12.562500 z M 126.40625,53.343750 C 131.09445,54.266714 135.77718,55.221773 140.46875,56.125000 C 140.66311,57.490600 140.90400,59.768414 138.90019,59.717011 C 134.99279,58.970773 131.04202,57.882901 127.18750,56.875000 C 126.61048,55.955764 124.83534,54.556620 125.40625,53.625000 C 125.73497,53.577157 126.08499,53.292470 126.40625,53.343750 z M 166.53125,63.812500 C 164.90117,64.830649 168.72302,64.879550 169.60036,65.161786 C 170.82454,65.513571 173.80209,64.644903 171.50000,63.593750 C 169.78209,63.217030 168.21140,63.255613 166.53125,63.812500 z M 120.81250,69.187500 C 118.77488,70.497531 120.63987,72.049766 122.29985,70.780747 C 124.22011,70.547064 124.25797,68.584075 122.13849,68.857155 C 121.62590,68.786616 121.20364,68.805690 120.81250,69.187500 z M 162.78125,70.250000 C 165.04372,72.410337 164.50416,68.582957 162.78125,69.787913 C 162.78125,69.883882 162.78125,70.191942 162.78125,70.250000 z " + style="fill-opacity:0.074380167;fill-rule:evenodd;stroke-width:1.0000000pt;" /> + <path + id="path1300" + d="M 137.25000,10.312500 C 134.57328,10.811904 132.67255,13.050780 130.64866,14.715585 C 121.77957,23.451854 113.11785,32.437236 104.37500,41.281250 C 103.17019,43.288146 102.47259,45.456013 102.06250,47.750000 C 105.83476,49.628698 109.64657,51.368815 113.75481,52.377095 C 114.74672,53.000901 118.15181,53.211596 117.03125,54.625000 C 114.87625,55.770623 112.18432,56.545814 111.25000,59.062500 C 113.07397,62.261249 117.13309,62.448994 120.14188,63.972108 C 122.66750,64.970987 125.19313,65.969869 127.71875,66.968750 C 127.79709,69.608591 127.12737,68.724937 125.79671,67.542170 C 123.76150,66.508388 120.74167,65.559916 119.14266,67.799744 C 117.68910,68.685330 116.55779,70.940149 117.66673,72.361712 C 119.74129,74.610002 123.29896,73.558599 125.22361,71.631365 C 125.39044,71.451948 124.94524,74.329263 126.55554,74.625682 C 128.75187,75.888131 131.56113,75.535204 133.75000,76.781250 C 134.17453,78.637203 134.92263,80.738750 137.10053,81.029661 C 140.53970,82.420114 144.41944,81.397273 147.50485,79.584682 C 148.81540,78.872018 151.32795,78.343669 150.75195,76.374975 C 150.70713,75.080531 147.53803,74.300613 149.31250,73.093750 C 153.55943,71.203594 157.91230,69.209830 161.18750,65.843750 C 161.99115,63.731003 159.07145,62.849633 157.93750,61.562500 C 156.57653,60.417748 154.30116,59.195844 157.17010,58.407983 C 162.44672,56.428116 168.30037,55.651561 173.14000,52.536010 C 175.69933,51.724285 176.75286,48.825627 176.01594,46.382200 C 175.99204,43.921497 174.36450,41.884430 172.99509,39.973772 C 168.23708,34.553265 162.73310,29.839073 157.72691,24.648245 C 153.37676,20.454464 149.19589,15.998891 144.74248,11.964991 C 142.49218,10.519398 139.90204,10.047325 137.25000,10.312500 z M 140.40625,16.625000 C 144.38180,19.415210 148.26381,22.371245 152.21875,25.218750 C 151.00059,24.471219 149.71107,24.008458 148.28125,23.906250 C 148.08169,25.616789 147.84012,27.322499 147.62500,29.031250 C 145.77312,28.480352 143.67622,27.363820 142.02088,28.944411 C 140.79579,29.321785 138.71876,32.029330 138.02739,30.946881 C 137.09069,27.714729 136.15797,24.481420 135.21875,21.250000 C 133.79126,24.568262 132.38708,27.896549 130.96875,31.218750 C 128.56250,31.458333 126.15625,31.697917 123.75000,31.937500 C 123.73611,28.504117 126.40867,25.941624 128.50533,23.538181 C 131.60340,20.877921 134.84009,18.280137 138.37100,16.266120 C 139.05687,15.927768 139.72649,16.501380 140.40625,16.625000 z M 165.12500,61.937500 C 163.94994,62.683294 162.04675,64.163789 163.31250,65.625000 C 165.77599,67.237331 168.84980,67.346191 171.68759,67.438839 C 173.79767,67.380039 175.87709,64.882603 174.44068,62.966319 C 173.10190,60.663393 170.05340,61.177216 167.81605,61.201002 C 166.91904,61.446503 166.02202,61.692001 165.12500,61.937500 z M 162.03125,67.031250 C 160.83535,68.000188 160.29043,69.695123 160.76346,71.258236 C 161.16730,73.039050 163.22496,73.494707 164.78719,72.992478 C 167.13879,73.181332 168.09248,69.825149 166.13394,68.653373 C 164.96960,67.668728 163.65541,66.689296 162.03125,67.031250 z " + style="fill-opacity:0.074380167;fill-rule:evenodd;stroke-width:1.0000000pt;" /> + <path + id="path1304" + d="M 136.87500,9.5625000 C 131.65304,11.769127 128.14544,16.384624 124.15881,20.216605 C 117.35142,27.117414 110.49657,33.984328 103.71875,40.906250 C 102.85273,43.332808 101.99819,45.763562 101.12500,48.187500 C 105.93068,50.283305 110.76347,52.276496 115.75000,53.906250 C 115.44333,55.363555 112.99770,55.191635 112.24058,56.587946 C 110.89606,57.445273 110.01695,59.785906 111.89556,60.567820 C 114.86490,63.357428 118.93991,64.363020 122.62500,65.875000 C 119.72774,65.033632 117.80750,68.090788 116.68750,70.250000 C 116.01105,72.950420 119.11437,74.651083 121.43923,74.259441 C 122.88425,74.778519 124.87048,71.894366 125.06555,74.129447 C 127.21708,76.574392 131.35224,75.998123 133.59751,78.288768 C 134.32398,80.302303 135.99246,81.986172 138.23383,82.006618 C 140.25772,82.589257 142.23898,82.314480 144.19142,81.614260 C 146.47188,81.098710 148.64271,79.959926 150.63761,78.824244 C 152.14711,77.754911 151.81527,75.346631 150.43750,74.312500 C 150.23406,72.704926 152.73875,72.682794 153.75639,71.819616 C 156.49819,70.564020 158.90600,68.804050 161.21875,66.906250 C 160.19643,68.376408 159.81043,70.315970 160.38112,71.987759 C 161.34634,74.267655 164.22210,73.656108 166.15625,73.531250 C 168.08949,72.610730 168.83732,69.631414 166.87500,68.343750 C 164.02568,66.581529 166.47357,67.403459 168.27836,67.911665 C 170.51415,68.044548 173.31226,68.747610 174.83495,66.581402 C 176.52328,64.952843 175.46252,62.386049 173.84375,61.125000 C 171.82924,60.052772 169.41179,60.364713 167.22781,60.468857 C 165.26732,60.816302 163.77932,61.981088 162.56250,63.500000 C 161.07416,64.693238 164.27576,66.891706 162.51264,66.451187 C 161.23611,66.670932 162.80138,64.122782 161.27178,63.293106 C 160.27477,61.829766 158.59216,60.917429 157.34375,59.656250 C 163.37320,56.739900 170.41697,55.950383 175.81250,51.750000 C 177.79054,49.403625 176.89111,46.297658 176.31250,43.625000 C 172.71709,37.077334 166.72680,32.381991 161.58112,27.092054 C 156.10204,21.754721 150.65568,16.371055 145.15625,11.062500 C 142.76062,10.099303 140.31053,9.4347862 137.70606,9.5684113 C 137.43820,9.5943662 137.13013,9.4705862 136.87500,9.5625000 z M 144.00000,20.125000 C 145.41913,21.217458 146.85549,22.290152 148.28125,23.375000 C 146.97140,24.376925 147.43473,26.306660 146.96875,27.718750 C 145.01335,27.188020 142.88412,27.117042 141.28969,28.567875 C 140.30436,29.400862 138.46017,30.323076 138.31032,28.383898 C 137.43025,25.351664 136.59470,22.304201 135.68750,19.281250 C 137.21838,18.817776 138.78213,16.344334 140.28250,17.745803 C 141.52167,18.538869 142.76083,19.331934 144.00000,20.125000 z M 130.53125,30.406250 C 128.68750,30.593750 126.84375,30.781250 125.00000,30.968750 C 125.70615,27.451641 128.61722,24.990200 131.09307,22.632488 C 132.44877,21.648343 133.72082,20.531920 135.12500,19.625000 C 133.59375,23.218750 132.06250,26.812500 130.53125,30.406250 z " + style="fill-opacity:0.074380167;fill-rule:evenodd;stroke-width:1.0000000pt;" /> + </g> + <path + transform="matrix(1.220396,0.000000,0.000000,1.220396,-20.19444,7.307033)" + sodipodi:nodetypes="cccccccccccccccccccccccccccccccccccccccccc" + id="path1217" + d="M 78.468542,10.216821 C 75.406213,10.216823 72.323010,11.369737 69.976423,13.716321 L 28.309048,55.430356 C 26.009076,57.730272 24.808608,60.734604 24.762888,63.735835 C 24.762246,63.786202 24.762888,63.872106 24.762888,63.922475 L 24.856208,63.922475 C 25.654475,66.959676 46.258230,70.813287 48.559486,73.114494 C 52.034797,76.589830 35.238960,79.157777 38.714227,82.633131 C 42.189523,86.108431 59.735084,89.329652 63.210724,92.805012 C 66.686050,96.280332 56.095888,99.968182 59.571244,103.44349 C 63.046555,106.91885 74.703745,102.59065 72.589383,111.65565 C 77.282542,116.34881 87.076796,114.10913 93.633042,109.41597 C 97.108353,105.94066 86.984820,106.26556 90.460160,102.79025 C 93.935473,99.314902 102.71230,99.298562 110.10402,90.985272 C 107.12876,86.358021 97.390000,84.382051 100.86534,80.906713 C 104.34065,77.431409 111.06300,79.175321 125.64179,72.554574 C 132.75855,69.322402 132.20143,66.898885 132.17419,63.922475 C 132.17362,63.859844 132.17419,63.798946 132.17419,63.735835 L 132.12753,63.735835 C 132.08182,60.734607 130.92794,57.730277 128.62803,55.430356 L 86.914001,13.716321 C 84.567429,11.369740 81.530871,10.216821 78.468542,10.216821 z M 59.991184,75.260853 C 66.201756,76.871504 73.111347,78.955868 78.655182,78.993653 L 78.888482,81.513293 C 74.141227,81.023952 64.086006,78.710363 61.717604,77.500533 L 59.991184,75.260853 z M 124.70859,86.319271 C 123.76053,86.288891 122.86335,86.383941 122.18895,86.552571 C 120.91747,86.870282 114.74061,87.016652 115.23661,90.985272 C 120.69367,92.968622 129.12948,94.487582 130.12115,90.518672 C 130.86551,87.542792 127.55274,86.410411 124.70859,86.319271 z M 53.365465,94.391452 C 52.506936,94.291402 51.667011,94.397222 50.845825,94.811392 C 47.561932,96.467852 45.351592,100.14833 48.419506,101.67041 C 51.487732,103.19250 53.661984,101.45941 56.351705,99.570712 C 59.041739,97.682322 58.972518,97.313012 58.778024,96.584472 C 58.405655,96.683782 55.941067,94.691622 53.365465,94.391452 z M 113.37021,95.044692 C 110.88978,96.036632 110.91892,99.482602 112.90361,100.97051 C 114.88780,102.45872 117.37116,101.49614 118.36283,100.50391 C 119.35532,99.511972 118.33051,96.036652 113.37021,95.044692 z " + style="fill:url(#linearGradient1322);fill-rule:evenodd;stroke-width:1.0000000pt;" /> + <path + transform="matrix(1.220396,0.000000,0.000000,1.220396,-20.19444,7.307033)" + sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc" + id="path1269" + d="M 25.748195,58.983802 C 25.069168,60.484820 24.699511,62.088386 24.675015,63.696461 C 24.674375,63.746824 24.675015,63.832738 24.675015,63.883101 L 24.768335,63.883101 C 25.532194,66.789384 44.034284,70.422637 47.678393,72.748500 C 49.285306,71.792649 50.340763,70.791543 49.264832,69.715600 C 46.963576,67.414389 26.359823,63.560781 25.561555,60.523581 L 25.468235,60.523581 C 25.468235,60.473204 25.467595,60.387304 25.468235,60.336942 C 25.475280,59.874537 25.686531,59.443757 25.748195,58.983802 z M 132.03964,65.049601 C 131.22443,66.340254 129.65777,67.652109 126.34713,69.155680 C 111.76835,75.776420 105.04600,74.032516 101.57069,77.507812 C 100.51786,78.560641 100.89350,79.461052 101.71067,80.354072 C 105.38973,77.752669 112.01329,78.664472 125.55391,72.515200 C 131.70333,69.722349 132.05669,67.513308 132.03964,65.049601 z M 60.696531,71.861960 L 62.422951,74.101632 C 64.791352,75.311463 74.846572,77.625067 79.593829,78.114392 L 79.360529,75.594752 C 73.816694,75.556961 66.907102,73.472618 60.696531,71.861960 z M 40.119473,79.607512 C 38.565476,80.548088 37.568913,81.536279 38.626354,82.593751 C 42.101651,86.069051 59.647211,89.290272 63.122851,92.765632 C 63.275692,92.918462 63.255326,93.078602 63.356151,93.232232 C 64.435614,91.947532 65.165573,90.655612 63.916071,89.406112 C 60.566937,86.057251 44.419333,82.939151 40.119473,79.607512 z M 117.10845,87.866332 C 115.91482,88.486362 114.95058,89.360392 115.14873,90.945882 C 120.60578,92.929232 129.04159,94.448192 130.03326,90.479292 C 130.22625,89.707762 130.12018,89.057262 129.84662,88.519572 C 127.48913,90.422432 121.65703,89.359992 117.10845,87.866332 z M 108.52303,89.546092 C 101.68539,95.627832 94.291059,96.265772 91.165507,99.391352 C 89.908251,100.64860 90.617583,101.33525 91.632107,101.95765 C 95.620160,99.286262 103.30109,98.498152 110.01615,90.945882 C 109.67197,90.410612 109.01729,90.016842 108.52303,89.546092 z M 112.39580,95.705212 C 110.96059,97.100002 111.14367,99.677592 112.81574,100.93113 C 114.79992,102.41933 117.28328,101.45675 118.27495,100.46453 C 118.78497,99.954792 118.71737,98.812252 117.90167,97.664932 C 116.69163,98.288052 115.10107,98.690742 113.60896,97.571612 C 112.97842,97.098902 112.61381,96.431702 112.39580,95.705212 z M 57.383671,95.891852 C 57.217332,96.012982 57.251127,96.035572 57.057051,96.171812 C 54.367330,98.060502 52.193078,99.793612 49.124852,98.271512 C 48.483305,97.953222 48.223383,97.480502 48.005012,97.011692 C 46.640740,98.694072 46.307086,100.62659 48.331632,101.63103 C 51.399861,103.15311 53.574111,101.42002 56.263832,99.531332 C 58.953868,97.642932 58.884645,97.273622 58.690151,96.545092 C 58.562389,96.579162 57.924006,96.197372 57.383671,95.891852 z M 60.043291,99.577992 C 58.963831,100.86268 58.233858,102.15460 59.483371,103.40410 C 62.958684,106.87946 74.615872,102.55126 72.501510,111.61626 C 77.194670,116.30942 86.988927,114.06974 93.545171,109.37658 C 94.825402,108.09634 94.082889,107.39241 93.031907,106.76362 C 86.534250,110.87138 77.700406,112.66245 73.294729,108.25674 C 75.409092,99.191752 63.751901,103.51996 60.276591,100.04459 C 60.123748,99.891752 60.144117,99.731612 60.043291,99.577992 z " + style="fill:url(#linearGradient1231);fill-rule:evenodd;stroke-width:1.0000000pt;" /> + <path + transform="matrix(1.220396,0.000000,0.000000,1.220396,-20.19444,7.307033)" + sodipodi:nodetypes="cccccc" + id="path1271" + d="M 99.186075,30.398236 L 124.44205,57.534989 C 124.44205,57.534989 131.96512,65.595411 126.05415,68.819579 C 120.14317,72.043747 102.14157,76.880001 102.14157,76.880001 L 69.422516,29.764596 L 99.186075,30.398236 z " + style="fill:url(#linearGradient1272);fill-opacity:0.75000000;fill-rule:evenodd;stroke-width:1.0000000pt;" /> + <path + transform="matrix(1.401650,0.000000,0.000000,1.401650,-35.26049,-4.181157)" + sodipodi:nodetypes="cccccc" + id="path1276" + d="M 63.243695,31.078988 L 42.657304,54.706552 C 42.657304,54.706552 34.703472,61.724642 39.850070,64.531876 C 44.996668,67.339111 78.917426,78.801990 102.77892,74.591136 L 75.408382,33.652287 L 63.243695,31.078988 z " + style="fill:url(#linearGradient1277);fill-opacity:0.75000000;fill-rule:evenodd;stroke-width:1.0000000pt;" /> + <path + transform="matrix(1.220396,0.000000,0.000000,1.220396,-20.19444,7.307033)" + sodipodi:nodetypes="ccccccccccczz" + id="path1317" + d="M 79.571944,14.847933 C 83.032254,14.873506 97.565101,29.009298 101.72458,31.925491 C 105.88407,34.841684 104.90857,36.754316 104.90857,36.936622 L 93.243582,31.290763 L 92.077082,40.109502 L 85.638002,37.076602 L 75.746078,43.702321 L 71.919958,30.637523 L 67.067318,42.069221 L 53.395938,43.422361 L 53.535918,37.356562 L 73.730570,17.473723 C 75.195738,16.031178 76.175081,14.822360 79.571944,14.847933 z " + style="fill:url(#linearGradient1318);fill-rule:evenodd;stroke-width:1.0000000pt;" /> + </g> + </g> + <g + inkscape:label="Title" + id="layer2" + inkscape:groupmode="layer"> + <text + id="text48" + style="line-height:100%;font-variant:normal;font-stretch:normal;writing-mode:lr;text-anchor:start;font-family:Arial;display:block;stroke-opacity:1.0000000;stroke-linejoin:miter;stroke-linecap:butt;stroke-width:3.0000000pt;stroke:none;fill-opacity:1.0000000;fill:#ffffff;font-weight:normal;font-style:normal;font-size:48.000000" + y="70" + x="45" + sodipodi:linespacing="100%"><tspan + x="45.000000" + y="70.000000" + sodipodi:role="line" + id="tspan1">Views and Desktops</tspan></text> + <rect + rx="24.243662" + ry="24.243662" + y="350.00000" + x="32.205261" + height="78.118378" + width="94.280884" + id="rect153" + style="color:#000000;fill:#ffffff;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible" /> + <text + sodipodi:linespacing="100%" + id="text803" + y="394.08655" + x="41.992188" + style="font-size:18.000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#000000;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Sans;text-anchor:start;writing-mode:lr-tb" + xml:space="preserve"><tspan + id="tspan804" + sodipodi:role="line" + y="394.08655" + x="41.992188">Desktop</tspan></text> + <rect + rx="24.243662" + ry="24.243662" + y="132.08923" + x="32.205261" + height="78.118378" + width="94.280884" + id="rect2" + style="color:#000000;fill:#ffffff;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible" /> + <text + sodipodi:linespacing="100%" + id="text3" + y="177.62157" + x="58.287109" + style="font-size:18.000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#000000;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Sans;text-anchor:start;writing-mode:lr-tb" + xml:space="preserve"><tspan + x="58.287109" + y="177.62157" + sodipodi:role="line" + id="tspan5">View</tspan></text> + <path + style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;marker-end:url(#TriangleOutL)" + d="M 75.238095,210.47619 L 75.000000,350.00000" + id="path6" /> + <text + sodipodi:linespacing="120%" + id="text80" + y="174.77148" + x="187.27148" + style="font-size:18.000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#000000;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Sans;text-anchor:start;writing-mode:lr;line-height:120%" + xml:space="preserve"><tspan + x="187.27148" + y="174.77148" + sodipodi:role="line" + id="tspan82">SPView</tspan><tspan + x="187.27148" + y="196.37149" + sodipodi:role="line" + id="tspan83"> - Base class for SVG views</tspan><tspan + x="187.27148" + y="217.97149" + sodipodi:role="line" + id="tspan84"> - Has a pointer to a doc (SPDocument)</tspan><tspan + x="187.27148" + y="239.57149" + sodipodi:role="line" + id="tspan85"> - Contains message stack and message context</tspan><tspan + x="187.27148" + y="261.17149" + sodipodi:role="line" + id="tspan86"> - Handles status messages</tspan><tspan + x="187.27148" + y="282.77149" + sodipodi:role="line" + id="tspan87"> - Handles redrawing screen</tspan><tspan + x="187.27148" + y="304.37149" + sodipodi:role="line" + id="tspan88"> - Emits signals on view changes</tspan><tspan + x="187.27148" + y="325.97149" + sodipodi:role="line" + id="tspan89"> - Provides sp_desktop_widget_new()</tspan></text> + <text + sodipodi:linespacing="120%" + id="text90" + y="394.57422" + x="186.6123" + style="font-size:18.000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#000000;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Sans;text-anchor:start;writing-mode:lr;line-height:120%" + xml:space="preserve"><tspan + x="186.61230" + y="394.57422" + sodipodi:role="line" + id="tspan106">SPDesktop</tspan><tspan + x="186.61230" + y="416.17422" + sodipodi:role="line" + id="tspan107"> - Subclass of SPView</tspan><tspan + x="186.61230" + y="437.77422" + sodipodi:role="line" + id="tspan108"> - Implements an "Editable view"</tspan><tspan + x="186.61230" + y="459.37422" + sodipodi:role="line" + id="tspan109"> - Holds pointer to Inkscape::Application</tspan><tspan + x="186.61230" + y="480.97422" + sodipodi:role="line" + id="tspan110"> - Contains scrollbar, ruler, canvas, guides, etc.</tspan><tspan + x="186.61230" + y="502.57422" + sodipodi:role="line" + id="tspan111"> - Defines scroll limits, zoom min/max, fullscreen</tspan><tspan + x="186.61230" + y="524.17422" + sodipodi:role="line" + id="tspan112"> - Manages event contexts, coordinate systems, zooming, etc.</tspan></text> + </g> + <g + inkscape:label="Drawing Area" + id="layer3" + inkscape:groupmode="layer" /> +</svg> diff --git a/doc/NewAppArchitecture/07-current-problems.svg b/doc/NewAppArchitecture/07-current-problems.svg new file mode 100644 index 000000000..dde3c36a8 --- /dev/null +++ b/doc/NewAppArchitecture/07-current-problems.svg @@ -0,0 +1,612 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> +<svg + xmlns:xml="http://www.w3.org/XML/1998/namespace" + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://web.resource.org/cc/" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + id="svg586" + sodipodi:version="0.32" + inkscape:version="0.40+cvs" + width="640pt" + height="480pt" + sodipodi:docname="07-current-problems.svg" + sodipodi:docbase="/home/bryce/src/Inkscape/InkAppPresent"> + <defs + id="defs588"> + <marker + inkscape:stockid="TriangleOutL" + orient="auto" + refY="0.0" + refX="0.0" + id="marker791" + style="overflow:visible;"> + <path + sodipodi:nodetypes="cccc" + id="path792" + d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z " + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" + transform="scale(0.8)" /> + </marker> + <marker + inkscape:stockid="TriangleOutL" + orient="auto" + refY="0.0" + refX="0.0" + id="marker719" + style="overflow:visible;"> + <path + sodipodi:nodetypes="cccc" + id="path720" + d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z " + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" + transform="scale(0.8)" /> + </marker> + <marker + inkscape:stockid="TriangleInL" + orient="auto" + refY="0.0" + refX="0.0" + id="marker717" + style="overflow:visible;"> + <path + sodipodi:nodetypes="cccc" + id="path718" + d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z " + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" + transform="scale(-0.8)" /> + </marker> + <marker + inkscape:stockid="TriangleOutL" + orient="auto" + refY="0.0" + refX="0.0" + id="marker714" + style="overflow:visible;"> + <path + sodipodi:nodetypes="cccc" + id="path715" + d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z " + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" + transform="scale(0.8)" /> + </marker> + <marker + inkscape:stockid="TriangleInL" + orient="auto" + refY="0.0" + refX="0.0" + id="marker712" + style="overflow:visible;"> + <path + sodipodi:nodetypes="cccc" + id="path713" + d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z " + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" + transform="scale(-0.8)" /> + </marker> + <marker + inkscape:stockid="TriangleOutL" + orient="auto" + refY="0.0" + refX="0.0" + id="marker709" + style="overflow:visible;"> + <path + sodipodi:nodetypes="cccc" + id="path710" + d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z " + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" + transform="scale(0.8)" /> + </marker> + <marker + inkscape:stockid="TriangleInL" + orient="auto" + refY="0.0" + refX="0.0" + id="marker707" + style="overflow:visible;"> + <path + sodipodi:nodetypes="cccc" + id="path708" + d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z " + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" + transform="scale(-0.8)" /> + </marker> + <marker + inkscape:stockid="TriangleOutL" + orient="auto" + refY="0.0" + refX="0.0" + id="marker704" + style="overflow:visible;"> + <path + sodipodi:nodetypes="cccc" + id="path705" + d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z " + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" + transform="scale(0.8)" /> + </marker> + <marker + inkscape:stockid="TriangleInL" + orient="auto" + refY="0.0" + refX="0.0" + id="marker702" + style="overflow:visible;"> + <path + sodipodi:nodetypes="cccc" + id="path703" + d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z " + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" + transform="scale(-0.8)" /> + </marker> + <marker + inkscape:stockid="TriangleOutL" + orient="auto" + refY="0.0" + refX="0.0" + id="TriangleOutL" + style="overflow:visible;"> + <path + sodipodi:nodetypes="cccc" + id="path2817" + d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z " + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" + transform="scale(0.8)" /> + </marker> + <marker + inkscape:stockid="TriangleInL" + orient="auto" + refY="0.0" + refX="0.0" + id="TriangleInL" + style="overflow:visible;"> + <path + sodipodi:nodetypes="cccc" + id="path2823" + d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z " + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" + transform="scale(-0.8)" /> + </marker> + <marker + inkscape:stockid="Arrow2L" + orient="auto" + refY="0.0" + refX="0.0" + id="Arrow2L" + style="overflow:visible;"> + <path + sodipodi:nodetypes="cccc" + id="path2863" + style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;" + d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " + transform="scale(1.1) translate(-5,0)" /> + </marker> + <linearGradient + id="linearGradient2570"> + <stop + style="stop-color:#000000;stop-opacity:1.0000000;" + offset="0.0000000" + id="stop2571" /> + <stop + style="stop-color:#000000;stop-opacity:0.62745100;" + offset="0.58504134" + id="stop2572" /> + <stop + style="stop-color:#ffffff;stop-opacity:0.0000000;" + offset="1.0000000" + id="stop2573" /> + </linearGradient> + <linearGradient + xlink:href="#linearGradient1218" + id="linearGradient1322" + x1="0.50352114" + y1="0.097472921" + x2="0.27112675" + y2="0.98555958" /> + <linearGradient + xlink:href="#linearGradient1273" + id="linearGradient1318" + x1="0.50704223" + y1="0.27741936" + x2="-0.17253521" + y2="0.99354839" /> + <linearGradient + xlink:href="#linearGradient1222" + id="linearGradient1307" + x1="0.45376351" + y1="1.9347328" + x2="0.41986585" + y2="0.12454049" + gradientTransform="scale(1.004208,0.995809)" /> + <linearGradient + xlink:href="#linearGradient1222" + id="linearGradient1306" + x1="0.45009527" + y1="1.9667202" + x2="0.41548476" + y2="0.11846013" + gradientTransform="scale(1.006361,0.993679)" /> + <linearGradient + xlink:href="#linearGradient1222" + id="linearGradient1305" + x1="0.45839140" + y1="1.8676205" + x2="0.42603236" + y2="0.13959341" + gradientTransform="scale(1.002016,0.997989)" /> + <linearGradient + xlink:href="#linearGradient1273" + id="linearGradient1277" + x1="-0.36619717" + y1="1.5228426" + x2="0.36971831" + y2="0.80203044" /> + <linearGradient + xlink:href="#linearGradient1273" + id="linearGradient1272" + x1="1.0739436" + y1="0.23580793" + x2="0.53521127" + y2="0.55458528" /> + <linearGradient + xlink:href="#linearGradient1222" + id="linearGradient1270" /> + <linearGradient + xlink:href="#linearGradient1323" + id="linearGradient1231" + x1="0.00000000" + y1="0.50000000" + x2="1.0000000" + y2="0.50000000" /> + <linearGradient + xlink:href="#linearGradient1222" + id="linearGradient1221" + x1="-0.96478873" + y1="2.1597939" + x2="0.42605633" + y2="0.24742271" /> + <linearGradient + id="linearGradient1218"> + <stop + style="stop-color:#000000;stop-opacity:1.0000000;" + offset="0.00000000" + id="stop1219" /> + <stop + style="stop-color:#323232;stop-opacity:1.0000000;" + offset="0.073255815" + id="stop1321" /> + <stop + style="stop-color:#000000;stop-opacity:1.0000000;" + offset="0.65260679" + id="stop1320" /> + <stop + style="stop-color:#fff;stop-opacity:1;" + offset="1" + id="stop1220" /> + </linearGradient> + <linearGradient + id="linearGradient1222"> + <stop + style="stop-color:#0081ac;stop-opacity:1.0000000;" + offset="0.0000000" + id="stop1223" /> + <stop + style="stop-color:#006d91;stop-opacity:0.62745100;" + offset="0.50000000" + id="stop1722" /> + <stop + style="stop-color:#000000;stop-opacity:0.0000000;" + offset="1.0000000" + id="stop1224" /> + </linearGradient> + <linearGradient + id="linearGradient1273"> + <stop + style="stop-color:#ffffff;stop-opacity:1.0000000;" + offset="0.00000000" + id="stop1274" /> + <stop + style="stop-color:#ffffff;stop-opacity:0.00000000;" + offset="1.0000000" + id="stop1275" /> + </linearGradient> + <linearGradient + id="linearGradient1323"> + <stop + style="stop-color:#000000;stop-opacity:0.77685952;" + offset="0.00000000" + id="stop1324" /> + <stop + style="stop-color:#000000;stop-opacity:0.00000000;" + offset="1.0000000" + id="stop1325" /> + </linearGradient> + <radialGradient + xlink:href="#linearGradient826" + id="radialGradient829" + cx="0.49382716" + cy="0.46875000" + r="0.41400504" + fx="0.50617284" + fy="0.15625000" /> + <linearGradient + id="linearGradient826"> + <stop + style="stop-color:#000000;stop-opacity:0.95294118;" + offset="0.00000000" + id="stop827" /> + <stop + style="stop-color:#000000;stop-opacity:0.76078433;" + offset="0.36585677" + id="stop830" /> + <stop + style="stop-color:#000000;stop-opacity:0.52941179;" + offset="0.47107276" + id="stop847" /> + <stop + style="stop-color:#ffffff;stop-opacity:0.00000000;" + offset="1.0000000" + id="stop828" /> + </linearGradient> + <linearGradient + xlink:href="#linearGradient909" + id="linearGradient907" + x1="0.50000000" + y1="0.66667551" + x2="0.50000000" + y2="-1.7333326" /> + <linearGradient + id="linearGradient909"> + <stop + style="stop-color:#000000;stop-opacity:0.00000000;" + offset="0.00000000" + id="stop910" /> + <stop + style="stop-color:#000000;stop-opacity:0.17000000;" + offset="1.0000000" + id="stop913" /> + </linearGradient> + <linearGradient + xlink:href="#linearGradient1222" + id="linearGradient1309" /> + <linearGradient + xlink:href="#linearGradient2570" + id="linearGradient1308" + x1="0.0000000" + y1="0.50000000" + x2="1.0000000" + y2="0.50000000" /> + </defs> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="1.0500000" + inkscape:cx="390.04016" + inkscape:cy="302.90957" + inkscape:window-width="984" + inkscape:window-height="845" + inkscape:window-x="190" + inkscape:window-y="105" + showguides="true" + inkscape:guide-bbox="false" + inkscape:current-layer="layer2" + showgrid="true" + inkscape:guide-points="true" + gridspacingy="5.0000000pt" + gridspacingx="5.0000000pt" + gridtolerance="50.000000pt" + inkscape:grid-points="true" + inkscape:grid-bbox="true" /> + <metadata + id="metadata33"> + <rdf:RDF + id="RDF34"> + <cc:Work + rdf:about="" + id="Work35"> + <dc:format + id="format36">image/svg+xml</dc:format> + <dc:type + id="type38" + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + </cc:Work> + </rdf:RDF> + </metadata> + <g + inkscape:groupmode="layer" + id="layer1" + inkscape:label="Background" + style="display:block"> + <rect + style="font-size:12.000000;fill:url(#linearGradient1309);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:3.0000000pt;" + id="topbluebox" + width="800.00000" + height="112.50000" + x="0.0000000" + y="1.7763568e-15" /> + <path + style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:url(#linearGradient1308);stroke-width:4.9844480;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;" + d="M -0.034245957,110.20928 L 797.51553,110.00778" + id="path654" + sodipodi:nodetypes="cc" /> + <g + id="g1085" + transform="translate(646.2792,-9.754791)"> + <g + id="g1394" + transform="matrix(0.875802,0.000000,0.000000,0.869278,1.048583,-7.965682)"> + <path + sodipodi:type="arc" + id="path898" + sodipodi:cx="300.00000" + sodipodi:cy="300.00000" + sodipodi:rx="300.00000" + sodipodi:ry="300.00000" + d="M 600.00000 300.00000 A 300.00000 300.00000 0 1 0 0.0000000,300.00000 A 300.00000 300.00000 0 1 0 600.00000 300.00000 z" + style="opacity:0.69398910;fill:url(#radialGradient829);stroke-width:4.4309568;stroke-dasharray:17.723827 17.723827 ;stroke-dashoffset:0.0000000;" + transform="matrix(0.394071,0.000000,0.000000,8.155385e-2,-31.69751,94.58860)" /> + <path + sodipodi:type="arc" + id="ball1" + sodipodi:cx="300.00000" + sodipodi:cy="300.00000" + sodipodi:rx="300.00000" + sodipodi:ry="300.00000" + d="M 600.00000 300.00000 A 300.00000 300.00000 0 1 0 0.0000000,300.00000 A 300.00000 300.00000 0 1 0 600.00000 300.00000 z" + style="fill:url(#radialGradient829);stroke-width:4.4309568;stroke-dasharray:17.723827 17.723827 ;stroke-dashoffset:0.0000000;" + transform="matrix(0.280658,0.000000,0.000000,0.148676,4.082687,91.98483)" /> + </g> + <g + id="g1310" + transform="matrix(1.822197,0.000000,0.000000,1.662749,-180.0082,12.26653)" + style="fill:url(#linearGradient1221);"> + <path + style="fill-opacity:0.074380167;fill-rule:evenodd;stroke-width:1.0000000pt;" + d="M 139.27138,11.077118 C 137.22042,11.077119 135.15548,11.849270 133.58388,13.420868 L 105.67763,41.358368 C 104.13725,42.898711 103.33325,44.910828 103.30263,46.920868 C 103.30220,46.954601 103.30263,47.012134 103.30263,47.045868 L 103.36513,47.045868 C 103.89976,49.079999 117.69889,51.660911 119.24013,53.202118 C 121.56768,55.529685 110.31886,57.249538 112.64638,59.577118 C 114.97392,61.904658 126.72486,64.062038 129.05263,66.389620 C 131.38019,68.717170 124.28755,71.187070 126.61513,73.514620 C 128.94268,75.842201 136.74995,72.943440 135.33388,79.014621 C 138.47707,82.157811 145.03666,80.657811 149.42763,77.514621 C 151.75518,75.187070 144.97506,75.404670 147.30263,73.077120 C 149.63018,70.749540 155.50836,70.738600 160.45888,65.170868 C 158.46624,62.071818 151.94381,60.748438 154.27138,58.420868 C 156.59893,56.093323 161.10115,57.261288 170.86513,52.827118 C 175.63150,50.662408 175.25838,49.039285 175.24013,47.045868 C 175.23975,47.003922 175.24013,46.963136 175.24013,46.920868 L 175.20888,46.920868 C 175.17827,44.910830 174.40547,42.898714 172.86513,41.358368 L 144.92763,13.420868 C 143.35604,11.849272 141.32234,11.077118 139.27138,11.077118 z M 139.02138,14.702118 C 139.93315,14.725869 140.67125,15.422422 142.11513,16.358368 L 155.30263,26.139618 C 155.44708,26.233292 155.58252,26.320552 155.70888,26.420868 C 155.83525,26.521171 155.97562,26.627132 156.08388,26.733368 C 156.19214,26.839410 156.27479,26.966073 156.36513,27.077118 C 156.45527,27.188145 156.54310,27.305955 156.61513,27.420868 C 156.68737,27.535969 156.74853,27.646585 156.80263,27.764618 C 156.85677,27.882866 156.89163,27.987920 156.92763,28.108368 C 156.96385,28.228632 157.00329,28.361823 157.02138,28.483368 C 157.03948,28.605130 157.05263,28.736271 157.05263,28.858368 L 149.24013,25.077118 L 148.45888,30.983368 L 144.14638,28.952118 L 137.52138,33.389618 L 134.95888,24.639618 L 131.70888,32.295868 L 122.55263,33.202118 L 122.64638,29.139618 C 122.64638,28.162533 127.93872,21.330614 131.14638,19.702118 L 137.02138,15.483368 C 137.88771,14.921800 138.47431,14.687867 139.02138,14.702118 z M 126.89638,54.639618 C 131.05584,55.718333 135.68346,57.114312 139.39638,57.139618 L 139.55263,58.827118 C 136.37321,58.499388 129.63884,56.949888 128.05263,56.139618 L 126.89638,54.639618 z M 170.24013,62.045868 C 169.60518,62.025518 169.00430,62.089178 168.55263,62.202118 C 167.70107,62.414898 163.56419,62.512928 163.89638,65.170868 C 167.55118,66.499190 173.20097,67.516500 173.86513,64.858368 C 174.36366,62.865308 172.14497,62.106908 170.24013,62.045868 z M 122.45888,67.452120 C 121.88389,67.385110 121.32136,67.455980 120.77138,67.733370 C 118.57203,68.842760 117.09168,71.307720 119.14638,72.327120 C 121.20129,73.346520 122.65747,72.185800 124.45888,70.920870 C 126.26050,69.656140 126.21414,69.408800 126.08388,68.920870 C 125.83449,68.987380 124.18386,67.653150 122.45888,67.452120 z M 162.64638,67.889620 C 160.98514,68.553960 161.00465,70.861860 162.33388,71.858370 C 163.66277,72.855080 165.32597,72.210400 165.99013,71.545870 C 166.65484,70.881530 165.96848,68.553970 162.64638,67.889620 z " + id="path1278" /> + <path + style="fill-opacity:0.074380167;fill-rule:evenodd;stroke-width:1.0000000pt;" + d="M 137.96875,10.718750 C 134.70402,11.060845 132.45341,13.855395 130.15790,15.940974 C 121.77155,24.503910 113.19525,32.911552 104.88478,41.529122 C 103.53165,43.257666 102.98133,45.293623 102.71875,47.437500 C 107.43946,50.886242 113.69835,50.905815 118.71875,53.781250 C 117.30484,56.014138 113.86394,55.927723 112.30534,58.153586 C 110.95047,59.066432 112.87438,60.562599 113.88390,60.907202 C 118.07998,63.025863 122.80956,63.838835 126.97834,66.068813 C 129.14039,66.223477 128.99465,68.397410 127.55968,69.465540 C 126.42313,70.610466 124.66557,72.512182 126.40386,73.938766 C 128.52893,75.415674 131.34635,75.011355 133.71875,75.875000 C 135.38587,76.789177 134.20286,78.442002 135.34375,79.593750 C 138.20878,81.840481 142.17613,81.444087 145.36980,80.162063 C 147.01184,79.679133 148.50293,78.612108 149.93750,77.781250 C 151.32137,76.168445 149.16317,75.014407 147.93750,74.343750 C 147.13207,73.007556 149.81258,72.471472 150.72621,71.835396 C 154.22932,70.415525 157.63139,68.772275 160.32323,66.076023 C 162.00146,65.040055 159.53684,63.566475 158.75000,62.750000 C 157.29555,61.671425 155.38495,61.005736 154.46875,59.343750 C 156.83166,56.736844 160.77991,57.222943 163.82692,55.886662 C 167.48614,54.956060 170.96688,53.327613 174.19128,51.441061 C 176.31894,49.855420 175.75931,47.094289 175.34438,44.858149 C 173.82714,40.146659 169.32671,37.346121 166.14614,33.782162 C 159.00255,26.737555 151.96598,19.558149 144.75603,12.597114 C 142.83187,11.117125 140.40461,10.324926 137.96875,10.718750 z M 140.15625,15.718750 C 145.33185,19.512142 150.51925,23.291773 155.68750,27.093750 C 155.79568,28.128330 152.96647,25.994412 151.88519,25.704486 C 150.56126,25.310550 148.23232,22.990502 148.60160,25.735802 C 148.03383,26.854222 148.89364,30.614243 147.25375,29.748789 C 145.77079,28.952048 143.79956,27.767016 142.39696,29.393778 C 140.87922,30.408352 139.36149,31.422926 137.84375,32.437500 C 136.92659,29.270978 136.01364,26.103230 135.09375,22.937500 C 133.83186,25.869891 132.59553,28.813265 131.34375,31.750000 C 128.60417,32.020833 125.86458,32.291667 123.12500,32.562500 C 122.93577,30.531586 123.37937,28.492090 124.78964,27.051727 C 127.83705,22.165897 132.91432,19.181067 137.48762,15.928279 C 138.38080,15.399443 139.18306,15.465846 140.15625,15.718750 z M 132.06250,56.562500 C 134.25968,57.131800 136.54653,57.244809 138.78125,57.625000 C 137.93164,58.641801 135.83490,57.320885 134.50134,57.277133 C 132.75919,56.896272 131.01731,56.527068 129.37500,55.812500 C 130.27083,56.062500 131.16667,56.312500 132.06250,56.562500 z M 168.50000,61.625000 C 166.47980,62.095190 163.59992,62.369201 163.34375,64.968750 C 164.00781,65.934196 166.11962,66.292948 167.47626,66.551501 C 169.60910,66.891924 172.52463,67.659468 174.01886,65.672524 C 175.29513,63.892929 173.38643,61.628153 171.40540,61.754929 C 170.44376,61.426788 169.48969,61.503021 168.50000,61.625000 z M 120.65625,67.156250 C 119.17864,68.173454 117.17273,69.706513 117.81250,71.750000 C 119.32360,73.943032 122.44871,73.328157 124.17581,71.744685 C 125.31806,71.095411 127.22708,69.849349 126.34375,68.406250 C 124.53029,67.617814 122.70705,66.421404 120.65625,67.156250 z M 162.25000,67.468750 C 160.98536,68.304844 160.47655,70.055902 161.35305,71.321264 C 162.02451,73.004295 164.27223,73.179865 165.64672,72.263080 C 167.48408,71.700360 166.67812,69.347513 165.33731,68.658474 C 164.66189,67.815250 163.12029,67.406310 162.25000,67.468750 z " + id="path1283" /> + <path + style="fill-opacity:0.074380167;fill-rule:evenodd;stroke-width:1.0000000pt;" + d="M 137.09375,12.062500 C 133.45264,13.658306 130.89510,17.054651 128.02763,19.760075 C 120.64992,27.277135 113.11748,34.668181 105.81675,42.244521 C 104.77302,43.583830 104.19848,45.113312 103.93750,46.781250 C 108.02500,49.661848 113.35464,49.814484 117.77247,52.034312 C 119.23732,52.180074 120.83004,53.663696 119.47530,54.914506 C 117.72685,56.714093 114.64707,56.868986 113.18750,58.937500 C 116.98689,61.678185 121.72461,62.314645 125.91888,64.199775 C 127.35246,65.248996 129.93899,65.341959 130.00000,67.531250 C 129.61283,69.469175 127.68115,70.594821 126.84375,72.343750 C 128.66657,74.916318 132.41661,73.526770 134.81763,75.194505 C 136.12150,75.998634 135.76289,77.719238 136.33739,78.786112 C 139.34189,80.984126 143.56705,80.023489 146.59979,78.262860 C 147.57821,77.931235 150.25551,76.737683 148.25234,75.866570 C 146.79311,75.539319 145.57083,73.791727 146.98575,72.676315 C 150.59379,69.928273 155.52636,69.300230 158.75379,65.912819 C 160.44061,64.636839 157.51978,63.512312 156.64603,62.784855 C 155.31686,61.805358 153.02074,60.864770 153.31250,58.906250 C 155.52467,55.836091 159.76350,56.249927 162.98171,54.909139 C 166.64088,54.011598 170.17880,52.442724 173.39619,50.585767 C 175.44759,48.766928 174.40312,45.854433 173.70402,43.674602 C 170.01715,38.505895 164.93468,34.528530 160.60640,29.906454 C 155.05848,24.484276 149.68028,18.831089 144.02714,13.552135 C 142.01313,12.267231 139.68457,11.155741 137.26959,12.030263 L 137.09375,12.062500 z M 139.25000,14.156250 C 144.36849,16.573687 148.44456,20.615673 153.06166,23.857057 C 154.79682,25.417824 157.75256,26.462276 157.65625,29.218750 C 155.98301,29.620934 154.51821,27.909197 152.92283,27.467153 C 151.47889,26.979622 149.05912,24.688826 149.46490,27.619328 C 148.95092,28.676042 149.67609,32.096323 148.30430,31.528870 C 146.86362,30.916675 145.25114,29.742049 143.73062,29.880583 C 141.56112,31.359522 139.38321,32.826259 137.21875,34.312500 C 136.40063,31.654144 135.63994,28.977747 134.84375,26.312500 C 133.78712,28.431959 132.98467,30.961875 131.78125,32.843750 C 128.52084,33.166779 125.26035,33.488957 122.00000,33.812500 C 122.02692,31.439278 121.58820,28.751334 123.45144,26.900643 C 126.38650,21.928911 131.54097,18.937382 135.96875,15.531250 C 137.05500,15.131227 138.17386,14.356070 139.25000,14.156250 z M 126.34375,53.906250 C 130.81931,55.099287 135.33348,56.080112 139.93750,56.625000 C 140.81508,58.380031 139.61654,59.889689 137.75155,59.030564 C 134.35469,58.342143 130.95451,57.411091 127.62500,56.500000 C 127.37596,56.018046 124.72663,53.333015 126.34375,53.906250 z M 168.68750,62.750000 C 167.26725,63.145732 165.19352,63.022642 164.68750,64.750000 C 167.41558,65.272026 170.36127,66.626958 173.03125,65.187500 C 173.94813,63.333514 171.22391,62.807999 169.92452,62.707344 C 169.51218,62.721563 169.09984,62.735781 168.68750,62.750000 z M 120.96875,68.250000 C 119.88102,69.094191 117.71809,71.141191 120.00567,71.867660 C 122.11744,72.377527 123.71955,70.573549 125.28125,69.468750 C 124.17010,68.379529 122.48301,67.967608 120.96875,68.250000 z M 162.25000,68.937500 C 161.26655,70.838341 164.03769,72.707639 165.32625,71.028976 C 165.98639,69.968138 163.10932,68.105539 162.25000,68.937500 z " + id="path1286" /> + <path + style="fill-opacity:0.074380167;fill-rule:evenodd;stroke-width:1.0000000pt;" + d="M 137.50000,12.562500 C 131.56402,15.884438 127.47918,21.513076 122.59316,26.106819 C 117.07494,31.800872 111.33765,37.333066 105.95500,43.127274 C 105.27016,44.232264 103.90274,46.716455 105.88806,47.110513 C 110.48303,49.525949 116.07018,49.897473 120.25000,52.937500 C 121.19557,55.258014 118.31954,56.204644 116.77699,57.135076 C 115.14828,57.646504 113.25757,59.174666 115.98524,59.736007 C 120.51650,62.179113 125.90956,62.812244 130.06250,65.968750 C 131.40440,68.155882 128.87852,70.088345 127.96429,71.816940 C 127.97548,73.606583 130.61198,73.210238 131.85374,73.694589 C 134.00698,73.861384 136.31306,75.067306 136.52629,77.437982 C 137.24770,79.315251 139.82104,79.377347 141.56250,79.375000 C 143.88381,79.081698 145.88731,77.848938 148.00000,76.937500 C 147.89289,75.484280 145.47385,75.343455 145.78125,73.562500 C 147.65028,70.568783 151.46696,69.934698 154.32757,68.211442 C 155.95166,67.507534 157.40819,66.436524 158.50000,65.031250 C 156.69534,62.893495 153.11684,62.207207 152.76893,59.025530 C 153.13476,57.911585 154.90043,56.856141 156.14992,56.314935 C 161.47352,54.305871 167.29666,53.530281 172.18291,50.436255 C 174.75469,49.397100 173.90347,46.181096 173.15013,44.168122 C 170.99740,41.143850 168.08639,38.542958 165.64236,35.681332 C 163.12371,33.093790 160.49665,30.610931 157.93750,28.062500 C 158.99092,29.594714 157.00835,30.333418 155.86310,29.376751 C 153.95887,28.546062 152.06033,27.726589 150.12500,26.968750 C 150.04976,28.633800 149.69671,30.253091 149.34375,31.875000 C 146.94959,32.517021 144.62510,29.359512 142.44997,31.405021 C 140.65579,32.399012 139.25573,34.074138 137.34005,34.698602 C 135.96867,34.449689 136.15225,31.657450 135.44638,30.368996 C 135.03220,27.477998 134.31032,28.114323 133.43720,30.484434 C 132.63691,31.983328 132.29360,34.079093 130.12469,33.576560 C 127.22896,33.863646 124.33317,34.149933 121.43750,34.437500 C 121.45635,31.458390 121.16984,28.094375 123.52595,25.839572 C 126.82257,21.188668 131.69023,18.019711 136.23357,14.793262 C 137.75437,14.087412 139.64327,13.037594 141.05071,14.536711 C 144.77608,17.093755 148.56965,19.491887 152.06250,22.343750 C 149.06655,19.513772 146.25485,16.420638 143.14594,13.751994 C 141.38445,12.871744 139.52020,11.789900 137.50000,12.562500 z M 126.40625,53.343750 C 131.09445,54.266714 135.77718,55.221773 140.46875,56.125000 C 140.66311,57.490600 140.90400,59.768414 138.90019,59.717011 C 134.99279,58.970773 131.04202,57.882901 127.18750,56.875000 C 126.61048,55.955764 124.83534,54.556620 125.40625,53.625000 C 125.73497,53.577157 126.08499,53.292470 126.40625,53.343750 z M 166.53125,63.812500 C 164.90117,64.830649 168.72302,64.879550 169.60036,65.161786 C 170.82454,65.513571 173.80209,64.644903 171.50000,63.593750 C 169.78209,63.217030 168.21140,63.255613 166.53125,63.812500 z M 120.81250,69.187500 C 118.77488,70.497531 120.63987,72.049766 122.29985,70.780747 C 124.22011,70.547064 124.25797,68.584075 122.13849,68.857155 C 121.62590,68.786616 121.20364,68.805690 120.81250,69.187500 z M 162.78125,70.250000 C 165.04372,72.410337 164.50416,68.582957 162.78125,69.787913 C 162.78125,69.883882 162.78125,70.191942 162.78125,70.250000 z " + id="path1295" /> + <path + style="fill-opacity:0.074380167;fill-rule:evenodd;stroke-width:1.0000000pt;" + d="M 137.25000,10.312500 C 134.57328,10.811904 132.67255,13.050780 130.64866,14.715585 C 121.77957,23.451854 113.11785,32.437236 104.37500,41.281250 C 103.17019,43.288146 102.47259,45.456013 102.06250,47.750000 C 105.83476,49.628698 109.64657,51.368815 113.75481,52.377095 C 114.74672,53.000901 118.15181,53.211596 117.03125,54.625000 C 114.87625,55.770623 112.18432,56.545814 111.25000,59.062500 C 113.07397,62.261249 117.13309,62.448994 120.14188,63.972108 C 122.66750,64.970987 125.19313,65.969869 127.71875,66.968750 C 127.79709,69.608591 127.12737,68.724937 125.79671,67.542170 C 123.76150,66.508388 120.74167,65.559916 119.14266,67.799744 C 117.68910,68.685330 116.55779,70.940149 117.66673,72.361712 C 119.74129,74.610002 123.29896,73.558599 125.22361,71.631365 C 125.39044,71.451948 124.94524,74.329263 126.55554,74.625682 C 128.75187,75.888131 131.56113,75.535204 133.75000,76.781250 C 134.17453,78.637203 134.92263,80.738750 137.10053,81.029661 C 140.53970,82.420114 144.41944,81.397273 147.50485,79.584682 C 148.81540,78.872018 151.32795,78.343669 150.75195,76.374975 C 150.70713,75.080531 147.53803,74.300613 149.31250,73.093750 C 153.55943,71.203594 157.91230,69.209830 161.18750,65.843750 C 161.99115,63.731003 159.07145,62.849633 157.93750,61.562500 C 156.57653,60.417748 154.30116,59.195844 157.17010,58.407983 C 162.44672,56.428116 168.30037,55.651561 173.14000,52.536010 C 175.69933,51.724285 176.75286,48.825627 176.01594,46.382200 C 175.99204,43.921497 174.36450,41.884430 172.99509,39.973772 C 168.23708,34.553265 162.73310,29.839073 157.72691,24.648245 C 153.37676,20.454464 149.19589,15.998891 144.74248,11.964991 C 142.49218,10.519398 139.90204,10.047325 137.25000,10.312500 z M 140.40625,16.625000 C 144.38180,19.415210 148.26381,22.371245 152.21875,25.218750 C 151.00059,24.471219 149.71107,24.008458 148.28125,23.906250 C 148.08169,25.616789 147.84012,27.322499 147.62500,29.031250 C 145.77312,28.480352 143.67622,27.363820 142.02088,28.944411 C 140.79579,29.321785 138.71876,32.029330 138.02739,30.946881 C 137.09069,27.714729 136.15797,24.481420 135.21875,21.250000 C 133.79126,24.568262 132.38708,27.896549 130.96875,31.218750 C 128.56250,31.458333 126.15625,31.697917 123.75000,31.937500 C 123.73611,28.504117 126.40867,25.941624 128.50533,23.538181 C 131.60340,20.877921 134.84009,18.280137 138.37100,16.266120 C 139.05687,15.927768 139.72649,16.501380 140.40625,16.625000 z M 165.12500,61.937500 C 163.94994,62.683294 162.04675,64.163789 163.31250,65.625000 C 165.77599,67.237331 168.84980,67.346191 171.68759,67.438839 C 173.79767,67.380039 175.87709,64.882603 174.44068,62.966319 C 173.10190,60.663393 170.05340,61.177216 167.81605,61.201002 C 166.91904,61.446503 166.02202,61.692001 165.12500,61.937500 z M 162.03125,67.031250 C 160.83535,68.000188 160.29043,69.695123 160.76346,71.258236 C 161.16730,73.039050 163.22496,73.494707 164.78719,72.992478 C 167.13879,73.181332 168.09248,69.825149 166.13394,68.653373 C 164.96960,67.668728 163.65541,66.689296 162.03125,67.031250 z " + id="path1300" /> + <path + style="fill-opacity:0.074380167;fill-rule:evenodd;stroke-width:1.0000000pt;" + d="M 136.87500,9.5625000 C 131.65304,11.769127 128.14544,16.384624 124.15881,20.216605 C 117.35142,27.117414 110.49657,33.984328 103.71875,40.906250 C 102.85273,43.332808 101.99819,45.763562 101.12500,48.187500 C 105.93068,50.283305 110.76347,52.276496 115.75000,53.906250 C 115.44333,55.363555 112.99770,55.191635 112.24058,56.587946 C 110.89606,57.445273 110.01695,59.785906 111.89556,60.567820 C 114.86490,63.357428 118.93991,64.363020 122.62500,65.875000 C 119.72774,65.033632 117.80750,68.090788 116.68750,70.250000 C 116.01105,72.950420 119.11437,74.651083 121.43923,74.259441 C 122.88425,74.778519 124.87048,71.894366 125.06555,74.129447 C 127.21708,76.574392 131.35224,75.998123 133.59751,78.288768 C 134.32398,80.302303 135.99246,81.986172 138.23383,82.006618 C 140.25772,82.589257 142.23898,82.314480 144.19142,81.614260 C 146.47188,81.098710 148.64271,79.959926 150.63761,78.824244 C 152.14711,77.754911 151.81527,75.346631 150.43750,74.312500 C 150.23406,72.704926 152.73875,72.682794 153.75639,71.819616 C 156.49819,70.564020 158.90600,68.804050 161.21875,66.906250 C 160.19643,68.376408 159.81043,70.315970 160.38112,71.987759 C 161.34634,74.267655 164.22210,73.656108 166.15625,73.531250 C 168.08949,72.610730 168.83732,69.631414 166.87500,68.343750 C 164.02568,66.581529 166.47357,67.403459 168.27836,67.911665 C 170.51415,68.044548 173.31226,68.747610 174.83495,66.581402 C 176.52328,64.952843 175.46252,62.386049 173.84375,61.125000 C 171.82924,60.052772 169.41179,60.364713 167.22781,60.468857 C 165.26732,60.816302 163.77932,61.981088 162.56250,63.500000 C 161.07416,64.693238 164.27576,66.891706 162.51264,66.451187 C 161.23611,66.670932 162.80138,64.122782 161.27178,63.293106 C 160.27477,61.829766 158.59216,60.917429 157.34375,59.656250 C 163.37320,56.739900 170.41697,55.950383 175.81250,51.750000 C 177.79054,49.403625 176.89111,46.297658 176.31250,43.625000 C 172.71709,37.077334 166.72680,32.381991 161.58112,27.092054 C 156.10204,21.754721 150.65568,16.371055 145.15625,11.062500 C 142.76062,10.099303 140.31053,9.4347862 137.70606,9.5684113 C 137.43820,9.5943662 137.13013,9.4705862 136.87500,9.5625000 z M 144.00000,20.125000 C 145.41913,21.217458 146.85549,22.290152 148.28125,23.375000 C 146.97140,24.376925 147.43473,26.306660 146.96875,27.718750 C 145.01335,27.188020 142.88412,27.117042 141.28969,28.567875 C 140.30436,29.400862 138.46017,30.323076 138.31032,28.383898 C 137.43025,25.351664 136.59470,22.304201 135.68750,19.281250 C 137.21838,18.817776 138.78213,16.344334 140.28250,17.745803 C 141.52167,18.538869 142.76083,19.331934 144.00000,20.125000 z M 130.53125,30.406250 C 128.68750,30.593750 126.84375,30.781250 125.00000,30.968750 C 125.70615,27.451641 128.61722,24.990200 131.09307,22.632488 C 132.44877,21.648343 133.72082,20.531920 135.12500,19.625000 C 133.59375,23.218750 132.06250,26.812500 130.53125,30.406250 z " + id="path1304" /> + </g> + <path + style="fill:url(#linearGradient1322);fill-rule:evenodd;stroke-width:1.0000000pt;" + d="M 78.468542,10.216821 C 75.406213,10.216823 72.323010,11.369737 69.976423,13.716321 L 28.309048,55.430356 C 26.009076,57.730272 24.808608,60.734604 24.762888,63.735835 C 24.762246,63.786202 24.762888,63.872106 24.762888,63.922475 L 24.856208,63.922475 C 25.654475,66.959676 46.258230,70.813287 48.559486,73.114494 C 52.034797,76.589830 35.238960,79.157777 38.714227,82.633131 C 42.189523,86.108431 59.735084,89.329652 63.210724,92.805012 C 66.686050,96.280332 56.095888,99.968182 59.571244,103.44349 C 63.046555,106.91885 74.703745,102.59065 72.589383,111.65565 C 77.282542,116.34881 87.076796,114.10913 93.633042,109.41597 C 97.108353,105.94066 86.984820,106.26556 90.460160,102.79025 C 93.935473,99.314902 102.71230,99.298562 110.10402,90.985272 C 107.12876,86.358021 97.390000,84.382051 100.86534,80.906713 C 104.34065,77.431409 111.06300,79.175321 125.64179,72.554574 C 132.75855,69.322402 132.20143,66.898885 132.17419,63.922475 C 132.17362,63.859844 132.17419,63.798946 132.17419,63.735835 L 132.12753,63.735835 C 132.08182,60.734607 130.92794,57.730277 128.62803,55.430356 L 86.914001,13.716321 C 84.567429,11.369740 81.530871,10.216821 78.468542,10.216821 z M 59.991184,75.260853 C 66.201756,76.871504 73.111347,78.955868 78.655182,78.993653 L 78.888482,81.513293 C 74.141227,81.023952 64.086006,78.710363 61.717604,77.500533 L 59.991184,75.260853 z M 124.70859,86.319271 C 123.76053,86.288891 122.86335,86.383941 122.18895,86.552571 C 120.91747,86.870282 114.74061,87.016652 115.23661,90.985272 C 120.69367,92.968622 129.12948,94.487582 130.12115,90.518672 C 130.86551,87.542792 127.55274,86.410411 124.70859,86.319271 z M 53.365465,94.391452 C 52.506936,94.291402 51.667011,94.397222 50.845825,94.811392 C 47.561932,96.467852 45.351592,100.14833 48.419506,101.67041 C 51.487732,103.19250 53.661984,101.45941 56.351705,99.570712 C 59.041739,97.682322 58.972518,97.313012 58.778024,96.584472 C 58.405655,96.683782 55.941067,94.691622 53.365465,94.391452 z M 113.37021,95.044692 C 110.88978,96.036632 110.91892,99.482602 112.90361,100.97051 C 114.88780,102.45872 117.37116,101.49614 118.36283,100.50391 C 119.35532,99.511972 118.33051,96.036652 113.37021,95.044692 z " + id="path1217" + sodipodi:nodetypes="cccccccccccccccccccccccccccccccccccccccccc" + transform="matrix(1.220396,0.000000,0.000000,1.220396,-20.19444,7.307033)" /> + <path + style="fill:url(#linearGradient1231);fill-rule:evenodd;stroke-width:1.0000000pt;" + d="M 25.748195,58.983802 C 25.069168,60.484820 24.699511,62.088386 24.675015,63.696461 C 24.674375,63.746824 24.675015,63.832738 24.675015,63.883101 L 24.768335,63.883101 C 25.532194,66.789384 44.034284,70.422637 47.678393,72.748500 C 49.285306,71.792649 50.340763,70.791543 49.264832,69.715600 C 46.963576,67.414389 26.359823,63.560781 25.561555,60.523581 L 25.468235,60.523581 C 25.468235,60.473204 25.467595,60.387304 25.468235,60.336942 C 25.475280,59.874537 25.686531,59.443757 25.748195,58.983802 z M 132.03964,65.049601 C 131.22443,66.340254 129.65777,67.652109 126.34713,69.155680 C 111.76835,75.776420 105.04600,74.032516 101.57069,77.507812 C 100.51786,78.560641 100.89350,79.461052 101.71067,80.354072 C 105.38973,77.752669 112.01329,78.664472 125.55391,72.515200 C 131.70333,69.722349 132.05669,67.513308 132.03964,65.049601 z M 60.696531,71.861960 L 62.422951,74.101632 C 64.791352,75.311463 74.846572,77.625067 79.593829,78.114392 L 79.360529,75.594752 C 73.816694,75.556961 66.907102,73.472618 60.696531,71.861960 z M 40.119473,79.607512 C 38.565476,80.548088 37.568913,81.536279 38.626354,82.593751 C 42.101651,86.069051 59.647211,89.290272 63.122851,92.765632 C 63.275692,92.918462 63.255326,93.078602 63.356151,93.232232 C 64.435614,91.947532 65.165573,90.655612 63.916071,89.406112 C 60.566937,86.057251 44.419333,82.939151 40.119473,79.607512 z M 117.10845,87.866332 C 115.91482,88.486362 114.95058,89.360392 115.14873,90.945882 C 120.60578,92.929232 129.04159,94.448192 130.03326,90.479292 C 130.22625,89.707762 130.12018,89.057262 129.84662,88.519572 C 127.48913,90.422432 121.65703,89.359992 117.10845,87.866332 z M 108.52303,89.546092 C 101.68539,95.627832 94.291059,96.265772 91.165507,99.391352 C 89.908251,100.64860 90.617583,101.33525 91.632107,101.95765 C 95.620160,99.286262 103.30109,98.498152 110.01615,90.945882 C 109.67197,90.410612 109.01729,90.016842 108.52303,89.546092 z M 112.39580,95.705212 C 110.96059,97.100002 111.14367,99.677592 112.81574,100.93113 C 114.79992,102.41933 117.28328,101.45675 118.27495,100.46453 C 118.78497,99.954792 118.71737,98.812252 117.90167,97.664932 C 116.69163,98.288052 115.10107,98.690742 113.60896,97.571612 C 112.97842,97.098902 112.61381,96.431702 112.39580,95.705212 z M 57.383671,95.891852 C 57.217332,96.012982 57.251127,96.035572 57.057051,96.171812 C 54.367330,98.060502 52.193078,99.793612 49.124852,98.271512 C 48.483305,97.953222 48.223383,97.480502 48.005012,97.011692 C 46.640740,98.694072 46.307086,100.62659 48.331632,101.63103 C 51.399861,103.15311 53.574111,101.42002 56.263832,99.531332 C 58.953868,97.642932 58.884645,97.273622 58.690151,96.545092 C 58.562389,96.579162 57.924006,96.197372 57.383671,95.891852 z M 60.043291,99.577992 C 58.963831,100.86268 58.233858,102.15460 59.483371,103.40410 C 62.958684,106.87946 74.615872,102.55126 72.501510,111.61626 C 77.194670,116.30942 86.988927,114.06974 93.545171,109.37658 C 94.825402,108.09634 94.082889,107.39241 93.031907,106.76362 C 86.534250,110.87138 77.700406,112.66245 73.294729,108.25674 C 75.409092,99.191752 63.751901,103.51996 60.276591,100.04459 C 60.123748,99.891752 60.144117,99.731612 60.043291,99.577992 z " + id="path1269" + sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc" + transform="matrix(1.220396,0.000000,0.000000,1.220396,-20.19444,7.307033)" /> + <path + style="fill:url(#linearGradient1272);fill-opacity:0.75000000;fill-rule:evenodd;stroke-width:1.0000000pt;" + d="M 99.186075,30.398236 L 124.44205,57.534989 C 124.44205,57.534989 131.96512,65.595411 126.05415,68.819579 C 120.14317,72.043747 102.14157,76.880001 102.14157,76.880001 L 69.422516,29.764596 L 99.186075,30.398236 z " + id="path1271" + sodipodi:nodetypes="cccccc" + transform="matrix(1.220396,0.000000,0.000000,1.220396,-20.19444,7.307033)" /> + <path + style="fill:url(#linearGradient1277);fill-opacity:0.75000000;fill-rule:evenodd;stroke-width:1.0000000pt;" + d="M 63.243695,31.078988 L 42.657304,54.706552 C 42.657304,54.706552 34.703472,61.724642 39.850070,64.531876 C 44.996668,67.339111 78.917426,78.801990 102.77892,74.591136 L 75.408382,33.652287 L 63.243695,31.078988 z " + id="path1276" + sodipodi:nodetypes="cccccc" + transform="matrix(1.401650,0.000000,0.000000,1.401650,-35.26049,-4.181157)" /> + <path + style="fill:url(#linearGradient1318);fill-rule:evenodd;stroke-width:1.0000000pt;" + d="M 79.571944,14.847933 C 83.032254,14.873506 97.565101,29.009298 101.72458,31.925491 C 105.88407,34.841684 104.90857,36.754316 104.90857,36.936622 L 93.243582,31.290763 L 92.077082,40.109502 L 85.638002,37.076602 L 75.746078,43.702321 L 71.919958,30.637523 L 67.067318,42.069221 L 53.395938,43.422361 L 53.535918,37.356562 L 73.730570,17.473723 C 75.195738,16.031178 76.175081,14.822360 79.571944,14.847933 z " + id="path1317" + sodipodi:nodetypes="ccccccccccczz" + transform="matrix(1.220396,0.000000,0.000000,1.220396,-20.19444,7.307033)" /> + </g> + </g> + <g + inkscape:groupmode="layer" + id="layer2" + inkscape:label="Title"> + <text + sodipodi:linespacing="100%" + x="45" + y="70" + style="font-size:48.000000;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1.0000000;stroke:none;stroke-width:3.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;display:block;font-family:Arial;text-anchor:start;writing-mode:lr;font-stretch:normal;font-variant:normal;line-height:100%" + id="text48"><tspan + x="45.000000" + y="70.000000" + sodipodi:role="line" + id="tspan1">Problems</tspan></text> + <text + xml:space="preserve" + style="font-size:18.000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#000000;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Sans;text-anchor:start;writing-mode:lr;line-height:120%" + x="36.612305" + y="176.33221" + id="text80" + sodipodi:linespacing="120%"><tspan + id="tspan16" + sodipodi:role="line" + y="176.33221" + x="36.612305">* Inkscape seems to want to have "run modes"</tspan><tspan + id="tspan17" + sodipodi:role="line" + y="197.93222" + x="36.612305"> + editor, viewer, cmdline, more...?</tspan><tspan + id="tspan18" + sodipodi:role="line" + y="219.53222" + x="36.612305"> + If we needed a new mode, it would be hard to fit in except as hacks</tspan><tspan + id="tspan19" + sodipodi:role="line" + y="241.13222" + x="36.612305"> + Currently, these modes implemented as exceptions, but it's buggy</tspan><tspan + id="tspan20" + sodipodi:role="line" + y="262.73222" + x="36.612305"> - popping up warning dialogs in cmdline mode</tspan><tspan + id="tspan21" + sodipodi:role="line" + y="284.33222" + x="36.612305"> - inconsistent URI / UTF handling</tspan><tspan + id="tspan22" + sodipodi:role="line" + y="305.93222" + x="36.612305"> - duplication of code for different modes may lead to divergences</tspan><tspan + id="tspan23" + sodipodi:role="line" + y="327.53222" + x="36.612305"></tspan><tspan + id="tspan24" + sodipodi:role="line" + y="349.13222" + x="36.612305">* main() has too much code in it (>750 lines)</tspan><tspan + id="tspan25" + sodipodi:role="line" + y="370.73222" + x="36.612305"> + cmdline handling code needs broken out separately</tspan><tspan + id="tspan26" + sodipodi:role="line" + y="392.33222" + x="36.612305"></tspan><tspan + id="tspan27" + sodipodi:role="line" + y="413.93222" + x="36.612305">* winmain() is not well integrated (Q's listed in makefiles)</tspan><tspan + id="tspan28" + sodipodi:role="line" + y="435.53222" + x="36.612305"></tspan><tspan + id="tspan29" + sodipodi:role="line" + y="457.13223" + x="36.612305">* Current architecture is C / Gtk+; we need C++ / Gtkmm</tspan></text> + </g> + <g + inkscape:groupmode="layer" + id="layer3" + inkscape:label="Drawing Area" /> +</svg> diff --git a/doc/NewAppArchitecture/08-inkscape-gtkmm.svg b/doc/NewAppArchitecture/08-inkscape-gtkmm.svg new file mode 100644 index 000000000..d1c86db8d --- /dev/null +++ b/doc/NewAppArchitecture/08-inkscape-gtkmm.svg @@ -0,0 +1,472 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> +<svg + xmlns:xml="http://www.w3.org/XML/1998/namespace" + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://web.resource.org/cc/" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + id="svg586" + sodipodi:version="0.32" + inkscape:version="0.40+cvs" + width="640pt" + height="480pt" + sodipodi:docname="08-inkscape-gtkmm.svg" + sodipodi:docbase="/home/bryce/src/Inkscape/InkAppPresent"> + <defs + id="defs588"> + <marker + inkscape:stockid="TriangleOutL" + orient="auto" + refY="0.0" + refX="0.0" + id="TriangleOutL" + style="overflow:visible;"> + <path + sodipodi:nodetypes="cccc" + id="path2817" + d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z " + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" + transform="scale(0.8)" /> + </marker> + <marker + inkscape:stockid="TriangleInL" + orient="auto" + refY="0.0" + refX="0.0" + id="TriangleInL" + style="overflow:visible;"> + <path + sodipodi:nodetypes="cccc" + id="path2823" + d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z " + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" + transform="scale(-0.8)" /> + </marker> + <marker + inkscape:stockid="Arrow2L" + orient="auto" + refY="0.0" + refX="0.0" + id="Arrow2L" + style="overflow:visible;"> + <path + sodipodi:nodetypes="cccc" + id="path2863" + style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;" + d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " + transform="scale(1.1) translate(-5,0)" /> + </marker> + <linearGradient + id="linearGradient2570"> + <stop + style="stop-color:#000000;stop-opacity:1.0000000;" + offset="0.0000000" + id="stop2571" /> + <stop + style="stop-color:#000000;stop-opacity:0.62745100;" + offset="0.58504134" + id="stop2572" /> + <stop + style="stop-color:#ffffff;stop-opacity:0.0000000;" + offset="1.0000000" + id="stop2573" /> + </linearGradient> + <linearGradient + xlink:href="#linearGradient1218" + id="linearGradient1322" + x1="0.50352114" + y1="0.097472921" + x2="0.27112675" + y2="0.98555958" /> + <linearGradient + xlink:href="#linearGradient1273" + id="linearGradient1318" + x1="0.50704223" + y1="0.27741936" + x2="-0.17253521" + y2="0.99354839" /> + <linearGradient + xlink:href="#linearGradient1222" + id="linearGradient1307" + x1="0.45376351" + y1="1.9347328" + x2="0.41986585" + y2="0.12454049" + gradientTransform="scale(1.004208,0.995809)" /> + <linearGradient + xlink:href="#linearGradient1222" + id="linearGradient1306" + x1="0.45009527" + y1="1.9667202" + x2="0.41548476" + y2="0.11846013" + gradientTransform="scale(1.006361,0.993679)" /> + <linearGradient + xlink:href="#linearGradient1222" + id="linearGradient1305" + x1="0.45839140" + y1="1.8676205" + x2="0.42603236" + y2="0.13959341" + gradientTransform="scale(1.002016,0.997989)" /> + <linearGradient + xlink:href="#linearGradient1273" + id="linearGradient1277" + x1="-0.36619717" + y1="1.5228426" + x2="0.36971831" + y2="0.80203044" /> + <linearGradient + xlink:href="#linearGradient1273" + id="linearGradient1272" + x1="1.0739436" + y1="0.23580793" + x2="0.53521127" + y2="0.55458528" /> + <linearGradient + xlink:href="#linearGradient1222" + id="linearGradient1270" /> + <linearGradient + xlink:href="#linearGradient1323" + id="linearGradient1231" + x1="0.00000000" + y1="0.50000000" + x2="1.0000000" + y2="0.50000000" /> + <linearGradient + xlink:href="#linearGradient1222" + id="linearGradient1221" + x1="-0.96478873" + y1="2.1597939" + x2="0.42605633" + y2="0.24742271" /> + <linearGradient + id="linearGradient1218"> + <stop + style="stop-color:#000000;stop-opacity:1.0000000;" + offset="0.00000000" + id="stop1219" /> + <stop + style="stop-color:#323232;stop-opacity:1.0000000;" + offset="0.073255815" + id="stop1321" /> + <stop + style="stop-color:#000000;stop-opacity:1.0000000;" + offset="0.65260679" + id="stop1320" /> + <stop + style="stop-color:#fff;stop-opacity:1;" + offset="1" + id="stop1220" /> + </linearGradient> + <linearGradient + id="linearGradient1222"> + <stop + style="stop-color:#0081ac;stop-opacity:1.0000000;" + offset="0.0000000" + id="stop1223" /> + <stop + style="stop-color:#006d91;stop-opacity:0.62745100;" + offset="0.50000000" + id="stop1722" /> + <stop + style="stop-color:#000000;stop-opacity:0.0000000;" + offset="1.0000000" + id="stop1224" /> + </linearGradient> + <linearGradient + id="linearGradient1273"> + <stop + style="stop-color:#ffffff;stop-opacity:1.0000000;" + offset="0.00000000" + id="stop1274" /> + <stop + style="stop-color:#ffffff;stop-opacity:0.00000000;" + offset="1.0000000" + id="stop1275" /> + </linearGradient> + <linearGradient + id="linearGradient1323"> + <stop + style="stop-color:#000000;stop-opacity:0.77685952;" + offset="0.00000000" + id="stop1324" /> + <stop + style="stop-color:#000000;stop-opacity:0.00000000;" + offset="1.0000000" + id="stop1325" /> + </linearGradient> + <radialGradient + xlink:href="#linearGradient826" + id="radialGradient829" + cx="0.49382716" + cy="0.46875000" + r="0.41400504" + fx="0.50617284" + fy="0.15625000" /> + <linearGradient + id="linearGradient826"> + <stop + style="stop-color:#000000;stop-opacity:0.95294118;" + offset="0.00000000" + id="stop827" /> + <stop + style="stop-color:#000000;stop-opacity:0.76078433;" + offset="0.36585677" + id="stop830" /> + <stop + style="stop-color:#000000;stop-opacity:0.52941179;" + offset="0.47107276" + id="stop847" /> + <stop + style="stop-color:#ffffff;stop-opacity:0.00000000;" + offset="1.0000000" + id="stop828" /> + </linearGradient> + <linearGradient + xlink:href="#linearGradient909" + id="linearGradient907" + x1="0.50000000" + y1="0.66667551" + x2="0.50000000" + y2="-1.7333326" /> + <linearGradient + id="linearGradient909"> + <stop + style="stop-color:#000000;stop-opacity:0.00000000;" + offset="0.00000000" + id="stop910" /> + <stop + style="stop-color:#000000;stop-opacity:0.17000000;" + offset="1.0000000" + id="stop913" /> + </linearGradient> + <linearGradient + xlink:href="#linearGradient1222" + id="linearGradient1309" /> + <linearGradient + xlink:href="#linearGradient2570" + id="linearGradient1308" + x1="0.0000000" + y1="0.50000000" + x2="1.0000000" + y2="0.50000000" /> + </defs> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="1.0000000" + inkscape:cx="408.65425" + inkscape:cy="312.38098" + inkscape:window-width="973" + inkscape:window-height="820" + inkscape:window-x="293" + inkscape:window-y="105" + showguides="true" + inkscape:guide-bbox="true" + inkscape:current-layer="layer2" /> + <metadata + id="metadata33"> + <rdf:RDF + id="RDF34"> + <cc:Work + rdf:about="" + id="Work35"> + <dc:format + id="format36">image/svg+xml</dc:format> + <dc:type + id="type38" + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + </cc:Work> + </rdf:RDF> + </metadata> + <g + inkscape:groupmode="layer" + id="layer1" + inkscape:label="Background" + style="display:block"> + <rect + style="font-size:12.000000;fill:url(#linearGradient1309);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:3.0000000pt;" + id="topbluebox" + width="800.00000" + height="112.50000" + x="0.0000000" + y="1.7763568e-15" /> + <path + style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:url(#linearGradient1308);stroke-width:4.9844480;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;" + d="M -0.034245957,110.20928 L 797.51553,110.00778" + id="path654" + sodipodi:nodetypes="cc" /> + <g + id="g1085" + transform="translate(646.2792,-9.754791)"> + <g + id="g1394" + transform="matrix(0.875802,0.000000,0.000000,0.869278,1.048583,-7.965682)"> + <path + sodipodi:type="arc" + id="path898" + sodipodi:cx="300.00000" + sodipodi:cy="300.00000" + sodipodi:rx="300.00000" + sodipodi:ry="300.00000" + d="M 600.00000 300.00000 A 300.00000 300.00000 0 1 0 0.0000000,300.00000 A 300.00000 300.00000 0 1 0 600.00000 300.00000 z" + style="opacity:0.69398910;fill:url(#radialGradient829);stroke-width:4.4309568;stroke-dasharray:17.723827 17.723827 ;stroke-dashoffset:0.0000000;" + transform="matrix(0.394071,0.000000,0.000000,8.155385e-2,-31.69751,94.58860)" /> + <path + sodipodi:type="arc" + id="ball1" + sodipodi:cx="300.00000" + sodipodi:cy="300.00000" + sodipodi:rx="300.00000" + sodipodi:ry="300.00000" + d="M 600.00000 300.00000 A 300.00000 300.00000 0 1 0 0.0000000,300.00000 A 300.00000 300.00000 0 1 0 600.00000 300.00000 z" + style="fill:url(#radialGradient829);stroke-width:4.4309568;stroke-dasharray:17.723827 17.723827 ;stroke-dashoffset:0.0000000;" + transform="matrix(0.280658,0.000000,0.000000,0.148676,4.082687,91.98483)" /> + </g> + <g + id="g1310" + transform="matrix(1.822197,0.000000,0.000000,1.662749,-180.0082,12.26653)" + style="fill:url(#linearGradient1221);"> + <path + style="fill-opacity:0.074380167;fill-rule:evenodd;stroke-width:1.0000000pt;" + d="M 139.27138,11.077118 C 137.22042,11.077119 135.15548,11.849270 133.58388,13.420868 L 105.67763,41.358368 C 104.13725,42.898711 103.33325,44.910828 103.30263,46.920868 C 103.30220,46.954601 103.30263,47.012134 103.30263,47.045868 L 103.36513,47.045868 C 103.89976,49.079999 117.69889,51.660911 119.24013,53.202118 C 121.56768,55.529685 110.31886,57.249538 112.64638,59.577118 C 114.97392,61.904658 126.72486,64.062038 129.05263,66.389620 C 131.38019,68.717170 124.28755,71.187070 126.61513,73.514620 C 128.94268,75.842201 136.74995,72.943440 135.33388,79.014621 C 138.47707,82.157811 145.03666,80.657811 149.42763,77.514621 C 151.75518,75.187070 144.97506,75.404670 147.30263,73.077120 C 149.63018,70.749540 155.50836,70.738600 160.45888,65.170868 C 158.46624,62.071818 151.94381,60.748438 154.27138,58.420868 C 156.59893,56.093323 161.10115,57.261288 170.86513,52.827118 C 175.63150,50.662408 175.25838,49.039285 175.24013,47.045868 C 175.23975,47.003922 175.24013,46.963136 175.24013,46.920868 L 175.20888,46.920868 C 175.17827,44.910830 174.40547,42.898714 172.86513,41.358368 L 144.92763,13.420868 C 143.35604,11.849272 141.32234,11.077118 139.27138,11.077118 z M 139.02138,14.702118 C 139.93315,14.725869 140.67125,15.422422 142.11513,16.358368 L 155.30263,26.139618 C 155.44708,26.233292 155.58252,26.320552 155.70888,26.420868 C 155.83525,26.521171 155.97562,26.627132 156.08388,26.733368 C 156.19214,26.839410 156.27479,26.966073 156.36513,27.077118 C 156.45527,27.188145 156.54310,27.305955 156.61513,27.420868 C 156.68737,27.535969 156.74853,27.646585 156.80263,27.764618 C 156.85677,27.882866 156.89163,27.987920 156.92763,28.108368 C 156.96385,28.228632 157.00329,28.361823 157.02138,28.483368 C 157.03948,28.605130 157.05263,28.736271 157.05263,28.858368 L 149.24013,25.077118 L 148.45888,30.983368 L 144.14638,28.952118 L 137.52138,33.389618 L 134.95888,24.639618 L 131.70888,32.295868 L 122.55263,33.202118 L 122.64638,29.139618 C 122.64638,28.162533 127.93872,21.330614 131.14638,19.702118 L 137.02138,15.483368 C 137.88771,14.921800 138.47431,14.687867 139.02138,14.702118 z M 126.89638,54.639618 C 131.05584,55.718333 135.68346,57.114312 139.39638,57.139618 L 139.55263,58.827118 C 136.37321,58.499388 129.63884,56.949888 128.05263,56.139618 L 126.89638,54.639618 z M 170.24013,62.045868 C 169.60518,62.025518 169.00430,62.089178 168.55263,62.202118 C 167.70107,62.414898 163.56419,62.512928 163.89638,65.170868 C 167.55118,66.499190 173.20097,67.516500 173.86513,64.858368 C 174.36366,62.865308 172.14497,62.106908 170.24013,62.045868 z M 122.45888,67.452120 C 121.88389,67.385110 121.32136,67.455980 120.77138,67.733370 C 118.57203,68.842760 117.09168,71.307720 119.14638,72.327120 C 121.20129,73.346520 122.65747,72.185800 124.45888,70.920870 C 126.26050,69.656140 126.21414,69.408800 126.08388,68.920870 C 125.83449,68.987380 124.18386,67.653150 122.45888,67.452120 z M 162.64638,67.889620 C 160.98514,68.553960 161.00465,70.861860 162.33388,71.858370 C 163.66277,72.855080 165.32597,72.210400 165.99013,71.545870 C 166.65484,70.881530 165.96848,68.553970 162.64638,67.889620 z " + id="path1278" /> + <path + style="fill-opacity:0.074380167;fill-rule:evenodd;stroke-width:1.0000000pt;" + d="M 137.96875,10.718750 C 134.70402,11.060845 132.45341,13.855395 130.15790,15.940974 C 121.77155,24.503910 113.19525,32.911552 104.88478,41.529122 C 103.53165,43.257666 102.98133,45.293623 102.71875,47.437500 C 107.43946,50.886242 113.69835,50.905815 118.71875,53.781250 C 117.30484,56.014138 113.86394,55.927723 112.30534,58.153586 C 110.95047,59.066432 112.87438,60.562599 113.88390,60.907202 C 118.07998,63.025863 122.80956,63.838835 126.97834,66.068813 C 129.14039,66.223477 128.99465,68.397410 127.55968,69.465540 C 126.42313,70.610466 124.66557,72.512182 126.40386,73.938766 C 128.52893,75.415674 131.34635,75.011355 133.71875,75.875000 C 135.38587,76.789177 134.20286,78.442002 135.34375,79.593750 C 138.20878,81.840481 142.17613,81.444087 145.36980,80.162063 C 147.01184,79.679133 148.50293,78.612108 149.93750,77.781250 C 151.32137,76.168445 149.16317,75.014407 147.93750,74.343750 C 147.13207,73.007556 149.81258,72.471472 150.72621,71.835396 C 154.22932,70.415525 157.63139,68.772275 160.32323,66.076023 C 162.00146,65.040055 159.53684,63.566475 158.75000,62.750000 C 157.29555,61.671425 155.38495,61.005736 154.46875,59.343750 C 156.83166,56.736844 160.77991,57.222943 163.82692,55.886662 C 167.48614,54.956060 170.96688,53.327613 174.19128,51.441061 C 176.31894,49.855420 175.75931,47.094289 175.34438,44.858149 C 173.82714,40.146659 169.32671,37.346121 166.14614,33.782162 C 159.00255,26.737555 151.96598,19.558149 144.75603,12.597114 C 142.83187,11.117125 140.40461,10.324926 137.96875,10.718750 z M 140.15625,15.718750 C 145.33185,19.512142 150.51925,23.291773 155.68750,27.093750 C 155.79568,28.128330 152.96647,25.994412 151.88519,25.704486 C 150.56126,25.310550 148.23232,22.990502 148.60160,25.735802 C 148.03383,26.854222 148.89364,30.614243 147.25375,29.748789 C 145.77079,28.952048 143.79956,27.767016 142.39696,29.393778 C 140.87922,30.408352 139.36149,31.422926 137.84375,32.437500 C 136.92659,29.270978 136.01364,26.103230 135.09375,22.937500 C 133.83186,25.869891 132.59553,28.813265 131.34375,31.750000 C 128.60417,32.020833 125.86458,32.291667 123.12500,32.562500 C 122.93577,30.531586 123.37937,28.492090 124.78964,27.051727 C 127.83705,22.165897 132.91432,19.181067 137.48762,15.928279 C 138.38080,15.399443 139.18306,15.465846 140.15625,15.718750 z M 132.06250,56.562500 C 134.25968,57.131800 136.54653,57.244809 138.78125,57.625000 C 137.93164,58.641801 135.83490,57.320885 134.50134,57.277133 C 132.75919,56.896272 131.01731,56.527068 129.37500,55.812500 C 130.27083,56.062500 131.16667,56.312500 132.06250,56.562500 z M 168.50000,61.625000 C 166.47980,62.095190 163.59992,62.369201 163.34375,64.968750 C 164.00781,65.934196 166.11962,66.292948 167.47626,66.551501 C 169.60910,66.891924 172.52463,67.659468 174.01886,65.672524 C 175.29513,63.892929 173.38643,61.628153 171.40540,61.754929 C 170.44376,61.426788 169.48969,61.503021 168.50000,61.625000 z M 120.65625,67.156250 C 119.17864,68.173454 117.17273,69.706513 117.81250,71.750000 C 119.32360,73.943032 122.44871,73.328157 124.17581,71.744685 C 125.31806,71.095411 127.22708,69.849349 126.34375,68.406250 C 124.53029,67.617814 122.70705,66.421404 120.65625,67.156250 z M 162.25000,67.468750 C 160.98536,68.304844 160.47655,70.055902 161.35305,71.321264 C 162.02451,73.004295 164.27223,73.179865 165.64672,72.263080 C 167.48408,71.700360 166.67812,69.347513 165.33731,68.658474 C 164.66189,67.815250 163.12029,67.406310 162.25000,67.468750 z " + id="path1283" /> + <path + style="fill-opacity:0.074380167;fill-rule:evenodd;stroke-width:1.0000000pt;" + d="M 137.09375,12.062500 C 133.45264,13.658306 130.89510,17.054651 128.02763,19.760075 C 120.64992,27.277135 113.11748,34.668181 105.81675,42.244521 C 104.77302,43.583830 104.19848,45.113312 103.93750,46.781250 C 108.02500,49.661848 113.35464,49.814484 117.77247,52.034312 C 119.23732,52.180074 120.83004,53.663696 119.47530,54.914506 C 117.72685,56.714093 114.64707,56.868986 113.18750,58.937500 C 116.98689,61.678185 121.72461,62.314645 125.91888,64.199775 C 127.35246,65.248996 129.93899,65.341959 130.00000,67.531250 C 129.61283,69.469175 127.68115,70.594821 126.84375,72.343750 C 128.66657,74.916318 132.41661,73.526770 134.81763,75.194505 C 136.12150,75.998634 135.76289,77.719238 136.33739,78.786112 C 139.34189,80.984126 143.56705,80.023489 146.59979,78.262860 C 147.57821,77.931235 150.25551,76.737683 148.25234,75.866570 C 146.79311,75.539319 145.57083,73.791727 146.98575,72.676315 C 150.59379,69.928273 155.52636,69.300230 158.75379,65.912819 C 160.44061,64.636839 157.51978,63.512312 156.64603,62.784855 C 155.31686,61.805358 153.02074,60.864770 153.31250,58.906250 C 155.52467,55.836091 159.76350,56.249927 162.98171,54.909139 C 166.64088,54.011598 170.17880,52.442724 173.39619,50.585767 C 175.44759,48.766928 174.40312,45.854433 173.70402,43.674602 C 170.01715,38.505895 164.93468,34.528530 160.60640,29.906454 C 155.05848,24.484276 149.68028,18.831089 144.02714,13.552135 C 142.01313,12.267231 139.68457,11.155741 137.26959,12.030263 L 137.09375,12.062500 z M 139.25000,14.156250 C 144.36849,16.573687 148.44456,20.615673 153.06166,23.857057 C 154.79682,25.417824 157.75256,26.462276 157.65625,29.218750 C 155.98301,29.620934 154.51821,27.909197 152.92283,27.467153 C 151.47889,26.979622 149.05912,24.688826 149.46490,27.619328 C 148.95092,28.676042 149.67609,32.096323 148.30430,31.528870 C 146.86362,30.916675 145.25114,29.742049 143.73062,29.880583 C 141.56112,31.359522 139.38321,32.826259 137.21875,34.312500 C 136.40063,31.654144 135.63994,28.977747 134.84375,26.312500 C 133.78712,28.431959 132.98467,30.961875 131.78125,32.843750 C 128.52084,33.166779 125.26035,33.488957 122.00000,33.812500 C 122.02692,31.439278 121.58820,28.751334 123.45144,26.900643 C 126.38650,21.928911 131.54097,18.937382 135.96875,15.531250 C 137.05500,15.131227 138.17386,14.356070 139.25000,14.156250 z M 126.34375,53.906250 C 130.81931,55.099287 135.33348,56.080112 139.93750,56.625000 C 140.81508,58.380031 139.61654,59.889689 137.75155,59.030564 C 134.35469,58.342143 130.95451,57.411091 127.62500,56.500000 C 127.37596,56.018046 124.72663,53.333015 126.34375,53.906250 z M 168.68750,62.750000 C 167.26725,63.145732 165.19352,63.022642 164.68750,64.750000 C 167.41558,65.272026 170.36127,66.626958 173.03125,65.187500 C 173.94813,63.333514 171.22391,62.807999 169.92452,62.707344 C 169.51218,62.721563 169.09984,62.735781 168.68750,62.750000 z M 120.96875,68.250000 C 119.88102,69.094191 117.71809,71.141191 120.00567,71.867660 C 122.11744,72.377527 123.71955,70.573549 125.28125,69.468750 C 124.17010,68.379529 122.48301,67.967608 120.96875,68.250000 z M 162.25000,68.937500 C 161.26655,70.838341 164.03769,72.707639 165.32625,71.028976 C 165.98639,69.968138 163.10932,68.105539 162.25000,68.937500 z " + id="path1286" /> + <path + style="fill-opacity:0.074380167;fill-rule:evenodd;stroke-width:1.0000000pt;" + d="M 137.50000,12.562500 C 131.56402,15.884438 127.47918,21.513076 122.59316,26.106819 C 117.07494,31.800872 111.33765,37.333066 105.95500,43.127274 C 105.27016,44.232264 103.90274,46.716455 105.88806,47.110513 C 110.48303,49.525949 116.07018,49.897473 120.25000,52.937500 C 121.19557,55.258014 118.31954,56.204644 116.77699,57.135076 C 115.14828,57.646504 113.25757,59.174666 115.98524,59.736007 C 120.51650,62.179113 125.90956,62.812244 130.06250,65.968750 C 131.40440,68.155882 128.87852,70.088345 127.96429,71.816940 C 127.97548,73.606583 130.61198,73.210238 131.85374,73.694589 C 134.00698,73.861384 136.31306,75.067306 136.52629,77.437982 C 137.24770,79.315251 139.82104,79.377347 141.56250,79.375000 C 143.88381,79.081698 145.88731,77.848938 148.00000,76.937500 C 147.89289,75.484280 145.47385,75.343455 145.78125,73.562500 C 147.65028,70.568783 151.46696,69.934698 154.32757,68.211442 C 155.95166,67.507534 157.40819,66.436524 158.50000,65.031250 C 156.69534,62.893495 153.11684,62.207207 152.76893,59.025530 C 153.13476,57.911585 154.90043,56.856141 156.14992,56.314935 C 161.47352,54.305871 167.29666,53.530281 172.18291,50.436255 C 174.75469,49.397100 173.90347,46.181096 173.15013,44.168122 C 170.99740,41.143850 168.08639,38.542958 165.64236,35.681332 C 163.12371,33.093790 160.49665,30.610931 157.93750,28.062500 C 158.99092,29.594714 157.00835,30.333418 155.86310,29.376751 C 153.95887,28.546062 152.06033,27.726589 150.12500,26.968750 C 150.04976,28.633800 149.69671,30.253091 149.34375,31.875000 C 146.94959,32.517021 144.62510,29.359512 142.44997,31.405021 C 140.65579,32.399012 139.25573,34.074138 137.34005,34.698602 C 135.96867,34.449689 136.15225,31.657450 135.44638,30.368996 C 135.03220,27.477998 134.31032,28.114323 133.43720,30.484434 C 132.63691,31.983328 132.29360,34.079093 130.12469,33.576560 C 127.22896,33.863646 124.33317,34.149933 121.43750,34.437500 C 121.45635,31.458390 121.16984,28.094375 123.52595,25.839572 C 126.82257,21.188668 131.69023,18.019711 136.23357,14.793262 C 137.75437,14.087412 139.64327,13.037594 141.05071,14.536711 C 144.77608,17.093755 148.56965,19.491887 152.06250,22.343750 C 149.06655,19.513772 146.25485,16.420638 143.14594,13.751994 C 141.38445,12.871744 139.52020,11.789900 137.50000,12.562500 z M 126.40625,53.343750 C 131.09445,54.266714 135.77718,55.221773 140.46875,56.125000 C 140.66311,57.490600 140.90400,59.768414 138.90019,59.717011 C 134.99279,58.970773 131.04202,57.882901 127.18750,56.875000 C 126.61048,55.955764 124.83534,54.556620 125.40625,53.625000 C 125.73497,53.577157 126.08499,53.292470 126.40625,53.343750 z M 166.53125,63.812500 C 164.90117,64.830649 168.72302,64.879550 169.60036,65.161786 C 170.82454,65.513571 173.80209,64.644903 171.50000,63.593750 C 169.78209,63.217030 168.21140,63.255613 166.53125,63.812500 z M 120.81250,69.187500 C 118.77488,70.497531 120.63987,72.049766 122.29985,70.780747 C 124.22011,70.547064 124.25797,68.584075 122.13849,68.857155 C 121.62590,68.786616 121.20364,68.805690 120.81250,69.187500 z M 162.78125,70.250000 C 165.04372,72.410337 164.50416,68.582957 162.78125,69.787913 C 162.78125,69.883882 162.78125,70.191942 162.78125,70.250000 z " + id="path1295" /> + <path + style="fill-opacity:0.074380167;fill-rule:evenodd;stroke-width:1.0000000pt;" + d="M 137.25000,10.312500 C 134.57328,10.811904 132.67255,13.050780 130.64866,14.715585 C 121.77957,23.451854 113.11785,32.437236 104.37500,41.281250 C 103.17019,43.288146 102.47259,45.456013 102.06250,47.750000 C 105.83476,49.628698 109.64657,51.368815 113.75481,52.377095 C 114.74672,53.000901 118.15181,53.211596 117.03125,54.625000 C 114.87625,55.770623 112.18432,56.545814 111.25000,59.062500 C 113.07397,62.261249 117.13309,62.448994 120.14188,63.972108 C 122.66750,64.970987 125.19313,65.969869 127.71875,66.968750 C 127.79709,69.608591 127.12737,68.724937 125.79671,67.542170 C 123.76150,66.508388 120.74167,65.559916 119.14266,67.799744 C 117.68910,68.685330 116.55779,70.940149 117.66673,72.361712 C 119.74129,74.610002 123.29896,73.558599 125.22361,71.631365 C 125.39044,71.451948 124.94524,74.329263 126.55554,74.625682 C 128.75187,75.888131 131.56113,75.535204 133.75000,76.781250 C 134.17453,78.637203 134.92263,80.738750 137.10053,81.029661 C 140.53970,82.420114 144.41944,81.397273 147.50485,79.584682 C 148.81540,78.872018 151.32795,78.343669 150.75195,76.374975 C 150.70713,75.080531 147.53803,74.300613 149.31250,73.093750 C 153.55943,71.203594 157.91230,69.209830 161.18750,65.843750 C 161.99115,63.731003 159.07145,62.849633 157.93750,61.562500 C 156.57653,60.417748 154.30116,59.195844 157.17010,58.407983 C 162.44672,56.428116 168.30037,55.651561 173.14000,52.536010 C 175.69933,51.724285 176.75286,48.825627 176.01594,46.382200 C 175.99204,43.921497 174.36450,41.884430 172.99509,39.973772 C 168.23708,34.553265 162.73310,29.839073 157.72691,24.648245 C 153.37676,20.454464 149.19589,15.998891 144.74248,11.964991 C 142.49218,10.519398 139.90204,10.047325 137.25000,10.312500 z M 140.40625,16.625000 C 144.38180,19.415210 148.26381,22.371245 152.21875,25.218750 C 151.00059,24.471219 149.71107,24.008458 148.28125,23.906250 C 148.08169,25.616789 147.84012,27.322499 147.62500,29.031250 C 145.77312,28.480352 143.67622,27.363820 142.02088,28.944411 C 140.79579,29.321785 138.71876,32.029330 138.02739,30.946881 C 137.09069,27.714729 136.15797,24.481420 135.21875,21.250000 C 133.79126,24.568262 132.38708,27.896549 130.96875,31.218750 C 128.56250,31.458333 126.15625,31.697917 123.75000,31.937500 C 123.73611,28.504117 126.40867,25.941624 128.50533,23.538181 C 131.60340,20.877921 134.84009,18.280137 138.37100,16.266120 C 139.05687,15.927768 139.72649,16.501380 140.40625,16.625000 z M 165.12500,61.937500 C 163.94994,62.683294 162.04675,64.163789 163.31250,65.625000 C 165.77599,67.237331 168.84980,67.346191 171.68759,67.438839 C 173.79767,67.380039 175.87709,64.882603 174.44068,62.966319 C 173.10190,60.663393 170.05340,61.177216 167.81605,61.201002 C 166.91904,61.446503 166.02202,61.692001 165.12500,61.937500 z M 162.03125,67.031250 C 160.83535,68.000188 160.29043,69.695123 160.76346,71.258236 C 161.16730,73.039050 163.22496,73.494707 164.78719,72.992478 C 167.13879,73.181332 168.09248,69.825149 166.13394,68.653373 C 164.96960,67.668728 163.65541,66.689296 162.03125,67.031250 z " + id="path1300" /> + <path + style="fill-opacity:0.074380167;fill-rule:evenodd;stroke-width:1.0000000pt;" + d="M 136.87500,9.5625000 C 131.65304,11.769127 128.14544,16.384624 124.15881,20.216605 C 117.35142,27.117414 110.49657,33.984328 103.71875,40.906250 C 102.85273,43.332808 101.99819,45.763562 101.12500,48.187500 C 105.93068,50.283305 110.76347,52.276496 115.75000,53.906250 C 115.44333,55.363555 112.99770,55.191635 112.24058,56.587946 C 110.89606,57.445273 110.01695,59.785906 111.89556,60.567820 C 114.86490,63.357428 118.93991,64.363020 122.62500,65.875000 C 119.72774,65.033632 117.80750,68.090788 116.68750,70.250000 C 116.01105,72.950420 119.11437,74.651083 121.43923,74.259441 C 122.88425,74.778519 124.87048,71.894366 125.06555,74.129447 C 127.21708,76.574392 131.35224,75.998123 133.59751,78.288768 C 134.32398,80.302303 135.99246,81.986172 138.23383,82.006618 C 140.25772,82.589257 142.23898,82.314480 144.19142,81.614260 C 146.47188,81.098710 148.64271,79.959926 150.63761,78.824244 C 152.14711,77.754911 151.81527,75.346631 150.43750,74.312500 C 150.23406,72.704926 152.73875,72.682794 153.75639,71.819616 C 156.49819,70.564020 158.90600,68.804050 161.21875,66.906250 C 160.19643,68.376408 159.81043,70.315970 160.38112,71.987759 C 161.34634,74.267655 164.22210,73.656108 166.15625,73.531250 C 168.08949,72.610730 168.83732,69.631414 166.87500,68.343750 C 164.02568,66.581529 166.47357,67.403459 168.27836,67.911665 C 170.51415,68.044548 173.31226,68.747610 174.83495,66.581402 C 176.52328,64.952843 175.46252,62.386049 173.84375,61.125000 C 171.82924,60.052772 169.41179,60.364713 167.22781,60.468857 C 165.26732,60.816302 163.77932,61.981088 162.56250,63.500000 C 161.07416,64.693238 164.27576,66.891706 162.51264,66.451187 C 161.23611,66.670932 162.80138,64.122782 161.27178,63.293106 C 160.27477,61.829766 158.59216,60.917429 157.34375,59.656250 C 163.37320,56.739900 170.41697,55.950383 175.81250,51.750000 C 177.79054,49.403625 176.89111,46.297658 176.31250,43.625000 C 172.71709,37.077334 166.72680,32.381991 161.58112,27.092054 C 156.10204,21.754721 150.65568,16.371055 145.15625,11.062500 C 142.76062,10.099303 140.31053,9.4347862 137.70606,9.5684113 C 137.43820,9.5943662 137.13013,9.4705862 136.87500,9.5625000 z M 144.00000,20.125000 C 145.41913,21.217458 146.85549,22.290152 148.28125,23.375000 C 146.97140,24.376925 147.43473,26.306660 146.96875,27.718750 C 145.01335,27.188020 142.88412,27.117042 141.28969,28.567875 C 140.30436,29.400862 138.46017,30.323076 138.31032,28.383898 C 137.43025,25.351664 136.59470,22.304201 135.68750,19.281250 C 137.21838,18.817776 138.78213,16.344334 140.28250,17.745803 C 141.52167,18.538869 142.76083,19.331934 144.00000,20.125000 z M 130.53125,30.406250 C 128.68750,30.593750 126.84375,30.781250 125.00000,30.968750 C 125.70615,27.451641 128.61722,24.990200 131.09307,22.632488 C 132.44877,21.648343 133.72082,20.531920 135.12500,19.625000 C 133.59375,23.218750 132.06250,26.812500 130.53125,30.406250 z " + id="path1304" /> + </g> + <path + style="fill:url(#linearGradient1322);fill-rule:evenodd;stroke-width:1.0000000pt;" + d="M 78.468542,10.216821 C 75.406213,10.216823 72.323010,11.369737 69.976423,13.716321 L 28.309048,55.430356 C 26.009076,57.730272 24.808608,60.734604 24.762888,63.735835 C 24.762246,63.786202 24.762888,63.872106 24.762888,63.922475 L 24.856208,63.922475 C 25.654475,66.959676 46.258230,70.813287 48.559486,73.114494 C 52.034797,76.589830 35.238960,79.157777 38.714227,82.633131 C 42.189523,86.108431 59.735084,89.329652 63.210724,92.805012 C 66.686050,96.280332 56.095888,99.968182 59.571244,103.44349 C 63.046555,106.91885 74.703745,102.59065 72.589383,111.65565 C 77.282542,116.34881 87.076796,114.10913 93.633042,109.41597 C 97.108353,105.94066 86.984820,106.26556 90.460160,102.79025 C 93.935473,99.314902 102.71230,99.298562 110.10402,90.985272 C 107.12876,86.358021 97.390000,84.382051 100.86534,80.906713 C 104.34065,77.431409 111.06300,79.175321 125.64179,72.554574 C 132.75855,69.322402 132.20143,66.898885 132.17419,63.922475 C 132.17362,63.859844 132.17419,63.798946 132.17419,63.735835 L 132.12753,63.735835 C 132.08182,60.734607 130.92794,57.730277 128.62803,55.430356 L 86.914001,13.716321 C 84.567429,11.369740 81.530871,10.216821 78.468542,10.216821 z M 59.991184,75.260853 C 66.201756,76.871504 73.111347,78.955868 78.655182,78.993653 L 78.888482,81.513293 C 74.141227,81.023952 64.086006,78.710363 61.717604,77.500533 L 59.991184,75.260853 z M 124.70859,86.319271 C 123.76053,86.288891 122.86335,86.383941 122.18895,86.552571 C 120.91747,86.870282 114.74061,87.016652 115.23661,90.985272 C 120.69367,92.968622 129.12948,94.487582 130.12115,90.518672 C 130.86551,87.542792 127.55274,86.410411 124.70859,86.319271 z M 53.365465,94.391452 C 52.506936,94.291402 51.667011,94.397222 50.845825,94.811392 C 47.561932,96.467852 45.351592,100.14833 48.419506,101.67041 C 51.487732,103.19250 53.661984,101.45941 56.351705,99.570712 C 59.041739,97.682322 58.972518,97.313012 58.778024,96.584472 C 58.405655,96.683782 55.941067,94.691622 53.365465,94.391452 z M 113.37021,95.044692 C 110.88978,96.036632 110.91892,99.482602 112.90361,100.97051 C 114.88780,102.45872 117.37116,101.49614 118.36283,100.50391 C 119.35532,99.511972 118.33051,96.036652 113.37021,95.044692 z " + id="path1217" + sodipodi:nodetypes="cccccccccccccccccccccccccccccccccccccccccc" + transform="matrix(1.220396,0.000000,0.000000,1.220396,-20.19444,7.307033)" /> + <path + style="fill:url(#linearGradient1231);fill-rule:evenodd;stroke-width:1.0000000pt;" + d="M 25.748195,58.983802 C 25.069168,60.484820 24.699511,62.088386 24.675015,63.696461 C 24.674375,63.746824 24.675015,63.832738 24.675015,63.883101 L 24.768335,63.883101 C 25.532194,66.789384 44.034284,70.422637 47.678393,72.748500 C 49.285306,71.792649 50.340763,70.791543 49.264832,69.715600 C 46.963576,67.414389 26.359823,63.560781 25.561555,60.523581 L 25.468235,60.523581 C 25.468235,60.473204 25.467595,60.387304 25.468235,60.336942 C 25.475280,59.874537 25.686531,59.443757 25.748195,58.983802 z M 132.03964,65.049601 C 131.22443,66.340254 129.65777,67.652109 126.34713,69.155680 C 111.76835,75.776420 105.04600,74.032516 101.57069,77.507812 C 100.51786,78.560641 100.89350,79.461052 101.71067,80.354072 C 105.38973,77.752669 112.01329,78.664472 125.55391,72.515200 C 131.70333,69.722349 132.05669,67.513308 132.03964,65.049601 z M 60.696531,71.861960 L 62.422951,74.101632 C 64.791352,75.311463 74.846572,77.625067 79.593829,78.114392 L 79.360529,75.594752 C 73.816694,75.556961 66.907102,73.472618 60.696531,71.861960 z M 40.119473,79.607512 C 38.565476,80.548088 37.568913,81.536279 38.626354,82.593751 C 42.101651,86.069051 59.647211,89.290272 63.122851,92.765632 C 63.275692,92.918462 63.255326,93.078602 63.356151,93.232232 C 64.435614,91.947532 65.165573,90.655612 63.916071,89.406112 C 60.566937,86.057251 44.419333,82.939151 40.119473,79.607512 z M 117.10845,87.866332 C 115.91482,88.486362 114.95058,89.360392 115.14873,90.945882 C 120.60578,92.929232 129.04159,94.448192 130.03326,90.479292 C 130.22625,89.707762 130.12018,89.057262 129.84662,88.519572 C 127.48913,90.422432 121.65703,89.359992 117.10845,87.866332 z M 108.52303,89.546092 C 101.68539,95.627832 94.291059,96.265772 91.165507,99.391352 C 89.908251,100.64860 90.617583,101.33525 91.632107,101.95765 C 95.620160,99.286262 103.30109,98.498152 110.01615,90.945882 C 109.67197,90.410612 109.01729,90.016842 108.52303,89.546092 z M 112.39580,95.705212 C 110.96059,97.100002 111.14367,99.677592 112.81574,100.93113 C 114.79992,102.41933 117.28328,101.45675 118.27495,100.46453 C 118.78497,99.954792 118.71737,98.812252 117.90167,97.664932 C 116.69163,98.288052 115.10107,98.690742 113.60896,97.571612 C 112.97842,97.098902 112.61381,96.431702 112.39580,95.705212 z M 57.383671,95.891852 C 57.217332,96.012982 57.251127,96.035572 57.057051,96.171812 C 54.367330,98.060502 52.193078,99.793612 49.124852,98.271512 C 48.483305,97.953222 48.223383,97.480502 48.005012,97.011692 C 46.640740,98.694072 46.307086,100.62659 48.331632,101.63103 C 51.399861,103.15311 53.574111,101.42002 56.263832,99.531332 C 58.953868,97.642932 58.884645,97.273622 58.690151,96.545092 C 58.562389,96.579162 57.924006,96.197372 57.383671,95.891852 z M 60.043291,99.577992 C 58.963831,100.86268 58.233858,102.15460 59.483371,103.40410 C 62.958684,106.87946 74.615872,102.55126 72.501510,111.61626 C 77.194670,116.30942 86.988927,114.06974 93.545171,109.37658 C 94.825402,108.09634 94.082889,107.39241 93.031907,106.76362 C 86.534250,110.87138 77.700406,112.66245 73.294729,108.25674 C 75.409092,99.191752 63.751901,103.51996 60.276591,100.04459 C 60.123748,99.891752 60.144117,99.731612 60.043291,99.577992 z " + id="path1269" + sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc" + transform="matrix(1.220396,0.000000,0.000000,1.220396,-20.19444,7.307033)" /> + <path + style="fill:url(#linearGradient1272);fill-opacity:0.75000000;fill-rule:evenodd;stroke-width:1.0000000pt;" + d="M 99.186075,30.398236 L 124.44205,57.534989 C 124.44205,57.534989 131.96512,65.595411 126.05415,68.819579 C 120.14317,72.043747 102.14157,76.880001 102.14157,76.880001 L 69.422516,29.764596 L 99.186075,30.398236 z " + id="path1271" + sodipodi:nodetypes="cccccc" + transform="matrix(1.220396,0.000000,0.000000,1.220396,-20.19444,7.307033)" /> + <path + style="fill:url(#linearGradient1277);fill-opacity:0.75000000;fill-rule:evenodd;stroke-width:1.0000000pt;" + d="M 63.243695,31.078988 L 42.657304,54.706552 C 42.657304,54.706552 34.703472,61.724642 39.850070,64.531876 C 44.996668,67.339111 78.917426,78.801990 102.77892,74.591136 L 75.408382,33.652287 L 63.243695,31.078988 z " + id="path1276" + sodipodi:nodetypes="cccccc" + transform="matrix(1.401650,0.000000,0.000000,1.401650,-35.26049,-4.181157)" /> + <path + style="fill:url(#linearGradient1318);fill-rule:evenodd;stroke-width:1.0000000pt;" + d="M 79.571944,14.847933 C 83.032254,14.873506 97.565101,29.009298 101.72458,31.925491 C 105.88407,34.841684 104.90857,36.754316 104.90857,36.936622 L 93.243582,31.290763 L 92.077082,40.109502 L 85.638002,37.076602 L 75.746078,43.702321 L 71.919958,30.637523 L 67.067318,42.069221 L 53.395938,43.422361 L 53.535918,37.356562 L 73.730570,17.473723 C 75.195738,16.031178 76.175081,14.822360 79.571944,14.847933 z " + id="path1317" + sodipodi:nodetypes="ccccccccccczz" + transform="matrix(1.220396,0.000000,0.000000,1.220396,-20.19444,7.307033)" /> + </g> + </g> + <g + inkscape:groupmode="layer" + id="layer2" + inkscape:label="Title"> + <text + sodipodi:linespacing="100%" + x="45" + y="70" + style="line-height:100%;font-variant:normal;font-stretch:normal;writing-mode:lr;text-anchor:start;font-family:Arial;display:block;stroke-opacity:1.0000000;stroke-linejoin:miter;stroke-linecap:butt;stroke-width:3.0000000pt;stroke:none;fill-opacity:1.0000000;fill:#ffffff;font-weight:normal;font-style:normal;font-size:48.000000" + id="text48"><tspan + id="tspan1" + sodipodi:role="line" + y="70.000000" + x="45.000000">inkscape_gtkmm Architecture</tspan></text> + <text + transform="translate(-8.333333,-13.09524)" + sodipodi:linespacing="140%" + id="text3025" + y="171.42857" + x="61.904762" + style="line-height:140%;writing-mode:lr;text-anchor:start;font-family:Sans;stroke-opacity:1.0000000;stroke-linejoin:miter;stroke-linecap:butt;stroke-width:1.0000000pt;stroke:none;fill-opacity:1.0000000;fill:#000000;font-stretch:normal;font-weight:normal;font-variant:normal;font-style:normal;font-size:24.000000" + xml:space="preserve"><tspan + id="tspan68" + sodipodi:role="line" + y="171.42857" + x="61.904762">* Very much a work-in-progress</tspan><tspan + id="tspan69" + sodipodi:role="line" + y="205.02857" + x="61.904762"> + top level architecture still incomplete</tspan><tspan + id="tspan70" + sodipodi:role="line" + y="238.62857" + x="61.904762"></tspan><tspan + id="tspan71" + sodipodi:role="line" + y="272.22857" + x="61.904762">* Inkscape::Application</tspan><tspan + id="tspan72" + sodipodi:role="line" + y="305.82857" + x="61.904762"> + Modelled after current Inkscape::Application struct</tspan><tspan + id="tspan73" + sodipodi:role="line" + y="339.42857" + x="61.904762"> + Inkscape::ApplicationImpl allows 'interface hiding'</tspan><tspan + id="tspan74" + sodipodi:role="line" + y="373.02857" + x="61.904762"> - Helps keep *.h include hierarchy trim and clean</tspan><tspan + id="tspan75" + sodipodi:role="line" + y="406.62857" + x="61.904762"> - Subclasses Gtk::Window</tspan><tspan + id="tspan76" + sodipodi:role="line" + y="440.22857" + x="61.904762"> !! problem, only one Window per application</tspan><tspan + id="tspan77" + sodipodi:role="line" + y="473.82857" + x="61.904762"> - No code for creating/managing documents</tspan><tspan + id="tspan78" + sodipodi:role="line" + y="507.42857" + x="61.904762"></tspan><tspan + id="tspan79" + sodipodi:role="line" + y="541.02857" + x="61.904762"></tspan></text> + </g> + <g + inkscape:groupmode="layer" + id="layer3" + inkscape:label="Drawing Area" /> +</svg> diff --git a/doc/NewAppArchitecture/09-future-capabilities.svg b/doc/NewAppArchitecture/09-future-capabilities.svg new file mode 100644 index 000000000..f2ea7183c --- /dev/null +++ b/doc/NewAppArchitecture/09-future-capabilities.svg @@ -0,0 +1,484 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> +<svg + xmlns:xml="http://www.w3.org/XML/1998/namespace" + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://web.resource.org/cc/" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + sodipodi:docbase="/home/bryce/src/Inkscape/InkAppPresent" + sodipodi:docname="09-future-capabilities.svg" + height="480pt" + width="640pt" + inkscape:version="0.40+cvs" + sodipodi:version="0.32" + id="svg586"> + <defs + id="defs588"> + <marker + style="overflow:visible;" + id="TriangleOutL" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="TriangleOutL"> + <path + transform="scale(0.8)" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" + d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z " + id="path2817" + sodipodi:nodetypes="cccc" /> + </marker> + <marker + style="overflow:visible;" + id="TriangleInL" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="TriangleInL"> + <path + transform="scale(-0.8)" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" + d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z " + id="path2823" + sodipodi:nodetypes="cccc" /> + </marker> + <marker + style="overflow:visible;" + id="Arrow2L" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="Arrow2L"> + <path + transform="scale(1.1) translate(-5,0)" + d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " + style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;" + id="path2863" + sodipodi:nodetypes="cccc" /> + </marker> + <linearGradient + id="linearGradient2570"> + <stop + id="stop2571" + offset="0.0000000" + style="stop-color:#000000;stop-opacity:1.0000000;" /> + <stop + id="stop2572" + offset="0.58504134" + style="stop-color:#000000;stop-opacity:0.62745100;" /> + <stop + id="stop2573" + offset="1.0000000" + style="stop-color:#ffffff;stop-opacity:0.0000000;" /> + </linearGradient> + <linearGradient + y2="0.98555958" + x2="0.27112675" + y1="0.097472921" + x1="0.50352114" + id="linearGradient1322" + xlink:href="#linearGradient1218" /> + <linearGradient + y2="0.99354839" + x2="-0.17253521" + y1="0.27741936" + x1="0.50704223" + id="linearGradient1318" + xlink:href="#linearGradient1273" /> + <linearGradient + gradientTransform="scale(1.004208,0.995809)" + y2="0.12454049" + x2="0.41986585" + y1="1.9347328" + x1="0.45376351" + id="linearGradient1307" + xlink:href="#linearGradient1222" /> + <linearGradient + gradientTransform="scale(1.006361,0.993679)" + y2="0.11846013" + x2="0.41548476" + y1="1.9667202" + x1="0.45009527" + id="linearGradient1306" + xlink:href="#linearGradient1222" /> + <linearGradient + gradientTransform="scale(1.002016,0.997989)" + y2="0.13959341" + x2="0.42603236" + y1="1.8676205" + x1="0.45839140" + id="linearGradient1305" + xlink:href="#linearGradient1222" /> + <linearGradient + y2="0.80203044" + x2="0.36971831" + y1="1.5228426" + x1="-0.36619717" + id="linearGradient1277" + xlink:href="#linearGradient1273" /> + <linearGradient + y2="0.55458528" + x2="0.53521127" + y1="0.23580793" + x1="1.0739436" + id="linearGradient1272" + xlink:href="#linearGradient1273" /> + <linearGradient + id="linearGradient1270" + xlink:href="#linearGradient1222" /> + <linearGradient + y2="0.50000000" + x2="1.0000000" + y1="0.50000000" + x1="0.00000000" + id="linearGradient1231" + xlink:href="#linearGradient1323" /> + <linearGradient + y2="0.24742271" + x2="0.42605633" + y1="2.1597939" + x1="-0.96478873" + id="linearGradient1221" + xlink:href="#linearGradient1222" /> + <linearGradient + id="linearGradient1218"> + <stop + id="stop1219" + offset="0.00000000" + style="stop-color:#000000;stop-opacity:1.0000000;" /> + <stop + id="stop1321" + offset="0.073255815" + style="stop-color:#323232;stop-opacity:1.0000000;" /> + <stop + id="stop1320" + offset="0.65260679" + style="stop-color:#000000;stop-opacity:1.0000000;" /> + <stop + id="stop1220" + offset="1" + style="stop-color:#fff;stop-opacity:1;" /> + </linearGradient> + <linearGradient + id="linearGradient1222"> + <stop + id="stop1223" + offset="0.0000000" + style="stop-color:#0081ac;stop-opacity:1.0000000;" /> + <stop + id="stop1722" + offset="0.50000000" + style="stop-color:#006d91;stop-opacity:0.62745100;" /> + <stop + id="stop1224" + offset="1.0000000" + style="stop-color:#000000;stop-opacity:0.0000000;" /> + </linearGradient> + <linearGradient + id="linearGradient1273"> + <stop + id="stop1274" + offset="0.00000000" + style="stop-color:#ffffff;stop-opacity:1.0000000;" /> + <stop + id="stop1275" + offset="1.0000000" + style="stop-color:#ffffff;stop-opacity:0.00000000;" /> + </linearGradient> + <linearGradient + id="linearGradient1323"> + <stop + id="stop1324" + offset="0.00000000" + style="stop-color:#000000;stop-opacity:0.77685952;" /> + <stop + id="stop1325" + offset="1.0000000" + style="stop-color:#000000;stop-opacity:0.00000000;" /> + </linearGradient> + <radialGradient + fy="0.15625000" + fx="0.50617284" + r="0.41400504" + cy="0.46875000" + cx="0.49382716" + id="radialGradient829" + xlink:href="#linearGradient826" /> + <linearGradient + id="linearGradient826"> + <stop + id="stop827" + offset="0.00000000" + style="stop-color:#000000;stop-opacity:0.95294118;" /> + <stop + id="stop830" + offset="0.36585677" + style="stop-color:#000000;stop-opacity:0.76078433;" /> + <stop + id="stop847" + offset="0.47107276" + style="stop-color:#000000;stop-opacity:0.52941179;" /> + <stop + id="stop828" + offset="1.0000000" + style="stop-color:#ffffff;stop-opacity:0.00000000;" /> + </linearGradient> + <linearGradient + y2="-1.7333326" + x2="0.50000000" + y1="0.66667551" + x1="0.50000000" + id="linearGradient907" + xlink:href="#linearGradient909" /> + <linearGradient + id="linearGradient909"> + <stop + id="stop910" + offset="0.00000000" + style="stop-color:#000000;stop-opacity:0.00000000;" /> + <stop + id="stop913" + offset="1.0000000" + style="stop-color:#000000;stop-opacity:0.17000000;" /> + </linearGradient> + <linearGradient + id="linearGradient1309" + xlink:href="#linearGradient1222" /> + <linearGradient + y2="0.50000000" + x2="1.0000000" + y1="0.50000000" + x1="0.0000000" + id="linearGradient1308" + xlink:href="#linearGradient2570" /> + </defs> + <sodipodi:namedview + inkscape:current-layer="layer2" + inkscape:guide-bbox="true" + showguides="true" + inkscape:window-y="105" + inkscape:window-x="293" + inkscape:window-height="820" + inkscape:window-width="973" + inkscape:cy="312.38098" + inkscape:cx="408.65425" + inkscape:zoom="1.0000000" + inkscape:pageshadow="2" + inkscape:pageopacity="0.0" + borderopacity="1.0" + bordercolor="#666666" + pagecolor="#ffffff" + id="base" /> + <metadata + id="metadata33"> + <rdf:RDF + id="RDF34"> + <cc:Work + id="Work35" + rdf:about=""> + <dc:format + id="format36">image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" + id="type38" /> + </cc:Work> + </rdf:RDF> + </metadata> + <g + style="display:block" + inkscape:label="Background" + id="layer1" + inkscape:groupmode="layer"> + <rect + y="1.7763568e-15" + x="0.0000000" + height="112.50000" + width="800.00000" + id="topbluebox" + style="font-size:12.000000;fill:url(#linearGradient1309);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:3.0000000pt;" /> + <path + sodipodi:nodetypes="cc" + id="path654" + d="M -0.034245957,110.20928 L 797.51553,110.00778" + style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:url(#linearGradient1308);stroke-width:4.9844480;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;" /> + <g + transform="translate(646.2792,-9.754791)" + id="g1085"> + <g + transform="matrix(0.875802,0.000000,0.000000,0.869278,1.048583,-7.965682)" + id="g1394"> + <path + transform="matrix(0.394071,0.000000,0.000000,8.155385e-2,-31.69751,94.58860)" + style="opacity:0.69398910;fill:url(#radialGradient829);stroke-width:4.4309568;stroke-dasharray:17.723827 17.723827 ;stroke-dashoffset:0.0000000;" + d="M 600.00000 300.00000 A 300.00000 300.00000 0 1 0 0.0000000,300.00000 A 300.00000 300.00000 0 1 0 600.00000 300.00000 z" + sodipodi:ry="300.00000" + sodipodi:rx="300.00000" + sodipodi:cy="300.00000" + sodipodi:cx="300.00000" + id="path898" + sodipodi:type="arc" /> + <path + transform="matrix(0.280658,0.000000,0.000000,0.148676,4.082687,91.98483)" + style="fill:url(#radialGradient829);stroke-width:4.4309568;stroke-dasharray:17.723827 17.723827 ;stroke-dashoffset:0.0000000;" + d="M 600.00000 300.00000 A 300.00000 300.00000 0 1 0 0.0000000,300.00000 A 300.00000 300.00000 0 1 0 600.00000 300.00000 z" + sodipodi:ry="300.00000" + sodipodi:rx="300.00000" + sodipodi:cy="300.00000" + sodipodi:cx="300.00000" + id="ball1" + sodipodi:type="arc" /> + </g> + <g + style="fill:url(#linearGradient1221);" + transform="matrix(1.822197,0.000000,0.000000,1.662749,-180.0082,12.26653)" + id="g1310"> + <path + id="path1278" + d="M 139.27138,11.077118 C 137.22042,11.077119 135.15548,11.849270 133.58388,13.420868 L 105.67763,41.358368 C 104.13725,42.898711 103.33325,44.910828 103.30263,46.920868 C 103.30220,46.954601 103.30263,47.012134 103.30263,47.045868 L 103.36513,47.045868 C 103.89976,49.079999 117.69889,51.660911 119.24013,53.202118 C 121.56768,55.529685 110.31886,57.249538 112.64638,59.577118 C 114.97392,61.904658 126.72486,64.062038 129.05263,66.389620 C 131.38019,68.717170 124.28755,71.187070 126.61513,73.514620 C 128.94268,75.842201 136.74995,72.943440 135.33388,79.014621 C 138.47707,82.157811 145.03666,80.657811 149.42763,77.514621 C 151.75518,75.187070 144.97506,75.404670 147.30263,73.077120 C 149.63018,70.749540 155.50836,70.738600 160.45888,65.170868 C 158.46624,62.071818 151.94381,60.748438 154.27138,58.420868 C 156.59893,56.093323 161.10115,57.261288 170.86513,52.827118 C 175.63150,50.662408 175.25838,49.039285 175.24013,47.045868 C 175.23975,47.003922 175.24013,46.963136 175.24013,46.920868 L 175.20888,46.920868 C 175.17827,44.910830 174.40547,42.898714 172.86513,41.358368 L 144.92763,13.420868 C 143.35604,11.849272 141.32234,11.077118 139.27138,11.077118 z M 139.02138,14.702118 C 139.93315,14.725869 140.67125,15.422422 142.11513,16.358368 L 155.30263,26.139618 C 155.44708,26.233292 155.58252,26.320552 155.70888,26.420868 C 155.83525,26.521171 155.97562,26.627132 156.08388,26.733368 C 156.19214,26.839410 156.27479,26.966073 156.36513,27.077118 C 156.45527,27.188145 156.54310,27.305955 156.61513,27.420868 C 156.68737,27.535969 156.74853,27.646585 156.80263,27.764618 C 156.85677,27.882866 156.89163,27.987920 156.92763,28.108368 C 156.96385,28.228632 157.00329,28.361823 157.02138,28.483368 C 157.03948,28.605130 157.05263,28.736271 157.05263,28.858368 L 149.24013,25.077118 L 148.45888,30.983368 L 144.14638,28.952118 L 137.52138,33.389618 L 134.95888,24.639618 L 131.70888,32.295868 L 122.55263,33.202118 L 122.64638,29.139618 C 122.64638,28.162533 127.93872,21.330614 131.14638,19.702118 L 137.02138,15.483368 C 137.88771,14.921800 138.47431,14.687867 139.02138,14.702118 z M 126.89638,54.639618 C 131.05584,55.718333 135.68346,57.114312 139.39638,57.139618 L 139.55263,58.827118 C 136.37321,58.499388 129.63884,56.949888 128.05263,56.139618 L 126.89638,54.639618 z M 170.24013,62.045868 C 169.60518,62.025518 169.00430,62.089178 168.55263,62.202118 C 167.70107,62.414898 163.56419,62.512928 163.89638,65.170868 C 167.55118,66.499190 173.20097,67.516500 173.86513,64.858368 C 174.36366,62.865308 172.14497,62.106908 170.24013,62.045868 z M 122.45888,67.452120 C 121.88389,67.385110 121.32136,67.455980 120.77138,67.733370 C 118.57203,68.842760 117.09168,71.307720 119.14638,72.327120 C 121.20129,73.346520 122.65747,72.185800 124.45888,70.920870 C 126.26050,69.656140 126.21414,69.408800 126.08388,68.920870 C 125.83449,68.987380 124.18386,67.653150 122.45888,67.452120 z M 162.64638,67.889620 C 160.98514,68.553960 161.00465,70.861860 162.33388,71.858370 C 163.66277,72.855080 165.32597,72.210400 165.99013,71.545870 C 166.65484,70.881530 165.96848,68.553970 162.64638,67.889620 z " + style="fill-opacity:0.074380167;fill-rule:evenodd;stroke-width:1.0000000pt;" /> + <path + id="path1283" + d="M 137.96875,10.718750 C 134.70402,11.060845 132.45341,13.855395 130.15790,15.940974 C 121.77155,24.503910 113.19525,32.911552 104.88478,41.529122 C 103.53165,43.257666 102.98133,45.293623 102.71875,47.437500 C 107.43946,50.886242 113.69835,50.905815 118.71875,53.781250 C 117.30484,56.014138 113.86394,55.927723 112.30534,58.153586 C 110.95047,59.066432 112.87438,60.562599 113.88390,60.907202 C 118.07998,63.025863 122.80956,63.838835 126.97834,66.068813 C 129.14039,66.223477 128.99465,68.397410 127.55968,69.465540 C 126.42313,70.610466 124.66557,72.512182 126.40386,73.938766 C 128.52893,75.415674 131.34635,75.011355 133.71875,75.875000 C 135.38587,76.789177 134.20286,78.442002 135.34375,79.593750 C 138.20878,81.840481 142.17613,81.444087 145.36980,80.162063 C 147.01184,79.679133 148.50293,78.612108 149.93750,77.781250 C 151.32137,76.168445 149.16317,75.014407 147.93750,74.343750 C 147.13207,73.007556 149.81258,72.471472 150.72621,71.835396 C 154.22932,70.415525 157.63139,68.772275 160.32323,66.076023 C 162.00146,65.040055 159.53684,63.566475 158.75000,62.750000 C 157.29555,61.671425 155.38495,61.005736 154.46875,59.343750 C 156.83166,56.736844 160.77991,57.222943 163.82692,55.886662 C 167.48614,54.956060 170.96688,53.327613 174.19128,51.441061 C 176.31894,49.855420 175.75931,47.094289 175.34438,44.858149 C 173.82714,40.146659 169.32671,37.346121 166.14614,33.782162 C 159.00255,26.737555 151.96598,19.558149 144.75603,12.597114 C 142.83187,11.117125 140.40461,10.324926 137.96875,10.718750 z M 140.15625,15.718750 C 145.33185,19.512142 150.51925,23.291773 155.68750,27.093750 C 155.79568,28.128330 152.96647,25.994412 151.88519,25.704486 C 150.56126,25.310550 148.23232,22.990502 148.60160,25.735802 C 148.03383,26.854222 148.89364,30.614243 147.25375,29.748789 C 145.77079,28.952048 143.79956,27.767016 142.39696,29.393778 C 140.87922,30.408352 139.36149,31.422926 137.84375,32.437500 C 136.92659,29.270978 136.01364,26.103230 135.09375,22.937500 C 133.83186,25.869891 132.59553,28.813265 131.34375,31.750000 C 128.60417,32.020833 125.86458,32.291667 123.12500,32.562500 C 122.93577,30.531586 123.37937,28.492090 124.78964,27.051727 C 127.83705,22.165897 132.91432,19.181067 137.48762,15.928279 C 138.38080,15.399443 139.18306,15.465846 140.15625,15.718750 z M 132.06250,56.562500 C 134.25968,57.131800 136.54653,57.244809 138.78125,57.625000 C 137.93164,58.641801 135.83490,57.320885 134.50134,57.277133 C 132.75919,56.896272 131.01731,56.527068 129.37500,55.812500 C 130.27083,56.062500 131.16667,56.312500 132.06250,56.562500 z M 168.50000,61.625000 C 166.47980,62.095190 163.59992,62.369201 163.34375,64.968750 C 164.00781,65.934196 166.11962,66.292948 167.47626,66.551501 C 169.60910,66.891924 172.52463,67.659468 174.01886,65.672524 C 175.29513,63.892929 173.38643,61.628153 171.40540,61.754929 C 170.44376,61.426788 169.48969,61.503021 168.50000,61.625000 z M 120.65625,67.156250 C 119.17864,68.173454 117.17273,69.706513 117.81250,71.750000 C 119.32360,73.943032 122.44871,73.328157 124.17581,71.744685 C 125.31806,71.095411 127.22708,69.849349 126.34375,68.406250 C 124.53029,67.617814 122.70705,66.421404 120.65625,67.156250 z M 162.25000,67.468750 C 160.98536,68.304844 160.47655,70.055902 161.35305,71.321264 C 162.02451,73.004295 164.27223,73.179865 165.64672,72.263080 C 167.48408,71.700360 166.67812,69.347513 165.33731,68.658474 C 164.66189,67.815250 163.12029,67.406310 162.25000,67.468750 z " + style="fill-opacity:0.074380167;fill-rule:evenodd;stroke-width:1.0000000pt;" /> + <path + id="path1286" + d="M 137.09375,12.062500 C 133.45264,13.658306 130.89510,17.054651 128.02763,19.760075 C 120.64992,27.277135 113.11748,34.668181 105.81675,42.244521 C 104.77302,43.583830 104.19848,45.113312 103.93750,46.781250 C 108.02500,49.661848 113.35464,49.814484 117.77247,52.034312 C 119.23732,52.180074 120.83004,53.663696 119.47530,54.914506 C 117.72685,56.714093 114.64707,56.868986 113.18750,58.937500 C 116.98689,61.678185 121.72461,62.314645 125.91888,64.199775 C 127.35246,65.248996 129.93899,65.341959 130.00000,67.531250 C 129.61283,69.469175 127.68115,70.594821 126.84375,72.343750 C 128.66657,74.916318 132.41661,73.526770 134.81763,75.194505 C 136.12150,75.998634 135.76289,77.719238 136.33739,78.786112 C 139.34189,80.984126 143.56705,80.023489 146.59979,78.262860 C 147.57821,77.931235 150.25551,76.737683 148.25234,75.866570 C 146.79311,75.539319 145.57083,73.791727 146.98575,72.676315 C 150.59379,69.928273 155.52636,69.300230 158.75379,65.912819 C 160.44061,64.636839 157.51978,63.512312 156.64603,62.784855 C 155.31686,61.805358 153.02074,60.864770 153.31250,58.906250 C 155.52467,55.836091 159.76350,56.249927 162.98171,54.909139 C 166.64088,54.011598 170.17880,52.442724 173.39619,50.585767 C 175.44759,48.766928 174.40312,45.854433 173.70402,43.674602 C 170.01715,38.505895 164.93468,34.528530 160.60640,29.906454 C 155.05848,24.484276 149.68028,18.831089 144.02714,13.552135 C 142.01313,12.267231 139.68457,11.155741 137.26959,12.030263 L 137.09375,12.062500 z M 139.25000,14.156250 C 144.36849,16.573687 148.44456,20.615673 153.06166,23.857057 C 154.79682,25.417824 157.75256,26.462276 157.65625,29.218750 C 155.98301,29.620934 154.51821,27.909197 152.92283,27.467153 C 151.47889,26.979622 149.05912,24.688826 149.46490,27.619328 C 148.95092,28.676042 149.67609,32.096323 148.30430,31.528870 C 146.86362,30.916675 145.25114,29.742049 143.73062,29.880583 C 141.56112,31.359522 139.38321,32.826259 137.21875,34.312500 C 136.40063,31.654144 135.63994,28.977747 134.84375,26.312500 C 133.78712,28.431959 132.98467,30.961875 131.78125,32.843750 C 128.52084,33.166779 125.26035,33.488957 122.00000,33.812500 C 122.02692,31.439278 121.58820,28.751334 123.45144,26.900643 C 126.38650,21.928911 131.54097,18.937382 135.96875,15.531250 C 137.05500,15.131227 138.17386,14.356070 139.25000,14.156250 z M 126.34375,53.906250 C 130.81931,55.099287 135.33348,56.080112 139.93750,56.625000 C 140.81508,58.380031 139.61654,59.889689 137.75155,59.030564 C 134.35469,58.342143 130.95451,57.411091 127.62500,56.500000 C 127.37596,56.018046 124.72663,53.333015 126.34375,53.906250 z M 168.68750,62.750000 C 167.26725,63.145732 165.19352,63.022642 164.68750,64.750000 C 167.41558,65.272026 170.36127,66.626958 173.03125,65.187500 C 173.94813,63.333514 171.22391,62.807999 169.92452,62.707344 C 169.51218,62.721563 169.09984,62.735781 168.68750,62.750000 z M 120.96875,68.250000 C 119.88102,69.094191 117.71809,71.141191 120.00567,71.867660 C 122.11744,72.377527 123.71955,70.573549 125.28125,69.468750 C 124.17010,68.379529 122.48301,67.967608 120.96875,68.250000 z M 162.25000,68.937500 C 161.26655,70.838341 164.03769,72.707639 165.32625,71.028976 C 165.98639,69.968138 163.10932,68.105539 162.25000,68.937500 z " + style="fill-opacity:0.074380167;fill-rule:evenodd;stroke-width:1.0000000pt;" /> + <path + id="path1295" + d="M 137.50000,12.562500 C 131.56402,15.884438 127.47918,21.513076 122.59316,26.106819 C 117.07494,31.800872 111.33765,37.333066 105.95500,43.127274 C 105.27016,44.232264 103.90274,46.716455 105.88806,47.110513 C 110.48303,49.525949 116.07018,49.897473 120.25000,52.937500 C 121.19557,55.258014 118.31954,56.204644 116.77699,57.135076 C 115.14828,57.646504 113.25757,59.174666 115.98524,59.736007 C 120.51650,62.179113 125.90956,62.812244 130.06250,65.968750 C 131.40440,68.155882 128.87852,70.088345 127.96429,71.816940 C 127.97548,73.606583 130.61198,73.210238 131.85374,73.694589 C 134.00698,73.861384 136.31306,75.067306 136.52629,77.437982 C 137.24770,79.315251 139.82104,79.377347 141.56250,79.375000 C 143.88381,79.081698 145.88731,77.848938 148.00000,76.937500 C 147.89289,75.484280 145.47385,75.343455 145.78125,73.562500 C 147.65028,70.568783 151.46696,69.934698 154.32757,68.211442 C 155.95166,67.507534 157.40819,66.436524 158.50000,65.031250 C 156.69534,62.893495 153.11684,62.207207 152.76893,59.025530 C 153.13476,57.911585 154.90043,56.856141 156.14992,56.314935 C 161.47352,54.305871 167.29666,53.530281 172.18291,50.436255 C 174.75469,49.397100 173.90347,46.181096 173.15013,44.168122 C 170.99740,41.143850 168.08639,38.542958 165.64236,35.681332 C 163.12371,33.093790 160.49665,30.610931 157.93750,28.062500 C 158.99092,29.594714 157.00835,30.333418 155.86310,29.376751 C 153.95887,28.546062 152.06033,27.726589 150.12500,26.968750 C 150.04976,28.633800 149.69671,30.253091 149.34375,31.875000 C 146.94959,32.517021 144.62510,29.359512 142.44997,31.405021 C 140.65579,32.399012 139.25573,34.074138 137.34005,34.698602 C 135.96867,34.449689 136.15225,31.657450 135.44638,30.368996 C 135.03220,27.477998 134.31032,28.114323 133.43720,30.484434 C 132.63691,31.983328 132.29360,34.079093 130.12469,33.576560 C 127.22896,33.863646 124.33317,34.149933 121.43750,34.437500 C 121.45635,31.458390 121.16984,28.094375 123.52595,25.839572 C 126.82257,21.188668 131.69023,18.019711 136.23357,14.793262 C 137.75437,14.087412 139.64327,13.037594 141.05071,14.536711 C 144.77608,17.093755 148.56965,19.491887 152.06250,22.343750 C 149.06655,19.513772 146.25485,16.420638 143.14594,13.751994 C 141.38445,12.871744 139.52020,11.789900 137.50000,12.562500 z M 126.40625,53.343750 C 131.09445,54.266714 135.77718,55.221773 140.46875,56.125000 C 140.66311,57.490600 140.90400,59.768414 138.90019,59.717011 C 134.99279,58.970773 131.04202,57.882901 127.18750,56.875000 C 126.61048,55.955764 124.83534,54.556620 125.40625,53.625000 C 125.73497,53.577157 126.08499,53.292470 126.40625,53.343750 z M 166.53125,63.812500 C 164.90117,64.830649 168.72302,64.879550 169.60036,65.161786 C 170.82454,65.513571 173.80209,64.644903 171.50000,63.593750 C 169.78209,63.217030 168.21140,63.255613 166.53125,63.812500 z M 120.81250,69.187500 C 118.77488,70.497531 120.63987,72.049766 122.29985,70.780747 C 124.22011,70.547064 124.25797,68.584075 122.13849,68.857155 C 121.62590,68.786616 121.20364,68.805690 120.81250,69.187500 z M 162.78125,70.250000 C 165.04372,72.410337 164.50416,68.582957 162.78125,69.787913 C 162.78125,69.883882 162.78125,70.191942 162.78125,70.250000 z " + style="fill-opacity:0.074380167;fill-rule:evenodd;stroke-width:1.0000000pt;" /> + <path + id="path1300" + d="M 137.25000,10.312500 C 134.57328,10.811904 132.67255,13.050780 130.64866,14.715585 C 121.77957,23.451854 113.11785,32.437236 104.37500,41.281250 C 103.17019,43.288146 102.47259,45.456013 102.06250,47.750000 C 105.83476,49.628698 109.64657,51.368815 113.75481,52.377095 C 114.74672,53.000901 118.15181,53.211596 117.03125,54.625000 C 114.87625,55.770623 112.18432,56.545814 111.25000,59.062500 C 113.07397,62.261249 117.13309,62.448994 120.14188,63.972108 C 122.66750,64.970987 125.19313,65.969869 127.71875,66.968750 C 127.79709,69.608591 127.12737,68.724937 125.79671,67.542170 C 123.76150,66.508388 120.74167,65.559916 119.14266,67.799744 C 117.68910,68.685330 116.55779,70.940149 117.66673,72.361712 C 119.74129,74.610002 123.29896,73.558599 125.22361,71.631365 C 125.39044,71.451948 124.94524,74.329263 126.55554,74.625682 C 128.75187,75.888131 131.56113,75.535204 133.75000,76.781250 C 134.17453,78.637203 134.92263,80.738750 137.10053,81.029661 C 140.53970,82.420114 144.41944,81.397273 147.50485,79.584682 C 148.81540,78.872018 151.32795,78.343669 150.75195,76.374975 C 150.70713,75.080531 147.53803,74.300613 149.31250,73.093750 C 153.55943,71.203594 157.91230,69.209830 161.18750,65.843750 C 161.99115,63.731003 159.07145,62.849633 157.93750,61.562500 C 156.57653,60.417748 154.30116,59.195844 157.17010,58.407983 C 162.44672,56.428116 168.30037,55.651561 173.14000,52.536010 C 175.69933,51.724285 176.75286,48.825627 176.01594,46.382200 C 175.99204,43.921497 174.36450,41.884430 172.99509,39.973772 C 168.23708,34.553265 162.73310,29.839073 157.72691,24.648245 C 153.37676,20.454464 149.19589,15.998891 144.74248,11.964991 C 142.49218,10.519398 139.90204,10.047325 137.25000,10.312500 z M 140.40625,16.625000 C 144.38180,19.415210 148.26381,22.371245 152.21875,25.218750 C 151.00059,24.471219 149.71107,24.008458 148.28125,23.906250 C 148.08169,25.616789 147.84012,27.322499 147.62500,29.031250 C 145.77312,28.480352 143.67622,27.363820 142.02088,28.944411 C 140.79579,29.321785 138.71876,32.029330 138.02739,30.946881 C 137.09069,27.714729 136.15797,24.481420 135.21875,21.250000 C 133.79126,24.568262 132.38708,27.896549 130.96875,31.218750 C 128.56250,31.458333 126.15625,31.697917 123.75000,31.937500 C 123.73611,28.504117 126.40867,25.941624 128.50533,23.538181 C 131.60340,20.877921 134.84009,18.280137 138.37100,16.266120 C 139.05687,15.927768 139.72649,16.501380 140.40625,16.625000 z M 165.12500,61.937500 C 163.94994,62.683294 162.04675,64.163789 163.31250,65.625000 C 165.77599,67.237331 168.84980,67.346191 171.68759,67.438839 C 173.79767,67.380039 175.87709,64.882603 174.44068,62.966319 C 173.10190,60.663393 170.05340,61.177216 167.81605,61.201002 C 166.91904,61.446503 166.02202,61.692001 165.12500,61.937500 z M 162.03125,67.031250 C 160.83535,68.000188 160.29043,69.695123 160.76346,71.258236 C 161.16730,73.039050 163.22496,73.494707 164.78719,72.992478 C 167.13879,73.181332 168.09248,69.825149 166.13394,68.653373 C 164.96960,67.668728 163.65541,66.689296 162.03125,67.031250 z " + style="fill-opacity:0.074380167;fill-rule:evenodd;stroke-width:1.0000000pt;" /> + <path + id="path1304" + d="M 136.87500,9.5625000 C 131.65304,11.769127 128.14544,16.384624 124.15881,20.216605 C 117.35142,27.117414 110.49657,33.984328 103.71875,40.906250 C 102.85273,43.332808 101.99819,45.763562 101.12500,48.187500 C 105.93068,50.283305 110.76347,52.276496 115.75000,53.906250 C 115.44333,55.363555 112.99770,55.191635 112.24058,56.587946 C 110.89606,57.445273 110.01695,59.785906 111.89556,60.567820 C 114.86490,63.357428 118.93991,64.363020 122.62500,65.875000 C 119.72774,65.033632 117.80750,68.090788 116.68750,70.250000 C 116.01105,72.950420 119.11437,74.651083 121.43923,74.259441 C 122.88425,74.778519 124.87048,71.894366 125.06555,74.129447 C 127.21708,76.574392 131.35224,75.998123 133.59751,78.288768 C 134.32398,80.302303 135.99246,81.986172 138.23383,82.006618 C 140.25772,82.589257 142.23898,82.314480 144.19142,81.614260 C 146.47188,81.098710 148.64271,79.959926 150.63761,78.824244 C 152.14711,77.754911 151.81527,75.346631 150.43750,74.312500 C 150.23406,72.704926 152.73875,72.682794 153.75639,71.819616 C 156.49819,70.564020 158.90600,68.804050 161.21875,66.906250 C 160.19643,68.376408 159.81043,70.315970 160.38112,71.987759 C 161.34634,74.267655 164.22210,73.656108 166.15625,73.531250 C 168.08949,72.610730 168.83732,69.631414 166.87500,68.343750 C 164.02568,66.581529 166.47357,67.403459 168.27836,67.911665 C 170.51415,68.044548 173.31226,68.747610 174.83495,66.581402 C 176.52328,64.952843 175.46252,62.386049 173.84375,61.125000 C 171.82924,60.052772 169.41179,60.364713 167.22781,60.468857 C 165.26732,60.816302 163.77932,61.981088 162.56250,63.500000 C 161.07416,64.693238 164.27576,66.891706 162.51264,66.451187 C 161.23611,66.670932 162.80138,64.122782 161.27178,63.293106 C 160.27477,61.829766 158.59216,60.917429 157.34375,59.656250 C 163.37320,56.739900 170.41697,55.950383 175.81250,51.750000 C 177.79054,49.403625 176.89111,46.297658 176.31250,43.625000 C 172.71709,37.077334 166.72680,32.381991 161.58112,27.092054 C 156.10204,21.754721 150.65568,16.371055 145.15625,11.062500 C 142.76062,10.099303 140.31053,9.4347862 137.70606,9.5684113 C 137.43820,9.5943662 137.13013,9.4705862 136.87500,9.5625000 z M 144.00000,20.125000 C 145.41913,21.217458 146.85549,22.290152 148.28125,23.375000 C 146.97140,24.376925 147.43473,26.306660 146.96875,27.718750 C 145.01335,27.188020 142.88412,27.117042 141.28969,28.567875 C 140.30436,29.400862 138.46017,30.323076 138.31032,28.383898 C 137.43025,25.351664 136.59470,22.304201 135.68750,19.281250 C 137.21838,18.817776 138.78213,16.344334 140.28250,17.745803 C 141.52167,18.538869 142.76083,19.331934 144.00000,20.125000 z M 130.53125,30.406250 C 128.68750,30.593750 126.84375,30.781250 125.00000,30.968750 C 125.70615,27.451641 128.61722,24.990200 131.09307,22.632488 C 132.44877,21.648343 133.72082,20.531920 135.12500,19.625000 C 133.59375,23.218750 132.06250,26.812500 130.53125,30.406250 z " + style="fill-opacity:0.074380167;fill-rule:evenodd;stroke-width:1.0000000pt;" /> + </g> + <path + transform="matrix(1.220396,0.000000,0.000000,1.220396,-20.19444,7.307033)" + sodipodi:nodetypes="cccccccccccccccccccccccccccccccccccccccccc" + id="path1217" + d="M 78.468542,10.216821 C 75.406213,10.216823 72.323010,11.369737 69.976423,13.716321 L 28.309048,55.430356 C 26.009076,57.730272 24.808608,60.734604 24.762888,63.735835 C 24.762246,63.786202 24.762888,63.872106 24.762888,63.922475 L 24.856208,63.922475 C 25.654475,66.959676 46.258230,70.813287 48.559486,73.114494 C 52.034797,76.589830 35.238960,79.157777 38.714227,82.633131 C 42.189523,86.108431 59.735084,89.329652 63.210724,92.805012 C 66.686050,96.280332 56.095888,99.968182 59.571244,103.44349 C 63.046555,106.91885 74.703745,102.59065 72.589383,111.65565 C 77.282542,116.34881 87.076796,114.10913 93.633042,109.41597 C 97.108353,105.94066 86.984820,106.26556 90.460160,102.79025 C 93.935473,99.314902 102.71230,99.298562 110.10402,90.985272 C 107.12876,86.358021 97.390000,84.382051 100.86534,80.906713 C 104.34065,77.431409 111.06300,79.175321 125.64179,72.554574 C 132.75855,69.322402 132.20143,66.898885 132.17419,63.922475 C 132.17362,63.859844 132.17419,63.798946 132.17419,63.735835 L 132.12753,63.735835 C 132.08182,60.734607 130.92794,57.730277 128.62803,55.430356 L 86.914001,13.716321 C 84.567429,11.369740 81.530871,10.216821 78.468542,10.216821 z M 59.991184,75.260853 C 66.201756,76.871504 73.111347,78.955868 78.655182,78.993653 L 78.888482,81.513293 C 74.141227,81.023952 64.086006,78.710363 61.717604,77.500533 L 59.991184,75.260853 z M 124.70859,86.319271 C 123.76053,86.288891 122.86335,86.383941 122.18895,86.552571 C 120.91747,86.870282 114.74061,87.016652 115.23661,90.985272 C 120.69367,92.968622 129.12948,94.487582 130.12115,90.518672 C 130.86551,87.542792 127.55274,86.410411 124.70859,86.319271 z M 53.365465,94.391452 C 52.506936,94.291402 51.667011,94.397222 50.845825,94.811392 C 47.561932,96.467852 45.351592,100.14833 48.419506,101.67041 C 51.487732,103.19250 53.661984,101.45941 56.351705,99.570712 C 59.041739,97.682322 58.972518,97.313012 58.778024,96.584472 C 58.405655,96.683782 55.941067,94.691622 53.365465,94.391452 z M 113.37021,95.044692 C 110.88978,96.036632 110.91892,99.482602 112.90361,100.97051 C 114.88780,102.45872 117.37116,101.49614 118.36283,100.50391 C 119.35532,99.511972 118.33051,96.036652 113.37021,95.044692 z " + style="fill:url(#linearGradient1322);fill-rule:evenodd;stroke-width:1.0000000pt;" /> + <path + transform="matrix(1.220396,0.000000,0.000000,1.220396,-20.19444,7.307033)" + sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc" + id="path1269" + d="M 25.748195,58.983802 C 25.069168,60.484820 24.699511,62.088386 24.675015,63.696461 C 24.674375,63.746824 24.675015,63.832738 24.675015,63.883101 L 24.768335,63.883101 C 25.532194,66.789384 44.034284,70.422637 47.678393,72.748500 C 49.285306,71.792649 50.340763,70.791543 49.264832,69.715600 C 46.963576,67.414389 26.359823,63.560781 25.561555,60.523581 L 25.468235,60.523581 C 25.468235,60.473204 25.467595,60.387304 25.468235,60.336942 C 25.475280,59.874537 25.686531,59.443757 25.748195,58.983802 z M 132.03964,65.049601 C 131.22443,66.340254 129.65777,67.652109 126.34713,69.155680 C 111.76835,75.776420 105.04600,74.032516 101.57069,77.507812 C 100.51786,78.560641 100.89350,79.461052 101.71067,80.354072 C 105.38973,77.752669 112.01329,78.664472 125.55391,72.515200 C 131.70333,69.722349 132.05669,67.513308 132.03964,65.049601 z M 60.696531,71.861960 L 62.422951,74.101632 C 64.791352,75.311463 74.846572,77.625067 79.593829,78.114392 L 79.360529,75.594752 C 73.816694,75.556961 66.907102,73.472618 60.696531,71.861960 z M 40.119473,79.607512 C 38.565476,80.548088 37.568913,81.536279 38.626354,82.593751 C 42.101651,86.069051 59.647211,89.290272 63.122851,92.765632 C 63.275692,92.918462 63.255326,93.078602 63.356151,93.232232 C 64.435614,91.947532 65.165573,90.655612 63.916071,89.406112 C 60.566937,86.057251 44.419333,82.939151 40.119473,79.607512 z M 117.10845,87.866332 C 115.91482,88.486362 114.95058,89.360392 115.14873,90.945882 C 120.60578,92.929232 129.04159,94.448192 130.03326,90.479292 C 130.22625,89.707762 130.12018,89.057262 129.84662,88.519572 C 127.48913,90.422432 121.65703,89.359992 117.10845,87.866332 z M 108.52303,89.546092 C 101.68539,95.627832 94.291059,96.265772 91.165507,99.391352 C 89.908251,100.64860 90.617583,101.33525 91.632107,101.95765 C 95.620160,99.286262 103.30109,98.498152 110.01615,90.945882 C 109.67197,90.410612 109.01729,90.016842 108.52303,89.546092 z M 112.39580,95.705212 C 110.96059,97.100002 111.14367,99.677592 112.81574,100.93113 C 114.79992,102.41933 117.28328,101.45675 118.27495,100.46453 C 118.78497,99.954792 118.71737,98.812252 117.90167,97.664932 C 116.69163,98.288052 115.10107,98.690742 113.60896,97.571612 C 112.97842,97.098902 112.61381,96.431702 112.39580,95.705212 z M 57.383671,95.891852 C 57.217332,96.012982 57.251127,96.035572 57.057051,96.171812 C 54.367330,98.060502 52.193078,99.793612 49.124852,98.271512 C 48.483305,97.953222 48.223383,97.480502 48.005012,97.011692 C 46.640740,98.694072 46.307086,100.62659 48.331632,101.63103 C 51.399861,103.15311 53.574111,101.42002 56.263832,99.531332 C 58.953868,97.642932 58.884645,97.273622 58.690151,96.545092 C 58.562389,96.579162 57.924006,96.197372 57.383671,95.891852 z M 60.043291,99.577992 C 58.963831,100.86268 58.233858,102.15460 59.483371,103.40410 C 62.958684,106.87946 74.615872,102.55126 72.501510,111.61626 C 77.194670,116.30942 86.988927,114.06974 93.545171,109.37658 C 94.825402,108.09634 94.082889,107.39241 93.031907,106.76362 C 86.534250,110.87138 77.700406,112.66245 73.294729,108.25674 C 75.409092,99.191752 63.751901,103.51996 60.276591,100.04459 C 60.123748,99.891752 60.144117,99.731612 60.043291,99.577992 z " + style="fill:url(#linearGradient1231);fill-rule:evenodd;stroke-width:1.0000000pt;" /> + <path + transform="matrix(1.220396,0.000000,0.000000,1.220396,-20.19444,7.307033)" + sodipodi:nodetypes="cccccc" + id="path1271" + d="M 99.186075,30.398236 L 124.44205,57.534989 C 124.44205,57.534989 131.96512,65.595411 126.05415,68.819579 C 120.14317,72.043747 102.14157,76.880001 102.14157,76.880001 L 69.422516,29.764596 L 99.186075,30.398236 z " + style="fill:url(#linearGradient1272);fill-opacity:0.75000000;fill-rule:evenodd;stroke-width:1.0000000pt;" /> + <path + transform="matrix(1.401650,0.000000,0.000000,1.401650,-35.26049,-4.181157)" + sodipodi:nodetypes="cccccc" + id="path1276" + d="M 63.243695,31.078988 L 42.657304,54.706552 C 42.657304,54.706552 34.703472,61.724642 39.850070,64.531876 C 44.996668,67.339111 78.917426,78.801990 102.77892,74.591136 L 75.408382,33.652287 L 63.243695,31.078988 z " + style="fill:url(#linearGradient1277);fill-opacity:0.75000000;fill-rule:evenodd;stroke-width:1.0000000pt;" /> + <path + transform="matrix(1.220396,0.000000,0.000000,1.220396,-20.19444,7.307033)" + sodipodi:nodetypes="ccccccccccczz" + id="path1317" + d="M 79.571944,14.847933 C 83.032254,14.873506 97.565101,29.009298 101.72458,31.925491 C 105.88407,34.841684 104.90857,36.754316 104.90857,36.936622 L 93.243582,31.290763 L 92.077082,40.109502 L 85.638002,37.076602 L 75.746078,43.702321 L 71.919958,30.637523 L 67.067318,42.069221 L 53.395938,43.422361 L 53.535918,37.356562 L 73.730570,17.473723 C 75.195738,16.031178 76.175081,14.822360 79.571944,14.847933 z " + style="fill:url(#linearGradient1318);fill-rule:evenodd;stroke-width:1.0000000pt;" /> + </g> + </g> + <g + inkscape:label="Title" + id="layer2" + inkscape:groupmode="layer"> + <text + id="text48" + style="line-height:100%;font-variant:normal;font-stretch:normal;writing-mode:lr;text-anchor:start;font-family:Arial;display:block;stroke-opacity:1.0000000;stroke-linejoin:miter;stroke-linecap:butt;stroke-width:3.0000000pt;stroke:none;fill-opacity:1.0000000;fill:#ffffff;font-weight:normal;font-style:normal;font-size:48.000000" + y="70" + x="45" + sodipodi:linespacing="100%"><tspan + id="tspan2" + sodipodi:role="line" + y="70.000000" + x="45.000000">Future Capabilities Desired</tspan></text> + <text + xml:space="preserve" + style="line-height:140%;writing-mode:lr;text-anchor:start;font-family:Sans;stroke-opacity:1.0000000;stroke-linejoin:miter;stroke-linecap:butt;stroke-width:1.0000000pt;stroke:none;fill-opacity:1.0000000;fill:#000000;font-stretch:normal;font-weight:normal;font-variant:normal;font-style:normal;font-size:24.000000" + x="61.904762" + y="171.42857" + id="text3025" + sodipodi:linespacing="140%" + transform="translate(-8.333333,-13.09524)"><tspan + id="tspan92" + sodipodi:role="line" + y="171.42857" + x="61.904762">* Make it easier to have multiple run-modes</tspan><tspan + id="tspan93" + sodipodi:role="line" + y="205.02857" + x="61.904762"> + Commandline mode (--no-gui)</tspan><tspan + id="tspan94" + sodipodi:role="line" + y="238.62857" + x="61.904762"> + Presentation mode (inkview *.svg)</tspan><tspan + id="tspan95" + sodipodi:role="line" + y="272.22857" + x="61.904762"> + Old Gtk+ interface (--old-gui)</tspan><tspan + id="tspan96" + sodipodi:role="line" + y="305.82857" + x="61.904762"> + New Gtkmm interface (--new-gui)</tspan><tspan + id="tspan97" + sodipodi:role="line" + y="339.42857" + x="61.904762"> + Whiteboard interface (inkboard)</tspan><tspan + id="tspan98" + sodipodi:role="line" + y="373.02857" + x="61.904762"> + Gimp-style interface?</tspan><tspan + id="tspan99" + sodipodi:role="line" + y="406.62857" + x="61.904762"> + GUI testing mode?</tspan><tspan + id="tspan100" + sodipodi:role="line" + y="440.22857" + x="61.904762"> + Animation playing mode?</tspan><tspan + id="tspan101" + sodipodi:role="line" + y="473.82857" + x="61.904762"> + More...?</tspan><tspan + id="tspan102" + sodipodi:role="line" + y="507.42857" + x="61.904762"></tspan><tspan + id="tspan103" + sodipodi:role="line" + y="541.02857" + x="61.904762">* Inkscape::Application should be run-mode neutral</tspan><tspan + id="tspan104" + sodipodi:role="line" + y="574.62857" + x="61.904762"> + Provide high level services / registries for all run modes</tspan><tspan + id="tspan105" + sodipodi:role="line" + y="608.22857" + x="61.904762"></tspan><tspan + id="tspan106" + sodipodi:role="line" + y="641.82857" + x="61.904762"></tspan></text> + </g> + <g + inkscape:label="Drawing Area" + id="layer3" + inkscape:groupmode="layer" /> +</svg> diff --git a/doc/NewAppArchitecture/10-future-main.svg b/doc/NewAppArchitecture/10-future-main.svg new file mode 100644 index 000000000..aad183838 --- /dev/null +++ b/doc/NewAppArchitecture/10-future-main.svg @@ -0,0 +1,503 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> +<svg + xmlns:xml="http://www.w3.org/XML/1998/namespace" + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://web.resource.org/cc/" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + sodipodi:docbase="/home/bryce/src/Inkscape/InkAppPresent" + sodipodi:docname="10-future-main.svg" + height="480pt" + width="640pt" + inkscape:version="0.40+cvs" + sodipodi:version="0.32" + id="svg586"> + <defs + id="defs588"> + <marker + style="overflow:visible;" + id="marker396" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="TriangleOutL"> + <path + transform="scale(0.8)" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" + d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z " + id="path397" + sodipodi:nodetypes="cccc" /> + </marker> + <marker + style="overflow:visible;" + id="marker394" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="TriangleOutL"> + <path + transform="scale(0.8)" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" + d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z " + id="path395" + sodipodi:nodetypes="cccc" /> + </marker> + <marker + style="overflow:visible;" + id="marker391" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="TriangleOutL"> + <path + transform="scale(0.8)" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" + d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z " + id="path392" + sodipodi:nodetypes="cccc" /> + </marker> + <marker + style="overflow:visible;" + id="marker319" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="TriangleOutL"> + <path + transform="scale(0.8)" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" + d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z " + id="path320" + sodipodi:nodetypes="cccc" /> + </marker> + <marker + style="overflow:visible;" + id="TriangleOutL" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="TriangleOutL"> + <path + transform="scale(0.8)" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" + d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z " + id="path224" + sodipodi:nodetypes="cccc" /> + </marker> + <linearGradient + id="linearGradient2570"> + <stop + id="stop2571" + offset="0.0000000" + style="stop-color:#000000;stop-opacity:1.0000000;" /> + <stop + id="stop2572" + offset="0.58504134" + style="stop-color:#000000;stop-opacity:0.62745100;" /> + <stop + id="stop2573" + offset="1.0000000" + style="stop-color:#ffffff;stop-opacity:0.0000000;" /> + </linearGradient> + <linearGradient + y2="0.98555958" + x2="0.27112675" + y1="0.097472921" + x1="0.50352114" + id="linearGradient1322" + xlink:href="#linearGradient1218" /> + <linearGradient + y2="0.99354839" + x2="-0.17253521" + y1="0.27741936" + x1="0.50704223" + id="linearGradient1318" + xlink:href="#linearGradient1273" /> + <linearGradient + gradientTransform="scale(1.004208,0.995809)" + y2="0.12454049" + x2="0.41986585" + y1="1.9347328" + x1="0.45376351" + id="linearGradient1307" + xlink:href="#linearGradient1222" /> + <linearGradient + gradientTransform="scale(1.006361,0.993679)" + y2="0.11846013" + x2="0.41548476" + y1="1.9667202" + x1="0.45009527" + id="linearGradient1306" + xlink:href="#linearGradient1222" /> + <linearGradient + gradientTransform="scale(1.002016,0.997989)" + y2="0.13959341" + x2="0.42603236" + y1="1.8676205" + x1="0.45839140" + id="linearGradient1305" + xlink:href="#linearGradient1222" /> + <linearGradient + y2="0.80203044" + x2="0.36971831" + y1="1.5228426" + x1="-0.36619717" + id="linearGradient1277" + xlink:href="#linearGradient1273" /> + <linearGradient + y2="0.55458528" + x2="0.53521127" + y1="0.23580793" + x1="1.0739436" + id="linearGradient1272" + xlink:href="#linearGradient1273" /> + <linearGradient + id="linearGradient1270" + xlink:href="#linearGradient1222" /> + <linearGradient + y2="0.50000000" + x2="1.0000000" + y1="0.50000000" + x1="0.00000000" + id="linearGradient1231" + xlink:href="#linearGradient1323" /> + <linearGradient + y2="0.24742271" + x2="0.42605633" + y1="2.1597939" + x1="-0.96478873" + id="linearGradient1221" + xlink:href="#linearGradient1222" /> + <linearGradient + id="linearGradient1218"> + <stop + id="stop1219" + offset="0.00000000" + style="stop-color:#000000;stop-opacity:1.0000000;" /> + <stop + id="stop1321" + offset="0.073255815" + style="stop-color:#323232;stop-opacity:1.0000000;" /> + <stop + id="stop1320" + offset="0.65260679" + style="stop-color:#000000;stop-opacity:1.0000000;" /> + <stop + id="stop1220" + offset="1" + style="stop-color:#fff;stop-opacity:1;" /> + </linearGradient> + <linearGradient + id="linearGradient1222"> + <stop + id="stop1223" + offset="0.0000000" + style="stop-color:#0081ac;stop-opacity:1.0000000;" /> + <stop + id="stop1722" + offset="0.50000000" + style="stop-color:#006d91;stop-opacity:0.62745100;" /> + <stop + id="stop1224" + offset="1.0000000" + style="stop-color:#000000;stop-opacity:0.0000000;" /> + </linearGradient> + <linearGradient + id="linearGradient1273"> + <stop + id="stop1274" + offset="0.00000000" + style="stop-color:#ffffff;stop-opacity:1.0000000;" /> + <stop + id="stop1275" + offset="1.0000000" + style="stop-color:#ffffff;stop-opacity:0.00000000;" /> + </linearGradient> + <linearGradient + id="linearGradient1323"> + <stop + id="stop1324" + offset="0.00000000" + style="stop-color:#000000;stop-opacity:0.77685952;" /> + <stop + id="stop1325" + offset="1.0000000" + style="stop-color:#000000;stop-opacity:0.00000000;" /> + </linearGradient> + <radialGradient + fy="0.15625000" + fx="0.50617284" + r="0.41400504" + cy="0.46875000" + cx="0.49382716" + id="radialGradient829" + xlink:href="#linearGradient826" /> + <linearGradient + id="linearGradient826"> + <stop + id="stop827" + offset="0.00000000" + style="stop-color:#000000;stop-opacity:0.95294118;" /> + <stop + id="stop830" + offset="0.36585677" + style="stop-color:#000000;stop-opacity:0.76078433;" /> + <stop + id="stop847" + offset="0.47107276" + style="stop-color:#000000;stop-opacity:0.52941179;" /> + <stop + id="stop828" + offset="1.0000000" + style="stop-color:#ffffff;stop-opacity:0.00000000;" /> + </linearGradient> + <linearGradient + y2="-1.7333326" + x2="0.50000000" + y1="0.66667551" + x1="0.50000000" + id="linearGradient907" + xlink:href="#linearGradient909" /> + <linearGradient + id="linearGradient909"> + <stop + id="stop910" + offset="0.00000000" + style="stop-color:#000000;stop-opacity:0.00000000;" /> + <stop + id="stop913" + offset="1.0000000" + style="stop-color:#000000;stop-opacity:0.17000000;" /> + </linearGradient> + <linearGradient + id="linearGradient1309" + xlink:href="#linearGradient1222" /> + <linearGradient + y2="0.50000000" + x2="1.0000000" + y1="0.50000000" + x1="0.0000000" + id="linearGradient1308" + xlink:href="#linearGradient2570" /> + </defs> + <sodipodi:namedview + inkscape:current-layer="layer2" + inkscape:guide-bbox="true" + showguides="true" + inkscape:window-y="71" + inkscape:window-x="133" + inkscape:window-height="821" + inkscape:window-width="968" + inkscape:cy="354.28570" + inkscape:cx="372.43198" + inkscape:zoom="0.70710678" + inkscape:pageshadow="2" + inkscape:pageopacity="0.0" + borderopacity="1.0" + bordercolor="#666666" + pagecolor="#ffffff" + id="base" /> + <metadata + id="metadata33"> + <rdf:RDF + id="RDF34"> + <cc:Work + id="Work35" + rdf:about=""> + <dc:format + id="format36">image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" + id="type38" /> + </cc:Work> + </rdf:RDF> + </metadata> + <g + style="display:block" + inkscape:label="Background" + id="layer1" + inkscape:groupmode="layer"> + <rect + y="1.7763568e-15" + x="0.0000000" + height="112.50000" + width="800.00000" + id="topbluebox" + style="font-size:12.000000;fill:url(#linearGradient1309);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:3.0000000pt;" /> + <path + sodipodi:nodetypes="cc" + id="path654" + d="M -0.034245957,110.20928 L 797.51553,110.00778" + style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:url(#linearGradient1308);stroke-width:4.9844480;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;" /> + <g + transform="translate(646.2792,-9.754791)" + id="g1085"> + <g + transform="matrix(0.875802,0.000000,0.000000,0.869278,1.048583,-7.965682)" + id="g1394"> + <path + transform="matrix(0.394071,0.000000,0.000000,8.155385e-2,-31.69751,94.58860)" + style="opacity:0.69398910;fill:url(#radialGradient829);stroke-width:4.4309568;stroke-dasharray:17.723827 17.723827 ;stroke-dashoffset:0.0000000;" + d="M 600.00000 300.00000 A 300.00000 300.00000 0 1 0 0.0000000,300.00000 A 300.00000 300.00000 0 1 0 600.00000 300.00000 z" + sodipodi:ry="300.00000" + sodipodi:rx="300.00000" + sodipodi:cy="300.00000" + sodipodi:cx="300.00000" + id="path898" + sodipodi:type="arc" /> + <path + transform="matrix(0.280658,0.000000,0.000000,0.148676,4.082687,91.98483)" + style="fill:url(#radialGradient829);stroke-width:4.4309568;stroke-dasharray:17.723827 17.723827 ;stroke-dashoffset:0.0000000;" + d="M 600.00000 300.00000 A 300.00000 300.00000 0 1 0 0.0000000,300.00000 A 300.00000 300.00000 0 1 0 600.00000 300.00000 z" + sodipodi:ry="300.00000" + sodipodi:rx="300.00000" + sodipodi:cy="300.00000" + sodipodi:cx="300.00000" + id="ball1" + sodipodi:type="arc" /> + </g> + <g + style="fill:url(#linearGradient1221);" + transform="matrix(1.822197,0.000000,0.000000,1.662749,-180.0082,12.26653)" + id="g1310"> + <path + id="path1278" + d="M 139.27138,11.077118 C 137.22042,11.077119 135.15548,11.849270 133.58388,13.420868 L 105.67763,41.358368 C 104.13725,42.898711 103.33325,44.910828 103.30263,46.920868 C 103.30220,46.954601 103.30263,47.012134 103.30263,47.045868 L 103.36513,47.045868 C 103.89976,49.079999 117.69889,51.660911 119.24013,53.202118 C 121.56768,55.529685 110.31886,57.249538 112.64638,59.577118 C 114.97392,61.904658 126.72486,64.062038 129.05263,66.389620 C 131.38019,68.717170 124.28755,71.187070 126.61513,73.514620 C 128.94268,75.842201 136.74995,72.943440 135.33388,79.014621 C 138.47707,82.157811 145.03666,80.657811 149.42763,77.514621 C 151.75518,75.187070 144.97506,75.404670 147.30263,73.077120 C 149.63018,70.749540 155.50836,70.738600 160.45888,65.170868 C 158.46624,62.071818 151.94381,60.748438 154.27138,58.420868 C 156.59893,56.093323 161.10115,57.261288 170.86513,52.827118 C 175.63150,50.662408 175.25838,49.039285 175.24013,47.045868 C 175.23975,47.003922 175.24013,46.963136 175.24013,46.920868 L 175.20888,46.920868 C 175.17827,44.910830 174.40547,42.898714 172.86513,41.358368 L 144.92763,13.420868 C 143.35604,11.849272 141.32234,11.077118 139.27138,11.077118 z M 139.02138,14.702118 C 139.93315,14.725869 140.67125,15.422422 142.11513,16.358368 L 155.30263,26.139618 C 155.44708,26.233292 155.58252,26.320552 155.70888,26.420868 C 155.83525,26.521171 155.97562,26.627132 156.08388,26.733368 C 156.19214,26.839410 156.27479,26.966073 156.36513,27.077118 C 156.45527,27.188145 156.54310,27.305955 156.61513,27.420868 C 156.68737,27.535969 156.74853,27.646585 156.80263,27.764618 C 156.85677,27.882866 156.89163,27.987920 156.92763,28.108368 C 156.96385,28.228632 157.00329,28.361823 157.02138,28.483368 C 157.03948,28.605130 157.05263,28.736271 157.05263,28.858368 L 149.24013,25.077118 L 148.45888,30.983368 L 144.14638,28.952118 L 137.52138,33.389618 L 134.95888,24.639618 L 131.70888,32.295868 L 122.55263,33.202118 L 122.64638,29.139618 C 122.64638,28.162533 127.93872,21.330614 131.14638,19.702118 L 137.02138,15.483368 C 137.88771,14.921800 138.47431,14.687867 139.02138,14.702118 z M 126.89638,54.639618 C 131.05584,55.718333 135.68346,57.114312 139.39638,57.139618 L 139.55263,58.827118 C 136.37321,58.499388 129.63884,56.949888 128.05263,56.139618 L 126.89638,54.639618 z M 170.24013,62.045868 C 169.60518,62.025518 169.00430,62.089178 168.55263,62.202118 C 167.70107,62.414898 163.56419,62.512928 163.89638,65.170868 C 167.55118,66.499190 173.20097,67.516500 173.86513,64.858368 C 174.36366,62.865308 172.14497,62.106908 170.24013,62.045868 z M 122.45888,67.452120 C 121.88389,67.385110 121.32136,67.455980 120.77138,67.733370 C 118.57203,68.842760 117.09168,71.307720 119.14638,72.327120 C 121.20129,73.346520 122.65747,72.185800 124.45888,70.920870 C 126.26050,69.656140 126.21414,69.408800 126.08388,68.920870 C 125.83449,68.987380 124.18386,67.653150 122.45888,67.452120 z M 162.64638,67.889620 C 160.98514,68.553960 161.00465,70.861860 162.33388,71.858370 C 163.66277,72.855080 165.32597,72.210400 165.99013,71.545870 C 166.65484,70.881530 165.96848,68.553970 162.64638,67.889620 z " + style="fill-opacity:0.074380167;fill-rule:evenodd;stroke-width:1.0000000pt;" /> + <path + id="path1283" + d="M 137.96875,10.718750 C 134.70402,11.060845 132.45341,13.855395 130.15790,15.940974 C 121.77155,24.503910 113.19525,32.911552 104.88478,41.529122 C 103.53165,43.257666 102.98133,45.293623 102.71875,47.437500 C 107.43946,50.886242 113.69835,50.905815 118.71875,53.781250 C 117.30484,56.014138 113.86394,55.927723 112.30534,58.153586 C 110.95047,59.066432 112.87438,60.562599 113.88390,60.907202 C 118.07998,63.025863 122.80956,63.838835 126.97834,66.068813 C 129.14039,66.223477 128.99465,68.397410 127.55968,69.465540 C 126.42313,70.610466 124.66557,72.512182 126.40386,73.938766 C 128.52893,75.415674 131.34635,75.011355 133.71875,75.875000 C 135.38587,76.789177 134.20286,78.442002 135.34375,79.593750 C 138.20878,81.840481 142.17613,81.444087 145.36980,80.162063 C 147.01184,79.679133 148.50293,78.612108 149.93750,77.781250 C 151.32137,76.168445 149.16317,75.014407 147.93750,74.343750 C 147.13207,73.007556 149.81258,72.471472 150.72621,71.835396 C 154.22932,70.415525 157.63139,68.772275 160.32323,66.076023 C 162.00146,65.040055 159.53684,63.566475 158.75000,62.750000 C 157.29555,61.671425 155.38495,61.005736 154.46875,59.343750 C 156.83166,56.736844 160.77991,57.222943 163.82692,55.886662 C 167.48614,54.956060 170.96688,53.327613 174.19128,51.441061 C 176.31894,49.855420 175.75931,47.094289 175.34438,44.858149 C 173.82714,40.146659 169.32671,37.346121 166.14614,33.782162 C 159.00255,26.737555 151.96598,19.558149 144.75603,12.597114 C 142.83187,11.117125 140.40461,10.324926 137.96875,10.718750 z M 140.15625,15.718750 C 145.33185,19.512142 150.51925,23.291773 155.68750,27.093750 C 155.79568,28.128330 152.96647,25.994412 151.88519,25.704486 C 150.56126,25.310550 148.23232,22.990502 148.60160,25.735802 C 148.03383,26.854222 148.89364,30.614243 147.25375,29.748789 C 145.77079,28.952048 143.79956,27.767016 142.39696,29.393778 C 140.87922,30.408352 139.36149,31.422926 137.84375,32.437500 C 136.92659,29.270978 136.01364,26.103230 135.09375,22.937500 C 133.83186,25.869891 132.59553,28.813265 131.34375,31.750000 C 128.60417,32.020833 125.86458,32.291667 123.12500,32.562500 C 122.93577,30.531586 123.37937,28.492090 124.78964,27.051727 C 127.83705,22.165897 132.91432,19.181067 137.48762,15.928279 C 138.38080,15.399443 139.18306,15.465846 140.15625,15.718750 z M 132.06250,56.562500 C 134.25968,57.131800 136.54653,57.244809 138.78125,57.625000 C 137.93164,58.641801 135.83490,57.320885 134.50134,57.277133 C 132.75919,56.896272 131.01731,56.527068 129.37500,55.812500 C 130.27083,56.062500 131.16667,56.312500 132.06250,56.562500 z M 168.50000,61.625000 C 166.47980,62.095190 163.59992,62.369201 163.34375,64.968750 C 164.00781,65.934196 166.11962,66.292948 167.47626,66.551501 C 169.60910,66.891924 172.52463,67.659468 174.01886,65.672524 C 175.29513,63.892929 173.38643,61.628153 171.40540,61.754929 C 170.44376,61.426788 169.48969,61.503021 168.50000,61.625000 z M 120.65625,67.156250 C 119.17864,68.173454 117.17273,69.706513 117.81250,71.750000 C 119.32360,73.943032 122.44871,73.328157 124.17581,71.744685 C 125.31806,71.095411 127.22708,69.849349 126.34375,68.406250 C 124.53029,67.617814 122.70705,66.421404 120.65625,67.156250 z M 162.25000,67.468750 C 160.98536,68.304844 160.47655,70.055902 161.35305,71.321264 C 162.02451,73.004295 164.27223,73.179865 165.64672,72.263080 C 167.48408,71.700360 166.67812,69.347513 165.33731,68.658474 C 164.66189,67.815250 163.12029,67.406310 162.25000,67.468750 z " + style="fill-opacity:0.074380167;fill-rule:evenodd;stroke-width:1.0000000pt;" /> + <path + id="path1286" + d="M 137.09375,12.062500 C 133.45264,13.658306 130.89510,17.054651 128.02763,19.760075 C 120.64992,27.277135 113.11748,34.668181 105.81675,42.244521 C 104.77302,43.583830 104.19848,45.113312 103.93750,46.781250 C 108.02500,49.661848 113.35464,49.814484 117.77247,52.034312 C 119.23732,52.180074 120.83004,53.663696 119.47530,54.914506 C 117.72685,56.714093 114.64707,56.868986 113.18750,58.937500 C 116.98689,61.678185 121.72461,62.314645 125.91888,64.199775 C 127.35246,65.248996 129.93899,65.341959 130.00000,67.531250 C 129.61283,69.469175 127.68115,70.594821 126.84375,72.343750 C 128.66657,74.916318 132.41661,73.526770 134.81763,75.194505 C 136.12150,75.998634 135.76289,77.719238 136.33739,78.786112 C 139.34189,80.984126 143.56705,80.023489 146.59979,78.262860 C 147.57821,77.931235 150.25551,76.737683 148.25234,75.866570 C 146.79311,75.539319 145.57083,73.791727 146.98575,72.676315 C 150.59379,69.928273 155.52636,69.300230 158.75379,65.912819 C 160.44061,64.636839 157.51978,63.512312 156.64603,62.784855 C 155.31686,61.805358 153.02074,60.864770 153.31250,58.906250 C 155.52467,55.836091 159.76350,56.249927 162.98171,54.909139 C 166.64088,54.011598 170.17880,52.442724 173.39619,50.585767 C 175.44759,48.766928 174.40312,45.854433 173.70402,43.674602 C 170.01715,38.505895 164.93468,34.528530 160.60640,29.906454 C 155.05848,24.484276 149.68028,18.831089 144.02714,13.552135 C 142.01313,12.267231 139.68457,11.155741 137.26959,12.030263 L 137.09375,12.062500 z M 139.25000,14.156250 C 144.36849,16.573687 148.44456,20.615673 153.06166,23.857057 C 154.79682,25.417824 157.75256,26.462276 157.65625,29.218750 C 155.98301,29.620934 154.51821,27.909197 152.92283,27.467153 C 151.47889,26.979622 149.05912,24.688826 149.46490,27.619328 C 148.95092,28.676042 149.67609,32.096323 148.30430,31.528870 C 146.86362,30.916675 145.25114,29.742049 143.73062,29.880583 C 141.56112,31.359522 139.38321,32.826259 137.21875,34.312500 C 136.40063,31.654144 135.63994,28.977747 134.84375,26.312500 C 133.78712,28.431959 132.98467,30.961875 131.78125,32.843750 C 128.52084,33.166779 125.26035,33.488957 122.00000,33.812500 C 122.02692,31.439278 121.58820,28.751334 123.45144,26.900643 C 126.38650,21.928911 131.54097,18.937382 135.96875,15.531250 C 137.05500,15.131227 138.17386,14.356070 139.25000,14.156250 z M 126.34375,53.906250 C 130.81931,55.099287 135.33348,56.080112 139.93750,56.625000 C 140.81508,58.380031 139.61654,59.889689 137.75155,59.030564 C 134.35469,58.342143 130.95451,57.411091 127.62500,56.500000 C 127.37596,56.018046 124.72663,53.333015 126.34375,53.906250 z M 168.68750,62.750000 C 167.26725,63.145732 165.19352,63.022642 164.68750,64.750000 C 167.41558,65.272026 170.36127,66.626958 173.03125,65.187500 C 173.94813,63.333514 171.22391,62.807999 169.92452,62.707344 C 169.51218,62.721563 169.09984,62.735781 168.68750,62.750000 z M 120.96875,68.250000 C 119.88102,69.094191 117.71809,71.141191 120.00567,71.867660 C 122.11744,72.377527 123.71955,70.573549 125.28125,69.468750 C 124.17010,68.379529 122.48301,67.967608 120.96875,68.250000 z M 162.25000,68.937500 C 161.26655,70.838341 164.03769,72.707639 165.32625,71.028976 C 165.98639,69.968138 163.10932,68.105539 162.25000,68.937500 z " + style="fill-opacity:0.074380167;fill-rule:evenodd;stroke-width:1.0000000pt;" /> + <path + id="path1295" + d="M 137.50000,12.562500 C 131.56402,15.884438 127.47918,21.513076 122.59316,26.106819 C 117.07494,31.800872 111.33765,37.333066 105.95500,43.127274 C 105.27016,44.232264 103.90274,46.716455 105.88806,47.110513 C 110.48303,49.525949 116.07018,49.897473 120.25000,52.937500 C 121.19557,55.258014 118.31954,56.204644 116.77699,57.135076 C 115.14828,57.646504 113.25757,59.174666 115.98524,59.736007 C 120.51650,62.179113 125.90956,62.812244 130.06250,65.968750 C 131.40440,68.155882 128.87852,70.088345 127.96429,71.816940 C 127.97548,73.606583 130.61198,73.210238 131.85374,73.694589 C 134.00698,73.861384 136.31306,75.067306 136.52629,77.437982 C 137.24770,79.315251 139.82104,79.377347 141.56250,79.375000 C 143.88381,79.081698 145.88731,77.848938 148.00000,76.937500 C 147.89289,75.484280 145.47385,75.343455 145.78125,73.562500 C 147.65028,70.568783 151.46696,69.934698 154.32757,68.211442 C 155.95166,67.507534 157.40819,66.436524 158.50000,65.031250 C 156.69534,62.893495 153.11684,62.207207 152.76893,59.025530 C 153.13476,57.911585 154.90043,56.856141 156.14992,56.314935 C 161.47352,54.305871 167.29666,53.530281 172.18291,50.436255 C 174.75469,49.397100 173.90347,46.181096 173.15013,44.168122 C 170.99740,41.143850 168.08639,38.542958 165.64236,35.681332 C 163.12371,33.093790 160.49665,30.610931 157.93750,28.062500 C 158.99092,29.594714 157.00835,30.333418 155.86310,29.376751 C 153.95887,28.546062 152.06033,27.726589 150.12500,26.968750 C 150.04976,28.633800 149.69671,30.253091 149.34375,31.875000 C 146.94959,32.517021 144.62510,29.359512 142.44997,31.405021 C 140.65579,32.399012 139.25573,34.074138 137.34005,34.698602 C 135.96867,34.449689 136.15225,31.657450 135.44638,30.368996 C 135.03220,27.477998 134.31032,28.114323 133.43720,30.484434 C 132.63691,31.983328 132.29360,34.079093 130.12469,33.576560 C 127.22896,33.863646 124.33317,34.149933 121.43750,34.437500 C 121.45635,31.458390 121.16984,28.094375 123.52595,25.839572 C 126.82257,21.188668 131.69023,18.019711 136.23357,14.793262 C 137.75437,14.087412 139.64327,13.037594 141.05071,14.536711 C 144.77608,17.093755 148.56965,19.491887 152.06250,22.343750 C 149.06655,19.513772 146.25485,16.420638 143.14594,13.751994 C 141.38445,12.871744 139.52020,11.789900 137.50000,12.562500 z M 126.40625,53.343750 C 131.09445,54.266714 135.77718,55.221773 140.46875,56.125000 C 140.66311,57.490600 140.90400,59.768414 138.90019,59.717011 C 134.99279,58.970773 131.04202,57.882901 127.18750,56.875000 C 126.61048,55.955764 124.83534,54.556620 125.40625,53.625000 C 125.73497,53.577157 126.08499,53.292470 126.40625,53.343750 z M 166.53125,63.812500 C 164.90117,64.830649 168.72302,64.879550 169.60036,65.161786 C 170.82454,65.513571 173.80209,64.644903 171.50000,63.593750 C 169.78209,63.217030 168.21140,63.255613 166.53125,63.812500 z M 120.81250,69.187500 C 118.77488,70.497531 120.63987,72.049766 122.29985,70.780747 C 124.22011,70.547064 124.25797,68.584075 122.13849,68.857155 C 121.62590,68.786616 121.20364,68.805690 120.81250,69.187500 z M 162.78125,70.250000 C 165.04372,72.410337 164.50416,68.582957 162.78125,69.787913 C 162.78125,69.883882 162.78125,70.191942 162.78125,70.250000 z " + style="fill-opacity:0.074380167;fill-rule:evenodd;stroke-width:1.0000000pt;" /> + <path + id="path1300" + d="M 137.25000,10.312500 C 134.57328,10.811904 132.67255,13.050780 130.64866,14.715585 C 121.77957,23.451854 113.11785,32.437236 104.37500,41.281250 C 103.17019,43.288146 102.47259,45.456013 102.06250,47.750000 C 105.83476,49.628698 109.64657,51.368815 113.75481,52.377095 C 114.74672,53.000901 118.15181,53.211596 117.03125,54.625000 C 114.87625,55.770623 112.18432,56.545814 111.25000,59.062500 C 113.07397,62.261249 117.13309,62.448994 120.14188,63.972108 C 122.66750,64.970987 125.19313,65.969869 127.71875,66.968750 C 127.79709,69.608591 127.12737,68.724937 125.79671,67.542170 C 123.76150,66.508388 120.74167,65.559916 119.14266,67.799744 C 117.68910,68.685330 116.55779,70.940149 117.66673,72.361712 C 119.74129,74.610002 123.29896,73.558599 125.22361,71.631365 C 125.39044,71.451948 124.94524,74.329263 126.55554,74.625682 C 128.75187,75.888131 131.56113,75.535204 133.75000,76.781250 C 134.17453,78.637203 134.92263,80.738750 137.10053,81.029661 C 140.53970,82.420114 144.41944,81.397273 147.50485,79.584682 C 148.81540,78.872018 151.32795,78.343669 150.75195,76.374975 C 150.70713,75.080531 147.53803,74.300613 149.31250,73.093750 C 153.55943,71.203594 157.91230,69.209830 161.18750,65.843750 C 161.99115,63.731003 159.07145,62.849633 157.93750,61.562500 C 156.57653,60.417748 154.30116,59.195844 157.17010,58.407983 C 162.44672,56.428116 168.30037,55.651561 173.14000,52.536010 C 175.69933,51.724285 176.75286,48.825627 176.01594,46.382200 C 175.99204,43.921497 174.36450,41.884430 172.99509,39.973772 C 168.23708,34.553265 162.73310,29.839073 157.72691,24.648245 C 153.37676,20.454464 149.19589,15.998891 144.74248,11.964991 C 142.49218,10.519398 139.90204,10.047325 137.25000,10.312500 z M 140.40625,16.625000 C 144.38180,19.415210 148.26381,22.371245 152.21875,25.218750 C 151.00059,24.471219 149.71107,24.008458 148.28125,23.906250 C 148.08169,25.616789 147.84012,27.322499 147.62500,29.031250 C 145.77312,28.480352 143.67622,27.363820 142.02088,28.944411 C 140.79579,29.321785 138.71876,32.029330 138.02739,30.946881 C 137.09069,27.714729 136.15797,24.481420 135.21875,21.250000 C 133.79126,24.568262 132.38708,27.896549 130.96875,31.218750 C 128.56250,31.458333 126.15625,31.697917 123.75000,31.937500 C 123.73611,28.504117 126.40867,25.941624 128.50533,23.538181 C 131.60340,20.877921 134.84009,18.280137 138.37100,16.266120 C 139.05687,15.927768 139.72649,16.501380 140.40625,16.625000 z M 165.12500,61.937500 C 163.94994,62.683294 162.04675,64.163789 163.31250,65.625000 C 165.77599,67.237331 168.84980,67.346191 171.68759,67.438839 C 173.79767,67.380039 175.87709,64.882603 174.44068,62.966319 C 173.10190,60.663393 170.05340,61.177216 167.81605,61.201002 C 166.91904,61.446503 166.02202,61.692001 165.12500,61.937500 z M 162.03125,67.031250 C 160.83535,68.000188 160.29043,69.695123 160.76346,71.258236 C 161.16730,73.039050 163.22496,73.494707 164.78719,72.992478 C 167.13879,73.181332 168.09248,69.825149 166.13394,68.653373 C 164.96960,67.668728 163.65541,66.689296 162.03125,67.031250 z " + style="fill-opacity:0.074380167;fill-rule:evenodd;stroke-width:1.0000000pt;" /> + <path + id="path1304" + d="M 136.87500,9.5625000 C 131.65304,11.769127 128.14544,16.384624 124.15881,20.216605 C 117.35142,27.117414 110.49657,33.984328 103.71875,40.906250 C 102.85273,43.332808 101.99819,45.763562 101.12500,48.187500 C 105.93068,50.283305 110.76347,52.276496 115.75000,53.906250 C 115.44333,55.363555 112.99770,55.191635 112.24058,56.587946 C 110.89606,57.445273 110.01695,59.785906 111.89556,60.567820 C 114.86490,63.357428 118.93991,64.363020 122.62500,65.875000 C 119.72774,65.033632 117.80750,68.090788 116.68750,70.250000 C 116.01105,72.950420 119.11437,74.651083 121.43923,74.259441 C 122.88425,74.778519 124.87048,71.894366 125.06555,74.129447 C 127.21708,76.574392 131.35224,75.998123 133.59751,78.288768 C 134.32398,80.302303 135.99246,81.986172 138.23383,82.006618 C 140.25772,82.589257 142.23898,82.314480 144.19142,81.614260 C 146.47188,81.098710 148.64271,79.959926 150.63761,78.824244 C 152.14711,77.754911 151.81527,75.346631 150.43750,74.312500 C 150.23406,72.704926 152.73875,72.682794 153.75639,71.819616 C 156.49819,70.564020 158.90600,68.804050 161.21875,66.906250 C 160.19643,68.376408 159.81043,70.315970 160.38112,71.987759 C 161.34634,74.267655 164.22210,73.656108 166.15625,73.531250 C 168.08949,72.610730 168.83732,69.631414 166.87500,68.343750 C 164.02568,66.581529 166.47357,67.403459 168.27836,67.911665 C 170.51415,68.044548 173.31226,68.747610 174.83495,66.581402 C 176.52328,64.952843 175.46252,62.386049 173.84375,61.125000 C 171.82924,60.052772 169.41179,60.364713 167.22781,60.468857 C 165.26732,60.816302 163.77932,61.981088 162.56250,63.500000 C 161.07416,64.693238 164.27576,66.891706 162.51264,66.451187 C 161.23611,66.670932 162.80138,64.122782 161.27178,63.293106 C 160.27477,61.829766 158.59216,60.917429 157.34375,59.656250 C 163.37320,56.739900 170.41697,55.950383 175.81250,51.750000 C 177.79054,49.403625 176.89111,46.297658 176.31250,43.625000 C 172.71709,37.077334 166.72680,32.381991 161.58112,27.092054 C 156.10204,21.754721 150.65568,16.371055 145.15625,11.062500 C 142.76062,10.099303 140.31053,9.4347862 137.70606,9.5684113 C 137.43820,9.5943662 137.13013,9.4705862 136.87500,9.5625000 z M 144.00000,20.125000 C 145.41913,21.217458 146.85549,22.290152 148.28125,23.375000 C 146.97140,24.376925 147.43473,26.306660 146.96875,27.718750 C 145.01335,27.188020 142.88412,27.117042 141.28969,28.567875 C 140.30436,29.400862 138.46017,30.323076 138.31032,28.383898 C 137.43025,25.351664 136.59470,22.304201 135.68750,19.281250 C 137.21838,18.817776 138.78213,16.344334 140.28250,17.745803 C 141.52167,18.538869 142.76083,19.331934 144.00000,20.125000 z M 130.53125,30.406250 C 128.68750,30.593750 126.84375,30.781250 125.00000,30.968750 C 125.70615,27.451641 128.61722,24.990200 131.09307,22.632488 C 132.44877,21.648343 133.72082,20.531920 135.12500,19.625000 C 133.59375,23.218750 132.06250,26.812500 130.53125,30.406250 z " + style="fill-opacity:0.074380167;fill-rule:evenodd;stroke-width:1.0000000pt;" /> + </g> + <path + transform="matrix(1.220396,0.000000,0.000000,1.220396,-20.19444,7.307033)" + sodipodi:nodetypes="cccccccccccccccccccccccccccccccccccccccccc" + id="path1217" + d="M 78.468542,10.216821 C 75.406213,10.216823 72.323010,11.369737 69.976423,13.716321 L 28.309048,55.430356 C 26.009076,57.730272 24.808608,60.734604 24.762888,63.735835 C 24.762246,63.786202 24.762888,63.872106 24.762888,63.922475 L 24.856208,63.922475 C 25.654475,66.959676 46.258230,70.813287 48.559486,73.114494 C 52.034797,76.589830 35.238960,79.157777 38.714227,82.633131 C 42.189523,86.108431 59.735084,89.329652 63.210724,92.805012 C 66.686050,96.280332 56.095888,99.968182 59.571244,103.44349 C 63.046555,106.91885 74.703745,102.59065 72.589383,111.65565 C 77.282542,116.34881 87.076796,114.10913 93.633042,109.41597 C 97.108353,105.94066 86.984820,106.26556 90.460160,102.79025 C 93.935473,99.314902 102.71230,99.298562 110.10402,90.985272 C 107.12876,86.358021 97.390000,84.382051 100.86534,80.906713 C 104.34065,77.431409 111.06300,79.175321 125.64179,72.554574 C 132.75855,69.322402 132.20143,66.898885 132.17419,63.922475 C 132.17362,63.859844 132.17419,63.798946 132.17419,63.735835 L 132.12753,63.735835 C 132.08182,60.734607 130.92794,57.730277 128.62803,55.430356 L 86.914001,13.716321 C 84.567429,11.369740 81.530871,10.216821 78.468542,10.216821 z M 59.991184,75.260853 C 66.201756,76.871504 73.111347,78.955868 78.655182,78.993653 L 78.888482,81.513293 C 74.141227,81.023952 64.086006,78.710363 61.717604,77.500533 L 59.991184,75.260853 z M 124.70859,86.319271 C 123.76053,86.288891 122.86335,86.383941 122.18895,86.552571 C 120.91747,86.870282 114.74061,87.016652 115.23661,90.985272 C 120.69367,92.968622 129.12948,94.487582 130.12115,90.518672 C 130.86551,87.542792 127.55274,86.410411 124.70859,86.319271 z M 53.365465,94.391452 C 52.506936,94.291402 51.667011,94.397222 50.845825,94.811392 C 47.561932,96.467852 45.351592,100.14833 48.419506,101.67041 C 51.487732,103.19250 53.661984,101.45941 56.351705,99.570712 C 59.041739,97.682322 58.972518,97.313012 58.778024,96.584472 C 58.405655,96.683782 55.941067,94.691622 53.365465,94.391452 z M 113.37021,95.044692 C 110.88978,96.036632 110.91892,99.482602 112.90361,100.97051 C 114.88780,102.45872 117.37116,101.49614 118.36283,100.50391 C 119.35532,99.511972 118.33051,96.036652 113.37021,95.044692 z " + style="fill:url(#linearGradient1322);fill-rule:evenodd;stroke-width:1.0000000pt;" /> + <path + transform="matrix(1.220396,0.000000,0.000000,1.220396,-20.19444,7.307033)" + sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc" + id="path1269" + d="M 25.748195,58.983802 C 25.069168,60.484820 24.699511,62.088386 24.675015,63.696461 C 24.674375,63.746824 24.675015,63.832738 24.675015,63.883101 L 24.768335,63.883101 C 25.532194,66.789384 44.034284,70.422637 47.678393,72.748500 C 49.285306,71.792649 50.340763,70.791543 49.264832,69.715600 C 46.963576,67.414389 26.359823,63.560781 25.561555,60.523581 L 25.468235,60.523581 C 25.468235,60.473204 25.467595,60.387304 25.468235,60.336942 C 25.475280,59.874537 25.686531,59.443757 25.748195,58.983802 z M 132.03964,65.049601 C 131.22443,66.340254 129.65777,67.652109 126.34713,69.155680 C 111.76835,75.776420 105.04600,74.032516 101.57069,77.507812 C 100.51786,78.560641 100.89350,79.461052 101.71067,80.354072 C 105.38973,77.752669 112.01329,78.664472 125.55391,72.515200 C 131.70333,69.722349 132.05669,67.513308 132.03964,65.049601 z M 60.696531,71.861960 L 62.422951,74.101632 C 64.791352,75.311463 74.846572,77.625067 79.593829,78.114392 L 79.360529,75.594752 C 73.816694,75.556961 66.907102,73.472618 60.696531,71.861960 z M 40.119473,79.607512 C 38.565476,80.548088 37.568913,81.536279 38.626354,82.593751 C 42.101651,86.069051 59.647211,89.290272 63.122851,92.765632 C 63.275692,92.918462 63.255326,93.078602 63.356151,93.232232 C 64.435614,91.947532 65.165573,90.655612 63.916071,89.406112 C 60.566937,86.057251 44.419333,82.939151 40.119473,79.607512 z M 117.10845,87.866332 C 115.91482,88.486362 114.95058,89.360392 115.14873,90.945882 C 120.60578,92.929232 129.04159,94.448192 130.03326,90.479292 C 130.22625,89.707762 130.12018,89.057262 129.84662,88.519572 C 127.48913,90.422432 121.65703,89.359992 117.10845,87.866332 z M 108.52303,89.546092 C 101.68539,95.627832 94.291059,96.265772 91.165507,99.391352 C 89.908251,100.64860 90.617583,101.33525 91.632107,101.95765 C 95.620160,99.286262 103.30109,98.498152 110.01615,90.945882 C 109.67197,90.410612 109.01729,90.016842 108.52303,89.546092 z M 112.39580,95.705212 C 110.96059,97.100002 111.14367,99.677592 112.81574,100.93113 C 114.79992,102.41933 117.28328,101.45675 118.27495,100.46453 C 118.78497,99.954792 118.71737,98.812252 117.90167,97.664932 C 116.69163,98.288052 115.10107,98.690742 113.60896,97.571612 C 112.97842,97.098902 112.61381,96.431702 112.39580,95.705212 z M 57.383671,95.891852 C 57.217332,96.012982 57.251127,96.035572 57.057051,96.171812 C 54.367330,98.060502 52.193078,99.793612 49.124852,98.271512 C 48.483305,97.953222 48.223383,97.480502 48.005012,97.011692 C 46.640740,98.694072 46.307086,100.62659 48.331632,101.63103 C 51.399861,103.15311 53.574111,101.42002 56.263832,99.531332 C 58.953868,97.642932 58.884645,97.273622 58.690151,96.545092 C 58.562389,96.579162 57.924006,96.197372 57.383671,95.891852 z M 60.043291,99.577992 C 58.963831,100.86268 58.233858,102.15460 59.483371,103.40410 C 62.958684,106.87946 74.615872,102.55126 72.501510,111.61626 C 77.194670,116.30942 86.988927,114.06974 93.545171,109.37658 C 94.825402,108.09634 94.082889,107.39241 93.031907,106.76362 C 86.534250,110.87138 77.700406,112.66245 73.294729,108.25674 C 75.409092,99.191752 63.751901,103.51996 60.276591,100.04459 C 60.123748,99.891752 60.144117,99.731612 60.043291,99.577992 z " + style="fill:url(#linearGradient1231);fill-rule:evenodd;stroke-width:1.0000000pt;" /> + <path + transform="matrix(1.220396,0.000000,0.000000,1.220396,-20.19444,7.307033)" + sodipodi:nodetypes="cccccc" + id="path1271" + d="M 99.186075,30.398236 L 124.44205,57.534989 C 124.44205,57.534989 131.96512,65.595411 126.05415,68.819579 C 120.14317,72.043747 102.14157,76.880001 102.14157,76.880001 L 69.422516,29.764596 L 99.186075,30.398236 z " + style="fill:url(#linearGradient1272);fill-opacity:0.75000000;fill-rule:evenodd;stroke-width:1.0000000pt;" /> + <path + transform="matrix(1.401650,0.000000,0.000000,1.401650,-35.26049,-4.181157)" + sodipodi:nodetypes="cccccc" + id="path1276" + d="M 63.243695,31.078988 L 42.657304,54.706552 C 42.657304,54.706552 34.703472,61.724642 39.850070,64.531876 C 44.996668,67.339111 78.917426,78.801990 102.77892,74.591136 L 75.408382,33.652287 L 63.243695,31.078988 z " + style="fill:url(#linearGradient1277);fill-opacity:0.75000000;fill-rule:evenodd;stroke-width:1.0000000pt;" /> + <path + transform="matrix(1.220396,0.000000,0.000000,1.220396,-20.19444,7.307033)" + sodipodi:nodetypes="ccccccccccczz" + id="path1317" + d="M 79.571944,14.847933 C 83.032254,14.873506 97.565101,29.009298 101.72458,31.925491 C 105.88407,34.841684 104.90857,36.754316 104.90857,36.936622 L 93.243582,31.290763 L 92.077082,40.109502 L 85.638002,37.076602 L 75.746078,43.702321 L 71.919958,30.637523 L 67.067318,42.069221 L 53.395938,43.422361 L 53.535918,37.356562 L 73.730570,17.473723 C 75.195738,16.031178 76.175081,14.822360 79.571944,14.847933 z " + style="fill:url(#linearGradient1318);fill-rule:evenodd;stroke-width:1.0000000pt;" /> + </g> + </g> + <g + inkscape:label="Title" + id="layer2" + inkscape:groupmode="layer"> + <text + id="text48" + style="line-height:100%;font-variant:normal;font-stretch:normal;writing-mode:lr;text-anchor:start;font-family:Arial;display:block;stroke-opacity:1.0000000;stroke-linejoin:miter;stroke-linecap:butt;stroke-width:3.0000000pt;stroke:none;fill-opacity:1.0000000;fill:#ffffff;font-weight:normal;font-style:normal;font-size:48.000000" + y="70" + x="45" + sodipodi:linespacing="100%"><tspan + id="tspan1" + sodipodi:role="line" + y="70.000000" + x="45.000000">Future main()</tspan></text> + <text + xml:space="preserve" + style="font-size:24.000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#000000;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Sans;text-anchor:start;writing-mode:lr;line-height:120%" + x="63.754395" + y="191.84863" + id="text74" + sodipodi:linespacing="120%"><tspan + id="tspan46" + sodipodi:role="line" + y="191.84863" + x="63.754395">int main(int argc, char *argv[])</tspan><tspan + id="tspan47" + sodipodi:role="line" + y="220.64863" + x="63.754395">{</tspan><tspan + id="tspan48" + sodipodi:role="line" + y="249.44864" + x="63.754395"> Inkscape::Application app(argc, argv);</tspan><tspan + id="tspan49" + sodipodi:role="line" + y="278.24864" + x="63.754395"></tspan><tspan + id="tspan50" + sodipodi:role="line" + y="307.04864" + x="63.754395"> return app.run();</tspan><tspan + id="tspan51" + sodipodi:role="line" + y="335.84864" + x="63.754395">}</tspan><tspan + id="tspan52" + sodipodi:role="line" + y="364.64864" + x="63.754395"></tspan><tspan + id="tspan53" + sodipodi:role="line" + y="393.44864" + x="63.754395"></tspan><tspan + id="tspan54" + sodipodi:role="line" + y="422.24864" + x="63.754395">* All logic moved inside Inkscape::Application</tspan><tspan + id="tspan55" + sodipodi:role="line" + y="451.04864" + x="63.754395"> + popt, homedir path detection, prefs, extensions, etc.</tspan><tspan + id="tspan56" + sodipodi:role="line" + y="479.84864" + x="63.754395"> + Run mode handling</tspan><tspan + id="tspan57" + sodipodi:role="line" + y="508.64865" + x="63.754395"></tspan><tspan + id="tspan58" + sodipodi:role="line" + y="537.44865" + x="63.754395">* Could also include a definition of WinMain here if needed</tspan></text> + </g> + <g + inkscape:label="Drawing Area" + id="layer3" + inkscape:groupmode="layer" /> +</svg> diff --git a/doc/NewAppArchitecture/11-future-ink-app.svg b/doc/NewAppArchitecture/11-future-ink-app.svg new file mode 100644 index 000000000..e39b493c6 --- /dev/null +++ b/doc/NewAppArchitecture/11-future-ink-app.svg @@ -0,0 +1,507 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> +<svg + xmlns:xml="http://www.w3.org/XML/1998/namespace" + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://web.resource.org/cc/" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + id="svg586" + sodipodi:version="0.32" + inkscape:version="0.40+cvs" + width="640pt" + height="480pt" + sodipodi:docname="11-future-ink-app.svg" + sodipodi:docbase="/home/bryce/src/Inkscape/inkscape/doc/NewAppArchitecture"> + <defs + id="defs588"> + <marker + inkscape:stockid="TriangleOutL" + orient="auto" + refY="0.0" + refX="0.0" + id="marker396" + style="overflow:visible;"> + <path + sodipodi:nodetypes="cccc" + id="path397" + d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z " + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" + transform="scale(0.8)" /> + </marker> + <marker + inkscape:stockid="TriangleOutL" + orient="auto" + refY="0.0" + refX="0.0" + id="marker394" + style="overflow:visible;"> + <path + sodipodi:nodetypes="cccc" + id="path395" + d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z " + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" + transform="scale(0.8)" /> + </marker> + <marker + inkscape:stockid="TriangleOutL" + orient="auto" + refY="0.0" + refX="0.0" + id="marker391" + style="overflow:visible;"> + <path + sodipodi:nodetypes="cccc" + id="path392" + d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z " + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" + transform="scale(0.8)" /> + </marker> + <marker + inkscape:stockid="TriangleOutL" + orient="auto" + refY="0.0" + refX="0.0" + id="marker319" + style="overflow:visible;"> + <path + sodipodi:nodetypes="cccc" + id="path320" + d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z " + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" + transform="scale(0.8)" /> + </marker> + <marker + inkscape:stockid="TriangleOutL" + orient="auto" + refY="0.0" + refX="0.0" + id="TriangleOutL" + style="overflow:visible;"> + <path + sodipodi:nodetypes="cccc" + id="path224" + d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z " + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" + transform="scale(0.8)" /> + </marker> + <linearGradient + id="linearGradient2570"> + <stop + style="stop-color:#000000;stop-opacity:1.0000000;" + offset="0.0000000" + id="stop2571" /> + <stop + style="stop-color:#000000;stop-opacity:0.62745100;" + offset="0.58504134" + id="stop2572" /> + <stop + style="stop-color:#ffffff;stop-opacity:0.0000000;" + offset="1.0000000" + id="stop2573" /> + </linearGradient> + <linearGradient + xlink:href="#linearGradient1218" + id="linearGradient1322" + x1="0.50352114" + y1="0.097472921" + x2="0.27112675" + y2="0.98555958" /> + <linearGradient + xlink:href="#linearGradient1273" + id="linearGradient1318" + x1="0.50704223" + y1="0.27741936" + x2="-0.17253521" + y2="0.99354839" /> + <linearGradient + xlink:href="#linearGradient1222" + id="linearGradient1307" + x1="0.45376351" + y1="1.9347328" + x2="0.41986585" + y2="0.12454049" + gradientTransform="scale(1.004208,0.995809)" /> + <linearGradient + xlink:href="#linearGradient1222" + id="linearGradient1306" + x1="0.45009527" + y1="1.9667202" + x2="0.41548476" + y2="0.11846013" + gradientTransform="scale(1.006361,0.993679)" /> + <linearGradient + xlink:href="#linearGradient1222" + id="linearGradient1305" + x1="0.45839140" + y1="1.8676205" + x2="0.42603236" + y2="0.13959341" + gradientTransform="scale(1.002016,0.997989)" /> + <linearGradient + xlink:href="#linearGradient1273" + id="linearGradient1277" + x1="-0.36619717" + y1="1.5228426" + x2="0.36971831" + y2="0.80203044" /> + <linearGradient + xlink:href="#linearGradient1273" + id="linearGradient1272" + x1="1.0739436" + y1="0.23580793" + x2="0.53521127" + y2="0.55458528" /> + <linearGradient + xlink:href="#linearGradient1222" + id="linearGradient1270" /> + <linearGradient + xlink:href="#linearGradient1323" + id="linearGradient1231" + x1="0.00000000" + y1="0.50000000" + x2="1.0000000" + y2="0.50000000" /> + <linearGradient + xlink:href="#linearGradient1222" + id="linearGradient1221" + x1="-0.96478873" + y1="2.1597939" + x2="0.42605633" + y2="0.24742271" /> + <linearGradient + id="linearGradient1218"> + <stop + style="stop-color:#000000;stop-opacity:1.0000000;" + offset="0.00000000" + id="stop1219" /> + <stop + style="stop-color:#323232;stop-opacity:1.0000000;" + offset="0.073255815" + id="stop1321" /> + <stop + style="stop-color:#000000;stop-opacity:1.0000000;" + offset="0.65260679" + id="stop1320" /> + <stop + style="stop-color:#fff;stop-opacity:1;" + offset="1" + id="stop1220" /> + </linearGradient> + <linearGradient + id="linearGradient1222"> + <stop + style="stop-color:#0081ac;stop-opacity:1.0000000;" + offset="0.0000000" + id="stop1223" /> + <stop + style="stop-color:#006d91;stop-opacity:0.62745100;" + offset="0.50000000" + id="stop1722" /> + <stop + style="stop-color:#000000;stop-opacity:0.0000000;" + offset="1.0000000" + id="stop1224" /> + </linearGradient> + <linearGradient + id="linearGradient1273"> + <stop + style="stop-color:#ffffff;stop-opacity:1.0000000;" + offset="0.00000000" + id="stop1274" /> + <stop + style="stop-color:#ffffff;stop-opacity:0.00000000;" + offset="1.0000000" + id="stop1275" /> + </linearGradient> + <linearGradient + id="linearGradient1323"> + <stop + style="stop-color:#000000;stop-opacity:0.77685952;" + offset="0.00000000" + id="stop1324" /> + <stop + style="stop-color:#000000;stop-opacity:0.00000000;" + offset="1.0000000" + id="stop1325" /> + </linearGradient> + <radialGradient + xlink:href="#linearGradient826" + id="radialGradient829" + cx="0.49382716" + cy="0.46875000" + r="0.41400504" + fx="0.50617284" + fy="0.15625000" /> + <linearGradient + id="linearGradient826"> + <stop + style="stop-color:#000000;stop-opacity:0.95294118;" + offset="0.00000000" + id="stop827" /> + <stop + style="stop-color:#000000;stop-opacity:0.76078433;" + offset="0.36585677" + id="stop830" /> + <stop + style="stop-color:#000000;stop-opacity:0.52941179;" + offset="0.47107276" + id="stop847" /> + <stop + style="stop-color:#ffffff;stop-opacity:0.00000000;" + offset="1.0000000" + id="stop828" /> + </linearGradient> + <linearGradient + xlink:href="#linearGradient909" + id="linearGradient907" + x1="0.50000000" + y1="0.66667551" + x2="0.50000000" + y2="-1.7333326" /> + <linearGradient + id="linearGradient909"> + <stop + style="stop-color:#000000;stop-opacity:0.00000000;" + offset="0.00000000" + id="stop910" /> + <stop + style="stop-color:#000000;stop-opacity:0.17000000;" + offset="1.0000000" + id="stop913" /> + </linearGradient> + <linearGradient + xlink:href="#linearGradient1222" + id="linearGradient1309" /> + <linearGradient + xlink:href="#linearGradient2570" + id="linearGradient1308" + x1="0.0000000" + y1="0.50000000" + x2="1.0000000" + y2="0.50000000" /> + </defs> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="1.0000000" + inkscape:cx="372.43198" + inkscape:cy="274.28571" + inkscape:window-width="968" + inkscape:window-height="821" + inkscape:window-x="291" + inkscape:window-y="14" + showguides="true" + inkscape:guide-bbox="true" + inkscape:current-layer="layer2" /> + <metadata + id="metadata33"> + <rdf:RDF + id="RDF34"> + <cc:Work + rdf:about="" + id="Work35"> + <dc:format + id="format36">image/svg+xml</dc:format> + <dc:type + id="type38" + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + </cc:Work> + </rdf:RDF> + </metadata> + <g + inkscape:groupmode="layer" + id="layer1" + inkscape:label="Background" + style="display:block"> + <rect + style="font-size:12.000000;fill:url(#linearGradient1309);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:3.0000000pt;" + id="topbluebox" + width="800.00000" + height="112.50000" + x="0.0000000" + y="1.7763568e-15" /> + <path + style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:url(#linearGradient1308);stroke-width:4.9844480;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;" + d="M -0.034245957,110.20928 L 797.51553,110.00778" + id="path654" + sodipodi:nodetypes="cc" /> + <g + id="g1085" + transform="translate(646.2792,-9.754791)"> + <g + id="g1394" + transform="matrix(0.875802,0.000000,0.000000,0.869278,1.048583,-7.965682)"> + <path + sodipodi:type="arc" + id="path898" + sodipodi:cx="300.00000" + sodipodi:cy="300.00000" + sodipodi:rx="300.00000" + sodipodi:ry="300.00000" + d="M 600.00000 300.00000 A 300.00000 300.00000 0 1 0 0.0000000,300.00000 A 300.00000 300.00000 0 1 0 600.00000 300.00000 z" + style="opacity:0.69398910;fill:url(#radialGradient829);stroke-width:4.4309568;stroke-dasharray:17.723827 17.723827 ;stroke-dashoffset:0.0000000;" + transform="matrix(0.394071,0.000000,0.000000,8.155385e-2,-31.69751,94.58860)" /> + <path + sodipodi:type="arc" + id="ball1" + sodipodi:cx="300.00000" + sodipodi:cy="300.00000" + sodipodi:rx="300.00000" + sodipodi:ry="300.00000" + d="M 600.00000 300.00000 A 300.00000 300.00000 0 1 0 0.0000000,300.00000 A 300.00000 300.00000 0 1 0 600.00000 300.00000 z" + style="fill:url(#radialGradient829);stroke-width:4.4309568;stroke-dasharray:17.723827 17.723827 ;stroke-dashoffset:0.0000000;" + transform="matrix(0.280658,0.000000,0.000000,0.148676,4.082687,91.98483)" /> + </g> + <g + id="g1310" + transform="matrix(1.822197,0.000000,0.000000,1.662749,-180.0082,12.26653)" + style="fill:url(#linearGradient1221);"> + <path + style="fill-opacity:0.074380167;fill-rule:evenodd;stroke-width:1.0000000pt;" + d="M 139.27138,11.077118 C 137.22042,11.077119 135.15548,11.849270 133.58388,13.420868 L 105.67763,41.358368 C 104.13725,42.898711 103.33325,44.910828 103.30263,46.920868 C 103.30220,46.954601 103.30263,47.012134 103.30263,47.045868 L 103.36513,47.045868 C 103.89976,49.079999 117.69889,51.660911 119.24013,53.202118 C 121.56768,55.529685 110.31886,57.249538 112.64638,59.577118 C 114.97392,61.904658 126.72486,64.062038 129.05263,66.389620 C 131.38019,68.717170 124.28755,71.187070 126.61513,73.514620 C 128.94268,75.842201 136.74995,72.943440 135.33388,79.014621 C 138.47707,82.157811 145.03666,80.657811 149.42763,77.514621 C 151.75518,75.187070 144.97506,75.404670 147.30263,73.077120 C 149.63018,70.749540 155.50836,70.738600 160.45888,65.170868 C 158.46624,62.071818 151.94381,60.748438 154.27138,58.420868 C 156.59893,56.093323 161.10115,57.261288 170.86513,52.827118 C 175.63150,50.662408 175.25838,49.039285 175.24013,47.045868 C 175.23975,47.003922 175.24013,46.963136 175.24013,46.920868 L 175.20888,46.920868 C 175.17827,44.910830 174.40547,42.898714 172.86513,41.358368 L 144.92763,13.420868 C 143.35604,11.849272 141.32234,11.077118 139.27138,11.077118 z M 139.02138,14.702118 C 139.93315,14.725869 140.67125,15.422422 142.11513,16.358368 L 155.30263,26.139618 C 155.44708,26.233292 155.58252,26.320552 155.70888,26.420868 C 155.83525,26.521171 155.97562,26.627132 156.08388,26.733368 C 156.19214,26.839410 156.27479,26.966073 156.36513,27.077118 C 156.45527,27.188145 156.54310,27.305955 156.61513,27.420868 C 156.68737,27.535969 156.74853,27.646585 156.80263,27.764618 C 156.85677,27.882866 156.89163,27.987920 156.92763,28.108368 C 156.96385,28.228632 157.00329,28.361823 157.02138,28.483368 C 157.03948,28.605130 157.05263,28.736271 157.05263,28.858368 L 149.24013,25.077118 L 148.45888,30.983368 L 144.14638,28.952118 L 137.52138,33.389618 L 134.95888,24.639618 L 131.70888,32.295868 L 122.55263,33.202118 L 122.64638,29.139618 C 122.64638,28.162533 127.93872,21.330614 131.14638,19.702118 L 137.02138,15.483368 C 137.88771,14.921800 138.47431,14.687867 139.02138,14.702118 z M 126.89638,54.639618 C 131.05584,55.718333 135.68346,57.114312 139.39638,57.139618 L 139.55263,58.827118 C 136.37321,58.499388 129.63884,56.949888 128.05263,56.139618 L 126.89638,54.639618 z M 170.24013,62.045868 C 169.60518,62.025518 169.00430,62.089178 168.55263,62.202118 C 167.70107,62.414898 163.56419,62.512928 163.89638,65.170868 C 167.55118,66.499190 173.20097,67.516500 173.86513,64.858368 C 174.36366,62.865308 172.14497,62.106908 170.24013,62.045868 z M 122.45888,67.452120 C 121.88389,67.385110 121.32136,67.455980 120.77138,67.733370 C 118.57203,68.842760 117.09168,71.307720 119.14638,72.327120 C 121.20129,73.346520 122.65747,72.185800 124.45888,70.920870 C 126.26050,69.656140 126.21414,69.408800 126.08388,68.920870 C 125.83449,68.987380 124.18386,67.653150 122.45888,67.452120 z M 162.64638,67.889620 C 160.98514,68.553960 161.00465,70.861860 162.33388,71.858370 C 163.66277,72.855080 165.32597,72.210400 165.99013,71.545870 C 166.65484,70.881530 165.96848,68.553970 162.64638,67.889620 z " + id="path1278" /> + <path + style="fill-opacity:0.074380167;fill-rule:evenodd;stroke-width:1.0000000pt;" + d="M 137.96875,10.718750 C 134.70402,11.060845 132.45341,13.855395 130.15790,15.940974 C 121.77155,24.503910 113.19525,32.911552 104.88478,41.529122 C 103.53165,43.257666 102.98133,45.293623 102.71875,47.437500 C 107.43946,50.886242 113.69835,50.905815 118.71875,53.781250 C 117.30484,56.014138 113.86394,55.927723 112.30534,58.153586 C 110.95047,59.066432 112.87438,60.562599 113.88390,60.907202 C 118.07998,63.025863 122.80956,63.838835 126.97834,66.068813 C 129.14039,66.223477 128.99465,68.397410 127.55968,69.465540 C 126.42313,70.610466 124.66557,72.512182 126.40386,73.938766 C 128.52893,75.415674 131.34635,75.011355 133.71875,75.875000 C 135.38587,76.789177 134.20286,78.442002 135.34375,79.593750 C 138.20878,81.840481 142.17613,81.444087 145.36980,80.162063 C 147.01184,79.679133 148.50293,78.612108 149.93750,77.781250 C 151.32137,76.168445 149.16317,75.014407 147.93750,74.343750 C 147.13207,73.007556 149.81258,72.471472 150.72621,71.835396 C 154.22932,70.415525 157.63139,68.772275 160.32323,66.076023 C 162.00146,65.040055 159.53684,63.566475 158.75000,62.750000 C 157.29555,61.671425 155.38495,61.005736 154.46875,59.343750 C 156.83166,56.736844 160.77991,57.222943 163.82692,55.886662 C 167.48614,54.956060 170.96688,53.327613 174.19128,51.441061 C 176.31894,49.855420 175.75931,47.094289 175.34438,44.858149 C 173.82714,40.146659 169.32671,37.346121 166.14614,33.782162 C 159.00255,26.737555 151.96598,19.558149 144.75603,12.597114 C 142.83187,11.117125 140.40461,10.324926 137.96875,10.718750 z M 140.15625,15.718750 C 145.33185,19.512142 150.51925,23.291773 155.68750,27.093750 C 155.79568,28.128330 152.96647,25.994412 151.88519,25.704486 C 150.56126,25.310550 148.23232,22.990502 148.60160,25.735802 C 148.03383,26.854222 148.89364,30.614243 147.25375,29.748789 C 145.77079,28.952048 143.79956,27.767016 142.39696,29.393778 C 140.87922,30.408352 139.36149,31.422926 137.84375,32.437500 C 136.92659,29.270978 136.01364,26.103230 135.09375,22.937500 C 133.83186,25.869891 132.59553,28.813265 131.34375,31.750000 C 128.60417,32.020833 125.86458,32.291667 123.12500,32.562500 C 122.93577,30.531586 123.37937,28.492090 124.78964,27.051727 C 127.83705,22.165897 132.91432,19.181067 137.48762,15.928279 C 138.38080,15.399443 139.18306,15.465846 140.15625,15.718750 z M 132.06250,56.562500 C 134.25968,57.131800 136.54653,57.244809 138.78125,57.625000 C 137.93164,58.641801 135.83490,57.320885 134.50134,57.277133 C 132.75919,56.896272 131.01731,56.527068 129.37500,55.812500 C 130.27083,56.062500 131.16667,56.312500 132.06250,56.562500 z M 168.50000,61.625000 C 166.47980,62.095190 163.59992,62.369201 163.34375,64.968750 C 164.00781,65.934196 166.11962,66.292948 167.47626,66.551501 C 169.60910,66.891924 172.52463,67.659468 174.01886,65.672524 C 175.29513,63.892929 173.38643,61.628153 171.40540,61.754929 C 170.44376,61.426788 169.48969,61.503021 168.50000,61.625000 z M 120.65625,67.156250 C 119.17864,68.173454 117.17273,69.706513 117.81250,71.750000 C 119.32360,73.943032 122.44871,73.328157 124.17581,71.744685 C 125.31806,71.095411 127.22708,69.849349 126.34375,68.406250 C 124.53029,67.617814 122.70705,66.421404 120.65625,67.156250 z M 162.25000,67.468750 C 160.98536,68.304844 160.47655,70.055902 161.35305,71.321264 C 162.02451,73.004295 164.27223,73.179865 165.64672,72.263080 C 167.48408,71.700360 166.67812,69.347513 165.33731,68.658474 C 164.66189,67.815250 163.12029,67.406310 162.25000,67.468750 z " + id="path1283" /> + <path + style="fill-opacity:0.074380167;fill-rule:evenodd;stroke-width:1.0000000pt;" + d="M 137.09375,12.062500 C 133.45264,13.658306 130.89510,17.054651 128.02763,19.760075 C 120.64992,27.277135 113.11748,34.668181 105.81675,42.244521 C 104.77302,43.583830 104.19848,45.113312 103.93750,46.781250 C 108.02500,49.661848 113.35464,49.814484 117.77247,52.034312 C 119.23732,52.180074 120.83004,53.663696 119.47530,54.914506 C 117.72685,56.714093 114.64707,56.868986 113.18750,58.937500 C 116.98689,61.678185 121.72461,62.314645 125.91888,64.199775 C 127.35246,65.248996 129.93899,65.341959 130.00000,67.531250 C 129.61283,69.469175 127.68115,70.594821 126.84375,72.343750 C 128.66657,74.916318 132.41661,73.526770 134.81763,75.194505 C 136.12150,75.998634 135.76289,77.719238 136.33739,78.786112 C 139.34189,80.984126 143.56705,80.023489 146.59979,78.262860 C 147.57821,77.931235 150.25551,76.737683 148.25234,75.866570 C 146.79311,75.539319 145.57083,73.791727 146.98575,72.676315 C 150.59379,69.928273 155.52636,69.300230 158.75379,65.912819 C 160.44061,64.636839 157.51978,63.512312 156.64603,62.784855 C 155.31686,61.805358 153.02074,60.864770 153.31250,58.906250 C 155.52467,55.836091 159.76350,56.249927 162.98171,54.909139 C 166.64088,54.011598 170.17880,52.442724 173.39619,50.585767 C 175.44759,48.766928 174.40312,45.854433 173.70402,43.674602 C 170.01715,38.505895 164.93468,34.528530 160.60640,29.906454 C 155.05848,24.484276 149.68028,18.831089 144.02714,13.552135 C 142.01313,12.267231 139.68457,11.155741 137.26959,12.030263 L 137.09375,12.062500 z M 139.25000,14.156250 C 144.36849,16.573687 148.44456,20.615673 153.06166,23.857057 C 154.79682,25.417824 157.75256,26.462276 157.65625,29.218750 C 155.98301,29.620934 154.51821,27.909197 152.92283,27.467153 C 151.47889,26.979622 149.05912,24.688826 149.46490,27.619328 C 148.95092,28.676042 149.67609,32.096323 148.30430,31.528870 C 146.86362,30.916675 145.25114,29.742049 143.73062,29.880583 C 141.56112,31.359522 139.38321,32.826259 137.21875,34.312500 C 136.40063,31.654144 135.63994,28.977747 134.84375,26.312500 C 133.78712,28.431959 132.98467,30.961875 131.78125,32.843750 C 128.52084,33.166779 125.26035,33.488957 122.00000,33.812500 C 122.02692,31.439278 121.58820,28.751334 123.45144,26.900643 C 126.38650,21.928911 131.54097,18.937382 135.96875,15.531250 C 137.05500,15.131227 138.17386,14.356070 139.25000,14.156250 z M 126.34375,53.906250 C 130.81931,55.099287 135.33348,56.080112 139.93750,56.625000 C 140.81508,58.380031 139.61654,59.889689 137.75155,59.030564 C 134.35469,58.342143 130.95451,57.411091 127.62500,56.500000 C 127.37596,56.018046 124.72663,53.333015 126.34375,53.906250 z M 168.68750,62.750000 C 167.26725,63.145732 165.19352,63.022642 164.68750,64.750000 C 167.41558,65.272026 170.36127,66.626958 173.03125,65.187500 C 173.94813,63.333514 171.22391,62.807999 169.92452,62.707344 C 169.51218,62.721563 169.09984,62.735781 168.68750,62.750000 z M 120.96875,68.250000 C 119.88102,69.094191 117.71809,71.141191 120.00567,71.867660 C 122.11744,72.377527 123.71955,70.573549 125.28125,69.468750 C 124.17010,68.379529 122.48301,67.967608 120.96875,68.250000 z M 162.25000,68.937500 C 161.26655,70.838341 164.03769,72.707639 165.32625,71.028976 C 165.98639,69.968138 163.10932,68.105539 162.25000,68.937500 z " + id="path1286" /> + <path + style="fill-opacity:0.074380167;fill-rule:evenodd;stroke-width:1.0000000pt;" + d="M 137.50000,12.562500 C 131.56402,15.884438 127.47918,21.513076 122.59316,26.106819 C 117.07494,31.800872 111.33765,37.333066 105.95500,43.127274 C 105.27016,44.232264 103.90274,46.716455 105.88806,47.110513 C 110.48303,49.525949 116.07018,49.897473 120.25000,52.937500 C 121.19557,55.258014 118.31954,56.204644 116.77699,57.135076 C 115.14828,57.646504 113.25757,59.174666 115.98524,59.736007 C 120.51650,62.179113 125.90956,62.812244 130.06250,65.968750 C 131.40440,68.155882 128.87852,70.088345 127.96429,71.816940 C 127.97548,73.606583 130.61198,73.210238 131.85374,73.694589 C 134.00698,73.861384 136.31306,75.067306 136.52629,77.437982 C 137.24770,79.315251 139.82104,79.377347 141.56250,79.375000 C 143.88381,79.081698 145.88731,77.848938 148.00000,76.937500 C 147.89289,75.484280 145.47385,75.343455 145.78125,73.562500 C 147.65028,70.568783 151.46696,69.934698 154.32757,68.211442 C 155.95166,67.507534 157.40819,66.436524 158.50000,65.031250 C 156.69534,62.893495 153.11684,62.207207 152.76893,59.025530 C 153.13476,57.911585 154.90043,56.856141 156.14992,56.314935 C 161.47352,54.305871 167.29666,53.530281 172.18291,50.436255 C 174.75469,49.397100 173.90347,46.181096 173.15013,44.168122 C 170.99740,41.143850 168.08639,38.542958 165.64236,35.681332 C 163.12371,33.093790 160.49665,30.610931 157.93750,28.062500 C 158.99092,29.594714 157.00835,30.333418 155.86310,29.376751 C 153.95887,28.546062 152.06033,27.726589 150.12500,26.968750 C 150.04976,28.633800 149.69671,30.253091 149.34375,31.875000 C 146.94959,32.517021 144.62510,29.359512 142.44997,31.405021 C 140.65579,32.399012 139.25573,34.074138 137.34005,34.698602 C 135.96867,34.449689 136.15225,31.657450 135.44638,30.368996 C 135.03220,27.477998 134.31032,28.114323 133.43720,30.484434 C 132.63691,31.983328 132.29360,34.079093 130.12469,33.576560 C 127.22896,33.863646 124.33317,34.149933 121.43750,34.437500 C 121.45635,31.458390 121.16984,28.094375 123.52595,25.839572 C 126.82257,21.188668 131.69023,18.019711 136.23357,14.793262 C 137.75437,14.087412 139.64327,13.037594 141.05071,14.536711 C 144.77608,17.093755 148.56965,19.491887 152.06250,22.343750 C 149.06655,19.513772 146.25485,16.420638 143.14594,13.751994 C 141.38445,12.871744 139.52020,11.789900 137.50000,12.562500 z M 126.40625,53.343750 C 131.09445,54.266714 135.77718,55.221773 140.46875,56.125000 C 140.66311,57.490600 140.90400,59.768414 138.90019,59.717011 C 134.99279,58.970773 131.04202,57.882901 127.18750,56.875000 C 126.61048,55.955764 124.83534,54.556620 125.40625,53.625000 C 125.73497,53.577157 126.08499,53.292470 126.40625,53.343750 z M 166.53125,63.812500 C 164.90117,64.830649 168.72302,64.879550 169.60036,65.161786 C 170.82454,65.513571 173.80209,64.644903 171.50000,63.593750 C 169.78209,63.217030 168.21140,63.255613 166.53125,63.812500 z M 120.81250,69.187500 C 118.77488,70.497531 120.63987,72.049766 122.29985,70.780747 C 124.22011,70.547064 124.25797,68.584075 122.13849,68.857155 C 121.62590,68.786616 121.20364,68.805690 120.81250,69.187500 z M 162.78125,70.250000 C 165.04372,72.410337 164.50416,68.582957 162.78125,69.787913 C 162.78125,69.883882 162.78125,70.191942 162.78125,70.250000 z " + id="path1295" /> + <path + style="fill-opacity:0.074380167;fill-rule:evenodd;stroke-width:1.0000000pt;" + d="M 137.25000,10.312500 C 134.57328,10.811904 132.67255,13.050780 130.64866,14.715585 C 121.77957,23.451854 113.11785,32.437236 104.37500,41.281250 C 103.17019,43.288146 102.47259,45.456013 102.06250,47.750000 C 105.83476,49.628698 109.64657,51.368815 113.75481,52.377095 C 114.74672,53.000901 118.15181,53.211596 117.03125,54.625000 C 114.87625,55.770623 112.18432,56.545814 111.25000,59.062500 C 113.07397,62.261249 117.13309,62.448994 120.14188,63.972108 C 122.66750,64.970987 125.19313,65.969869 127.71875,66.968750 C 127.79709,69.608591 127.12737,68.724937 125.79671,67.542170 C 123.76150,66.508388 120.74167,65.559916 119.14266,67.799744 C 117.68910,68.685330 116.55779,70.940149 117.66673,72.361712 C 119.74129,74.610002 123.29896,73.558599 125.22361,71.631365 C 125.39044,71.451948 124.94524,74.329263 126.55554,74.625682 C 128.75187,75.888131 131.56113,75.535204 133.75000,76.781250 C 134.17453,78.637203 134.92263,80.738750 137.10053,81.029661 C 140.53970,82.420114 144.41944,81.397273 147.50485,79.584682 C 148.81540,78.872018 151.32795,78.343669 150.75195,76.374975 C 150.70713,75.080531 147.53803,74.300613 149.31250,73.093750 C 153.55943,71.203594 157.91230,69.209830 161.18750,65.843750 C 161.99115,63.731003 159.07145,62.849633 157.93750,61.562500 C 156.57653,60.417748 154.30116,59.195844 157.17010,58.407983 C 162.44672,56.428116 168.30037,55.651561 173.14000,52.536010 C 175.69933,51.724285 176.75286,48.825627 176.01594,46.382200 C 175.99204,43.921497 174.36450,41.884430 172.99509,39.973772 C 168.23708,34.553265 162.73310,29.839073 157.72691,24.648245 C 153.37676,20.454464 149.19589,15.998891 144.74248,11.964991 C 142.49218,10.519398 139.90204,10.047325 137.25000,10.312500 z M 140.40625,16.625000 C 144.38180,19.415210 148.26381,22.371245 152.21875,25.218750 C 151.00059,24.471219 149.71107,24.008458 148.28125,23.906250 C 148.08169,25.616789 147.84012,27.322499 147.62500,29.031250 C 145.77312,28.480352 143.67622,27.363820 142.02088,28.944411 C 140.79579,29.321785 138.71876,32.029330 138.02739,30.946881 C 137.09069,27.714729 136.15797,24.481420 135.21875,21.250000 C 133.79126,24.568262 132.38708,27.896549 130.96875,31.218750 C 128.56250,31.458333 126.15625,31.697917 123.75000,31.937500 C 123.73611,28.504117 126.40867,25.941624 128.50533,23.538181 C 131.60340,20.877921 134.84009,18.280137 138.37100,16.266120 C 139.05687,15.927768 139.72649,16.501380 140.40625,16.625000 z M 165.12500,61.937500 C 163.94994,62.683294 162.04675,64.163789 163.31250,65.625000 C 165.77599,67.237331 168.84980,67.346191 171.68759,67.438839 C 173.79767,67.380039 175.87709,64.882603 174.44068,62.966319 C 173.10190,60.663393 170.05340,61.177216 167.81605,61.201002 C 166.91904,61.446503 166.02202,61.692001 165.12500,61.937500 z M 162.03125,67.031250 C 160.83535,68.000188 160.29043,69.695123 160.76346,71.258236 C 161.16730,73.039050 163.22496,73.494707 164.78719,72.992478 C 167.13879,73.181332 168.09248,69.825149 166.13394,68.653373 C 164.96960,67.668728 163.65541,66.689296 162.03125,67.031250 z " + id="path1300" /> + <path + style="fill-opacity:0.074380167;fill-rule:evenodd;stroke-width:1.0000000pt;" + d="M 136.87500,9.5625000 C 131.65304,11.769127 128.14544,16.384624 124.15881,20.216605 C 117.35142,27.117414 110.49657,33.984328 103.71875,40.906250 C 102.85273,43.332808 101.99819,45.763562 101.12500,48.187500 C 105.93068,50.283305 110.76347,52.276496 115.75000,53.906250 C 115.44333,55.363555 112.99770,55.191635 112.24058,56.587946 C 110.89606,57.445273 110.01695,59.785906 111.89556,60.567820 C 114.86490,63.357428 118.93991,64.363020 122.62500,65.875000 C 119.72774,65.033632 117.80750,68.090788 116.68750,70.250000 C 116.01105,72.950420 119.11437,74.651083 121.43923,74.259441 C 122.88425,74.778519 124.87048,71.894366 125.06555,74.129447 C 127.21708,76.574392 131.35224,75.998123 133.59751,78.288768 C 134.32398,80.302303 135.99246,81.986172 138.23383,82.006618 C 140.25772,82.589257 142.23898,82.314480 144.19142,81.614260 C 146.47188,81.098710 148.64271,79.959926 150.63761,78.824244 C 152.14711,77.754911 151.81527,75.346631 150.43750,74.312500 C 150.23406,72.704926 152.73875,72.682794 153.75639,71.819616 C 156.49819,70.564020 158.90600,68.804050 161.21875,66.906250 C 160.19643,68.376408 159.81043,70.315970 160.38112,71.987759 C 161.34634,74.267655 164.22210,73.656108 166.15625,73.531250 C 168.08949,72.610730 168.83732,69.631414 166.87500,68.343750 C 164.02568,66.581529 166.47357,67.403459 168.27836,67.911665 C 170.51415,68.044548 173.31226,68.747610 174.83495,66.581402 C 176.52328,64.952843 175.46252,62.386049 173.84375,61.125000 C 171.82924,60.052772 169.41179,60.364713 167.22781,60.468857 C 165.26732,60.816302 163.77932,61.981088 162.56250,63.500000 C 161.07416,64.693238 164.27576,66.891706 162.51264,66.451187 C 161.23611,66.670932 162.80138,64.122782 161.27178,63.293106 C 160.27477,61.829766 158.59216,60.917429 157.34375,59.656250 C 163.37320,56.739900 170.41697,55.950383 175.81250,51.750000 C 177.79054,49.403625 176.89111,46.297658 176.31250,43.625000 C 172.71709,37.077334 166.72680,32.381991 161.58112,27.092054 C 156.10204,21.754721 150.65568,16.371055 145.15625,11.062500 C 142.76062,10.099303 140.31053,9.4347862 137.70606,9.5684113 C 137.43820,9.5943662 137.13013,9.4705862 136.87500,9.5625000 z M 144.00000,20.125000 C 145.41913,21.217458 146.85549,22.290152 148.28125,23.375000 C 146.97140,24.376925 147.43473,26.306660 146.96875,27.718750 C 145.01335,27.188020 142.88412,27.117042 141.28969,28.567875 C 140.30436,29.400862 138.46017,30.323076 138.31032,28.383898 C 137.43025,25.351664 136.59470,22.304201 135.68750,19.281250 C 137.21838,18.817776 138.78213,16.344334 140.28250,17.745803 C 141.52167,18.538869 142.76083,19.331934 144.00000,20.125000 z M 130.53125,30.406250 C 128.68750,30.593750 126.84375,30.781250 125.00000,30.968750 C 125.70615,27.451641 128.61722,24.990200 131.09307,22.632488 C 132.44877,21.648343 133.72082,20.531920 135.12500,19.625000 C 133.59375,23.218750 132.06250,26.812500 130.53125,30.406250 z " + id="path1304" /> + </g> + <path + style="fill:url(#linearGradient1322);fill-rule:evenodd;stroke-width:1.0000000pt;" + d="M 78.468542,10.216821 C 75.406213,10.216823 72.323010,11.369737 69.976423,13.716321 L 28.309048,55.430356 C 26.009076,57.730272 24.808608,60.734604 24.762888,63.735835 C 24.762246,63.786202 24.762888,63.872106 24.762888,63.922475 L 24.856208,63.922475 C 25.654475,66.959676 46.258230,70.813287 48.559486,73.114494 C 52.034797,76.589830 35.238960,79.157777 38.714227,82.633131 C 42.189523,86.108431 59.735084,89.329652 63.210724,92.805012 C 66.686050,96.280332 56.095888,99.968182 59.571244,103.44349 C 63.046555,106.91885 74.703745,102.59065 72.589383,111.65565 C 77.282542,116.34881 87.076796,114.10913 93.633042,109.41597 C 97.108353,105.94066 86.984820,106.26556 90.460160,102.79025 C 93.935473,99.314902 102.71230,99.298562 110.10402,90.985272 C 107.12876,86.358021 97.390000,84.382051 100.86534,80.906713 C 104.34065,77.431409 111.06300,79.175321 125.64179,72.554574 C 132.75855,69.322402 132.20143,66.898885 132.17419,63.922475 C 132.17362,63.859844 132.17419,63.798946 132.17419,63.735835 L 132.12753,63.735835 C 132.08182,60.734607 130.92794,57.730277 128.62803,55.430356 L 86.914001,13.716321 C 84.567429,11.369740 81.530871,10.216821 78.468542,10.216821 z M 59.991184,75.260853 C 66.201756,76.871504 73.111347,78.955868 78.655182,78.993653 L 78.888482,81.513293 C 74.141227,81.023952 64.086006,78.710363 61.717604,77.500533 L 59.991184,75.260853 z M 124.70859,86.319271 C 123.76053,86.288891 122.86335,86.383941 122.18895,86.552571 C 120.91747,86.870282 114.74061,87.016652 115.23661,90.985272 C 120.69367,92.968622 129.12948,94.487582 130.12115,90.518672 C 130.86551,87.542792 127.55274,86.410411 124.70859,86.319271 z M 53.365465,94.391452 C 52.506936,94.291402 51.667011,94.397222 50.845825,94.811392 C 47.561932,96.467852 45.351592,100.14833 48.419506,101.67041 C 51.487732,103.19250 53.661984,101.45941 56.351705,99.570712 C 59.041739,97.682322 58.972518,97.313012 58.778024,96.584472 C 58.405655,96.683782 55.941067,94.691622 53.365465,94.391452 z M 113.37021,95.044692 C 110.88978,96.036632 110.91892,99.482602 112.90361,100.97051 C 114.88780,102.45872 117.37116,101.49614 118.36283,100.50391 C 119.35532,99.511972 118.33051,96.036652 113.37021,95.044692 z " + id="path1217" + sodipodi:nodetypes="cccccccccccccccccccccccccccccccccccccccccc" + transform="matrix(1.220396,0.000000,0.000000,1.220396,-20.19444,7.307033)" /> + <path + style="fill:url(#linearGradient1231);fill-rule:evenodd;stroke-width:1.0000000pt;" + d="M 25.748195,58.983802 C 25.069168,60.484820 24.699511,62.088386 24.675015,63.696461 C 24.674375,63.746824 24.675015,63.832738 24.675015,63.883101 L 24.768335,63.883101 C 25.532194,66.789384 44.034284,70.422637 47.678393,72.748500 C 49.285306,71.792649 50.340763,70.791543 49.264832,69.715600 C 46.963576,67.414389 26.359823,63.560781 25.561555,60.523581 L 25.468235,60.523581 C 25.468235,60.473204 25.467595,60.387304 25.468235,60.336942 C 25.475280,59.874537 25.686531,59.443757 25.748195,58.983802 z M 132.03964,65.049601 C 131.22443,66.340254 129.65777,67.652109 126.34713,69.155680 C 111.76835,75.776420 105.04600,74.032516 101.57069,77.507812 C 100.51786,78.560641 100.89350,79.461052 101.71067,80.354072 C 105.38973,77.752669 112.01329,78.664472 125.55391,72.515200 C 131.70333,69.722349 132.05669,67.513308 132.03964,65.049601 z M 60.696531,71.861960 L 62.422951,74.101632 C 64.791352,75.311463 74.846572,77.625067 79.593829,78.114392 L 79.360529,75.594752 C 73.816694,75.556961 66.907102,73.472618 60.696531,71.861960 z M 40.119473,79.607512 C 38.565476,80.548088 37.568913,81.536279 38.626354,82.593751 C 42.101651,86.069051 59.647211,89.290272 63.122851,92.765632 C 63.275692,92.918462 63.255326,93.078602 63.356151,93.232232 C 64.435614,91.947532 65.165573,90.655612 63.916071,89.406112 C 60.566937,86.057251 44.419333,82.939151 40.119473,79.607512 z M 117.10845,87.866332 C 115.91482,88.486362 114.95058,89.360392 115.14873,90.945882 C 120.60578,92.929232 129.04159,94.448192 130.03326,90.479292 C 130.22625,89.707762 130.12018,89.057262 129.84662,88.519572 C 127.48913,90.422432 121.65703,89.359992 117.10845,87.866332 z M 108.52303,89.546092 C 101.68539,95.627832 94.291059,96.265772 91.165507,99.391352 C 89.908251,100.64860 90.617583,101.33525 91.632107,101.95765 C 95.620160,99.286262 103.30109,98.498152 110.01615,90.945882 C 109.67197,90.410612 109.01729,90.016842 108.52303,89.546092 z M 112.39580,95.705212 C 110.96059,97.100002 111.14367,99.677592 112.81574,100.93113 C 114.79992,102.41933 117.28328,101.45675 118.27495,100.46453 C 118.78497,99.954792 118.71737,98.812252 117.90167,97.664932 C 116.69163,98.288052 115.10107,98.690742 113.60896,97.571612 C 112.97842,97.098902 112.61381,96.431702 112.39580,95.705212 z M 57.383671,95.891852 C 57.217332,96.012982 57.251127,96.035572 57.057051,96.171812 C 54.367330,98.060502 52.193078,99.793612 49.124852,98.271512 C 48.483305,97.953222 48.223383,97.480502 48.005012,97.011692 C 46.640740,98.694072 46.307086,100.62659 48.331632,101.63103 C 51.399861,103.15311 53.574111,101.42002 56.263832,99.531332 C 58.953868,97.642932 58.884645,97.273622 58.690151,96.545092 C 58.562389,96.579162 57.924006,96.197372 57.383671,95.891852 z M 60.043291,99.577992 C 58.963831,100.86268 58.233858,102.15460 59.483371,103.40410 C 62.958684,106.87946 74.615872,102.55126 72.501510,111.61626 C 77.194670,116.30942 86.988927,114.06974 93.545171,109.37658 C 94.825402,108.09634 94.082889,107.39241 93.031907,106.76362 C 86.534250,110.87138 77.700406,112.66245 73.294729,108.25674 C 75.409092,99.191752 63.751901,103.51996 60.276591,100.04459 C 60.123748,99.891752 60.144117,99.731612 60.043291,99.577992 z " + id="path1269" + sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc" + transform="matrix(1.220396,0.000000,0.000000,1.220396,-20.19444,7.307033)" /> + <path + style="fill:url(#linearGradient1272);fill-opacity:0.75000000;fill-rule:evenodd;stroke-width:1.0000000pt;" + d="M 99.186075,30.398236 L 124.44205,57.534989 C 124.44205,57.534989 131.96512,65.595411 126.05415,68.819579 C 120.14317,72.043747 102.14157,76.880001 102.14157,76.880001 L 69.422516,29.764596 L 99.186075,30.398236 z " + id="path1271" + sodipodi:nodetypes="cccccc" + transform="matrix(1.220396,0.000000,0.000000,1.220396,-20.19444,7.307033)" /> + <path + style="fill:url(#linearGradient1277);fill-opacity:0.75000000;fill-rule:evenodd;stroke-width:1.0000000pt;" + d="M 63.243695,31.078988 L 42.657304,54.706552 C 42.657304,54.706552 34.703472,61.724642 39.850070,64.531876 C 44.996668,67.339111 78.917426,78.801990 102.77892,74.591136 L 75.408382,33.652287 L 63.243695,31.078988 z " + id="path1276" + sodipodi:nodetypes="cccccc" + transform="matrix(1.401650,0.000000,0.000000,1.401650,-35.26049,-4.181157)" /> + <path + style="fill:url(#linearGradient1318);fill-rule:evenodd;stroke-width:1.0000000pt;" + d="M 79.571944,14.847933 C 83.032254,14.873506 97.565101,29.009298 101.72458,31.925491 C 105.88407,34.841684 104.90857,36.754316 104.90857,36.936622 L 93.243582,31.290763 L 92.077082,40.109502 L 85.638002,37.076602 L 75.746078,43.702321 L 71.919958,30.637523 L 67.067318,42.069221 L 53.395938,43.422361 L 53.535918,37.356562 L 73.730570,17.473723 C 75.195738,16.031178 76.175081,14.822360 79.571944,14.847933 z " + id="path1317" + sodipodi:nodetypes="ccccccccccczz" + transform="matrix(1.220396,0.000000,0.000000,1.220396,-20.19444,7.307033)" /> + </g> + </g> + <g + inkscape:groupmode="layer" + id="layer2" + inkscape:label="Title"> + <text + sodipodi:linespacing="100%" + x="45" + y="70" + style="font-size:48.000000;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1.0000000;stroke:none;stroke-width:3.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;display:block;font-family:Arial;text-anchor:start;writing-mode:lr;font-stretch:normal;font-variant:normal;line-height:100%" + id="text48"><tspan + id="tspan1" + sodipodi:role="line" + y="70.000000" + x="45.000000">Future Inkscape::Application</tspan></text> + <text + sodipodi:linespacing="120%" + id="text74" + y="191.84863" + x="63.754395" + style="line-height:120%;writing-mode:lr;text-anchor:start;font-family:Sans;stroke-opacity:1.0000000;stroke-linejoin:miter;stroke-linecap:butt;stroke-width:1.0000000pt;stroke:none;fill-opacity:1.0000000;fill:#000000;font-stretch:normal;font-weight:normal;font-variant:normal;font-style:normal;font-size:24.000000" + xml:space="preserve"><tspan + id="tspan15" + sodipodi:role="line" + y="191.84863" + x="63.754395">Inkscape::Application </tspan><tspan + id="tspan16" + sodipodi:role="line" + y="220.64863" + x="63.754395"> + Option handling</tspan><tspan + id="tspan17" + sodipodi:role="line" + y="249.44864" + x="63.754395"> - Select run mode from $arg[0] and/or opts given</tspan><tspan + id="tspan18" + sodipodi:role="line" + y="278.24864" + x="63.754395"> + Paths (homedir, config file dir, share dir, etc.)</tspan><tspan + id="tspan19" + sodipodi:role="line" + y="307.04864" + x="63.754395"> + Preferences</tspan><tspan + id="tspan20" + sodipodi:role="line" + y="335.84864" + x="63.754395"> + Extensions registry</tspan><tspan + id="tspan21" + sodipodi:role="line" + y="364.64864" + x="63.754395"> + Primary Run Mode object creation/maintenance</tspan><tspan + id="tspan22" + sodipodi:role="line" + y="393.44864" + x="63.754395"> Inkscape::Application::RunMode* runmode;</tspan><tspan + id="tspan23" + sodipodi:role="line" + y="422.24864" + x="63.754395"></tspan><tspan + id="tspan24" + sodipodi:role="line" + y="451.04864" + x="63.754395">Inkscape::Application::RunMode</tspan><tspan + id="tspan25" + sodipodi:role="line" + y="479.84864" + x="63.754395"> + Each run mode will subclass this base class</tspan><tspan + id="tspan26" + sodipodi:role="line" + y="508.64865" + x="63.754395"> + Provides an 'implementation hiding' ability similar</tspan><tspan + id="tspan27" + sodipodi:role="line" + y="537.44865" + x="63.754395"> to Inkscape::ApplicationImpl in inkscape_gtkmm</tspan><tspan + id="tspan28" + sodipodi:role="line" + y="566.24865" + x="63.754395"></tspan></text> + </g> + <g + inkscape:groupmode="layer" + id="layer3" + inkscape:label="Drawing Area" /> +</svg> diff --git a/doc/NewAppArchitecture/12-future-run-modes.svg b/doc/NewAppArchitecture/12-future-run-modes.svg new file mode 100644 index 000000000..a579d9de5 --- /dev/null +++ b/doc/NewAppArchitecture/12-future-run-modes.svg @@ -0,0 +1,936 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> +<svg + xmlns:xml="http://www.w3.org/XML/1998/namespace" + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://web.resource.org/cc/" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + id="svg586" + sodipodi:version="0.32" + inkscape:version="0.40+cvs" + width="640pt" + height="480pt" + sodipodi:docname="12-future-run-modes.svg" + sodipodi:docbase="/home/bryce/src/Inkscape/inkscape/doc/NewAppArchitecture"> + <defs + id="defs588"> + <marker + inkscape:stockid="TriangleInL" + orient="auto" + refY="0.0" + refX="0.0" + id="marker85" + style="overflow:visible;"> + <path + sodipodi:nodetypes="cccc" + id="path86" + d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z " + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" + transform="scale(-0.8)" /> + </marker> + <marker + inkscape:stockid="TriangleInL" + orient="auto" + refY="0.0" + refX="0.0" + id="marker83" + style="overflow:visible;"> + <path + sodipodi:nodetypes="cccc" + id="path84" + d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z " + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" + transform="scale(-0.8)" /> + </marker> + <marker + inkscape:stockid="TriangleInL" + orient="auto" + refY="0.0" + refX="0.0" + id="marker80" + style="overflow:visible;"> + <path + sodipodi:nodetypes="cccc" + id="path81" + d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z " + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" + transform="scale(-0.8)" /> + </marker> + <marker + inkscape:stockid="TriangleInL" + orient="auto" + refY="0.0" + refX="0.0" + id="marker77" + style="overflow:visible;"> + <path + sodipodi:nodetypes="cccc" + id="path78" + d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z " + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" + transform="scale(-0.8)" /> + </marker> + <marker + inkscape:stockid="TriangleInL" + orient="auto" + refY="0.0" + refX="0.0" + id="marker74" + style="overflow:visible;"> + <path + sodipodi:nodetypes="cccc" + id="path75" + d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z " + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" + transform="scale(-0.8)" /> + </marker> + <marker + inkscape:stockid="TriangleOutL" + orient="auto" + refY="0.0" + refX="0.0" + id="marker198" + style="overflow:visible;"> + <path + sodipodi:nodetypes="cccc" + id="path199" + d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z " + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" + transform="scale(0.8)" /> + </marker> + <marker + inkscape:stockid="TriangleInL" + orient="auto" + refY="0.0" + refX="0.0" + id="marker196" + style="overflow:visible;"> + <path + sodipodi:nodetypes="cccc" + id="path197" + d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z " + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" + transform="scale(-0.8)" /> + </marker> + <marker + inkscape:stockid="TriangleOutL" + orient="auto" + refY="0.0" + refX="0.0" + id="marker193" + style="overflow:visible;"> + <path + sodipodi:nodetypes="cccc" + id="path194" + d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z " + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" + transform="scale(0.8)" /> + </marker> + <marker + inkscape:stockid="TriangleInL" + orient="auto" + refY="0.0" + refX="0.0" + id="marker191" + style="overflow:visible;"> + <path + sodipodi:nodetypes="cccc" + id="path192" + d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z " + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" + transform="scale(-0.8)" /> + </marker> + <marker + inkscape:stockid="TriangleOutL" + orient="auto" + refY="0.0" + refX="0.0" + id="marker791" + style="overflow:visible;"> + <path + sodipodi:nodetypes="cccc" + id="path792" + d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z " + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" + transform="scale(0.8)" /> + </marker> + <marker + inkscape:stockid="TriangleOutL" + orient="auto" + refY="0.0" + refX="0.0" + id="marker719" + style="overflow:visible;"> + <path + sodipodi:nodetypes="cccc" + id="path720" + d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z " + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" + transform="scale(0.8)" /> + </marker> + <marker + inkscape:stockid="TriangleInL" + orient="auto" + refY="0.0" + refX="0.0" + id="marker717" + style="overflow:visible;"> + <path + sodipodi:nodetypes="cccc" + id="path718" + d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z " + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" + transform="scale(-0.8)" /> + </marker> + <marker + inkscape:stockid="TriangleOutL" + orient="auto" + refY="0.0" + refX="0.0" + id="marker714" + style="overflow:visible;"> + <path + sodipodi:nodetypes="cccc" + id="path715" + d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z " + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" + transform="scale(0.8)" /> + </marker> + <marker + inkscape:stockid="TriangleInL" + orient="auto" + refY="0.0" + refX="0.0" + id="marker712" + style="overflow:visible;"> + <path + sodipodi:nodetypes="cccc" + id="path713" + d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z " + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" + transform="scale(-0.8)" /> + </marker> + <marker + inkscape:stockid="TriangleOutL" + orient="auto" + refY="0.0" + refX="0.0" + id="marker709" + style="overflow:visible;"> + <path + sodipodi:nodetypes="cccc" + id="path710" + d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z " + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" + transform="scale(0.8)" /> + </marker> + <marker + inkscape:stockid="TriangleInL" + orient="auto" + refY="0.0" + refX="0.0" + id="marker707" + style="overflow:visible;"> + <path + sodipodi:nodetypes="cccc" + id="path708" + d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z " + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" + transform="scale(-0.8)" /> + </marker> + <marker + inkscape:stockid="TriangleOutL" + orient="auto" + refY="0.0" + refX="0.0" + id="marker704" + style="overflow:visible;"> + <path + sodipodi:nodetypes="cccc" + id="path705" + d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z " + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" + transform="scale(0.8)" /> + </marker> + <marker + inkscape:stockid="TriangleInL" + orient="auto" + refY="0.0" + refX="0.0" + id="marker702" + style="overflow:visible;"> + <path + sodipodi:nodetypes="cccc" + id="path703" + d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z " + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" + transform="scale(-0.8)" /> + </marker> + <marker + inkscape:stockid="TriangleOutL" + orient="auto" + refY="0.0" + refX="0.0" + id="TriangleOutL" + style="overflow:visible;"> + <path + sodipodi:nodetypes="cccc" + id="path2817" + d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z " + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" + transform="scale(0.8)" /> + </marker> + <marker + inkscape:stockid="TriangleInL" + orient="auto" + refY="0.0" + refX="0.0" + id="TriangleInL" + style="overflow:visible;"> + <path + sodipodi:nodetypes="cccc" + id="path2823" + d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z " + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" + transform="scale(-0.8)" /> + </marker> + <marker + inkscape:stockid="Arrow2L" + orient="auto" + refY="0.0" + refX="0.0" + id="Arrow2L" + style="overflow:visible;"> + <path + sodipodi:nodetypes="cccc" + id="path2863" + style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;" + d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " + transform="scale(1.1) translate(-5,0)" /> + </marker> + <linearGradient + id="linearGradient2570"> + <stop + style="stop-color:#000000;stop-opacity:1.0000000;" + offset="0.0000000" + id="stop2571" /> + <stop + style="stop-color:#000000;stop-opacity:0.62745100;" + offset="0.58504134" + id="stop2572" /> + <stop + style="stop-color:#ffffff;stop-opacity:0.0000000;" + offset="1.0000000" + id="stop2573" /> + </linearGradient> + <linearGradient + xlink:href="#linearGradient1218" + id="linearGradient1322" + x1="0.50352114" + y1="0.097472921" + x2="0.27112675" + y2="0.98555958" /> + <linearGradient + xlink:href="#linearGradient1273" + id="linearGradient1318" + x1="0.50704223" + y1="0.27741936" + x2="-0.17253521" + y2="0.99354839" /> + <linearGradient + xlink:href="#linearGradient1222" + id="linearGradient1307" + x1="0.45376351" + y1="1.9347328" + x2="0.41986585" + y2="0.12454049" + gradientTransform="scale(1.004208,0.995809)" /> + <linearGradient + xlink:href="#linearGradient1222" + id="linearGradient1306" + x1="0.45009527" + y1="1.9667202" + x2="0.41548476" + y2="0.11846013" + gradientTransform="scale(1.006361,0.993679)" /> + <linearGradient + xlink:href="#linearGradient1222" + id="linearGradient1305" + x1="0.45839140" + y1="1.8676205" + x2="0.42603236" + y2="0.13959341" + gradientTransform="scale(1.002016,0.997989)" /> + <linearGradient + xlink:href="#linearGradient1273" + id="linearGradient1277" + x1="-0.36619717" + y1="1.5228426" + x2="0.36971831" + y2="0.80203044" /> + <linearGradient + xlink:href="#linearGradient1273" + id="linearGradient1272" + x1="1.0739436" + y1="0.23580793" + x2="0.53521127" + y2="0.55458528" /> + <linearGradient + xlink:href="#linearGradient1222" + id="linearGradient1270" /> + <linearGradient + xlink:href="#linearGradient1323" + id="linearGradient1231" + x1="0.00000000" + y1="0.50000000" + x2="1.0000000" + y2="0.50000000" /> + <linearGradient + xlink:href="#linearGradient1222" + id="linearGradient1221" + x1="-0.96478873" + y1="2.1597939" + x2="0.42605633" + y2="0.24742271" /> + <linearGradient + id="linearGradient1218"> + <stop + style="stop-color:#000000;stop-opacity:1.0000000;" + offset="0.00000000" + id="stop1219" /> + <stop + style="stop-color:#323232;stop-opacity:1.0000000;" + offset="0.073255815" + id="stop1321" /> + <stop + style="stop-color:#000000;stop-opacity:1.0000000;" + offset="0.65260679" + id="stop1320" /> + <stop + style="stop-color:#fff;stop-opacity:1;" + offset="1" + id="stop1220" /> + </linearGradient> + <linearGradient + id="linearGradient1222"> + <stop + style="stop-color:#0081ac;stop-opacity:1.0000000;" + offset="0.0000000" + id="stop1223" /> + <stop + style="stop-color:#006d91;stop-opacity:0.62745100;" + offset="0.50000000" + id="stop1722" /> + <stop + style="stop-color:#000000;stop-opacity:0.0000000;" + offset="1.0000000" + id="stop1224" /> + </linearGradient> + <linearGradient + id="linearGradient1273"> + <stop + style="stop-color:#ffffff;stop-opacity:1.0000000;" + offset="0.00000000" + id="stop1274" /> + <stop + style="stop-color:#ffffff;stop-opacity:0.00000000;" + offset="1.0000000" + id="stop1275" /> + </linearGradient> + <linearGradient + id="linearGradient1323"> + <stop + style="stop-color:#000000;stop-opacity:0.77685952;" + offset="0.00000000" + id="stop1324" /> + <stop + style="stop-color:#000000;stop-opacity:0.00000000;" + offset="1.0000000" + id="stop1325" /> + </linearGradient> + <radialGradient + xlink:href="#linearGradient826" + id="radialGradient829" + cx="0.49382716" + cy="0.46875000" + r="0.41400504" + fx="0.50617284" + fy="0.15625000" /> + <linearGradient + id="linearGradient826"> + <stop + style="stop-color:#000000;stop-opacity:0.95294118;" + offset="0.00000000" + id="stop827" /> + <stop + style="stop-color:#000000;stop-opacity:0.76078433;" + offset="0.36585677" + id="stop830" /> + <stop + style="stop-color:#000000;stop-opacity:0.52941179;" + offset="0.47107276" + id="stop847" /> + <stop + style="stop-color:#ffffff;stop-opacity:0.00000000;" + offset="1.0000000" + id="stop828" /> + </linearGradient> + <linearGradient + xlink:href="#linearGradient909" + id="linearGradient907" + x1="0.50000000" + y1="0.66667551" + x2="0.50000000" + y2="-1.7333326" /> + <linearGradient + id="linearGradient909"> + <stop + style="stop-color:#000000;stop-opacity:0.00000000;" + offset="0.00000000" + id="stop910" /> + <stop + style="stop-color:#000000;stop-opacity:0.17000000;" + offset="1.0000000" + id="stop913" /> + </linearGradient> + <linearGradient + xlink:href="#linearGradient1222" + id="linearGradient1309" /> + <linearGradient + xlink:href="#linearGradient2570" + id="linearGradient1308" + x1="0.0000000" + y1="0.50000000" + x2="1.0000000" + y2="0.50000000" /> + </defs> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="1.0500000" + inkscape:cx="344.50947" + inkscape:cy="302.90957" + inkscape:window-width="984" + inkscape:window-height="845" + inkscape:window-x="190" + inkscape:window-y="105" + showguides="true" + inkscape:guide-bbox="false" + inkscape:current-layer="layer2" + showgrid="true" + inkscape:guide-points="true" + gridspacingy="5.0000000pt" + gridspacingx="5.0000000pt" + gridtolerance="50.000000pt" + inkscape:grid-points="true" + inkscape:grid-bbox="false" /> + <metadata + id="metadata33"> + <rdf:RDF + id="RDF34"> + <cc:Work + rdf:about="" + id="Work35"> + <dc:format + id="format36">image/svg+xml</dc:format> + <dc:type + id="type38" + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + </cc:Work> + </rdf:RDF> + </metadata> + <g + inkscape:groupmode="layer" + id="layer1" + inkscape:label="Background" + style="display:block"> + <rect + style="font-size:12.000000;fill:url(#linearGradient1309);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:3.0000000pt;" + id="topbluebox" + width="800.00000" + height="112.50000" + x="0.0000000" + y="1.7763568e-15" /> + <path + style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:url(#linearGradient1308);stroke-width:4.9844480;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;" + d="M -0.034245957,110.20928 L 797.51553,110.00778" + id="path654" + sodipodi:nodetypes="cc" /> + <g + id="g1085" + transform="translate(646.2792,-9.754791)"> + <g + id="g1394" + transform="matrix(0.875802,0.000000,0.000000,0.869278,1.048583,-7.965682)"> + <path + sodipodi:type="arc" + id="path898" + sodipodi:cx="300.00000" + sodipodi:cy="300.00000" + sodipodi:rx="300.00000" + sodipodi:ry="300.00000" + d="M 600.00000 300.00000 A 300.00000 300.00000 0 1 0 0.0000000,300.00000 A 300.00000 300.00000 0 1 0 600.00000 300.00000 z" + style="opacity:0.69398910;fill:url(#radialGradient829);stroke-width:4.4309568;stroke-dasharray:17.723827 17.723827 ;stroke-dashoffset:0.0000000;" + transform="matrix(0.394071,0.000000,0.000000,8.155385e-2,-31.69751,94.58860)" /> + <path + sodipodi:type="arc" + id="ball1" + sodipodi:cx="300.00000" + sodipodi:cy="300.00000" + sodipodi:rx="300.00000" + sodipodi:ry="300.00000" + d="M 600.00000 300.00000 A 300.00000 300.00000 0 1 0 0.0000000,300.00000 A 300.00000 300.00000 0 1 0 600.00000 300.00000 z" + style="fill:url(#radialGradient829);stroke-width:4.4309568;stroke-dasharray:17.723827 17.723827 ;stroke-dashoffset:0.0000000;" + transform="matrix(0.280658,0.000000,0.000000,0.148676,4.082687,91.98483)" /> + </g> + <g + id="g1310" + transform="matrix(1.822197,0.000000,0.000000,1.662749,-180.0082,12.26653)" + style="fill:url(#linearGradient1221);"> + <path + style="fill-opacity:0.074380167;fill-rule:evenodd;stroke-width:1.0000000pt;" + d="M 139.27138,11.077118 C 137.22042,11.077119 135.15548,11.849270 133.58388,13.420868 L 105.67763,41.358368 C 104.13725,42.898711 103.33325,44.910828 103.30263,46.920868 C 103.30220,46.954601 103.30263,47.012134 103.30263,47.045868 L 103.36513,47.045868 C 103.89976,49.079999 117.69889,51.660911 119.24013,53.202118 C 121.56768,55.529685 110.31886,57.249538 112.64638,59.577118 C 114.97392,61.904658 126.72486,64.062038 129.05263,66.389620 C 131.38019,68.717170 124.28755,71.187070 126.61513,73.514620 C 128.94268,75.842201 136.74995,72.943440 135.33388,79.014621 C 138.47707,82.157811 145.03666,80.657811 149.42763,77.514621 C 151.75518,75.187070 144.97506,75.404670 147.30263,73.077120 C 149.63018,70.749540 155.50836,70.738600 160.45888,65.170868 C 158.46624,62.071818 151.94381,60.748438 154.27138,58.420868 C 156.59893,56.093323 161.10115,57.261288 170.86513,52.827118 C 175.63150,50.662408 175.25838,49.039285 175.24013,47.045868 C 175.23975,47.003922 175.24013,46.963136 175.24013,46.920868 L 175.20888,46.920868 C 175.17827,44.910830 174.40547,42.898714 172.86513,41.358368 L 144.92763,13.420868 C 143.35604,11.849272 141.32234,11.077118 139.27138,11.077118 z M 139.02138,14.702118 C 139.93315,14.725869 140.67125,15.422422 142.11513,16.358368 L 155.30263,26.139618 C 155.44708,26.233292 155.58252,26.320552 155.70888,26.420868 C 155.83525,26.521171 155.97562,26.627132 156.08388,26.733368 C 156.19214,26.839410 156.27479,26.966073 156.36513,27.077118 C 156.45527,27.188145 156.54310,27.305955 156.61513,27.420868 C 156.68737,27.535969 156.74853,27.646585 156.80263,27.764618 C 156.85677,27.882866 156.89163,27.987920 156.92763,28.108368 C 156.96385,28.228632 157.00329,28.361823 157.02138,28.483368 C 157.03948,28.605130 157.05263,28.736271 157.05263,28.858368 L 149.24013,25.077118 L 148.45888,30.983368 L 144.14638,28.952118 L 137.52138,33.389618 L 134.95888,24.639618 L 131.70888,32.295868 L 122.55263,33.202118 L 122.64638,29.139618 C 122.64638,28.162533 127.93872,21.330614 131.14638,19.702118 L 137.02138,15.483368 C 137.88771,14.921800 138.47431,14.687867 139.02138,14.702118 z M 126.89638,54.639618 C 131.05584,55.718333 135.68346,57.114312 139.39638,57.139618 L 139.55263,58.827118 C 136.37321,58.499388 129.63884,56.949888 128.05263,56.139618 L 126.89638,54.639618 z M 170.24013,62.045868 C 169.60518,62.025518 169.00430,62.089178 168.55263,62.202118 C 167.70107,62.414898 163.56419,62.512928 163.89638,65.170868 C 167.55118,66.499190 173.20097,67.516500 173.86513,64.858368 C 174.36366,62.865308 172.14497,62.106908 170.24013,62.045868 z M 122.45888,67.452120 C 121.88389,67.385110 121.32136,67.455980 120.77138,67.733370 C 118.57203,68.842760 117.09168,71.307720 119.14638,72.327120 C 121.20129,73.346520 122.65747,72.185800 124.45888,70.920870 C 126.26050,69.656140 126.21414,69.408800 126.08388,68.920870 C 125.83449,68.987380 124.18386,67.653150 122.45888,67.452120 z M 162.64638,67.889620 C 160.98514,68.553960 161.00465,70.861860 162.33388,71.858370 C 163.66277,72.855080 165.32597,72.210400 165.99013,71.545870 C 166.65484,70.881530 165.96848,68.553970 162.64638,67.889620 z " + id="path1278" /> + <path + style="fill-opacity:0.074380167;fill-rule:evenodd;stroke-width:1.0000000pt;" + d="M 137.96875,10.718750 C 134.70402,11.060845 132.45341,13.855395 130.15790,15.940974 C 121.77155,24.503910 113.19525,32.911552 104.88478,41.529122 C 103.53165,43.257666 102.98133,45.293623 102.71875,47.437500 C 107.43946,50.886242 113.69835,50.905815 118.71875,53.781250 C 117.30484,56.014138 113.86394,55.927723 112.30534,58.153586 C 110.95047,59.066432 112.87438,60.562599 113.88390,60.907202 C 118.07998,63.025863 122.80956,63.838835 126.97834,66.068813 C 129.14039,66.223477 128.99465,68.397410 127.55968,69.465540 C 126.42313,70.610466 124.66557,72.512182 126.40386,73.938766 C 128.52893,75.415674 131.34635,75.011355 133.71875,75.875000 C 135.38587,76.789177 134.20286,78.442002 135.34375,79.593750 C 138.20878,81.840481 142.17613,81.444087 145.36980,80.162063 C 147.01184,79.679133 148.50293,78.612108 149.93750,77.781250 C 151.32137,76.168445 149.16317,75.014407 147.93750,74.343750 C 147.13207,73.007556 149.81258,72.471472 150.72621,71.835396 C 154.22932,70.415525 157.63139,68.772275 160.32323,66.076023 C 162.00146,65.040055 159.53684,63.566475 158.75000,62.750000 C 157.29555,61.671425 155.38495,61.005736 154.46875,59.343750 C 156.83166,56.736844 160.77991,57.222943 163.82692,55.886662 C 167.48614,54.956060 170.96688,53.327613 174.19128,51.441061 C 176.31894,49.855420 175.75931,47.094289 175.34438,44.858149 C 173.82714,40.146659 169.32671,37.346121 166.14614,33.782162 C 159.00255,26.737555 151.96598,19.558149 144.75603,12.597114 C 142.83187,11.117125 140.40461,10.324926 137.96875,10.718750 z M 140.15625,15.718750 C 145.33185,19.512142 150.51925,23.291773 155.68750,27.093750 C 155.79568,28.128330 152.96647,25.994412 151.88519,25.704486 C 150.56126,25.310550 148.23232,22.990502 148.60160,25.735802 C 148.03383,26.854222 148.89364,30.614243 147.25375,29.748789 C 145.77079,28.952048 143.79956,27.767016 142.39696,29.393778 C 140.87922,30.408352 139.36149,31.422926 137.84375,32.437500 C 136.92659,29.270978 136.01364,26.103230 135.09375,22.937500 C 133.83186,25.869891 132.59553,28.813265 131.34375,31.750000 C 128.60417,32.020833 125.86458,32.291667 123.12500,32.562500 C 122.93577,30.531586 123.37937,28.492090 124.78964,27.051727 C 127.83705,22.165897 132.91432,19.181067 137.48762,15.928279 C 138.38080,15.399443 139.18306,15.465846 140.15625,15.718750 z M 132.06250,56.562500 C 134.25968,57.131800 136.54653,57.244809 138.78125,57.625000 C 137.93164,58.641801 135.83490,57.320885 134.50134,57.277133 C 132.75919,56.896272 131.01731,56.527068 129.37500,55.812500 C 130.27083,56.062500 131.16667,56.312500 132.06250,56.562500 z M 168.50000,61.625000 C 166.47980,62.095190 163.59992,62.369201 163.34375,64.968750 C 164.00781,65.934196 166.11962,66.292948 167.47626,66.551501 C 169.60910,66.891924 172.52463,67.659468 174.01886,65.672524 C 175.29513,63.892929 173.38643,61.628153 171.40540,61.754929 C 170.44376,61.426788 169.48969,61.503021 168.50000,61.625000 z M 120.65625,67.156250 C 119.17864,68.173454 117.17273,69.706513 117.81250,71.750000 C 119.32360,73.943032 122.44871,73.328157 124.17581,71.744685 C 125.31806,71.095411 127.22708,69.849349 126.34375,68.406250 C 124.53029,67.617814 122.70705,66.421404 120.65625,67.156250 z M 162.25000,67.468750 C 160.98536,68.304844 160.47655,70.055902 161.35305,71.321264 C 162.02451,73.004295 164.27223,73.179865 165.64672,72.263080 C 167.48408,71.700360 166.67812,69.347513 165.33731,68.658474 C 164.66189,67.815250 163.12029,67.406310 162.25000,67.468750 z " + id="path1283" /> + <path + style="fill-opacity:0.074380167;fill-rule:evenodd;stroke-width:1.0000000pt;" + d="M 137.09375,12.062500 C 133.45264,13.658306 130.89510,17.054651 128.02763,19.760075 C 120.64992,27.277135 113.11748,34.668181 105.81675,42.244521 C 104.77302,43.583830 104.19848,45.113312 103.93750,46.781250 C 108.02500,49.661848 113.35464,49.814484 117.77247,52.034312 C 119.23732,52.180074 120.83004,53.663696 119.47530,54.914506 C 117.72685,56.714093 114.64707,56.868986 113.18750,58.937500 C 116.98689,61.678185 121.72461,62.314645 125.91888,64.199775 C 127.35246,65.248996 129.93899,65.341959 130.00000,67.531250 C 129.61283,69.469175 127.68115,70.594821 126.84375,72.343750 C 128.66657,74.916318 132.41661,73.526770 134.81763,75.194505 C 136.12150,75.998634 135.76289,77.719238 136.33739,78.786112 C 139.34189,80.984126 143.56705,80.023489 146.59979,78.262860 C 147.57821,77.931235 150.25551,76.737683 148.25234,75.866570 C 146.79311,75.539319 145.57083,73.791727 146.98575,72.676315 C 150.59379,69.928273 155.52636,69.300230 158.75379,65.912819 C 160.44061,64.636839 157.51978,63.512312 156.64603,62.784855 C 155.31686,61.805358 153.02074,60.864770 153.31250,58.906250 C 155.52467,55.836091 159.76350,56.249927 162.98171,54.909139 C 166.64088,54.011598 170.17880,52.442724 173.39619,50.585767 C 175.44759,48.766928 174.40312,45.854433 173.70402,43.674602 C 170.01715,38.505895 164.93468,34.528530 160.60640,29.906454 C 155.05848,24.484276 149.68028,18.831089 144.02714,13.552135 C 142.01313,12.267231 139.68457,11.155741 137.26959,12.030263 L 137.09375,12.062500 z M 139.25000,14.156250 C 144.36849,16.573687 148.44456,20.615673 153.06166,23.857057 C 154.79682,25.417824 157.75256,26.462276 157.65625,29.218750 C 155.98301,29.620934 154.51821,27.909197 152.92283,27.467153 C 151.47889,26.979622 149.05912,24.688826 149.46490,27.619328 C 148.95092,28.676042 149.67609,32.096323 148.30430,31.528870 C 146.86362,30.916675 145.25114,29.742049 143.73062,29.880583 C 141.56112,31.359522 139.38321,32.826259 137.21875,34.312500 C 136.40063,31.654144 135.63994,28.977747 134.84375,26.312500 C 133.78712,28.431959 132.98467,30.961875 131.78125,32.843750 C 128.52084,33.166779 125.26035,33.488957 122.00000,33.812500 C 122.02692,31.439278 121.58820,28.751334 123.45144,26.900643 C 126.38650,21.928911 131.54097,18.937382 135.96875,15.531250 C 137.05500,15.131227 138.17386,14.356070 139.25000,14.156250 z M 126.34375,53.906250 C 130.81931,55.099287 135.33348,56.080112 139.93750,56.625000 C 140.81508,58.380031 139.61654,59.889689 137.75155,59.030564 C 134.35469,58.342143 130.95451,57.411091 127.62500,56.500000 C 127.37596,56.018046 124.72663,53.333015 126.34375,53.906250 z M 168.68750,62.750000 C 167.26725,63.145732 165.19352,63.022642 164.68750,64.750000 C 167.41558,65.272026 170.36127,66.626958 173.03125,65.187500 C 173.94813,63.333514 171.22391,62.807999 169.92452,62.707344 C 169.51218,62.721563 169.09984,62.735781 168.68750,62.750000 z M 120.96875,68.250000 C 119.88102,69.094191 117.71809,71.141191 120.00567,71.867660 C 122.11744,72.377527 123.71955,70.573549 125.28125,69.468750 C 124.17010,68.379529 122.48301,67.967608 120.96875,68.250000 z M 162.25000,68.937500 C 161.26655,70.838341 164.03769,72.707639 165.32625,71.028976 C 165.98639,69.968138 163.10932,68.105539 162.25000,68.937500 z " + id="path1286" /> + <path + style="fill-opacity:0.074380167;fill-rule:evenodd;stroke-width:1.0000000pt;" + d="M 137.50000,12.562500 C 131.56402,15.884438 127.47918,21.513076 122.59316,26.106819 C 117.07494,31.800872 111.33765,37.333066 105.95500,43.127274 C 105.27016,44.232264 103.90274,46.716455 105.88806,47.110513 C 110.48303,49.525949 116.07018,49.897473 120.25000,52.937500 C 121.19557,55.258014 118.31954,56.204644 116.77699,57.135076 C 115.14828,57.646504 113.25757,59.174666 115.98524,59.736007 C 120.51650,62.179113 125.90956,62.812244 130.06250,65.968750 C 131.40440,68.155882 128.87852,70.088345 127.96429,71.816940 C 127.97548,73.606583 130.61198,73.210238 131.85374,73.694589 C 134.00698,73.861384 136.31306,75.067306 136.52629,77.437982 C 137.24770,79.315251 139.82104,79.377347 141.56250,79.375000 C 143.88381,79.081698 145.88731,77.848938 148.00000,76.937500 C 147.89289,75.484280 145.47385,75.343455 145.78125,73.562500 C 147.65028,70.568783 151.46696,69.934698 154.32757,68.211442 C 155.95166,67.507534 157.40819,66.436524 158.50000,65.031250 C 156.69534,62.893495 153.11684,62.207207 152.76893,59.025530 C 153.13476,57.911585 154.90043,56.856141 156.14992,56.314935 C 161.47352,54.305871 167.29666,53.530281 172.18291,50.436255 C 174.75469,49.397100 173.90347,46.181096 173.15013,44.168122 C 170.99740,41.143850 168.08639,38.542958 165.64236,35.681332 C 163.12371,33.093790 160.49665,30.610931 157.93750,28.062500 C 158.99092,29.594714 157.00835,30.333418 155.86310,29.376751 C 153.95887,28.546062 152.06033,27.726589 150.12500,26.968750 C 150.04976,28.633800 149.69671,30.253091 149.34375,31.875000 C 146.94959,32.517021 144.62510,29.359512 142.44997,31.405021 C 140.65579,32.399012 139.25573,34.074138 137.34005,34.698602 C 135.96867,34.449689 136.15225,31.657450 135.44638,30.368996 C 135.03220,27.477998 134.31032,28.114323 133.43720,30.484434 C 132.63691,31.983328 132.29360,34.079093 130.12469,33.576560 C 127.22896,33.863646 124.33317,34.149933 121.43750,34.437500 C 121.45635,31.458390 121.16984,28.094375 123.52595,25.839572 C 126.82257,21.188668 131.69023,18.019711 136.23357,14.793262 C 137.75437,14.087412 139.64327,13.037594 141.05071,14.536711 C 144.77608,17.093755 148.56965,19.491887 152.06250,22.343750 C 149.06655,19.513772 146.25485,16.420638 143.14594,13.751994 C 141.38445,12.871744 139.52020,11.789900 137.50000,12.562500 z M 126.40625,53.343750 C 131.09445,54.266714 135.77718,55.221773 140.46875,56.125000 C 140.66311,57.490600 140.90400,59.768414 138.90019,59.717011 C 134.99279,58.970773 131.04202,57.882901 127.18750,56.875000 C 126.61048,55.955764 124.83534,54.556620 125.40625,53.625000 C 125.73497,53.577157 126.08499,53.292470 126.40625,53.343750 z M 166.53125,63.812500 C 164.90117,64.830649 168.72302,64.879550 169.60036,65.161786 C 170.82454,65.513571 173.80209,64.644903 171.50000,63.593750 C 169.78209,63.217030 168.21140,63.255613 166.53125,63.812500 z M 120.81250,69.187500 C 118.77488,70.497531 120.63987,72.049766 122.29985,70.780747 C 124.22011,70.547064 124.25797,68.584075 122.13849,68.857155 C 121.62590,68.786616 121.20364,68.805690 120.81250,69.187500 z M 162.78125,70.250000 C 165.04372,72.410337 164.50416,68.582957 162.78125,69.787913 C 162.78125,69.883882 162.78125,70.191942 162.78125,70.250000 z " + id="path1295" /> + <path + style="fill-opacity:0.074380167;fill-rule:evenodd;stroke-width:1.0000000pt;" + d="M 137.25000,10.312500 C 134.57328,10.811904 132.67255,13.050780 130.64866,14.715585 C 121.77957,23.451854 113.11785,32.437236 104.37500,41.281250 C 103.17019,43.288146 102.47259,45.456013 102.06250,47.750000 C 105.83476,49.628698 109.64657,51.368815 113.75481,52.377095 C 114.74672,53.000901 118.15181,53.211596 117.03125,54.625000 C 114.87625,55.770623 112.18432,56.545814 111.25000,59.062500 C 113.07397,62.261249 117.13309,62.448994 120.14188,63.972108 C 122.66750,64.970987 125.19313,65.969869 127.71875,66.968750 C 127.79709,69.608591 127.12737,68.724937 125.79671,67.542170 C 123.76150,66.508388 120.74167,65.559916 119.14266,67.799744 C 117.68910,68.685330 116.55779,70.940149 117.66673,72.361712 C 119.74129,74.610002 123.29896,73.558599 125.22361,71.631365 C 125.39044,71.451948 124.94524,74.329263 126.55554,74.625682 C 128.75187,75.888131 131.56113,75.535204 133.75000,76.781250 C 134.17453,78.637203 134.92263,80.738750 137.10053,81.029661 C 140.53970,82.420114 144.41944,81.397273 147.50485,79.584682 C 148.81540,78.872018 151.32795,78.343669 150.75195,76.374975 C 150.70713,75.080531 147.53803,74.300613 149.31250,73.093750 C 153.55943,71.203594 157.91230,69.209830 161.18750,65.843750 C 161.99115,63.731003 159.07145,62.849633 157.93750,61.562500 C 156.57653,60.417748 154.30116,59.195844 157.17010,58.407983 C 162.44672,56.428116 168.30037,55.651561 173.14000,52.536010 C 175.69933,51.724285 176.75286,48.825627 176.01594,46.382200 C 175.99204,43.921497 174.36450,41.884430 172.99509,39.973772 C 168.23708,34.553265 162.73310,29.839073 157.72691,24.648245 C 153.37676,20.454464 149.19589,15.998891 144.74248,11.964991 C 142.49218,10.519398 139.90204,10.047325 137.25000,10.312500 z M 140.40625,16.625000 C 144.38180,19.415210 148.26381,22.371245 152.21875,25.218750 C 151.00059,24.471219 149.71107,24.008458 148.28125,23.906250 C 148.08169,25.616789 147.84012,27.322499 147.62500,29.031250 C 145.77312,28.480352 143.67622,27.363820 142.02088,28.944411 C 140.79579,29.321785 138.71876,32.029330 138.02739,30.946881 C 137.09069,27.714729 136.15797,24.481420 135.21875,21.250000 C 133.79126,24.568262 132.38708,27.896549 130.96875,31.218750 C 128.56250,31.458333 126.15625,31.697917 123.75000,31.937500 C 123.73611,28.504117 126.40867,25.941624 128.50533,23.538181 C 131.60340,20.877921 134.84009,18.280137 138.37100,16.266120 C 139.05687,15.927768 139.72649,16.501380 140.40625,16.625000 z M 165.12500,61.937500 C 163.94994,62.683294 162.04675,64.163789 163.31250,65.625000 C 165.77599,67.237331 168.84980,67.346191 171.68759,67.438839 C 173.79767,67.380039 175.87709,64.882603 174.44068,62.966319 C 173.10190,60.663393 170.05340,61.177216 167.81605,61.201002 C 166.91904,61.446503 166.02202,61.692001 165.12500,61.937500 z M 162.03125,67.031250 C 160.83535,68.000188 160.29043,69.695123 160.76346,71.258236 C 161.16730,73.039050 163.22496,73.494707 164.78719,72.992478 C 167.13879,73.181332 168.09248,69.825149 166.13394,68.653373 C 164.96960,67.668728 163.65541,66.689296 162.03125,67.031250 z " + id="path1300" /> + <path + style="fill-opacity:0.074380167;fill-rule:evenodd;stroke-width:1.0000000pt;" + d="M 136.87500,9.5625000 C 131.65304,11.769127 128.14544,16.384624 124.15881,20.216605 C 117.35142,27.117414 110.49657,33.984328 103.71875,40.906250 C 102.85273,43.332808 101.99819,45.763562 101.12500,48.187500 C 105.93068,50.283305 110.76347,52.276496 115.75000,53.906250 C 115.44333,55.363555 112.99770,55.191635 112.24058,56.587946 C 110.89606,57.445273 110.01695,59.785906 111.89556,60.567820 C 114.86490,63.357428 118.93991,64.363020 122.62500,65.875000 C 119.72774,65.033632 117.80750,68.090788 116.68750,70.250000 C 116.01105,72.950420 119.11437,74.651083 121.43923,74.259441 C 122.88425,74.778519 124.87048,71.894366 125.06555,74.129447 C 127.21708,76.574392 131.35224,75.998123 133.59751,78.288768 C 134.32398,80.302303 135.99246,81.986172 138.23383,82.006618 C 140.25772,82.589257 142.23898,82.314480 144.19142,81.614260 C 146.47188,81.098710 148.64271,79.959926 150.63761,78.824244 C 152.14711,77.754911 151.81527,75.346631 150.43750,74.312500 C 150.23406,72.704926 152.73875,72.682794 153.75639,71.819616 C 156.49819,70.564020 158.90600,68.804050 161.21875,66.906250 C 160.19643,68.376408 159.81043,70.315970 160.38112,71.987759 C 161.34634,74.267655 164.22210,73.656108 166.15625,73.531250 C 168.08949,72.610730 168.83732,69.631414 166.87500,68.343750 C 164.02568,66.581529 166.47357,67.403459 168.27836,67.911665 C 170.51415,68.044548 173.31226,68.747610 174.83495,66.581402 C 176.52328,64.952843 175.46252,62.386049 173.84375,61.125000 C 171.82924,60.052772 169.41179,60.364713 167.22781,60.468857 C 165.26732,60.816302 163.77932,61.981088 162.56250,63.500000 C 161.07416,64.693238 164.27576,66.891706 162.51264,66.451187 C 161.23611,66.670932 162.80138,64.122782 161.27178,63.293106 C 160.27477,61.829766 158.59216,60.917429 157.34375,59.656250 C 163.37320,56.739900 170.41697,55.950383 175.81250,51.750000 C 177.79054,49.403625 176.89111,46.297658 176.31250,43.625000 C 172.71709,37.077334 166.72680,32.381991 161.58112,27.092054 C 156.10204,21.754721 150.65568,16.371055 145.15625,11.062500 C 142.76062,10.099303 140.31053,9.4347862 137.70606,9.5684113 C 137.43820,9.5943662 137.13013,9.4705862 136.87500,9.5625000 z M 144.00000,20.125000 C 145.41913,21.217458 146.85549,22.290152 148.28125,23.375000 C 146.97140,24.376925 147.43473,26.306660 146.96875,27.718750 C 145.01335,27.188020 142.88412,27.117042 141.28969,28.567875 C 140.30436,29.400862 138.46017,30.323076 138.31032,28.383898 C 137.43025,25.351664 136.59470,22.304201 135.68750,19.281250 C 137.21838,18.817776 138.78213,16.344334 140.28250,17.745803 C 141.52167,18.538869 142.76083,19.331934 144.00000,20.125000 z M 130.53125,30.406250 C 128.68750,30.593750 126.84375,30.781250 125.00000,30.968750 C 125.70615,27.451641 128.61722,24.990200 131.09307,22.632488 C 132.44877,21.648343 133.72082,20.531920 135.12500,19.625000 C 133.59375,23.218750 132.06250,26.812500 130.53125,30.406250 z " + id="path1304" /> + </g> + <path + style="fill:url(#linearGradient1322);fill-rule:evenodd;stroke-width:1.0000000pt;" + d="M 78.468542,10.216821 C 75.406213,10.216823 72.323010,11.369737 69.976423,13.716321 L 28.309048,55.430356 C 26.009076,57.730272 24.808608,60.734604 24.762888,63.735835 C 24.762246,63.786202 24.762888,63.872106 24.762888,63.922475 L 24.856208,63.922475 C 25.654475,66.959676 46.258230,70.813287 48.559486,73.114494 C 52.034797,76.589830 35.238960,79.157777 38.714227,82.633131 C 42.189523,86.108431 59.735084,89.329652 63.210724,92.805012 C 66.686050,96.280332 56.095888,99.968182 59.571244,103.44349 C 63.046555,106.91885 74.703745,102.59065 72.589383,111.65565 C 77.282542,116.34881 87.076796,114.10913 93.633042,109.41597 C 97.108353,105.94066 86.984820,106.26556 90.460160,102.79025 C 93.935473,99.314902 102.71230,99.298562 110.10402,90.985272 C 107.12876,86.358021 97.390000,84.382051 100.86534,80.906713 C 104.34065,77.431409 111.06300,79.175321 125.64179,72.554574 C 132.75855,69.322402 132.20143,66.898885 132.17419,63.922475 C 132.17362,63.859844 132.17419,63.798946 132.17419,63.735835 L 132.12753,63.735835 C 132.08182,60.734607 130.92794,57.730277 128.62803,55.430356 L 86.914001,13.716321 C 84.567429,11.369740 81.530871,10.216821 78.468542,10.216821 z M 59.991184,75.260853 C 66.201756,76.871504 73.111347,78.955868 78.655182,78.993653 L 78.888482,81.513293 C 74.141227,81.023952 64.086006,78.710363 61.717604,77.500533 L 59.991184,75.260853 z M 124.70859,86.319271 C 123.76053,86.288891 122.86335,86.383941 122.18895,86.552571 C 120.91747,86.870282 114.74061,87.016652 115.23661,90.985272 C 120.69367,92.968622 129.12948,94.487582 130.12115,90.518672 C 130.86551,87.542792 127.55274,86.410411 124.70859,86.319271 z M 53.365465,94.391452 C 52.506936,94.291402 51.667011,94.397222 50.845825,94.811392 C 47.561932,96.467852 45.351592,100.14833 48.419506,101.67041 C 51.487732,103.19250 53.661984,101.45941 56.351705,99.570712 C 59.041739,97.682322 58.972518,97.313012 58.778024,96.584472 C 58.405655,96.683782 55.941067,94.691622 53.365465,94.391452 z M 113.37021,95.044692 C 110.88978,96.036632 110.91892,99.482602 112.90361,100.97051 C 114.88780,102.45872 117.37116,101.49614 118.36283,100.50391 C 119.35532,99.511972 118.33051,96.036652 113.37021,95.044692 z " + id="path1217" + sodipodi:nodetypes="cccccccccccccccccccccccccccccccccccccccccc" + transform="matrix(1.220396,0.000000,0.000000,1.220396,-20.19444,7.307033)" /> + <path + style="fill:url(#linearGradient1231);fill-rule:evenodd;stroke-width:1.0000000pt;" + d="M 25.748195,58.983802 C 25.069168,60.484820 24.699511,62.088386 24.675015,63.696461 C 24.674375,63.746824 24.675015,63.832738 24.675015,63.883101 L 24.768335,63.883101 C 25.532194,66.789384 44.034284,70.422637 47.678393,72.748500 C 49.285306,71.792649 50.340763,70.791543 49.264832,69.715600 C 46.963576,67.414389 26.359823,63.560781 25.561555,60.523581 L 25.468235,60.523581 C 25.468235,60.473204 25.467595,60.387304 25.468235,60.336942 C 25.475280,59.874537 25.686531,59.443757 25.748195,58.983802 z M 132.03964,65.049601 C 131.22443,66.340254 129.65777,67.652109 126.34713,69.155680 C 111.76835,75.776420 105.04600,74.032516 101.57069,77.507812 C 100.51786,78.560641 100.89350,79.461052 101.71067,80.354072 C 105.38973,77.752669 112.01329,78.664472 125.55391,72.515200 C 131.70333,69.722349 132.05669,67.513308 132.03964,65.049601 z M 60.696531,71.861960 L 62.422951,74.101632 C 64.791352,75.311463 74.846572,77.625067 79.593829,78.114392 L 79.360529,75.594752 C 73.816694,75.556961 66.907102,73.472618 60.696531,71.861960 z M 40.119473,79.607512 C 38.565476,80.548088 37.568913,81.536279 38.626354,82.593751 C 42.101651,86.069051 59.647211,89.290272 63.122851,92.765632 C 63.275692,92.918462 63.255326,93.078602 63.356151,93.232232 C 64.435614,91.947532 65.165573,90.655612 63.916071,89.406112 C 60.566937,86.057251 44.419333,82.939151 40.119473,79.607512 z M 117.10845,87.866332 C 115.91482,88.486362 114.95058,89.360392 115.14873,90.945882 C 120.60578,92.929232 129.04159,94.448192 130.03326,90.479292 C 130.22625,89.707762 130.12018,89.057262 129.84662,88.519572 C 127.48913,90.422432 121.65703,89.359992 117.10845,87.866332 z M 108.52303,89.546092 C 101.68539,95.627832 94.291059,96.265772 91.165507,99.391352 C 89.908251,100.64860 90.617583,101.33525 91.632107,101.95765 C 95.620160,99.286262 103.30109,98.498152 110.01615,90.945882 C 109.67197,90.410612 109.01729,90.016842 108.52303,89.546092 z M 112.39580,95.705212 C 110.96059,97.100002 111.14367,99.677592 112.81574,100.93113 C 114.79992,102.41933 117.28328,101.45675 118.27495,100.46453 C 118.78497,99.954792 118.71737,98.812252 117.90167,97.664932 C 116.69163,98.288052 115.10107,98.690742 113.60896,97.571612 C 112.97842,97.098902 112.61381,96.431702 112.39580,95.705212 z M 57.383671,95.891852 C 57.217332,96.012982 57.251127,96.035572 57.057051,96.171812 C 54.367330,98.060502 52.193078,99.793612 49.124852,98.271512 C 48.483305,97.953222 48.223383,97.480502 48.005012,97.011692 C 46.640740,98.694072 46.307086,100.62659 48.331632,101.63103 C 51.399861,103.15311 53.574111,101.42002 56.263832,99.531332 C 58.953868,97.642932 58.884645,97.273622 58.690151,96.545092 C 58.562389,96.579162 57.924006,96.197372 57.383671,95.891852 z M 60.043291,99.577992 C 58.963831,100.86268 58.233858,102.15460 59.483371,103.40410 C 62.958684,106.87946 74.615872,102.55126 72.501510,111.61626 C 77.194670,116.30942 86.988927,114.06974 93.545171,109.37658 C 94.825402,108.09634 94.082889,107.39241 93.031907,106.76362 C 86.534250,110.87138 77.700406,112.66245 73.294729,108.25674 C 75.409092,99.191752 63.751901,103.51996 60.276591,100.04459 C 60.123748,99.891752 60.144117,99.731612 60.043291,99.577992 z " + id="path1269" + sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc" + transform="matrix(1.220396,0.000000,0.000000,1.220396,-20.19444,7.307033)" /> + <path + style="fill:url(#linearGradient1272);fill-opacity:0.75000000;fill-rule:evenodd;stroke-width:1.0000000pt;" + d="M 99.186075,30.398236 L 124.44205,57.534989 C 124.44205,57.534989 131.96512,65.595411 126.05415,68.819579 C 120.14317,72.043747 102.14157,76.880001 102.14157,76.880001 L 69.422516,29.764596 L 99.186075,30.398236 z " + id="path1271" + sodipodi:nodetypes="cccccc" + transform="matrix(1.220396,0.000000,0.000000,1.220396,-20.19444,7.307033)" /> + <path + style="fill:url(#linearGradient1277);fill-opacity:0.75000000;fill-rule:evenodd;stroke-width:1.0000000pt;" + d="M 63.243695,31.078988 L 42.657304,54.706552 C 42.657304,54.706552 34.703472,61.724642 39.850070,64.531876 C 44.996668,67.339111 78.917426,78.801990 102.77892,74.591136 L 75.408382,33.652287 L 63.243695,31.078988 z " + id="path1276" + sodipodi:nodetypes="cccccc" + transform="matrix(1.401650,0.000000,0.000000,1.401650,-35.26049,-4.181157)" /> + <path + style="fill:url(#linearGradient1318);fill-rule:evenodd;stroke-width:1.0000000pt;" + d="M 79.571944,14.847933 C 83.032254,14.873506 97.565101,29.009298 101.72458,31.925491 C 105.88407,34.841684 104.90857,36.754316 104.90857,36.936622 L 93.243582,31.290763 L 92.077082,40.109502 L 85.638002,37.076602 L 75.746078,43.702321 L 71.919958,30.637523 L 67.067318,42.069221 L 53.395938,43.422361 L 53.535918,37.356562 L 73.730570,17.473723 C 75.195738,16.031178 76.175081,14.822360 79.571944,14.847933 z " + id="path1317" + sodipodi:nodetypes="ccccccccccczz" + transform="matrix(1.220396,0.000000,0.000000,1.220396,-20.19444,7.307033)" /> + </g> + </g> + <g + inkscape:groupmode="layer" + id="layer2" + inkscape:label="Title"> + <path + sodipodi:nodetypes="ccc" + id="path76" + d="M 156.25000,506.25000 L 125.00000,506.25000 L 125.00000,225.00000" + style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;marker-start:url(#TriangleInL);marker-end:none" /> + <text + sodipodi:linespacing="100%" + x="45" + y="70" + style="line-height:100%;font-variant:normal;font-stretch:normal;writing-mode:lr;text-anchor:start;font-family:Arial;display:block;stroke-opacity:1.0000000;stroke-linejoin:miter;stroke-linecap:butt;stroke-width:3.0000000pt;stroke:none;fill-opacity:1.0000000;fill:#ffffff;font-weight:normal;font-style:normal;font-size:48.000000" + id="text48"><tspan + id="tspan11" + sodipodi:role="line" + y="70.000000" + x="45.000000">Future Run Modes</tspan></text> + <rect + style="color:#000000;fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible" + id="rect3" + width="625.41754" + height="62.573414" + x="95.831764" + y="163.75603" + ry="0.0000000" /> + <text + xml:space="preserve" + style="line-height:100%;writing-mode:lr;text-anchor:start;font-family:Sans;stroke-opacity:1.0000000;stroke-linejoin:miter;stroke-linecap:butt;stroke-width:1.0000000pt;stroke:none;fill-opacity:1.0000000;fill:#000000;font-stretch:normal;font-weight:normal;font-variant:normal;font-style:normal;font-size:24.000000" + x="116.20898" + y="202.36015" + id="text76" + sodipodi:linespacing="100%"><tspan + x="116.20898" + y="202.36015" + sodipodi:role="line" + id="tspan1">Inkscape::Application::RunMode</tspan></text> + <rect + style="color:#000000;fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:2.5000000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible" + id="rect14" + width="242.05856" + height="61.899979" + x="164.10359" + y="288.75000" + ry="0.0000000" /> + <text + xml:space="preserve" + style="font-size:24.000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#000000;fill-opacity:1.0000000;stroke:none;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;font-family:Sans;text-anchor:start;writing-mode:lr;line-height:100%" + x="171.24219" + y="318.38672" + id="text15" + sodipodi:linespacing="100%"><tspan + id="tspan24" + sodipodi:role="line" + y="318.38672" + x="171.24219">I::A::Editor</tspan></text> + <rect + style="color:#000000;fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible" + id="rect18" + width="242.05856" + height="61.899979" + x="162.62700" + y="381.85001" + ry="0.0000000" /> + <text + xml:space="preserve" + style="font-size:24.000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#000000;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Sans;text-anchor:start;writing-mode:lr;line-height:100%" + x="170.88281" + y="412.18359" + id="text19" + sodipodi:linespacing="100%"><tspan + id="tspan25" + sodipodi:role="line" + y="412.18359" + x="170.88281">I::A::Presenter</tspan></text> + <rect + style="color:#000000;fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible" + id="rect21" + width="242.05856" + height="61.899979" + x="163.66216" + y="476.25000" + ry="0.0000000" /> + <text + xml:space="preserve" + style="font-size:24.000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#000000;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Sans;text-anchor:start;writing-mode:lr;line-height:100%" + x="173.39453" + y="505.73438" + id="text22" + sodipodi:linespacing="100%"><tspan + id="tspan26" + sodipodi:role="line" + y="505.73438" + x="173.39453">I::A::Whiteboard</tspan></text> + <rect + style="color:#000000;fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible" + id="rect24" + width="242.05856" + height="61.899979" + x="476.69144" + y="288.05005" + ry="0.0000000" /> + <text + xml:space="preserve" + style="font-size:24.000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#000000;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Sans;text-anchor:start;writing-mode:lr;line-height:100%" + x="486.51953" + y="318.38672" + id="text25" + sodipodi:linespacing="100%"><tspan + id="tspan27" + sodipodi:role="line" + y="318.38672" + x="486.51953">I::A::Cmdline</tspan></text> + <rect + style="color:#000000;fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible" + id="rect27" + width="242.05856" + height="61.899979" + x="476.06644" + y="381.82504" + ry="0.0000000" /> + <text + xml:space="preserve" + style="line-height:100%;writing-mode:lr;text-anchor:start;font-family:Sans;stroke-opacity:1.0000000;stroke-linejoin:miter;stroke-linecap:butt;stroke-width:1.0000000pt;stroke:none;fill-opacity:1.0000000;fill:#000000;font-stretch:normal;font-weight:normal;font-variant:normal;font-style:normal;font-size:24.000000" + x="488.64453" + y="412.18359" + id="text28" + sodipodi:linespacing="100%"><tspan + id="tspan30" + sodipodi:role="line" + y="412.18359" + x="488.64453">I::A::TestSuite</tspan></text> + <rect + style="color:#000000;fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible" + id="rect30" + width="242.05856" + height="61.899979" + x="476.69144" + y="476.21881" + ry="0.0000000" /> + <text + xml:space="preserve" + style="font-size:24.000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#000000;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Sans;text-anchor:start;writing-mode:lr;line-height:100%" + x="487.75781" + y="505.73438" + id="text31" + sodipodi:linespacing="100%"><tspan + id="tspan29" + sodipodi:role="line" + y="505.73438" + x="487.75781">I::A::Player</tspan></text> + <path + sodipodi:nodetypes="ccc" + id="path200" + d="M 468.75000,506.25000 L 437.50000,506.25000 L 437.50000,225.00000" + style="marker-end:none;marker-start:url(#TriangleInL);stroke-opacity:1.0000000;stroke-miterlimit:4.0000000;stroke-linejoin:miter;stroke-linecap:butt;stroke-width:1.2500000;stroke:#000000;fill-rule:evenodd;fill-opacity:0.75000000;fill:none" /> + <text + transform="matrix(9.757820e-19,-1.000000,1.000000,9.757820e-19,0.000000,0.000000)" + sodipodi:linespacing="100%" + id="text201" + y="44.245117" + x="-200.11035" + style="font-size:18.000000;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;fill:#0281ac;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Sans;text-anchor:middle;writing-mode:lr-tb" + xml:space="preserve"><tspan + y="44.245117" + x="-200.11035" + id="tspan202" + sodipodi:role="line">BASE</tspan><tspan + y="62.245117" + x="-200.11035" + id="tspan203" + sodipodi:role="line">CLASS</tspan></text> + <text + transform="matrix(9.757820e-19,-1.000000,1.000000,9.757820e-19,0.000000,0.000000)" + sodipodi:linespacing="100%" + id="text273" + y="44.609375" + x="-412.58594" + style="font-size:18.000000;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;fill:#0281ac;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Sans;text-anchor:middle;writing-mode:lr-tb" + xml:space="preserve"><tspan + id="tspan277" + sodipodi:role="line" + y="44.609375" + x="-412.58594">RUN MODE</tspan><tspan + id="tspan278" + sodipodi:role="line" + y="62.609375" + x="-412.58594">SUB-CLASSES</tspan></text> + <text + sodipodi:linespacing="100%" + id="text353" + y="340.95239" + x="191.25" + style="font-size:18.000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#000000;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Monospace;text-anchor:start;writing-mode:lr-tb" + xml:space="preserve"><tspan + id="tspan356" + sodipodi:role="line" + y="340.95239" + x="191.25000">$ inkscape</tspan></text> + <text + sodipodi:linespacing="100%" + id="text357" + y="434.50711" + x="191.25" + style="font-size:18.000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#000000;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Monospace;text-anchor:start;writing-mode:lr-tb" + xml:space="preserve"><tspan + id="tspan361" + sodipodi:role="line" + y="434.50711" + x="191.25000">$ inkview</tspan></text> + <text + sodipodi:linespacing="100%" + id="text359" + y="528.06201" + x="191.25" + style="font-size:18.000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#000000;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Monospace;text-anchor:start;writing-mode:lr-tb" + xml:space="preserve"><tspan + id="tspan362" + sodipodi:role="line" + y="528.06201" + x="191.25000">$ inkboard</tspan></text> + <text + sodipodi:linespacing="100%" + id="text363" + y="340.95239" + x="509.97458" + style="font-size:18.000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#000000;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Monospace;text-anchor:start;writing-mode:lr-tb" + xml:space="preserve"><tspan + id="tspan369" + sodipodi:role="line" + y="340.95239" + x="509.97458">$ inkscape --no-gui</tspan></text> + <text + sodipodi:linespacing="100%" + id="text365" + y="434.50711" + x="509.97458" + style="font-size:18.000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#000000;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Monospace;text-anchor:start;writing-mode:lr-tb" + xml:space="preserve"><tspan + id="tspan371" + sodipodi:role="line" + y="434.50711" + x="509.97458">$ inkscape --test</tspan></text> + <text + sodipodi:linespacing="100%" + id="text367" + y="528.06201" + x="509.97458" + style="font-size:18.000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#000000;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Monospace;text-anchor:start;writing-mode:lr-tb" + xml:space="preserve"><tspan + id="tspan372" + sodipodi:role="line" + y="528.06201" + x="509.97458">$ inkscape --play</tspan></text> + <path + sodipodi:nodetypes="cc" + id="path79" + d="M 468.75000,412.50000 L 437.50000,412.50000" + style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;marker-start:url(#TriangleInL);marker-end:none" /> + <path + sodipodi:nodetypes="cc" + id="path82" + d="M 468.75000,318.75000 L 437.50000,318.75000" + style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;marker-start:url(#TriangleInL);marker-end:none" /> + <path + sodipodi:nodetypes="cc" + id="path87" + d="M 156.25000,412.50000 L 125.00000,412.50000" + style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;marker-start:url(#TriangleInL);marker-end:none" /> + <path + sodipodi:nodetypes="cc" + id="path88" + d="M 156.25000,318.75000 L 125.00000,318.75000" + style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;marker-start:url(#TriangleInL);marker-end:none" /> + </g> + <g + inkscape:groupmode="layer" + id="layer3" + inkscape:label="Drawing Area" /> +</svg> diff --git a/doc/NewAppArchitecture/13-future-ink-app-editor.svg b/doc/NewAppArchitecture/13-future-ink-app-editor.svg new file mode 100644 index 000000000..bb07a3fdb --- /dev/null +++ b/doc/NewAppArchitecture/13-future-ink-app-editor.svg @@ -0,0 +1,1403 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> +<svg + xmlns:xml="http://www.w3.org/XML/1998/namespace" + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://web.resource.org/cc/" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + id="svg586" + sodipodi:version="0.32" + inkscape:version="0.40+cvs" + width="640pt" + height="480pt" + sodipodi:docname="13-future-ink-app-editor.svg" + sodipodi:docbase="/home/bryce/src/Inkscape/inkscape/doc/NewAppArchitecture"> + <defs + id="defs588"> + <marker + style="overflow:visible;" + id="marker368" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="Dot_m"> + <path + transform="scale(0.4) translate(7.125493, 1)" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;marker-end:none;" + d="M -2.5,-1.0 C -2.5,1.7600000 -4.7400000,4.0 -7.5,4.0 C -10.260000,4.0 -12.5,1.7600000 -12.5,-1.0 C -12.5,-3.7600000 -10.260000,-6.0 -7.5,-6.0 C -4.7400000,-6.0 -2.5,-3.7600000 -2.5,-1.0 z " + id="path369" /> + </marker> + <marker + style="overflow:visible;" + id="marker366" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="Dot_m"> + <path + transform="scale(0.4) translate(7.125493, 1)" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;marker-end:none;" + d="M -2.5,-1.0 C -2.5,1.7600000 -4.7400000,4.0 -7.5,4.0 C -10.260000,4.0 -12.5,1.7600000 -12.5,-1.0 C -12.5,-3.7600000 -10.260000,-6.0 -7.5,-6.0 C -4.7400000,-6.0 -2.5,-3.7600000 -2.5,-1.0 z " + id="path367" /> + </marker> + <marker + style="overflow:visible;" + id="marker363" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="Dot_m"> + <path + transform="scale(0.4) translate(7.125493, 1)" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;marker-end:none;" + d="M -2.5,-1.0 C -2.5,1.7600000 -4.7400000,4.0 -7.5,4.0 C -10.260000,4.0 -12.5,1.7600000 -12.5,-1.0 C -12.5,-3.7600000 -10.260000,-6.0 -7.5,-6.0 C -4.7400000,-6.0 -2.5,-3.7600000 -2.5,-1.0 z " + id="path364" /> + </marker> + <marker + style="overflow:visible;" + id="marker359" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="Dot_m"> + <path + transform="scale(0.4) translate(7.125493, 1)" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;marker-end:none;" + d="M -2.5,-1.0 C -2.5,1.7600000 -4.7400000,4.0 -7.5,4.0 C -10.260000,4.0 -12.5,1.7600000 -12.5,-1.0 C -12.5,-3.7600000 -10.260000,-6.0 -7.5,-6.0 C -4.7400000,-6.0 -2.5,-3.7600000 -2.5,-1.0 z " + id="path362" /> + </marker> + <marker + style="overflow:visible;" + id="marker205" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="DiamondL"> + <path + transform="scale(0.8)" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" + d="M -2.1579186e-005,-7.0710768 L -7.0710894,-8.9383918e-006 L -2.1579186e-005,7.0710589 L 7.0710462,-8.9383918e-006 L -2.1579186e-005,-7.0710768 z " + id="path206" /> + </marker> + <marker + style="overflow:visible;" + id="marker202" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="DiamondL"> + <path + transform="scale(0.8)" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" + d="M -2.1579186e-005,-7.0710768 L -7.0710894,-8.9383918e-006 L -2.1579186e-005,7.0710589 L 7.0710462,-8.9383918e-006 L -2.1579186e-005,-7.0710768 z " + id="path203" /> + </marker> + <marker + style="overflow:visible;" + id="marker199" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="DiamondL"> + <path + transform="scale(0.8)" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" + d="M -2.1579186e-005,-7.0710768 L -7.0710894,-8.9383918e-006 L -2.1579186e-005,7.0710589 L 7.0710462,-8.9383918e-006 L -2.1579186e-005,-7.0710768 z " + id="path200" /> + </marker> + <marker + style="overflow:visible;" + id="marker194" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="DiamondL"> + <path + transform="scale(0.8)" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" + d="M -2.1579186e-005,-7.0710768 L -7.0710894,-8.9383918e-006 L -2.1579186e-005,7.0710589 L 7.0710462,-8.9383918e-006 L -2.1579186e-005,-7.0710768 z " + id="path196" /> + </marker> + <marker + style="overflow:visible;" + id="marker30" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="DiamondL"> + <path + transform="scale(0.8)" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" + d="M -2.1579186e-005,-7.0710768 L -7.0710894,-8.9383918e-006 L -2.1579186e-005,7.0710589 L 7.0710462,-8.9383918e-006 L -2.1579186e-005,-7.0710768 z " + id="path31" /> + </marker> + <marker + style="overflow:visible;" + id="marker28" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="Dot_m"> + <path + transform="scale(0.4) translate(7.125493, 1)" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;marker-end:none;" + d="M -2.5,-1.0 C -2.5,1.7600000 -4.7400000,4.0 -7.5,4.0 C -10.260000,4.0 -12.5,1.7600000 -12.5,-1.0 C -12.5,-3.7600000 -10.260000,-6.0 -7.5,-6.0 C -4.7400000,-6.0 -2.5,-3.7600000 -2.5,-1.0 z " + id="path29" /> + </marker> + <marker + style="overflow:visible;" + id="marker26" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="Dot_m"> + <path + transform="scale(0.4) translate(7.125493, 1)" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;marker-end:none;" + d="M -2.5,-1.0 C -2.5,1.7600000 -4.7400000,4.0 -7.5,4.0 C -10.260000,4.0 -12.5,1.7600000 -12.5,-1.0 C -12.5,-3.7600000 -10.260000,-6.0 -7.5,-6.0 C -4.7400000,-6.0 -2.5,-3.7600000 -2.5,-1.0 z " + id="path27" /> + </marker> + <marker + style="overflow:visible;" + id="marker24" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="DiamondL"> + <path + transform="scale(0.8)" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" + d="M -2.1579186e-005,-7.0710768 L -7.0710894,-8.9383918e-006 L -2.1579186e-005,7.0710589 L 7.0710462,-8.9383918e-006 L -2.1579186e-005,-7.0710768 z " + id="path25" /> + </marker> + <marker + style="overflow:visible;" + id="marker358" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="DiamondL"> + <path + transform="scale(0.8)" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" + d="M -2.1579186e-005,-7.0710768 L -7.0710894,-8.9383918e-006 L -2.1579186e-005,7.0710589 L 7.0710462,-8.9383918e-006 L -2.1579186e-005,-7.0710768 z " + id="path359" /> + </marker> + <marker + style="overflow:visible;" + id="marker355" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="DiamondL"> + <path + transform="scale(0.8)" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" + d="M -2.1579186e-005,-7.0710768 L -7.0710894,-8.9383918e-006 L -2.1579186e-005,7.0710589 L 7.0710462,-8.9383918e-006 L -2.1579186e-005,-7.0710768 z " + id="path356" /> + </marker> + <marker + style="overflow:visible;" + id="marker352" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="DiamondL"> + <path + transform="scale(0.8)" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" + d="M -2.1579186e-005,-7.0710768 L -7.0710894,-8.9383918e-006 L -2.1579186e-005,7.0710589 L 7.0710462,-8.9383918e-006 L -2.1579186e-005,-7.0710768 z " + id="path353" /> + </marker> + <marker + style="overflow:visible;" + id="marker349" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="DiamondL"> + <path + transform="scale(0.8)" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" + d="M -2.1579186e-005,-7.0710768 L -7.0710894,-8.9383918e-006 L -2.1579186e-005,7.0710589 L 7.0710462,-8.9383918e-006 L -2.1579186e-005,-7.0710768 z " + id="path350" /> + </marker> + <marker + style="overflow:visible;" + id="marker346" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="DiamondL"> + <path + transform="scale(0.8)" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" + d="M -2.1579186e-005,-7.0710768 L -7.0710894,-8.9383918e-006 L -2.1579186e-005,7.0710589 L 7.0710462,-8.9383918e-006 L -2.1579186e-005,-7.0710768 z " + id="path347" /> + </marker> + <marker + style="overflow:visible;" + id="marker343" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="Dot_m"> + <path + transform="scale(0.4) translate(7.125493, 1)" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;marker-end:none;" + d="M -2.5,-1.0 C -2.5,1.7600000 -4.7400000,4.0 -7.5,4.0 C -10.260000,4.0 -12.5,1.7600000 -12.5,-1.0 C -12.5,-3.7600000 -10.260000,-6.0 -7.5,-6.0 C -4.7400000,-6.0 -2.5,-3.7600000 -2.5,-1.0 z " + id="path344" /> + </marker> + <marker + style="overflow:visible;" + id="marker341" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="Dot_m"> + <path + transform="scale(0.4) translate(7.125493, 1)" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;marker-end:none;" + d="M -2.5,-1.0 C -2.5,1.7600000 -4.7400000,4.0 -7.5,4.0 C -10.260000,4.0 -12.5,1.7600000 -12.5,-1.0 C -12.5,-3.7600000 -10.260000,-6.0 -7.5,-6.0 C -4.7400000,-6.0 -2.5,-3.7600000 -2.5,-1.0 z " + id="path342" /> + </marker> + <marker + style="overflow:visible;" + id="marker338" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="Dot_m"> + <path + transform="scale(0.4) translate(7.125493, 1)" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;marker-end:none;" + d="M -2.5,-1.0 C -2.5,1.7600000 -4.7400000,4.0 -7.5,4.0 C -10.260000,4.0 -12.5,1.7600000 -12.5,-1.0 C -12.5,-3.7600000 -10.260000,-6.0 -7.5,-6.0 C -4.7400000,-6.0 -2.5,-3.7600000 -2.5,-1.0 z " + id="path339" /> + </marker> + <marker + style="overflow:visible;" + id="marker336" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="Dot_m"> + <path + transform="scale(0.4) translate(7.125493, 1)" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;marker-end:none;" + d="M -2.5,-1.0 C -2.5,1.7600000 -4.7400000,4.0 -7.5,4.0 C -10.260000,4.0 -12.5,1.7600000 -12.5,-1.0 C -12.5,-3.7600000 -10.260000,-6.0 -7.5,-6.0 C -4.7400000,-6.0 -2.5,-3.7600000 -2.5,-1.0 z " + id="path337" /> + </marker> + <marker + style="overflow:visible;" + id="marker333" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="Dot_m"> + <path + transform="scale(0.4) translate(7.125493, 1)" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;marker-end:none;" + d="M -2.5,-1.0 C -2.5,1.7600000 -4.7400000,4.0 -7.5,4.0 C -10.260000,4.0 -12.5,1.7600000 -12.5,-1.0 C -12.5,-3.7600000 -10.260000,-6.0 -7.5,-6.0 C -4.7400000,-6.0 -2.5,-3.7600000 -2.5,-1.0 z " + id="path334" /> + </marker> + <marker + style="overflow:visible;" + id="marker331" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="Dot_m"> + <path + transform="scale(0.4) translate(7.125493, 1)" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;marker-end:none;" + d="M -2.5,-1.0 C -2.5,1.7600000 -4.7400000,4.0 -7.5,4.0 C -10.260000,4.0 -12.5,1.7600000 -12.5,-1.0 C -12.5,-3.7600000 -10.260000,-6.0 -7.5,-6.0 C -4.7400000,-6.0 -2.5,-3.7600000 -2.5,-1.0 z " + id="path332" /> + </marker> + <marker + style="overflow:visible;" + id="marker328" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="Dot_m"> + <path + transform="scale(0.4) translate(7.125493, 1)" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;marker-end:none;" + d="M -2.5,-1.0 C -2.5,1.7600000 -4.7400000,4.0 -7.5,4.0 C -10.260000,4.0 -12.5,1.7600000 -12.5,-1.0 C -12.5,-3.7600000 -10.260000,-6.0 -7.5,-6.0 C -4.7400000,-6.0 -2.5,-3.7600000 -2.5,-1.0 z " + id="path329" /> + </marker> + <marker + style="overflow:visible;" + id="marker326" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="Dot_m"> + <path + transform="scale(0.4) translate(7.125493, 1)" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;marker-end:none;" + d="M -2.5,-1.0 C -2.5,1.7600000 -4.7400000,4.0 -7.5,4.0 C -10.260000,4.0 -12.5,1.7600000 -12.5,-1.0 C -12.5,-3.7600000 -10.260000,-6.0 -7.5,-6.0 C -4.7400000,-6.0 -2.5,-3.7600000 -2.5,-1.0 z " + id="path327" /> + </marker> + <marker + style="overflow:visible;" + id="Dot_m" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="Dot_m"> + <path + transform="scale(0.4) translate(7.125493, 1)" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;marker-end:none;" + d="M -2.5,-1.0 C -2.5,1.7600000 -4.7400000,4.0 -7.5,4.0 C -10.260000,4.0 -12.5,1.7600000 -12.5,-1.0 C -12.5,-3.7600000 -10.260000,-6.0 -7.5,-6.0 C -4.7400000,-6.0 -2.5,-3.7600000 -2.5,-1.0 z " + id="path39" /> + </marker> + <marker + style="overflow:visible;" + id="marker254" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="DiamondL"> + <path + transform="scale(0.8)" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" + d="M -2.1579186e-005,-7.0710768 L -7.0710894,-8.9383918e-006 L -2.1579186e-005,7.0710589 L 7.0710462,-8.9383918e-006 L -2.1579186e-005,-7.0710768 z " + id="path255" /> + </marker> + <marker + style="overflow:visible;" + id="marker251" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="DiamondL"> + <path + transform="scale(0.8)" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" + d="M -2.1579186e-005,-7.0710768 L -7.0710894,-8.9383918e-006 L -2.1579186e-005,7.0710589 L 7.0710462,-8.9383918e-006 L -2.1579186e-005,-7.0710768 z " + id="path252" /> + </marker> + <marker + style="overflow:visible;" + id="marker248" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="DiamondL"> + <path + transform="scale(0.8)" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" + d="M -2.1579186e-005,-7.0710768 L -7.0710894,-8.9383918e-006 L -2.1579186e-005,7.0710589 L 7.0710462,-8.9383918e-006 L -2.1579186e-005,-7.0710768 z " + id="path249" /> + </marker> + <marker + style="overflow:visible;" + id="DiamondL" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="DiamondL"> + <path + transform="scale(0.8)" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" + d="M -2.1579186e-005,-7.0710768 L -7.0710894,-8.9383918e-006 L -2.1579186e-005,7.0710589 L 7.0710462,-8.9383918e-006 L -2.1579186e-005,-7.0710768 z " + id="path235" /> + </marker> + <marker + style="overflow:visible;" + id="DiamondS" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="DiamondS"> + <path + transform="scale(0.2)" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" + d="M -2.1579186e-005,-7.0710768 L -7.0710894,-8.9383918e-006 L -2.1579186e-005,7.0710589 L 7.0710462,-8.9383918e-006 L -2.1579186e-005,-7.0710768 z " + id="path840" /> + </marker> + <marker + inkscape:stockid="TriangleOutL" + orient="auto" + refY="0.0" + refX="0.0" + id="marker155" + style="overflow:visible;"> + <path + sodipodi:nodetypes="cccc" + id="path156" + d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z " + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" + transform="scale(0.8)" /> + </marker> + <marker + inkscape:stockid="TriangleInL" + orient="auto" + refY="0.0" + refX="0.0" + id="marker153" + style="overflow:visible;"> + <path + sodipodi:nodetypes="cccc" + id="path154" + d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z " + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" + transform="scale(-0.8)" /> + </marker> + <marker + inkscape:stockid="TriangleOutL" + orient="auto" + refY="0.0" + refX="0.0" + id="marker198" + style="overflow:visible;"> + <path + sodipodi:nodetypes="cccc" + id="path199" + d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z " + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" + transform="scale(0.8)" /> + </marker> + <marker + inkscape:stockid="TriangleInL" + orient="auto" + refY="0.0" + refX="0.0" + id="marker196" + style="overflow:visible;"> + <path + sodipodi:nodetypes="cccc" + id="path197" + d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z " + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" + transform="scale(-0.8)" /> + </marker> + <marker + inkscape:stockid="TriangleOutL" + orient="auto" + refY="0.0" + refX="0.0" + id="marker193" + style="overflow:visible;"> + <path + sodipodi:nodetypes="cccc" + id="path194" + d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z " + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" + transform="scale(0.8)" /> + </marker> + <marker + inkscape:stockid="TriangleInL" + orient="auto" + refY="0.0" + refX="0.0" + id="marker191" + style="overflow:visible;"> + <path + sodipodi:nodetypes="cccc" + id="path192" + d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z " + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" + transform="scale(-0.8)" /> + </marker> + <marker + inkscape:stockid="TriangleOutL" + orient="auto" + refY="0.0" + refX="0.0" + id="marker791" + style="overflow:visible;"> + <path + sodipodi:nodetypes="cccc" + id="path792" + d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z " + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" + transform="scale(0.8)" /> + </marker> + <marker + inkscape:stockid="TriangleOutL" + orient="auto" + refY="0.0" + refX="0.0" + id="marker719" + style="overflow:visible;"> + <path + sodipodi:nodetypes="cccc" + id="path720" + d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z " + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" + transform="scale(0.8)" /> + </marker> + <marker + inkscape:stockid="TriangleInL" + orient="auto" + refY="0.0" + refX="0.0" + id="marker717" + style="overflow:visible;"> + <path + sodipodi:nodetypes="cccc" + id="path718" + d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z " + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" + transform="scale(-0.8)" /> + </marker> + <marker + inkscape:stockid="TriangleOutL" + orient="auto" + refY="0.0" + refX="0.0" + id="marker714" + style="overflow:visible;"> + <path + sodipodi:nodetypes="cccc" + id="path715" + d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z " + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" + transform="scale(0.8)" /> + </marker> + <marker + inkscape:stockid="TriangleInL" + orient="auto" + refY="0.0" + refX="0.0" + id="marker712" + style="overflow:visible;"> + <path + sodipodi:nodetypes="cccc" + id="path713" + d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z " + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" + transform="scale(-0.8)" /> + </marker> + <marker + inkscape:stockid="TriangleOutL" + orient="auto" + refY="0.0" + refX="0.0" + id="marker709" + style="overflow:visible;"> + <path + sodipodi:nodetypes="cccc" + id="path710" + d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z " + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" + transform="scale(0.8)" /> + </marker> + <marker + inkscape:stockid="TriangleInL" + orient="auto" + refY="0.0" + refX="0.0" + id="marker707" + style="overflow:visible;"> + <path + sodipodi:nodetypes="cccc" + id="path708" + d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z " + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" + transform="scale(-0.8)" /> + </marker> + <marker + inkscape:stockid="TriangleOutL" + orient="auto" + refY="0.0" + refX="0.0" + id="marker704" + style="overflow:visible;"> + <path + sodipodi:nodetypes="cccc" + id="path705" + d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z " + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" + transform="scale(0.8)" /> + </marker> + <marker + inkscape:stockid="TriangleInL" + orient="auto" + refY="0.0" + refX="0.0" + id="marker702" + style="overflow:visible;"> + <path + sodipodi:nodetypes="cccc" + id="path703" + d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z " + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" + transform="scale(-0.8)" /> + </marker> + <marker + inkscape:stockid="TriangleOutL" + orient="auto" + refY="0.0" + refX="0.0" + id="TriangleOutL" + style="overflow:visible;"> + <path + sodipodi:nodetypes="cccc" + id="path2817" + d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z " + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" + transform="scale(0.8)" /> + </marker> + <marker + inkscape:stockid="TriangleInL" + orient="auto" + refY="0.0" + refX="0.0" + id="TriangleInL" + style="overflow:visible;"> + <path + sodipodi:nodetypes="cccc" + id="path2823" + d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z " + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" + transform="scale(-0.8)" /> + </marker> + <marker + inkscape:stockid="Arrow2L" + orient="auto" + refY="0.0" + refX="0.0" + id="Arrow2L" + style="overflow:visible;"> + <path + sodipodi:nodetypes="cccc" + id="path2863" + style="font-size:12.0;fill-rule:evenodd;stroke-width:0.62500000;stroke-linejoin:round;" + d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.9730900,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z " + transform="scale(1.1) translate(-5,0)" /> + </marker> + <linearGradient + id="linearGradient2570"> + <stop + style="stop-color:#000000;stop-opacity:1.0000000;" + offset="0.0000000" + id="stop2571" /> + <stop + style="stop-color:#000000;stop-opacity:0.62745100;" + offset="0.58504134" + id="stop2572" /> + <stop + style="stop-color:#ffffff;stop-opacity:0.0000000;" + offset="1.0000000" + id="stop2573" /> + </linearGradient> + <linearGradient + xlink:href="#linearGradient1218" + id="linearGradient1322" + x1="0.50352114" + y1="0.097472921" + x2="0.27112675" + y2="0.98555958" /> + <linearGradient + xlink:href="#linearGradient1273" + id="linearGradient1318" + x1="0.50704223" + y1="0.27741936" + x2="-0.17253521" + y2="0.99354839" /> + <linearGradient + xlink:href="#linearGradient1222" + id="linearGradient1307" + x1="0.45376351" + y1="1.9347328" + x2="0.41986585" + y2="0.12454049" + gradientTransform="scale(1.004208,0.995809)" /> + <linearGradient + xlink:href="#linearGradient1222" + id="linearGradient1306" + x1="0.45009527" + y1="1.9667202" + x2="0.41548476" + y2="0.11846013" + gradientTransform="scale(1.006361,0.993679)" /> + <linearGradient + xlink:href="#linearGradient1222" + id="linearGradient1305" + x1="0.45839140" + y1="1.8676205" + x2="0.42603236" + y2="0.13959341" + gradientTransform="scale(1.002016,0.997989)" /> + <linearGradient + xlink:href="#linearGradient1273" + id="linearGradient1277" + x1="-0.36619717" + y1="1.5228426" + x2="0.36971831" + y2="0.80203044" /> + <linearGradient + xlink:href="#linearGradient1273" + id="linearGradient1272" + x1="1.0739436" + y1="0.23580793" + x2="0.53521127" + y2="0.55458528" /> + <linearGradient + xlink:href="#linearGradient1222" + id="linearGradient1270" /> + <linearGradient + xlink:href="#linearGradient1323" + id="linearGradient1231" + x1="0.00000000" + y1="0.50000000" + x2="1.0000000" + y2="0.50000000" /> + <linearGradient + xlink:href="#linearGradient1222" + id="linearGradient1221" + x1="-0.96478873" + y1="2.1597939" + x2="0.42605633" + y2="0.24742271" /> + <linearGradient + id="linearGradient1218"> + <stop + style="stop-color:#000000;stop-opacity:1.0000000;" + offset="0.00000000" + id="stop1219" /> + <stop + style="stop-color:#323232;stop-opacity:1.0000000;" + offset="0.073255815" + id="stop1321" /> + <stop + style="stop-color:#000000;stop-opacity:1.0000000;" + offset="0.65260679" + id="stop1320" /> + <stop + style="stop-color:#fff;stop-opacity:1;" + offset="1" + id="stop1220" /> + </linearGradient> + <linearGradient + id="linearGradient1222"> + <stop + style="stop-color:#0081ac;stop-opacity:1.0000000;" + offset="0.0000000" + id="stop1223" /> + <stop + style="stop-color:#006d91;stop-opacity:0.62745100;" + offset="0.50000000" + id="stop1722" /> + <stop + style="stop-color:#000000;stop-opacity:0.0000000;" + offset="1.0000000" + id="stop1224" /> + </linearGradient> + <linearGradient + id="linearGradient1273"> + <stop + style="stop-color:#ffffff;stop-opacity:1.0000000;" + offset="0.00000000" + id="stop1274" /> + <stop + style="stop-color:#ffffff;stop-opacity:0.00000000;" + offset="1.0000000" + id="stop1275" /> + </linearGradient> + <linearGradient + id="linearGradient1323"> + <stop + style="stop-color:#000000;stop-opacity:0.77685952;" + offset="0.00000000" + id="stop1324" /> + <stop + style="stop-color:#000000;stop-opacity:0.00000000;" + offset="1.0000000" + id="stop1325" /> + </linearGradient> + <radialGradient + xlink:href="#linearGradient826" + id="radialGradient829" + cx="0.49382716" + cy="0.46875000" + r="0.41400504" + fx="0.50617284" + fy="0.15625000" /> + <linearGradient + id="linearGradient826"> + <stop + style="stop-color:#000000;stop-opacity:0.95294118;" + offset="0.00000000" + id="stop827" /> + <stop + style="stop-color:#000000;stop-opacity:0.76078433;" + offset="0.36585677" + id="stop830" /> + <stop + style="stop-color:#000000;stop-opacity:0.52941179;" + offset="0.47107276" + id="stop847" /> + <stop + style="stop-color:#ffffff;stop-opacity:0.00000000;" + offset="1.0000000" + id="stop828" /> + </linearGradient> + <linearGradient + xlink:href="#linearGradient909" + id="linearGradient907" + x1="0.50000000" + y1="0.66667551" + x2="0.50000000" + y2="-1.7333326" /> + <linearGradient + id="linearGradient909"> + <stop + style="stop-color:#000000;stop-opacity:0.00000000;" + offset="0.00000000" + id="stop910" /> + <stop + style="stop-color:#000000;stop-opacity:0.17000000;" + offset="1.0000000" + id="stop913" /> + </linearGradient> + <linearGradient + xlink:href="#linearGradient1222" + id="linearGradient1309" /> + <linearGradient + xlink:href="#linearGradient2570" + id="linearGradient1308" + x1="0.0000000" + y1="0.50000000" + x2="1.0000000" + y2="0.50000000" /> + </defs> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.0" + inkscape:pageshadow="2" + inkscape:zoom="1.4849242" + inkscape:cx="365.90450" + inkscape:cy="200.78973" + inkscape:window-width="1248" + inkscape:window-height="964" + inkscape:window-x="24" + inkscape:window-y="0" + showguides="true" + inkscape:guide-bbox="false" + inkscape:current-layer="layer2" + showgrid="true" + inkscape:guide-points="true" + gridspacingy="5.0000000pt" + gridspacingx="5.0000000pt" + gridtolerance="50.000000pt" + inkscape:grid-points="true" + inkscape:grid-bbox="false" /> + <metadata + id="metadata33"> + <rdf:RDF + id="RDF34"> + <cc:Work + rdf:about="" + id="Work35"> + <dc:format + id="format36">image/svg+xml</dc:format> + <dc:type + id="type38" + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + </cc:Work> + </rdf:RDF> + </metadata> + <g + inkscape:groupmode="layer" + id="layer1" + inkscape:label="Background" + style="display:block"> + <rect + style="font-size:12.000000;fill:url(#linearGradient1309);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:3.0000000pt;" + id="topbluebox" + width="800.00000" + height="112.50000" + x="0.0000000" + y="1.7763568e-15" /> + <path + style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:url(#linearGradient1308);stroke-width:4.9844480;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;" + d="M -0.034245957,110.20928 L 797.51553,110.00778" + id="path654" + sodipodi:nodetypes="cc" /> + <g + id="g1085" + transform="translate(646.2792,-9.754791)"> + <g + id="g1394" + transform="matrix(0.875802,0.000000,0.000000,0.869278,1.048583,-7.965682)"> + <path + sodipodi:type="arc" + id="path898" + sodipodi:cx="300.00000" + sodipodi:cy="300.00000" + sodipodi:rx="300.00000" + sodipodi:ry="300.00000" + d="M 600.00000 300.00000 A 300.00000 300.00000 0 1 0 0.0000000,300.00000 A 300.00000 300.00000 0 1 0 600.00000 300.00000 z" + style="opacity:0.69398910;fill:url(#radialGradient829);stroke-width:4.4309568;stroke-dasharray:17.723827 17.723827 ;stroke-dashoffset:0.0000000;" + transform="matrix(0.394071,0.000000,0.000000,8.155385e-2,-31.69751,94.58860)" /> + <path + sodipodi:type="arc" + id="ball1" + sodipodi:cx="300.00000" + sodipodi:cy="300.00000" + sodipodi:rx="300.00000" + sodipodi:ry="300.00000" + d="M 600.00000 300.00000 A 300.00000 300.00000 0 1 0 0.0000000,300.00000 A 300.00000 300.00000 0 1 0 600.00000 300.00000 z" + style="fill:url(#radialGradient829);stroke-width:4.4309568;stroke-dasharray:17.723827 17.723827 ;stroke-dashoffset:0.0000000;" + transform="matrix(0.280658,0.000000,0.000000,0.148676,4.082687,91.98483)" /> + </g> + <g + id="g1310" + transform="matrix(1.822197,0.000000,0.000000,1.662749,-180.0082,12.26653)" + style="fill:url(#linearGradient1221);"> + <path + style="fill-opacity:0.074380167;fill-rule:evenodd;stroke-width:1.0000000pt;" + d="M 139.27138,11.077118 C 137.22042,11.077119 135.15548,11.849270 133.58388,13.420868 L 105.67763,41.358368 C 104.13725,42.898711 103.33325,44.910828 103.30263,46.920868 C 103.30220,46.954601 103.30263,47.012134 103.30263,47.045868 L 103.36513,47.045868 C 103.89976,49.079999 117.69889,51.660911 119.24013,53.202118 C 121.56768,55.529685 110.31886,57.249538 112.64638,59.577118 C 114.97392,61.904658 126.72486,64.062038 129.05263,66.389620 C 131.38019,68.717170 124.28755,71.187070 126.61513,73.514620 C 128.94268,75.842201 136.74995,72.943440 135.33388,79.014621 C 138.47707,82.157811 145.03666,80.657811 149.42763,77.514621 C 151.75518,75.187070 144.97506,75.404670 147.30263,73.077120 C 149.63018,70.749540 155.50836,70.738600 160.45888,65.170868 C 158.46624,62.071818 151.94381,60.748438 154.27138,58.420868 C 156.59893,56.093323 161.10115,57.261288 170.86513,52.827118 C 175.63150,50.662408 175.25838,49.039285 175.24013,47.045868 C 175.23975,47.003922 175.24013,46.963136 175.24013,46.920868 L 175.20888,46.920868 C 175.17827,44.910830 174.40547,42.898714 172.86513,41.358368 L 144.92763,13.420868 C 143.35604,11.849272 141.32234,11.077118 139.27138,11.077118 z M 139.02138,14.702118 C 139.93315,14.725869 140.67125,15.422422 142.11513,16.358368 L 155.30263,26.139618 C 155.44708,26.233292 155.58252,26.320552 155.70888,26.420868 C 155.83525,26.521171 155.97562,26.627132 156.08388,26.733368 C 156.19214,26.839410 156.27479,26.966073 156.36513,27.077118 C 156.45527,27.188145 156.54310,27.305955 156.61513,27.420868 C 156.68737,27.535969 156.74853,27.646585 156.80263,27.764618 C 156.85677,27.882866 156.89163,27.987920 156.92763,28.108368 C 156.96385,28.228632 157.00329,28.361823 157.02138,28.483368 C 157.03948,28.605130 157.05263,28.736271 157.05263,28.858368 L 149.24013,25.077118 L 148.45888,30.983368 L 144.14638,28.952118 L 137.52138,33.389618 L 134.95888,24.639618 L 131.70888,32.295868 L 122.55263,33.202118 L 122.64638,29.139618 C 122.64638,28.162533 127.93872,21.330614 131.14638,19.702118 L 137.02138,15.483368 C 137.88771,14.921800 138.47431,14.687867 139.02138,14.702118 z M 126.89638,54.639618 C 131.05584,55.718333 135.68346,57.114312 139.39638,57.139618 L 139.55263,58.827118 C 136.37321,58.499388 129.63884,56.949888 128.05263,56.139618 L 126.89638,54.639618 z M 170.24013,62.045868 C 169.60518,62.025518 169.00430,62.089178 168.55263,62.202118 C 167.70107,62.414898 163.56419,62.512928 163.89638,65.170868 C 167.55118,66.499190 173.20097,67.516500 173.86513,64.858368 C 174.36366,62.865308 172.14497,62.106908 170.24013,62.045868 z M 122.45888,67.452120 C 121.88389,67.385110 121.32136,67.455980 120.77138,67.733370 C 118.57203,68.842760 117.09168,71.307720 119.14638,72.327120 C 121.20129,73.346520 122.65747,72.185800 124.45888,70.920870 C 126.26050,69.656140 126.21414,69.408800 126.08388,68.920870 C 125.83449,68.987380 124.18386,67.653150 122.45888,67.452120 z M 162.64638,67.889620 C 160.98514,68.553960 161.00465,70.861860 162.33388,71.858370 C 163.66277,72.855080 165.32597,72.210400 165.99013,71.545870 C 166.65484,70.881530 165.96848,68.553970 162.64638,67.889620 z " + id="path1278" /> + <path + style="fill-opacity:0.074380167;fill-rule:evenodd;stroke-width:1.0000000pt;" + d="M 137.96875,10.718750 C 134.70402,11.060845 132.45341,13.855395 130.15790,15.940974 C 121.77155,24.503910 113.19525,32.911552 104.88478,41.529122 C 103.53165,43.257666 102.98133,45.293623 102.71875,47.437500 C 107.43946,50.886242 113.69835,50.905815 118.71875,53.781250 C 117.30484,56.014138 113.86394,55.927723 112.30534,58.153586 C 110.95047,59.066432 112.87438,60.562599 113.88390,60.907202 C 118.07998,63.025863 122.80956,63.838835 126.97834,66.068813 C 129.14039,66.223477 128.99465,68.397410 127.55968,69.465540 C 126.42313,70.610466 124.66557,72.512182 126.40386,73.938766 C 128.52893,75.415674 131.34635,75.011355 133.71875,75.875000 C 135.38587,76.789177 134.20286,78.442002 135.34375,79.593750 C 138.20878,81.840481 142.17613,81.444087 145.36980,80.162063 C 147.01184,79.679133 148.50293,78.612108 149.93750,77.781250 C 151.32137,76.168445 149.16317,75.014407 147.93750,74.343750 C 147.13207,73.007556 149.81258,72.471472 150.72621,71.835396 C 154.22932,70.415525 157.63139,68.772275 160.32323,66.076023 C 162.00146,65.040055 159.53684,63.566475 158.75000,62.750000 C 157.29555,61.671425 155.38495,61.005736 154.46875,59.343750 C 156.83166,56.736844 160.77991,57.222943 163.82692,55.886662 C 167.48614,54.956060 170.96688,53.327613 174.19128,51.441061 C 176.31894,49.855420 175.75931,47.094289 175.34438,44.858149 C 173.82714,40.146659 169.32671,37.346121 166.14614,33.782162 C 159.00255,26.737555 151.96598,19.558149 144.75603,12.597114 C 142.83187,11.117125 140.40461,10.324926 137.96875,10.718750 z M 140.15625,15.718750 C 145.33185,19.512142 150.51925,23.291773 155.68750,27.093750 C 155.79568,28.128330 152.96647,25.994412 151.88519,25.704486 C 150.56126,25.310550 148.23232,22.990502 148.60160,25.735802 C 148.03383,26.854222 148.89364,30.614243 147.25375,29.748789 C 145.77079,28.952048 143.79956,27.767016 142.39696,29.393778 C 140.87922,30.408352 139.36149,31.422926 137.84375,32.437500 C 136.92659,29.270978 136.01364,26.103230 135.09375,22.937500 C 133.83186,25.869891 132.59553,28.813265 131.34375,31.750000 C 128.60417,32.020833 125.86458,32.291667 123.12500,32.562500 C 122.93577,30.531586 123.37937,28.492090 124.78964,27.051727 C 127.83705,22.165897 132.91432,19.181067 137.48762,15.928279 C 138.38080,15.399443 139.18306,15.465846 140.15625,15.718750 z M 132.06250,56.562500 C 134.25968,57.131800 136.54653,57.244809 138.78125,57.625000 C 137.93164,58.641801 135.83490,57.320885 134.50134,57.277133 C 132.75919,56.896272 131.01731,56.527068 129.37500,55.812500 C 130.27083,56.062500 131.16667,56.312500 132.06250,56.562500 z M 168.50000,61.625000 C 166.47980,62.095190 163.59992,62.369201 163.34375,64.968750 C 164.00781,65.934196 166.11962,66.292948 167.47626,66.551501 C 169.60910,66.891924 172.52463,67.659468 174.01886,65.672524 C 175.29513,63.892929 173.38643,61.628153 171.40540,61.754929 C 170.44376,61.426788 169.48969,61.503021 168.50000,61.625000 z M 120.65625,67.156250 C 119.17864,68.173454 117.17273,69.706513 117.81250,71.750000 C 119.32360,73.943032 122.44871,73.328157 124.17581,71.744685 C 125.31806,71.095411 127.22708,69.849349 126.34375,68.406250 C 124.53029,67.617814 122.70705,66.421404 120.65625,67.156250 z M 162.25000,67.468750 C 160.98536,68.304844 160.47655,70.055902 161.35305,71.321264 C 162.02451,73.004295 164.27223,73.179865 165.64672,72.263080 C 167.48408,71.700360 166.67812,69.347513 165.33731,68.658474 C 164.66189,67.815250 163.12029,67.406310 162.25000,67.468750 z " + id="path1283" /> + <path + style="fill-opacity:0.074380167;fill-rule:evenodd;stroke-width:1.0000000pt;" + d="M 137.09375,12.062500 C 133.45264,13.658306 130.89510,17.054651 128.02763,19.760075 C 120.64992,27.277135 113.11748,34.668181 105.81675,42.244521 C 104.77302,43.583830 104.19848,45.113312 103.93750,46.781250 C 108.02500,49.661848 113.35464,49.814484 117.77247,52.034312 C 119.23732,52.180074 120.83004,53.663696 119.47530,54.914506 C 117.72685,56.714093 114.64707,56.868986 113.18750,58.937500 C 116.98689,61.678185 121.72461,62.314645 125.91888,64.199775 C 127.35246,65.248996 129.93899,65.341959 130.00000,67.531250 C 129.61283,69.469175 127.68115,70.594821 126.84375,72.343750 C 128.66657,74.916318 132.41661,73.526770 134.81763,75.194505 C 136.12150,75.998634 135.76289,77.719238 136.33739,78.786112 C 139.34189,80.984126 143.56705,80.023489 146.59979,78.262860 C 147.57821,77.931235 150.25551,76.737683 148.25234,75.866570 C 146.79311,75.539319 145.57083,73.791727 146.98575,72.676315 C 150.59379,69.928273 155.52636,69.300230 158.75379,65.912819 C 160.44061,64.636839 157.51978,63.512312 156.64603,62.784855 C 155.31686,61.805358 153.02074,60.864770 153.31250,58.906250 C 155.52467,55.836091 159.76350,56.249927 162.98171,54.909139 C 166.64088,54.011598 170.17880,52.442724 173.39619,50.585767 C 175.44759,48.766928 174.40312,45.854433 173.70402,43.674602 C 170.01715,38.505895 164.93468,34.528530 160.60640,29.906454 C 155.05848,24.484276 149.68028,18.831089 144.02714,13.552135 C 142.01313,12.267231 139.68457,11.155741 137.26959,12.030263 L 137.09375,12.062500 z M 139.25000,14.156250 C 144.36849,16.573687 148.44456,20.615673 153.06166,23.857057 C 154.79682,25.417824 157.75256,26.462276 157.65625,29.218750 C 155.98301,29.620934 154.51821,27.909197 152.92283,27.467153 C 151.47889,26.979622 149.05912,24.688826 149.46490,27.619328 C 148.95092,28.676042 149.67609,32.096323 148.30430,31.528870 C 146.86362,30.916675 145.25114,29.742049 143.73062,29.880583 C 141.56112,31.359522 139.38321,32.826259 137.21875,34.312500 C 136.40063,31.654144 135.63994,28.977747 134.84375,26.312500 C 133.78712,28.431959 132.98467,30.961875 131.78125,32.843750 C 128.52084,33.166779 125.26035,33.488957 122.00000,33.812500 C 122.02692,31.439278 121.58820,28.751334 123.45144,26.900643 C 126.38650,21.928911 131.54097,18.937382 135.96875,15.531250 C 137.05500,15.131227 138.17386,14.356070 139.25000,14.156250 z M 126.34375,53.906250 C 130.81931,55.099287 135.33348,56.080112 139.93750,56.625000 C 140.81508,58.380031 139.61654,59.889689 137.75155,59.030564 C 134.35469,58.342143 130.95451,57.411091 127.62500,56.500000 C 127.37596,56.018046 124.72663,53.333015 126.34375,53.906250 z M 168.68750,62.750000 C 167.26725,63.145732 165.19352,63.022642 164.68750,64.750000 C 167.41558,65.272026 170.36127,66.626958 173.03125,65.187500 C 173.94813,63.333514 171.22391,62.807999 169.92452,62.707344 C 169.51218,62.721563 169.09984,62.735781 168.68750,62.750000 z M 120.96875,68.250000 C 119.88102,69.094191 117.71809,71.141191 120.00567,71.867660 C 122.11744,72.377527 123.71955,70.573549 125.28125,69.468750 C 124.17010,68.379529 122.48301,67.967608 120.96875,68.250000 z M 162.25000,68.937500 C 161.26655,70.838341 164.03769,72.707639 165.32625,71.028976 C 165.98639,69.968138 163.10932,68.105539 162.25000,68.937500 z " + id="path1286" /> + <path + style="fill-opacity:0.074380167;fill-rule:evenodd;stroke-width:1.0000000pt;" + d="M 137.50000,12.562500 C 131.56402,15.884438 127.47918,21.513076 122.59316,26.106819 C 117.07494,31.800872 111.33765,37.333066 105.95500,43.127274 C 105.27016,44.232264 103.90274,46.716455 105.88806,47.110513 C 110.48303,49.525949 116.07018,49.897473 120.25000,52.937500 C 121.19557,55.258014 118.31954,56.204644 116.77699,57.135076 C 115.14828,57.646504 113.25757,59.174666 115.98524,59.736007 C 120.51650,62.179113 125.90956,62.812244 130.06250,65.968750 C 131.40440,68.155882 128.87852,70.088345 127.96429,71.816940 C 127.97548,73.606583 130.61198,73.210238 131.85374,73.694589 C 134.00698,73.861384 136.31306,75.067306 136.52629,77.437982 C 137.24770,79.315251 139.82104,79.377347 141.56250,79.375000 C 143.88381,79.081698 145.88731,77.848938 148.00000,76.937500 C 147.89289,75.484280 145.47385,75.343455 145.78125,73.562500 C 147.65028,70.568783 151.46696,69.934698 154.32757,68.211442 C 155.95166,67.507534 157.40819,66.436524 158.50000,65.031250 C 156.69534,62.893495 153.11684,62.207207 152.76893,59.025530 C 153.13476,57.911585 154.90043,56.856141 156.14992,56.314935 C 161.47352,54.305871 167.29666,53.530281 172.18291,50.436255 C 174.75469,49.397100 173.90347,46.181096 173.15013,44.168122 C 170.99740,41.143850 168.08639,38.542958 165.64236,35.681332 C 163.12371,33.093790 160.49665,30.610931 157.93750,28.062500 C 158.99092,29.594714 157.00835,30.333418 155.86310,29.376751 C 153.95887,28.546062 152.06033,27.726589 150.12500,26.968750 C 150.04976,28.633800 149.69671,30.253091 149.34375,31.875000 C 146.94959,32.517021 144.62510,29.359512 142.44997,31.405021 C 140.65579,32.399012 139.25573,34.074138 137.34005,34.698602 C 135.96867,34.449689 136.15225,31.657450 135.44638,30.368996 C 135.03220,27.477998 134.31032,28.114323 133.43720,30.484434 C 132.63691,31.983328 132.29360,34.079093 130.12469,33.576560 C 127.22896,33.863646 124.33317,34.149933 121.43750,34.437500 C 121.45635,31.458390 121.16984,28.094375 123.52595,25.839572 C 126.82257,21.188668 131.69023,18.019711 136.23357,14.793262 C 137.75437,14.087412 139.64327,13.037594 141.05071,14.536711 C 144.77608,17.093755 148.56965,19.491887 152.06250,22.343750 C 149.06655,19.513772 146.25485,16.420638 143.14594,13.751994 C 141.38445,12.871744 139.52020,11.789900 137.50000,12.562500 z M 126.40625,53.343750 C 131.09445,54.266714 135.77718,55.221773 140.46875,56.125000 C 140.66311,57.490600 140.90400,59.768414 138.90019,59.717011 C 134.99279,58.970773 131.04202,57.882901 127.18750,56.875000 C 126.61048,55.955764 124.83534,54.556620 125.40625,53.625000 C 125.73497,53.577157 126.08499,53.292470 126.40625,53.343750 z M 166.53125,63.812500 C 164.90117,64.830649 168.72302,64.879550 169.60036,65.161786 C 170.82454,65.513571 173.80209,64.644903 171.50000,63.593750 C 169.78209,63.217030 168.21140,63.255613 166.53125,63.812500 z M 120.81250,69.187500 C 118.77488,70.497531 120.63987,72.049766 122.29985,70.780747 C 124.22011,70.547064 124.25797,68.584075 122.13849,68.857155 C 121.62590,68.786616 121.20364,68.805690 120.81250,69.187500 z M 162.78125,70.250000 C 165.04372,72.410337 164.50416,68.582957 162.78125,69.787913 C 162.78125,69.883882 162.78125,70.191942 162.78125,70.250000 z " + id="path1295" /> + <path + style="fill-opacity:0.074380167;fill-rule:evenodd;stroke-width:1.0000000pt;" + d="M 137.25000,10.312500 C 134.57328,10.811904 132.67255,13.050780 130.64866,14.715585 C 121.77957,23.451854 113.11785,32.437236 104.37500,41.281250 C 103.17019,43.288146 102.47259,45.456013 102.06250,47.750000 C 105.83476,49.628698 109.64657,51.368815 113.75481,52.377095 C 114.74672,53.000901 118.15181,53.211596 117.03125,54.625000 C 114.87625,55.770623 112.18432,56.545814 111.25000,59.062500 C 113.07397,62.261249 117.13309,62.448994 120.14188,63.972108 C 122.66750,64.970987 125.19313,65.969869 127.71875,66.968750 C 127.79709,69.608591 127.12737,68.724937 125.79671,67.542170 C 123.76150,66.508388 120.74167,65.559916 119.14266,67.799744 C 117.68910,68.685330 116.55779,70.940149 117.66673,72.361712 C 119.74129,74.610002 123.29896,73.558599 125.22361,71.631365 C 125.39044,71.451948 124.94524,74.329263 126.55554,74.625682 C 128.75187,75.888131 131.56113,75.535204 133.75000,76.781250 C 134.17453,78.637203 134.92263,80.738750 137.10053,81.029661 C 140.53970,82.420114 144.41944,81.397273 147.50485,79.584682 C 148.81540,78.872018 151.32795,78.343669 150.75195,76.374975 C 150.70713,75.080531 147.53803,74.300613 149.31250,73.093750 C 153.55943,71.203594 157.91230,69.209830 161.18750,65.843750 C 161.99115,63.731003 159.07145,62.849633 157.93750,61.562500 C 156.57653,60.417748 154.30116,59.195844 157.17010,58.407983 C 162.44672,56.428116 168.30037,55.651561 173.14000,52.536010 C 175.69933,51.724285 176.75286,48.825627 176.01594,46.382200 C 175.99204,43.921497 174.36450,41.884430 172.99509,39.973772 C 168.23708,34.553265 162.73310,29.839073 157.72691,24.648245 C 153.37676,20.454464 149.19589,15.998891 144.74248,11.964991 C 142.49218,10.519398 139.90204,10.047325 137.25000,10.312500 z M 140.40625,16.625000 C 144.38180,19.415210 148.26381,22.371245 152.21875,25.218750 C 151.00059,24.471219 149.71107,24.008458 148.28125,23.906250 C 148.08169,25.616789 147.84012,27.322499 147.62500,29.031250 C 145.77312,28.480352 143.67622,27.363820 142.02088,28.944411 C 140.79579,29.321785 138.71876,32.029330 138.02739,30.946881 C 137.09069,27.714729 136.15797,24.481420 135.21875,21.250000 C 133.79126,24.568262 132.38708,27.896549 130.96875,31.218750 C 128.56250,31.458333 126.15625,31.697917 123.75000,31.937500 C 123.73611,28.504117 126.40867,25.941624 128.50533,23.538181 C 131.60340,20.877921 134.84009,18.280137 138.37100,16.266120 C 139.05687,15.927768 139.72649,16.501380 140.40625,16.625000 z M 165.12500,61.937500 C 163.94994,62.683294 162.04675,64.163789 163.31250,65.625000 C 165.77599,67.237331 168.84980,67.346191 171.68759,67.438839 C 173.79767,67.380039 175.87709,64.882603 174.44068,62.966319 C 173.10190,60.663393 170.05340,61.177216 167.81605,61.201002 C 166.91904,61.446503 166.02202,61.692001 165.12500,61.937500 z M 162.03125,67.031250 C 160.83535,68.000188 160.29043,69.695123 160.76346,71.258236 C 161.16730,73.039050 163.22496,73.494707 164.78719,72.992478 C 167.13879,73.181332 168.09248,69.825149 166.13394,68.653373 C 164.96960,67.668728 163.65541,66.689296 162.03125,67.031250 z " + id="path1300" /> + <path + style="fill-opacity:0.074380167;fill-rule:evenodd;stroke-width:1.0000000pt;" + d="M 136.87500,9.5625000 C 131.65304,11.769127 128.14544,16.384624 124.15881,20.216605 C 117.35142,27.117414 110.49657,33.984328 103.71875,40.906250 C 102.85273,43.332808 101.99819,45.763562 101.12500,48.187500 C 105.93068,50.283305 110.76347,52.276496 115.75000,53.906250 C 115.44333,55.363555 112.99770,55.191635 112.24058,56.587946 C 110.89606,57.445273 110.01695,59.785906 111.89556,60.567820 C 114.86490,63.357428 118.93991,64.363020 122.62500,65.875000 C 119.72774,65.033632 117.80750,68.090788 116.68750,70.250000 C 116.01105,72.950420 119.11437,74.651083 121.43923,74.259441 C 122.88425,74.778519 124.87048,71.894366 125.06555,74.129447 C 127.21708,76.574392 131.35224,75.998123 133.59751,78.288768 C 134.32398,80.302303 135.99246,81.986172 138.23383,82.006618 C 140.25772,82.589257 142.23898,82.314480 144.19142,81.614260 C 146.47188,81.098710 148.64271,79.959926 150.63761,78.824244 C 152.14711,77.754911 151.81527,75.346631 150.43750,74.312500 C 150.23406,72.704926 152.73875,72.682794 153.75639,71.819616 C 156.49819,70.564020 158.90600,68.804050 161.21875,66.906250 C 160.19643,68.376408 159.81043,70.315970 160.38112,71.987759 C 161.34634,74.267655 164.22210,73.656108 166.15625,73.531250 C 168.08949,72.610730 168.83732,69.631414 166.87500,68.343750 C 164.02568,66.581529 166.47357,67.403459 168.27836,67.911665 C 170.51415,68.044548 173.31226,68.747610 174.83495,66.581402 C 176.52328,64.952843 175.46252,62.386049 173.84375,61.125000 C 171.82924,60.052772 169.41179,60.364713 167.22781,60.468857 C 165.26732,60.816302 163.77932,61.981088 162.56250,63.500000 C 161.07416,64.693238 164.27576,66.891706 162.51264,66.451187 C 161.23611,66.670932 162.80138,64.122782 161.27178,63.293106 C 160.27477,61.829766 158.59216,60.917429 157.34375,59.656250 C 163.37320,56.739900 170.41697,55.950383 175.81250,51.750000 C 177.79054,49.403625 176.89111,46.297658 176.31250,43.625000 C 172.71709,37.077334 166.72680,32.381991 161.58112,27.092054 C 156.10204,21.754721 150.65568,16.371055 145.15625,11.062500 C 142.76062,10.099303 140.31053,9.4347862 137.70606,9.5684113 C 137.43820,9.5943662 137.13013,9.4705862 136.87500,9.5625000 z M 144.00000,20.125000 C 145.41913,21.217458 146.85549,22.290152 148.28125,23.375000 C 146.97140,24.376925 147.43473,26.306660 146.96875,27.718750 C 145.01335,27.188020 142.88412,27.117042 141.28969,28.567875 C 140.30436,29.400862 138.46017,30.323076 138.31032,28.383898 C 137.43025,25.351664 136.59470,22.304201 135.68750,19.281250 C 137.21838,18.817776 138.78213,16.344334 140.28250,17.745803 C 141.52167,18.538869 142.76083,19.331934 144.00000,20.125000 z M 130.53125,30.406250 C 128.68750,30.593750 126.84375,30.781250 125.00000,30.968750 C 125.70615,27.451641 128.61722,24.990200 131.09307,22.632488 C 132.44877,21.648343 133.72082,20.531920 135.12500,19.625000 C 133.59375,23.218750 132.06250,26.812500 130.53125,30.406250 z " + id="path1304" /> + </g> + <path + style="fill:url(#linearGradient1322);fill-rule:evenodd;stroke-width:1.0000000pt;" + d="M 78.468542,10.216821 C 75.406213,10.216823 72.323010,11.369737 69.976423,13.716321 L 28.309048,55.430356 C 26.009076,57.730272 24.808608,60.734604 24.762888,63.735835 C 24.762246,63.786202 24.762888,63.872106 24.762888,63.922475 L 24.856208,63.922475 C 25.654475,66.959676 46.258230,70.813287 48.559486,73.114494 C 52.034797,76.589830 35.238960,79.157777 38.714227,82.633131 C 42.189523,86.108431 59.735084,89.329652 63.210724,92.805012 C 66.686050,96.280332 56.095888,99.968182 59.571244,103.44349 C 63.046555,106.91885 74.703745,102.59065 72.589383,111.65565 C 77.282542,116.34881 87.076796,114.10913 93.633042,109.41597 C 97.108353,105.94066 86.984820,106.26556 90.460160,102.79025 C 93.935473,99.314902 102.71230,99.298562 110.10402,90.985272 C 107.12876,86.358021 97.390000,84.382051 100.86534,80.906713 C 104.34065,77.431409 111.06300,79.175321 125.64179,72.554574 C 132.75855,69.322402 132.20143,66.898885 132.17419,63.922475 C 132.17362,63.859844 132.17419,63.798946 132.17419,63.735835 L 132.12753,63.735835 C 132.08182,60.734607 130.92794,57.730277 128.62803,55.430356 L 86.914001,13.716321 C 84.567429,11.369740 81.530871,10.216821 78.468542,10.216821 z M 59.991184,75.260853 C 66.201756,76.871504 73.111347,78.955868 78.655182,78.993653 L 78.888482,81.513293 C 74.141227,81.023952 64.086006,78.710363 61.717604,77.500533 L 59.991184,75.260853 z M 124.70859,86.319271 C 123.76053,86.288891 122.86335,86.383941 122.18895,86.552571 C 120.91747,86.870282 114.74061,87.016652 115.23661,90.985272 C 120.69367,92.968622 129.12948,94.487582 130.12115,90.518672 C 130.86551,87.542792 127.55274,86.410411 124.70859,86.319271 z M 53.365465,94.391452 C 52.506936,94.291402 51.667011,94.397222 50.845825,94.811392 C 47.561932,96.467852 45.351592,100.14833 48.419506,101.67041 C 51.487732,103.19250 53.661984,101.45941 56.351705,99.570712 C 59.041739,97.682322 58.972518,97.313012 58.778024,96.584472 C 58.405655,96.683782 55.941067,94.691622 53.365465,94.391452 z M 113.37021,95.044692 C 110.88978,96.036632 110.91892,99.482602 112.90361,100.97051 C 114.88780,102.45872 117.37116,101.49614 118.36283,100.50391 C 119.35532,99.511972 118.33051,96.036652 113.37021,95.044692 z " + id="path1217" + sodipodi:nodetypes="cccccccccccccccccccccccccccccccccccccccccc" + transform="matrix(1.220396,0.000000,0.000000,1.220396,-20.19444,7.307033)" /> + <path + style="fill:url(#linearGradient1231);fill-rule:evenodd;stroke-width:1.0000000pt;" + d="M 25.748195,58.983802 C 25.069168,60.484820 24.699511,62.088386 24.675015,63.696461 C 24.674375,63.746824 24.675015,63.832738 24.675015,63.883101 L 24.768335,63.883101 C 25.532194,66.789384 44.034284,70.422637 47.678393,72.748500 C 49.285306,71.792649 50.340763,70.791543 49.264832,69.715600 C 46.963576,67.414389 26.359823,63.560781 25.561555,60.523581 L 25.468235,60.523581 C 25.468235,60.473204 25.467595,60.387304 25.468235,60.336942 C 25.475280,59.874537 25.686531,59.443757 25.748195,58.983802 z M 132.03964,65.049601 C 131.22443,66.340254 129.65777,67.652109 126.34713,69.155680 C 111.76835,75.776420 105.04600,74.032516 101.57069,77.507812 C 100.51786,78.560641 100.89350,79.461052 101.71067,80.354072 C 105.38973,77.752669 112.01329,78.664472 125.55391,72.515200 C 131.70333,69.722349 132.05669,67.513308 132.03964,65.049601 z M 60.696531,71.861960 L 62.422951,74.101632 C 64.791352,75.311463 74.846572,77.625067 79.593829,78.114392 L 79.360529,75.594752 C 73.816694,75.556961 66.907102,73.472618 60.696531,71.861960 z M 40.119473,79.607512 C 38.565476,80.548088 37.568913,81.536279 38.626354,82.593751 C 42.101651,86.069051 59.647211,89.290272 63.122851,92.765632 C 63.275692,92.918462 63.255326,93.078602 63.356151,93.232232 C 64.435614,91.947532 65.165573,90.655612 63.916071,89.406112 C 60.566937,86.057251 44.419333,82.939151 40.119473,79.607512 z M 117.10845,87.866332 C 115.91482,88.486362 114.95058,89.360392 115.14873,90.945882 C 120.60578,92.929232 129.04159,94.448192 130.03326,90.479292 C 130.22625,89.707762 130.12018,89.057262 129.84662,88.519572 C 127.48913,90.422432 121.65703,89.359992 117.10845,87.866332 z M 108.52303,89.546092 C 101.68539,95.627832 94.291059,96.265772 91.165507,99.391352 C 89.908251,100.64860 90.617583,101.33525 91.632107,101.95765 C 95.620160,99.286262 103.30109,98.498152 110.01615,90.945882 C 109.67197,90.410612 109.01729,90.016842 108.52303,89.546092 z M 112.39580,95.705212 C 110.96059,97.100002 111.14367,99.677592 112.81574,100.93113 C 114.79992,102.41933 117.28328,101.45675 118.27495,100.46453 C 118.78497,99.954792 118.71737,98.812252 117.90167,97.664932 C 116.69163,98.288052 115.10107,98.690742 113.60896,97.571612 C 112.97842,97.098902 112.61381,96.431702 112.39580,95.705212 z M 57.383671,95.891852 C 57.217332,96.012982 57.251127,96.035572 57.057051,96.171812 C 54.367330,98.060502 52.193078,99.793612 49.124852,98.271512 C 48.483305,97.953222 48.223383,97.480502 48.005012,97.011692 C 46.640740,98.694072 46.307086,100.62659 48.331632,101.63103 C 51.399861,103.15311 53.574111,101.42002 56.263832,99.531332 C 58.953868,97.642932 58.884645,97.273622 58.690151,96.545092 C 58.562389,96.579162 57.924006,96.197372 57.383671,95.891852 z M 60.043291,99.577992 C 58.963831,100.86268 58.233858,102.15460 59.483371,103.40410 C 62.958684,106.87946 74.615872,102.55126 72.501510,111.61626 C 77.194670,116.30942 86.988927,114.06974 93.545171,109.37658 C 94.825402,108.09634 94.082889,107.39241 93.031907,106.76362 C 86.534250,110.87138 77.700406,112.66245 73.294729,108.25674 C 75.409092,99.191752 63.751901,103.51996 60.276591,100.04459 C 60.123748,99.891752 60.144117,99.731612 60.043291,99.577992 z " + id="path1269" + sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc" + transform="matrix(1.220396,0.000000,0.000000,1.220396,-20.19444,7.307033)" /> + <path + style="fill:url(#linearGradient1272);fill-opacity:0.75000000;fill-rule:evenodd;stroke-width:1.0000000pt;" + d="M 99.186075,30.398236 L 124.44205,57.534989 C 124.44205,57.534989 131.96512,65.595411 126.05415,68.819579 C 120.14317,72.043747 102.14157,76.880001 102.14157,76.880001 L 69.422516,29.764596 L 99.186075,30.398236 z " + id="path1271" + sodipodi:nodetypes="cccccc" + transform="matrix(1.220396,0.000000,0.000000,1.220396,-20.19444,7.307033)" /> + <path + style="fill:url(#linearGradient1277);fill-opacity:0.75000000;fill-rule:evenodd;stroke-width:1.0000000pt;" + d="M 63.243695,31.078988 L 42.657304,54.706552 C 42.657304,54.706552 34.703472,61.724642 39.850070,64.531876 C 44.996668,67.339111 78.917426,78.801990 102.77892,74.591136 L 75.408382,33.652287 L 63.243695,31.078988 z " + id="path1276" + sodipodi:nodetypes="cccccc" + transform="matrix(1.401650,0.000000,0.000000,1.401650,-35.26049,-4.181157)" /> + <path + style="fill:url(#linearGradient1318);fill-rule:evenodd;stroke-width:1.0000000pt;" + d="M 79.571944,14.847933 C 83.032254,14.873506 97.565101,29.009298 101.72458,31.925491 C 105.88407,34.841684 104.90857,36.754316 104.90857,36.936622 L 93.243582,31.290763 L 92.077082,40.109502 L 85.638002,37.076602 L 75.746078,43.702321 L 71.919958,30.637523 L 67.067318,42.069221 L 53.395938,43.422361 L 53.535918,37.356562 L 73.730570,17.473723 C 75.195738,16.031178 76.175081,14.822360 79.571944,14.847933 z " + id="path1317" + sodipodi:nodetypes="ccccccccccczz" + transform="matrix(1.220396,0.000000,0.000000,1.220396,-20.19444,7.307033)" /> + </g> + </g> + <g + inkscape:groupmode="layer" + id="layer2" + inkscape:label="Title"> + <path + style="color:#000000;fill:#ffffff;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible" + d="M 706.25000,281.25000 L 750.00000,281.25000 L 750.00000,300.00000 L 768.75000,300.00000 L 750.00000,281.25000 L 768.75000,300.00000 L 768.75000,375.00000 L 706.25000,375.00000 L 706.25000,281.25000 z " + id="path193" + sodipodi:nodetypes="ccccccccc" /> + <path + style="color:#000000;fill:#ffffff;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible" + d="M 693.75000,287.50000 L 737.50000,287.50000 L 737.50000,306.25000 L 756.25000,306.25000 L 737.50000,287.50000 L 756.25000,306.25000 L 756.25000,381.25000 L 693.75000,381.25000 L 693.75000,287.50000 z " + id="path191" + sodipodi:nodetypes="ccccccccc" /> + <path + style="color:#000000;fill:#ffffff;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible" + d="M 681.25000,293.75000 L 725.00000,293.75000 L 725.00000,312.50000 L 743.75000,312.50000 L 725.00000,293.75000 L 743.75000,312.50000 L 743.75000,387.50000 L 681.25000,387.50000 L 681.25000,293.75000 z " + id="path190" + sodipodi:nodetypes="ccccccccc" /> + <path + style="color:#000000;fill:#ffffff;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible" + d="M 668.75000,300.00000 L 712.50000,300.00000 L 712.50000,318.75000 L 731.25000,318.75000 L 712.50000,300.00000 L 731.25000,318.75000 L 731.25000,393.75000 L 668.75000,393.75000 L 668.75000,300.00000 z " + id="path189" + sodipodi:nodetypes="ccccccccc" /> + <path + style="color:#000000;fill:#ffffff;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible" + d="M 656.25000,306.25000 L 700.00000,306.25000 L 700.00000,325.00000 L 718.75000,325.00000 L 700.00000,306.25000 L 718.75000,325.00000 L 718.75000,400.00000 L 656.25000,400.00000 L 656.25000,306.25000 z " + id="path32" + sodipodi:nodetypes="ccccccccc" /> + <rect + style="color:#000000;fill:#ffffff;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible" + id="rect148" + width="94.439514" + height="61.899979" + x="399.31046" + y="446.01672" + ry="13.333333" + rx="13.333333" /> + <path + sodipodi:nodetypes="cc" + id="path354" + d="M 488.12497,501.66669 L 488.12497,570.41669" + style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;marker-start:url(#DiamondL);marker-end:none" /> + <rect + style="color:#000000;fill:#ffffff;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible" + id="rect149" + width="94.439514" + height="61.899979" + x="388.26883" + y="457.68335" + ry="13.333333" + rx="13.333333" /> + <path + sodipodi:nodetypes="cc" + id="path357" + d="M 475.62497,514.16669 L 475.62497,570.41669" + style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;marker-start:url(#DiamondL);marker-end:none" /> + <text + sodipodi:linespacing="100%" + x="45" + y="70" + style="font-size:48.000000;font-style:normal;font-weight:normal;fill:#ffffff;fill-opacity:1.0000000;stroke:none;stroke-width:3.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;display:block;font-family:Arial;text-anchor:start;writing-mode:lr;font-stretch:normal;font-variant:normal;line-height:100%" + id="text48"><tspan + x="45.000000" + y="70.000000" + sodipodi:role="line" + id="tspan1">Current Objects</tspan></text> + <path + style="color:#000000;fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible" + d="M 93.750000,162.50000 L 718.75000,162.50000 L 718.75000,225.00000 L 93.750000,225.00000 L 93.750000,162.50000 z " + id="rect3" + sodipodi:nodetypes="ccccc" /> + <text + xml:space="preserve" + style="font-size:24.000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#000000;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Sans;text-anchor:start;writing-mode:lr;line-height:100%" + x="116.20898" + y="202.36015" + id="text76" + sodipodi:linespacing="100%"><tspan + id="tspan2" + sodipodi:role="line" + y="202.36015" + x="116.20898">Inkscape::Application::Editor</tspan></text> + <path + style="color:#000000;fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible" + d="M 406.25000,287.50000 L 468.75000,287.50000 L 468.75000,381.25000 L 406.25000,381.25000 L 406.25000,287.50000 z " + id="rect24" + sodipodi:nodetypes="ccccc" /> + <rect + style="color:#000000;fill:#ffffff;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible" + id="rect27" + width="94.439514" + height="61.899979" + x="263.12500" + y="457.89172" + ry="13.333333" + rx="13.333333" /> + <path + sodipodi:nodetypes="ccc" + id="path50" + d="M 125.00000,225.00000 L 125.00000,256.25000 L 743.75000,256.25000" + style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000" /> + <path + sodipodi:nodetypes="cc" + id="path195" + d="M 313.12497,457.91669 L 313.12497,382.91669" + style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dasharray:1.2500000 5.0000000 ;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;marker-start:url(#Dot_m);marker-end:url(#Dot_m)" /> + <text + sodipodi:linespacing="100%" + id="text201" + y="282.42578" + x="138.6416" + style="font-size:18.000000;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;fill:#0281ac;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Sans;text-anchor:start;writing-mode:lr;line-height:100%" + xml:space="preserve"><tspan + id="tspan356" + sodipodi:role="line" + y="282.42578" + x="138.64160">Inkscape::</tspan><tspan + id="tspan357" + sodipodi:role="line" + y="300.42578" + x="138.64160">Document</tspan></text> + <path + style="color:#000000;fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible" + d="M 282.49997,288.54169 L 326.87497,288.54169 L 326.87497,307.29169 L 345.62497,307.29169 L 326.87497,288.54169 L 345.62497,307.29169 L 345.62497,382.29169 L 283.12497,382.29169 L 282.49997,288.54169 z " + id="path74" + sodipodi:nodetypes="ccccccccc" /> + <path + style="color:#000000;fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible" + d="M 532.94141,289.09174 L 575.62497,288.54169 L 575.62497,307.29169 L 594.37497,307.29169 L 575.62497,288.54169 L 594.37497,307.29169 L 594.37497,382.29169 L 531.87497,382.29169 L 532.94141,289.09174 z " + id="path75" + sodipodi:nodetypes="ccccccccc" /> + <rect + style="color:#000000;fill:#ffffff;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible" + id="rect76" + width="94.439514" + height="61.899979" + x="375.76880" + y="470.41669" + ry="13.333333" + rx="13.333333" /> + <rect + style="color:#000000;fill:#ffffff;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible" + id="rect77" + width="94.439514" + height="61.899979" + x="511.66666" + y="456.85004" + ry="13.333333" + rx="13.333333" /> + <path + sodipodi:nodetypes="cc" + id="path250" + d="M 313.74997,288.54169 L 313.74997,257.29169" + style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;marker-start:url(#DiamondL);marker-end:none" /> + <path + sodipodi:nodetypes="cc" + id="path253" + d="M 437.50000,287.50000 L 437.50000,256.25000" + style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;marker-start:url(#DiamondL);marker-end:none" /> + <path + sodipodi:nodetypes="cc" + id="path256" + d="M 563.12497,289.16669 L 563.12497,257.91669" + style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;marker-start:url(#DiamondL);marker-end:none" /> + <path + sodipodi:nodetypes="cc" + id="path330" + d="M 438.12497,457.91669 L 437.50000,381.25000" + style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dasharray:1.2500000 5.0000000 ;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;marker-start:url(#Dot_m);marker-end:url(#Dot_m)" /> + <path + sodipodi:nodetypes="cc" + id="path335" + d="M 425.62497,470.41669 L 437.50000,381.25000" + style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dasharray:1.2500000 5.0000000 ;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;marker-start:url(#Dot_m);marker-end:url(#Dot_m)" /> + <path + sodipodi:nodetypes="cc" + id="path340" + d="M 450.62497,445.41669 L 437.50000,381.25000" + style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dasharray:1.2500000 5.0000000 ;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;marker-start:url(#Dot_m);marker-end:url(#Dot_m)" /> + <path + sodipodi:nodetypes="cc" + id="path345" + d="M 562.50000,456.25000 L 563.12497,382.91669" + style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dasharray:1.2500000 5.0000000 ;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;marker-start:url(#Dot_m);marker-end:url(#Dot_m)" /> + <path + sodipodi:nodetypes="cc" + id="path348" + d="M 350.62497,514.16669 L 350.62497,570.41669" + style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;marker-start:url(#DiamondL);marker-end:none" /> + <path + sodipodi:nodetypes="cc" + id="path351" + d="M 463.12497,526.66669 L 463.12497,570.41669" + style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;marker-start:url(#DiamondL);marker-end:none" /> + <path + sodipodi:nodetypes="cc" + id="path360" + d="M 600.62497,514.16669 L 600.62497,570.41669" + style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;marker-start:url(#DiamondL);marker-end:none" /> + <path + sodipodi:nodetypes="ccc" + id="path361" + d="M 125.00000,256.25000 L 125.00000,568.75000 L 600.00000,568.75000" + style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000" /> + <text + xml:space="preserve" + style="font-size:24.000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#000000;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Sans;text-anchor:start;writing-mode:lr-tb" + x="290.41989" + y="343.95966" + id="text362" + sodipodi:linespacing="100%"><tspan + x="290.41989" + y="343.95966" + sodipodi:role="line" + id="tspan364">Doc</tspan></text> + <text + xml:space="preserve" + style="font-size:20.000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#000000;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Sans;text-anchor:start;writing-mode:lr-tb" + x="412.99124" + y="321.64938" + id="text365" + sodipodi:linespacing="100%"><tspan + id="tspan380" + sodipodi:role="line" + y="321.64938" + x="412.99124">Multi</tspan><tspan + id="tspan381" + sodipodi:role="line" + y="341.64938" + x="412.99124">Page</tspan><tspan + id="tspan382" + sodipodi:role="line" + y="361.64938" + x="412.99124">Doc</tspan></text> + <text + xml:space="preserve" + style="font-size:24.000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#000000;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Sans;text-anchor:start;writing-mode:lr-tb" + x="539.48242" + y="343.95966" + id="text367" + sodipodi:linespacing="100%"><tspan + x="539.48242" + y="343.95966" + sodipodi:role="line" + id="tspan368">Doc</tspan></text> + <text + xml:space="preserve" + style="font-size:18.000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#000000;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Sans;text-anchor:start;writing-mode:lr;line-height:100%" + x="532.65576" + y="485.19962" + id="text369" + sodipodi:linespacing="100%"><tspan + id="tspan7" + sodipodi:role="line" + y="485.19962" + x="532.65576">I::V::</tspan><tspan + id="tspan8" + sodipodi:role="line" + y="503.19962" + x="532.65576">Edit</tspan></text> + <text + xml:space="preserve" + style="font-size:18.000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#000000;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Sans;text-anchor:start;writing-mode:lr;line-height:100%" + x="283.10306" + y="486.24893" + id="text374" + sodipodi:linespacing="100%"><tspan + id="tspan3" + sodipodi:role="line" + y="486.24893" + x="283.10306">I::V::</tspan><tspan + id="tspan4" + sodipodi:role="line" + y="504.24893" + x="283.10306">Play</tspan></text> + <text + sodipodi:linespacing="100%" + id="text5" + y="537.98633" + x="138.6416" + style="line-height:100%;writing-mode:lr;text-anchor:start;font-family:Sans;stroke-opacity:1.0000000;stroke-linejoin:miter;stroke-linecap:butt;stroke-width:1.0000000pt;stroke:none;fill-opacity:1.0000000;fill:#0281ac;font-stretch:normal;font-weight:bold;font-variant:normal;font-style:normal;font-size:18.000000" + xml:space="preserve"><tspan + id="tspan42" + sodipodi:role="line" + y="537.98633" + x="138.64160">Inkscape::</tspan><tspan + id="tspan43" + sodipodi:role="line" + y="555.98633" + x="138.64160">View::*</tspan></text> + <path + sodipodi:nodetypes="cc" + id="path34" + d="M 687.50000,306.25000 L 687.50000,256.25000" + style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;marker-start:url(#DiamondL);marker-end:none" /> + <rect + ry="13.333333" + rx="13.333333" + y="343.75000" + x="662.50000" + height="25.000000" + width="100.00000" + id="rect208" + style="visibility:visible;marker-end:none;marker-mid:none;marker-start:none;marker:none;stroke-opacity:1.0000000;stroke-dashoffset:0.0000000;stroke-miterlimit:4.0000000;stroke-linejoin:miter;stroke-linecap:butt;stroke-width:1.0919609;stroke:none;fill-rule:evenodd;fill-opacity:1.0000000;fill:#ffffff;color:#000000" /> + <text + xml:space="preserve" + style="font-size:24.000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;fill:#000000;fill-opacity:1.0000000;stroke:none;stroke-width:1.0000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;font-family:Sans;text-anchor:start;writing-mode:lr-tb" + x="664.48242" + y="361.19922" + id="text37" + sodipodi:linespacing="100%"><tspan + id="tspan46" + sodipodi:role="line" + y="361.19922" + x="664.48242">Palettes</tspan></text> + <path + sodipodi:nodetypes="cc" + id="path198" + d="M 706.25000,300.00000 L 706.25000,256.25000" + style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;marker-start:url(#DiamondL);marker-end:none" /> + <path + sodipodi:nodetypes="cc" + id="path201" + d="M 718.75000,293.75000 L 718.75000,256.25000" + style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;marker-start:url(#DiamondL);marker-end:none" /> + <path + sodipodi:nodetypes="cc" + id="path204" + d="M 731.25000,287.50000 L 731.25000,256.25000" + style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;marker-start:url(#DiamondL);marker-end:none" /> + <path + sodipodi:nodetypes="cc" + id="path207" + d="M 743.75000,281.25000 L 743.75000,256.25000" + style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000;marker-start:url(#DiamondL);marker-end:none" /> + <text + xml:space="preserve" + style="line-height:100%;writing-mode:lr;text-anchor:start;font-family:Sans;stroke-opacity:1.0000000;stroke-linejoin:miter;stroke-linecap:butt;stroke-width:1.0000000pt;stroke:none;fill-opacity:1.0000000;fill:#000000;font-stretch:normal;font-weight:normal;font-variant:normal;font-style:normal;font-size:18.000000" + x="393.52148" + y="500.58691" + id="text349" + sodipodi:linespacing="100%"><tspan + id="tspan5" + sodipodi:role="line" + y="500.58691" + x="393.52148">I::V::</tspan><tspan + id="tspan6" + sodipodi:role="line" + y="518.58691" + x="393.52148">Edit</tspan></text> + <path + sodipodi:nodetypes="ccc" + id="path365" + d="M 606.25000,468.75000 L 712.50000,468.75000 L 712.50000,400.00000" + style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dasharray:1.2500000 5.0000000 ;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;marker-start:url(#Dot_m);marker-end:url(#Dot_m)" /> + <path + sodipodi:nodetypes="ccc" + id="path370" + d="M 606.25000,481.25000 L 750.00000,481.25000 L 750.00000,381.25000" + style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dasharray:1.2500000 5.0000000 ;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;marker-start:url(#Dot_m);marker-end:url(#Dot_m)" /> + <path + style="color:#000000;fill:none;fill-opacity:1.0000000;fill-rule:evenodd;stroke:#000000;stroke-width:1.2500000;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.0000000;stroke-dashoffset:0.0000000;stroke-opacity:1.0000000;marker:none;marker-start:none;marker-mid:none;marker-end:none;visibility:visible" + d="M 412.50000,281.25000 L 475.00000,281.25000 L 475.00000,375.00000 C 468.75000,375.00000 468.75000,381.25000 468.75000,381.25000 L 406.25000,381.25000 L 406.25000,287.50000 C 406.25000,284.55372 409.55372,281.25000 412.50000,281.25000 z " + id="path371" + sodipodi:nodetypes="cccccss" /> + <path + sodipodi:nodetypes="ccc" + id="path372" + d="M 413.92860,286.07140 L 470.17860,286.07140 L 470.17860,373.57140" + style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000" /> + <path + sodipodi:nodetypes="ccc" + id="path375" + d="M 415.35720,284.64280 L 471.60720,284.64280 L 471.60720,372.14280" + style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000" /> + <path + sodipodi:nodetypes="ccc" + id="path377" + d="M 416.78580,283.21420 L 473.03580,283.21420 L 473.03580,370.71420" + style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.25000000pt;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000" /> + </g> + <g + inkscape:groupmode="layer" + id="layer3" + inkscape:label="Drawing Area" /> +</svg> diff --git a/doc/NewAppArchitecture/14-evolving.svg b/doc/NewAppArchitecture/14-evolving.svg new file mode 100644 index 000000000..165c6b9c3 --- /dev/null +++ b/doc/NewAppArchitecture/14-evolving.svg @@ -0,0 +1,511 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> +<svg + xmlns:xml="http://www.w3.org/XML/1998/namespace" + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://web.resource.org/cc/" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + sodipodi:docbase="/home/bryce/src/Inkscape/inkscape/doc/NewAppArchitecture" + sodipodi:docname="14-evolving.svg" + height="480pt" + width="640pt" + inkscape:version="0.40+cvs" + sodipodi:version="0.32" + id="svg586"> + <defs + id="defs588"> + <marker + style="overflow:visible;" + id="marker396" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="TriangleOutL"> + <path + transform="scale(0.8)" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" + d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z " + id="path397" + sodipodi:nodetypes="cccc" /> + </marker> + <marker + style="overflow:visible;" + id="marker394" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="TriangleOutL"> + <path + transform="scale(0.8)" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" + d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z " + id="path395" + sodipodi:nodetypes="cccc" /> + </marker> + <marker + style="overflow:visible;" + id="marker391" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="TriangleOutL"> + <path + transform="scale(0.8)" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" + d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z " + id="path392" + sodipodi:nodetypes="cccc" /> + </marker> + <marker + style="overflow:visible;" + id="marker319" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="TriangleOutL"> + <path + transform="scale(0.8)" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" + d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z " + id="path320" + sodipodi:nodetypes="cccc" /> + </marker> + <marker + style="overflow:visible;" + id="TriangleOutL" + refX="0.0" + refY="0.0" + orient="auto" + inkscape:stockid="TriangleOutL"> + <path + transform="scale(0.8)" + style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;" + d="M 5.77,0.0 L -2.88,5.0 L -2.88,-5.0 L 5.77,0.0 z " + id="path224" + sodipodi:nodetypes="cccc" /> + </marker> + <linearGradient + id="linearGradient2570"> + <stop + id="stop2571" + offset="0.0000000" + style="stop-color:#000000;stop-opacity:1.0000000;" /> + <stop + id="stop2572" + offset="0.58504134" + style="stop-color:#000000;stop-opacity:0.62745100;" /> + <stop + id="stop2573" + offset="1.0000000" + style="stop-color:#ffffff;stop-opacity:0.0000000;" /> + </linearGradient> + <linearGradient + y2="0.98555958" + x2="0.27112675" + y1="0.097472921" + x1="0.50352114" + id="linearGradient1322" + xlink:href="#linearGradient1218" /> + <linearGradient + y2="0.99354839" + x2="-0.17253521" + y1="0.27741936" + x1="0.50704223" + id="linearGradient1318" + xlink:href="#linearGradient1273" /> + <linearGradient + gradientTransform="scale(1.004208,0.995809)" + y2="0.12454049" + x2="0.41986585" + y1="1.9347328" + x1="0.45376351" + id="linearGradient1307" + xlink:href="#linearGradient1222" /> + <linearGradient + gradientTransform="scale(1.006361,0.993679)" + y2="0.11846013" + x2="0.41548476" + y1="1.9667202" + x1="0.45009527" + id="linearGradient1306" + xlink:href="#linearGradient1222" /> + <linearGradient + gradientTransform="scale(1.002016,0.997989)" + y2="0.13959341" + x2="0.42603236" + y1="1.8676205" + x1="0.45839140" + id="linearGradient1305" + xlink:href="#linearGradient1222" /> + <linearGradient + y2="0.80203044" + x2="0.36971831" + y1="1.5228426" + x1="-0.36619717" + id="linearGradient1277" + xlink:href="#linearGradient1273" /> + <linearGradient + y2="0.55458528" + x2="0.53521127" + y1="0.23580793" + x1="1.0739436" + id="linearGradient1272" + xlink:href="#linearGradient1273" /> + <linearGradient + id="linearGradient1270" + xlink:href="#linearGradient1222" /> + <linearGradient + y2="0.50000000" + x2="1.0000000" + y1="0.50000000" + x1="0.00000000" + id="linearGradient1231" + xlink:href="#linearGradient1323" /> + <linearGradient + y2="0.24742271" + x2="0.42605633" + y1="2.1597939" + x1="-0.96478873" + id="linearGradient1221" + xlink:href="#linearGradient1222" /> + <linearGradient + id="linearGradient1218"> + <stop + id="stop1219" + offset="0.00000000" + style="stop-color:#000000;stop-opacity:1.0000000;" /> + <stop + id="stop1321" + offset="0.073255815" + style="stop-color:#323232;stop-opacity:1.0000000;" /> + <stop + id="stop1320" + offset="0.65260679" + style="stop-color:#000000;stop-opacity:1.0000000;" /> + <stop + id="stop1220" + offset="1" + style="stop-color:#fff;stop-opacity:1;" /> + </linearGradient> + <linearGradient + id="linearGradient1222"> + <stop + id="stop1223" + offset="0.0000000" + style="stop-color:#0081ac;stop-opacity:1.0000000;" /> + <stop + id="stop1722" + offset="0.50000000" + style="stop-color:#006d91;stop-opacity:0.62745100;" /> + <stop + id="stop1224" + offset="1.0000000" + style="stop-color:#000000;stop-opacity:0.0000000;" /> + </linearGradient> + <linearGradient + id="linearGradient1273"> + <stop + id="stop1274" + offset="0.00000000" + style="stop-color:#ffffff;stop-opacity:1.0000000;" /> + <stop + id="stop1275" + offset="1.0000000" + style="stop-color:#ffffff;stop-opacity:0.00000000;" /> + </linearGradient> + <linearGradient + id="linearGradient1323"> + <stop + id="stop1324" + offset="0.00000000" + style="stop-color:#000000;stop-opacity:0.77685952;" /> + <stop + id="stop1325" + offset="1.0000000" + style="stop-color:#000000;stop-opacity:0.00000000;" /> + </linearGradient> + <radialGradient + fy="0.15625000" + fx="0.50617284" + r="0.41400504" + cy="0.46875000" + cx="0.49382716" + id="radialGradient829" + xlink:href="#linearGradient826" /> + <linearGradient + id="linearGradient826"> + <stop + id="stop827" + offset="0.00000000" + style="stop-color:#000000;stop-opacity:0.95294118;" /> + <stop + id="stop830" + offset="0.36585677" + style="stop-color:#000000;stop-opacity:0.76078433;" /> + <stop + id="stop847" + offset="0.47107276" + style="stop-color:#000000;stop-opacity:0.52941179;" /> + <stop + id="stop828" + offset="1.0000000" + style="stop-color:#ffffff;stop-opacity:0.00000000;" /> + </linearGradient> + <linearGradient + y2="-1.7333326" + x2="0.50000000" + y1="0.66667551" + x1="0.50000000" + id="linearGradient907" + xlink:href="#linearGradient909" /> + <linearGradient + id="linearGradient909"> + <stop + id="stop910" + offset="0.00000000" + style="stop-color:#000000;stop-opacity:0.00000000;" /> + <stop + id="stop913" + offset="1.0000000" + style="stop-color:#000000;stop-opacity:0.17000000;" /> + </linearGradient> + <linearGradient + id="linearGradient1309" + xlink:href="#linearGradient1222" /> + <linearGradient + y2="0.50000000" + x2="1.0000000" + y1="0.50000000" + x1="0.0000000" + id="linearGradient1308" + xlink:href="#linearGradient2570" /> + </defs> + <sodipodi:namedview + inkscape:current-layer="layer2" + inkscape:guide-bbox="true" + showguides="true" + inkscape:window-y="14" + inkscape:window-x="291" + inkscape:window-height="821" + inkscape:window-width="968" + inkscape:cy="274.28571" + inkscape:cx="372.43198" + inkscape:zoom="1.0000000" + inkscape:pageshadow="2" + inkscape:pageopacity="0.0" + borderopacity="1.0" + bordercolor="#666666" + pagecolor="#ffffff" + id="base" /> + <metadata + id="metadata33"> + <rdf:RDF + id="RDF34"> + <cc:Work + id="Work35" + rdf:about=""> + <dc:format + id="format36">image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" + id="type38" /> + </cc:Work> + </rdf:RDF> + </metadata> + <g + style="display:block" + inkscape:label="Background" + id="layer1" + inkscape:groupmode="layer"> + <rect + y="1.7763568e-15" + x="0.0000000" + height="112.50000" + width="800.00000" + id="topbluebox" + style="font-size:12.000000;fill:url(#linearGradient1309);fill-opacity:1.0000000;fill-rule:evenodd;stroke:none;stroke-width:3.0000000pt;" /> + <path + sodipodi:nodetypes="cc" + id="path654" + d="M -0.034245957,110.20928 L 797.51553,110.00778" + style="fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:url(#linearGradient1308);stroke-width:4.9844480;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1.0000000;" /> + <g + transform="translate(646.2792,-9.754791)" + id="g1085"> + <g + transform="matrix(0.875802,0.000000,0.000000,0.869278,1.048583,-7.965682)" + id="g1394"> + <path + transform="matrix(0.394071,0.000000,0.000000,8.155385e-2,-31.69751,94.58860)" + style="opacity:0.69398910;fill:url(#radialGradient829);stroke-width:4.4309568;stroke-dasharray:17.723827 17.723827 ;stroke-dashoffset:0.0000000;" + d="M 600.00000 300.00000 A 300.00000 300.00000 0 1 0 0.0000000,300.00000 A 300.00000 300.00000 0 1 0 600.00000 300.00000 z" + sodipodi:ry="300.00000" + sodipodi:rx="300.00000" + sodipodi:cy="300.00000" + sodipodi:cx="300.00000" + id="path898" + sodipodi:type="arc" /> + <path + transform="matrix(0.280658,0.000000,0.000000,0.148676,4.082687,91.98483)" + style="fill:url(#radialGradient829);stroke-width:4.4309568;stroke-dasharray:17.723827 17.723827 ;stroke-dashoffset:0.0000000;" + d="M 600.00000 300.00000 A 300.00000 300.00000 0 1 0 0.0000000,300.00000 A 300.00000 300.00000 0 1 0 600.00000 300.00000 z" + sodipodi:ry="300.00000" + sodipodi:rx="300.00000" + sodipodi:cy="300.00000" + sodipodi:cx="300.00000" + id="ball1" + sodipodi:type="arc" /> + </g> + <g + style="fill:url(#linearGradient1221);" + transform="matrix(1.822197,0.000000,0.000000,1.662749,-180.0082,12.26653)" + id="g1310"> + <path + id="path1278" + d="M 139.27138,11.077118 C 137.22042,11.077119 135.15548,11.849270 133.58388,13.420868 L 105.67763,41.358368 C 104.13725,42.898711 103.33325,44.910828 103.30263,46.920868 C 103.30220,46.954601 103.30263,47.012134 103.30263,47.045868 L 103.36513,47.045868 C 103.89976,49.079999 117.69889,51.660911 119.24013,53.202118 C 121.56768,55.529685 110.31886,57.249538 112.64638,59.577118 C 114.97392,61.904658 126.72486,64.062038 129.05263,66.389620 C 131.38019,68.717170 124.28755,71.187070 126.61513,73.514620 C 128.94268,75.842201 136.74995,72.943440 135.33388,79.014621 C 138.47707,82.157811 145.03666,80.657811 149.42763,77.514621 C 151.75518,75.187070 144.97506,75.404670 147.30263,73.077120 C 149.63018,70.749540 155.50836,70.738600 160.45888,65.170868 C 158.46624,62.071818 151.94381,60.748438 154.27138,58.420868 C 156.59893,56.093323 161.10115,57.261288 170.86513,52.827118 C 175.63150,50.662408 175.25838,49.039285 175.24013,47.045868 C 175.23975,47.003922 175.24013,46.963136 175.24013,46.920868 L 175.20888,46.920868 C 175.17827,44.910830 174.40547,42.898714 172.86513,41.358368 L 144.92763,13.420868 C 143.35604,11.849272 141.32234,11.077118 139.27138,11.077118 z M 139.02138,14.702118 C 139.93315,14.725869 140.67125,15.422422 142.11513,16.358368 L 155.30263,26.139618 C 155.44708,26.233292 155.58252,26.320552 155.70888,26.420868 C 155.83525,26.521171 155.97562,26.627132 156.08388,26.733368 C 156.19214,26.839410 156.27479,26.966073 156.36513,27.077118 C 156.45527,27.188145 156.54310,27.305955 156.61513,27.420868 C 156.68737,27.535969 156.74853,27.646585 156.80263,27.764618 C 156.85677,27.882866 156.89163,27.987920 156.92763,28.108368 C 156.96385,28.228632 157.00329,28.361823 157.02138,28.483368 C 157.03948,28.605130 157.05263,28.736271 157.05263,28.858368 L 149.24013,25.077118 L 148.45888,30.983368 L 144.14638,28.952118 L 137.52138,33.389618 L 134.95888,24.639618 L 131.70888,32.295868 L 122.55263,33.202118 L 122.64638,29.139618 C 122.64638,28.162533 127.93872,21.330614 131.14638,19.702118 L 137.02138,15.483368 C 137.88771,14.921800 138.47431,14.687867 139.02138,14.702118 z M 126.89638,54.639618 C 131.05584,55.718333 135.68346,57.114312 139.39638,57.139618 L 139.55263,58.827118 C 136.37321,58.499388 129.63884,56.949888 128.05263,56.139618 L 126.89638,54.639618 z M 170.24013,62.045868 C 169.60518,62.025518 169.00430,62.089178 168.55263,62.202118 C 167.70107,62.414898 163.56419,62.512928 163.89638,65.170868 C 167.55118,66.499190 173.20097,67.516500 173.86513,64.858368 C 174.36366,62.865308 172.14497,62.106908 170.24013,62.045868 z M 122.45888,67.452120 C 121.88389,67.385110 121.32136,67.455980 120.77138,67.733370 C 118.57203,68.842760 117.09168,71.307720 119.14638,72.327120 C 121.20129,73.346520 122.65747,72.185800 124.45888,70.920870 C 126.26050,69.656140 126.21414,69.408800 126.08388,68.920870 C 125.83449,68.987380 124.18386,67.653150 122.45888,67.452120 z M 162.64638,67.889620 C 160.98514,68.553960 161.00465,70.861860 162.33388,71.858370 C 163.66277,72.855080 165.32597,72.210400 165.99013,71.545870 C 166.65484,70.881530 165.96848,68.553970 162.64638,67.889620 z " + style="fill-opacity:0.074380167;fill-rule:evenodd;stroke-width:1.0000000pt;" /> + <path + id="path1283" + d="M 137.96875,10.718750 C 134.70402,11.060845 132.45341,13.855395 130.15790,15.940974 C 121.77155,24.503910 113.19525,32.911552 104.88478,41.529122 C 103.53165,43.257666 102.98133,45.293623 102.71875,47.437500 C 107.43946,50.886242 113.69835,50.905815 118.71875,53.781250 C 117.30484,56.014138 113.86394,55.927723 112.30534,58.153586 C 110.95047,59.066432 112.87438,60.562599 113.88390,60.907202 C 118.07998,63.025863 122.80956,63.838835 126.97834,66.068813 C 129.14039,66.223477 128.99465,68.397410 127.55968,69.465540 C 126.42313,70.610466 124.66557,72.512182 126.40386,73.938766 C 128.52893,75.415674 131.34635,75.011355 133.71875,75.875000 C 135.38587,76.789177 134.20286,78.442002 135.34375,79.593750 C 138.20878,81.840481 142.17613,81.444087 145.36980,80.162063 C 147.01184,79.679133 148.50293,78.612108 149.93750,77.781250 C 151.32137,76.168445 149.16317,75.014407 147.93750,74.343750 C 147.13207,73.007556 149.81258,72.471472 150.72621,71.835396 C 154.22932,70.415525 157.63139,68.772275 160.32323,66.076023 C 162.00146,65.040055 159.53684,63.566475 158.75000,62.750000 C 157.29555,61.671425 155.38495,61.005736 154.46875,59.343750 C 156.83166,56.736844 160.77991,57.222943 163.82692,55.886662 C 167.48614,54.956060 170.96688,53.327613 174.19128,51.441061 C 176.31894,49.855420 175.75931,47.094289 175.34438,44.858149 C 173.82714,40.146659 169.32671,37.346121 166.14614,33.782162 C 159.00255,26.737555 151.96598,19.558149 144.75603,12.597114 C 142.83187,11.117125 140.40461,10.324926 137.96875,10.718750 z M 140.15625,15.718750 C 145.33185,19.512142 150.51925,23.291773 155.68750,27.093750 C 155.79568,28.128330 152.96647,25.994412 151.88519,25.704486 C 150.56126,25.310550 148.23232,22.990502 148.60160,25.735802 C 148.03383,26.854222 148.89364,30.614243 147.25375,29.748789 C 145.77079,28.952048 143.79956,27.767016 142.39696,29.393778 C 140.87922,30.408352 139.36149,31.422926 137.84375,32.437500 C 136.92659,29.270978 136.01364,26.103230 135.09375,22.937500 C 133.83186,25.869891 132.59553,28.813265 131.34375,31.750000 C 128.60417,32.020833 125.86458,32.291667 123.12500,32.562500 C 122.93577,30.531586 123.37937,28.492090 124.78964,27.051727 C 127.83705,22.165897 132.91432,19.181067 137.48762,15.928279 C 138.38080,15.399443 139.18306,15.465846 140.15625,15.718750 z M 132.06250,56.562500 C 134.25968,57.131800 136.54653,57.244809 138.78125,57.625000 C 137.93164,58.641801 135.83490,57.320885 134.50134,57.277133 C 132.75919,56.896272 131.01731,56.527068 129.37500,55.812500 C 130.27083,56.062500 131.16667,56.312500 132.06250,56.562500 z M 168.50000,61.625000 C 166.47980,62.095190 163.59992,62.369201 163.34375,64.968750 C 164.00781,65.934196 166.11962,66.292948 167.47626,66.551501 C 169.60910,66.891924 172.52463,67.659468 174.01886,65.672524 C 175.29513,63.892929 173.38643,61.628153 171.40540,61.754929 C 170.44376,61.426788 169.48969,61.503021 168.50000,61.625000 z M 120.65625,67.156250 C 119.17864,68.173454 117.17273,69.706513 117.81250,71.750000 C 119.32360,73.943032 122.44871,73.328157 124.17581,71.744685 C 125.31806,71.095411 127.22708,69.849349 126.34375,68.406250 C 124.53029,67.617814 122.70705,66.421404 120.65625,67.156250 z M 162.25000,67.468750 C 160.98536,68.304844 160.47655,70.055902 161.35305,71.321264 C 162.02451,73.004295 164.27223,73.179865 165.64672,72.263080 C 167.48408,71.700360 166.67812,69.347513 165.33731,68.658474 C 164.66189,67.815250 163.12029,67.406310 162.25000,67.468750 z " + style="fill-opacity:0.074380167;fill-rule:evenodd;stroke-width:1.0000000pt;" /> + <path + id="path1286" + d="M 137.09375,12.062500 C 133.45264,13.658306 130.89510,17.054651 128.02763,19.760075 C 120.64992,27.277135 113.11748,34.668181 105.81675,42.244521 C 104.77302,43.583830 104.19848,45.113312 103.93750,46.781250 C 108.02500,49.661848 113.35464,49.814484 117.77247,52.034312 C 119.23732,52.180074 120.83004,53.663696 119.47530,54.914506 C 117.72685,56.714093 114.64707,56.868986 113.18750,58.937500 C 116.98689,61.678185 121.72461,62.314645 125.91888,64.199775 C 127.35246,65.248996 129.93899,65.341959 130.00000,67.531250 C 129.61283,69.469175 127.68115,70.594821 126.84375,72.343750 C 128.66657,74.916318 132.41661,73.526770 134.81763,75.194505 C 136.12150,75.998634 135.76289,77.719238 136.33739,78.786112 C 139.34189,80.984126 143.56705,80.023489 146.59979,78.262860 C 147.57821,77.931235 150.25551,76.737683 148.25234,75.866570 C 146.79311,75.539319 145.57083,73.791727 146.98575,72.676315 C 150.59379,69.928273 155.52636,69.300230 158.75379,65.912819 C 160.44061,64.636839 157.51978,63.512312 156.64603,62.784855 C 155.31686,61.805358 153.02074,60.864770 153.31250,58.906250 C 155.52467,55.836091 159.76350,56.249927 162.98171,54.909139 C 166.64088,54.011598 170.17880,52.442724 173.39619,50.585767 C 175.44759,48.766928 174.40312,45.854433 173.70402,43.674602 C 170.01715,38.505895 164.93468,34.528530 160.60640,29.906454 C 155.05848,24.484276 149.68028,18.831089 144.02714,13.552135 C 142.01313,12.267231 139.68457,11.155741 137.26959,12.030263 L 137.09375,12.062500 z M 139.25000,14.156250 C 144.36849,16.573687 148.44456,20.615673 153.06166,23.857057 C 154.79682,25.417824 157.75256,26.462276 157.65625,29.218750 C 155.98301,29.620934 154.51821,27.909197 152.92283,27.467153 C 151.47889,26.979622 149.05912,24.688826 149.46490,27.619328 C 148.95092,28.676042 149.67609,32.096323 148.30430,31.528870 C 146.86362,30.916675 145.25114,29.742049 143.73062,29.880583 C 141.56112,31.359522 139.38321,32.826259 137.21875,34.312500 C 136.40063,31.654144 135.63994,28.977747 134.84375,26.312500 C 133.78712,28.431959 132.98467,30.961875 131.78125,32.843750 C 128.52084,33.166779 125.26035,33.488957 122.00000,33.812500 C 122.02692,31.439278 121.58820,28.751334 123.45144,26.900643 C 126.38650,21.928911 131.54097,18.937382 135.96875,15.531250 C 137.05500,15.131227 138.17386,14.356070 139.25000,14.156250 z M 126.34375,53.906250 C 130.81931,55.099287 135.33348,56.080112 139.93750,56.625000 C 140.81508,58.380031 139.61654,59.889689 137.75155,59.030564 C 134.35469,58.342143 130.95451,57.411091 127.62500,56.500000 C 127.37596,56.018046 124.72663,53.333015 126.34375,53.906250 z M 168.68750,62.750000 C 167.26725,63.145732 165.19352,63.022642 164.68750,64.750000 C 167.41558,65.272026 170.36127,66.626958 173.03125,65.187500 C 173.94813,63.333514 171.22391,62.807999 169.92452,62.707344 C 169.51218,62.721563 169.09984,62.735781 168.68750,62.750000 z M 120.96875,68.250000 C 119.88102,69.094191 117.71809,71.141191 120.00567,71.867660 C 122.11744,72.377527 123.71955,70.573549 125.28125,69.468750 C 124.17010,68.379529 122.48301,67.967608 120.96875,68.250000 z M 162.25000,68.937500 C 161.26655,70.838341 164.03769,72.707639 165.32625,71.028976 C 165.98639,69.968138 163.10932,68.105539 162.25000,68.937500 z " + style="fill-opacity:0.074380167;fill-rule:evenodd;stroke-width:1.0000000pt;" /> + <path + id="path1295" + d="M 137.50000,12.562500 C 131.56402,15.884438 127.47918,21.513076 122.59316,26.106819 C 117.07494,31.800872 111.33765,37.333066 105.95500,43.127274 C 105.27016,44.232264 103.90274,46.716455 105.88806,47.110513 C 110.48303,49.525949 116.07018,49.897473 120.25000,52.937500 C 121.19557,55.258014 118.31954,56.204644 116.77699,57.135076 C 115.14828,57.646504 113.25757,59.174666 115.98524,59.736007 C 120.51650,62.179113 125.90956,62.812244 130.06250,65.968750 C 131.40440,68.155882 128.87852,70.088345 127.96429,71.816940 C 127.97548,73.606583 130.61198,73.210238 131.85374,73.694589 C 134.00698,73.861384 136.31306,75.067306 136.52629,77.437982 C 137.24770,79.315251 139.82104,79.377347 141.56250,79.375000 C 143.88381,79.081698 145.88731,77.848938 148.00000,76.937500 C 147.89289,75.484280 145.47385,75.343455 145.78125,73.562500 C 147.65028,70.568783 151.46696,69.934698 154.32757,68.211442 C 155.95166,67.507534 157.40819,66.436524 158.50000,65.031250 C 156.69534,62.893495 153.11684,62.207207 152.76893,59.025530 C 153.13476,57.911585 154.90043,56.856141 156.14992,56.314935 C 161.47352,54.305871 167.29666,53.530281 172.18291,50.436255 C 174.75469,49.397100 173.90347,46.181096 173.15013,44.168122 C 170.99740,41.143850 168.08639,38.542958 165.64236,35.681332 C 163.12371,33.093790 160.49665,30.610931 157.93750,28.062500 C 158.99092,29.594714 157.00835,30.333418 155.86310,29.376751 C 153.95887,28.546062 152.06033,27.726589 150.12500,26.968750 C 150.04976,28.633800 149.69671,30.253091 149.34375,31.875000 C 146.94959,32.517021 144.62510,29.359512 142.44997,31.405021 C 140.65579,32.399012 139.25573,34.074138 137.34005,34.698602 C 135.96867,34.449689 136.15225,31.657450 135.44638,30.368996 C 135.03220,27.477998 134.31032,28.114323 133.43720,30.484434 C 132.63691,31.983328 132.29360,34.079093 130.12469,33.576560 C 127.22896,33.863646 124.33317,34.149933 121.43750,34.437500 C 121.45635,31.458390 121.16984,28.094375 123.52595,25.839572 C 126.82257,21.188668 131.69023,18.019711 136.23357,14.793262 C 137.75437,14.087412 139.64327,13.037594 141.05071,14.536711 C 144.77608,17.093755 148.56965,19.491887 152.06250,22.343750 C 149.06655,19.513772 146.25485,16.420638 143.14594,13.751994 C 141.38445,12.871744 139.52020,11.789900 137.50000,12.562500 z M 126.40625,53.343750 C 131.09445,54.266714 135.77718,55.221773 140.46875,56.125000 C 140.66311,57.490600 140.90400,59.768414 138.90019,59.717011 C 134.99279,58.970773 131.04202,57.882901 127.18750,56.875000 C 126.61048,55.955764 124.83534,54.556620 125.40625,53.625000 C 125.73497,53.577157 126.08499,53.292470 126.40625,53.343750 z M 166.53125,63.812500 C 164.90117,64.830649 168.72302,64.879550 169.60036,65.161786 C 170.82454,65.513571 173.80209,64.644903 171.50000,63.593750 C 169.78209,63.217030 168.21140,63.255613 166.53125,63.812500 z M 120.81250,69.187500 C 118.77488,70.497531 120.63987,72.049766 122.29985,70.780747 C 124.22011,70.547064 124.25797,68.584075 122.13849,68.857155 C 121.62590,68.786616 121.20364,68.805690 120.81250,69.187500 z M 162.78125,70.250000 C 165.04372,72.410337 164.50416,68.582957 162.78125,69.787913 C 162.78125,69.883882 162.78125,70.191942 162.78125,70.250000 z " + style="fill-opacity:0.074380167;fill-rule:evenodd;stroke-width:1.0000000pt;" /> + <path + id="path1300" + d="M 137.25000,10.312500 C 134.57328,10.811904 132.67255,13.050780 130.64866,14.715585 C 121.77957,23.451854 113.11785,32.437236 104.37500,41.281250 C 103.17019,43.288146 102.47259,45.456013 102.06250,47.750000 C 105.83476,49.628698 109.64657,51.368815 113.75481,52.377095 C 114.74672,53.000901 118.15181,53.211596 117.03125,54.625000 C 114.87625,55.770623 112.18432,56.545814 111.25000,59.062500 C 113.07397,62.261249 117.13309,62.448994 120.14188,63.972108 C 122.66750,64.970987 125.19313,65.969869 127.71875,66.968750 C 127.79709,69.608591 127.12737,68.724937 125.79671,67.542170 C 123.76150,66.508388 120.74167,65.559916 119.14266,67.799744 C 117.68910,68.685330 116.55779,70.940149 117.66673,72.361712 C 119.74129,74.610002 123.29896,73.558599 125.22361,71.631365 C 125.39044,71.451948 124.94524,74.329263 126.55554,74.625682 C 128.75187,75.888131 131.56113,75.535204 133.75000,76.781250 C 134.17453,78.637203 134.92263,80.738750 137.10053,81.029661 C 140.53970,82.420114 144.41944,81.397273 147.50485,79.584682 C 148.81540,78.872018 151.32795,78.343669 150.75195,76.374975 C 150.70713,75.080531 147.53803,74.300613 149.31250,73.093750 C 153.55943,71.203594 157.91230,69.209830 161.18750,65.843750 C 161.99115,63.731003 159.07145,62.849633 157.93750,61.562500 C 156.57653,60.417748 154.30116,59.195844 157.17010,58.407983 C 162.44672,56.428116 168.30037,55.651561 173.14000,52.536010 C 175.69933,51.724285 176.75286,48.825627 176.01594,46.382200 C 175.99204,43.921497 174.36450,41.884430 172.99509,39.973772 C 168.23708,34.553265 162.73310,29.839073 157.72691,24.648245 C 153.37676,20.454464 149.19589,15.998891 144.74248,11.964991 C 142.49218,10.519398 139.90204,10.047325 137.25000,10.312500 z M 140.40625,16.625000 C 144.38180,19.415210 148.26381,22.371245 152.21875,25.218750 C 151.00059,24.471219 149.71107,24.008458 148.28125,23.906250 C 148.08169,25.616789 147.84012,27.322499 147.62500,29.031250 C 145.77312,28.480352 143.67622,27.363820 142.02088,28.944411 C 140.79579,29.321785 138.71876,32.029330 138.02739,30.946881 C 137.09069,27.714729 136.15797,24.481420 135.21875,21.250000 C 133.79126,24.568262 132.38708,27.896549 130.96875,31.218750 C 128.56250,31.458333 126.15625,31.697917 123.75000,31.937500 C 123.73611,28.504117 126.40867,25.941624 128.50533,23.538181 C 131.60340,20.877921 134.84009,18.280137 138.37100,16.266120 C 139.05687,15.927768 139.72649,16.501380 140.40625,16.625000 z M 165.12500,61.937500 C 163.94994,62.683294 162.04675,64.163789 163.31250,65.625000 C 165.77599,67.237331 168.84980,67.346191 171.68759,67.438839 C 173.79767,67.380039 175.87709,64.882603 174.44068,62.966319 C 173.10190,60.663393 170.05340,61.177216 167.81605,61.201002 C 166.91904,61.446503 166.02202,61.692001 165.12500,61.937500 z M 162.03125,67.031250 C 160.83535,68.000188 160.29043,69.695123 160.76346,71.258236 C 161.16730,73.039050 163.22496,73.494707 164.78719,72.992478 C 167.13879,73.181332 168.09248,69.825149 166.13394,68.653373 C 164.96960,67.668728 163.65541,66.689296 162.03125,67.031250 z " + style="fill-opacity:0.074380167;fill-rule:evenodd;stroke-width:1.0000000pt;" /> + <path + id="path1304" + d="M 136.87500,9.5625000 C 131.65304,11.769127 128.14544,16.384624 124.15881,20.216605 C 117.35142,27.117414 110.49657,33.984328 103.71875,40.906250 C 102.85273,43.332808 101.99819,45.763562 101.12500,48.187500 C 105.93068,50.283305 110.76347,52.276496 115.75000,53.906250 C 115.44333,55.363555 112.99770,55.191635 112.24058,56.587946 C 110.89606,57.445273 110.01695,59.785906 111.89556,60.567820 C 114.86490,63.357428 118.93991,64.363020 122.62500,65.875000 C 119.72774,65.033632 117.80750,68.090788 116.68750,70.250000 C 116.01105,72.950420 119.11437,74.651083 121.43923,74.259441 C 122.88425,74.778519 124.87048,71.894366 125.06555,74.129447 C 127.21708,76.574392 131.35224,75.998123 133.59751,78.288768 C 134.32398,80.302303 135.99246,81.986172 138.23383,82.006618 C 140.25772,82.589257 142.23898,82.314480 144.19142,81.614260 C 146.47188,81.098710 148.64271,79.959926 150.63761,78.824244 C 152.14711,77.754911 151.81527,75.346631 150.43750,74.312500 C 150.23406,72.704926 152.73875,72.682794 153.75639,71.819616 C 156.49819,70.564020 158.90600,68.804050 161.21875,66.906250 C 160.19643,68.376408 159.81043,70.315970 160.38112,71.987759 C 161.34634,74.267655 164.22210,73.656108 166.15625,73.531250 C 168.08949,72.610730 168.83732,69.631414 166.87500,68.343750 C 164.02568,66.581529 166.47357,67.403459 168.27836,67.911665 C 170.51415,68.044548 173.31226,68.747610 174.83495,66.581402 C 176.52328,64.952843 175.46252,62.386049 173.84375,61.125000 C 171.82924,60.052772 169.41179,60.364713 167.22781,60.468857 C 165.26732,60.816302 163.77932,61.981088 162.56250,63.500000 C 161.07416,64.693238 164.27576,66.891706 162.51264,66.451187 C 161.23611,66.670932 162.80138,64.122782 161.27178,63.293106 C 160.27477,61.829766 158.59216,60.917429 157.34375,59.656250 C 163.37320,56.739900 170.41697,55.950383 175.81250,51.750000 C 177.79054,49.403625 176.89111,46.297658 176.31250,43.625000 C 172.71709,37.077334 166.72680,32.381991 161.58112,27.092054 C 156.10204,21.754721 150.65568,16.371055 145.15625,11.062500 C 142.76062,10.099303 140.31053,9.4347862 137.70606,9.5684113 C 137.43820,9.5943662 137.13013,9.4705862 136.87500,9.5625000 z M 144.00000,20.125000 C 145.41913,21.217458 146.85549,22.290152 148.28125,23.375000 C 146.97140,24.376925 147.43473,26.306660 146.96875,27.718750 C 145.01335,27.188020 142.88412,27.117042 141.28969,28.567875 C 140.30436,29.400862 138.46017,30.323076 138.31032,28.383898 C 137.43025,25.351664 136.59470,22.304201 135.68750,19.281250 C 137.21838,18.817776 138.78213,16.344334 140.28250,17.745803 C 141.52167,18.538869 142.76083,19.331934 144.00000,20.125000 z M 130.53125,30.406250 C 128.68750,30.593750 126.84375,30.781250 125.00000,30.968750 C 125.70615,27.451641 128.61722,24.990200 131.09307,22.632488 C 132.44877,21.648343 133.72082,20.531920 135.12500,19.625000 C 133.59375,23.218750 132.06250,26.812500 130.53125,30.406250 z " + style="fill-opacity:0.074380167;fill-rule:evenodd;stroke-width:1.0000000pt;" /> + </g> + <path + transform="matrix(1.220396,0.000000,0.000000,1.220396,-20.19444,7.307033)" + sodipodi:nodetypes="cccccccccccccccccccccccccccccccccccccccccc" + id="path1217" + d="M 78.468542,10.216821 C 75.406213,10.216823 72.323010,11.369737 69.976423,13.716321 L 28.309048,55.430356 C 26.009076,57.730272 24.808608,60.734604 24.762888,63.735835 C 24.762246,63.786202 24.762888,63.872106 24.762888,63.922475 L 24.856208,63.922475 C 25.654475,66.959676 46.258230,70.813287 48.559486,73.114494 C 52.034797,76.589830 35.238960,79.157777 38.714227,82.633131 C 42.189523,86.108431 59.735084,89.329652 63.210724,92.805012 C 66.686050,96.280332 56.095888,99.968182 59.571244,103.44349 C 63.046555,106.91885 74.703745,102.59065 72.589383,111.65565 C 77.282542,116.34881 87.076796,114.10913 93.633042,109.41597 C 97.108353,105.94066 86.984820,106.26556 90.460160,102.79025 C 93.935473,99.314902 102.71230,99.298562 110.10402,90.985272 C 107.12876,86.358021 97.390000,84.382051 100.86534,80.906713 C 104.34065,77.431409 111.06300,79.175321 125.64179,72.554574 C 132.75855,69.322402 132.20143,66.898885 132.17419,63.922475 C 132.17362,63.859844 132.17419,63.798946 132.17419,63.735835 L 132.12753,63.735835 C 132.08182,60.734607 130.92794,57.730277 128.62803,55.430356 L 86.914001,13.716321 C 84.567429,11.369740 81.530871,10.216821 78.468542,10.216821 z M 59.991184,75.260853 C 66.201756,76.871504 73.111347,78.955868 78.655182,78.993653 L 78.888482,81.513293 C 74.141227,81.023952 64.086006,78.710363 61.717604,77.500533 L 59.991184,75.260853 z M 124.70859,86.319271 C 123.76053,86.288891 122.86335,86.383941 122.18895,86.552571 C 120.91747,86.870282 114.74061,87.016652 115.23661,90.985272 C 120.69367,92.968622 129.12948,94.487582 130.12115,90.518672 C 130.86551,87.542792 127.55274,86.410411 124.70859,86.319271 z M 53.365465,94.391452 C 52.506936,94.291402 51.667011,94.397222 50.845825,94.811392 C 47.561932,96.467852 45.351592,100.14833 48.419506,101.67041 C 51.487732,103.19250 53.661984,101.45941 56.351705,99.570712 C 59.041739,97.682322 58.972518,97.313012 58.778024,96.584472 C 58.405655,96.683782 55.941067,94.691622 53.365465,94.391452 z M 113.37021,95.044692 C 110.88978,96.036632 110.91892,99.482602 112.90361,100.97051 C 114.88780,102.45872 117.37116,101.49614 118.36283,100.50391 C 119.35532,99.511972 118.33051,96.036652 113.37021,95.044692 z " + style="fill:url(#linearGradient1322);fill-rule:evenodd;stroke-width:1.0000000pt;" /> + <path + transform="matrix(1.220396,0.000000,0.000000,1.220396,-20.19444,7.307033)" + sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc" + id="path1269" + d="M 25.748195,58.983802 C 25.069168,60.484820 24.699511,62.088386 24.675015,63.696461 C 24.674375,63.746824 24.675015,63.832738 24.675015,63.883101 L 24.768335,63.883101 C 25.532194,66.789384 44.034284,70.422637 47.678393,72.748500 C 49.285306,71.792649 50.340763,70.791543 49.264832,69.715600 C 46.963576,67.414389 26.359823,63.560781 25.561555,60.523581 L 25.468235,60.523581 C 25.468235,60.473204 25.467595,60.387304 25.468235,60.336942 C 25.475280,59.874537 25.686531,59.443757 25.748195,58.983802 z M 132.03964,65.049601 C 131.22443,66.340254 129.65777,67.652109 126.34713,69.155680 C 111.76835,75.776420 105.04600,74.032516 101.57069,77.507812 C 100.51786,78.560641 100.89350,79.461052 101.71067,80.354072 C 105.38973,77.752669 112.01329,78.664472 125.55391,72.515200 C 131.70333,69.722349 132.05669,67.513308 132.03964,65.049601 z M 60.696531,71.861960 L 62.422951,74.101632 C 64.791352,75.311463 74.846572,77.625067 79.593829,78.114392 L 79.360529,75.594752 C 73.816694,75.556961 66.907102,73.472618 60.696531,71.861960 z M 40.119473,79.607512 C 38.565476,80.548088 37.568913,81.536279 38.626354,82.593751 C 42.101651,86.069051 59.647211,89.290272 63.122851,92.765632 C 63.275692,92.918462 63.255326,93.078602 63.356151,93.232232 C 64.435614,91.947532 65.165573,90.655612 63.916071,89.406112 C 60.566937,86.057251 44.419333,82.939151 40.119473,79.607512 z M 117.10845,87.866332 C 115.91482,88.486362 114.95058,89.360392 115.14873,90.945882 C 120.60578,92.929232 129.04159,94.448192 130.03326,90.479292 C 130.22625,89.707762 130.12018,89.057262 129.84662,88.519572 C 127.48913,90.422432 121.65703,89.359992 117.10845,87.866332 z M 108.52303,89.546092 C 101.68539,95.627832 94.291059,96.265772 91.165507,99.391352 C 89.908251,100.64860 90.617583,101.33525 91.632107,101.95765 C 95.620160,99.286262 103.30109,98.498152 110.01615,90.945882 C 109.67197,90.410612 109.01729,90.016842 108.52303,89.546092 z M 112.39580,95.705212 C 110.96059,97.100002 111.14367,99.677592 112.81574,100.93113 C 114.79992,102.41933 117.28328,101.45675 118.27495,100.46453 C 118.78497,99.954792 118.71737,98.812252 117.90167,97.664932 C 116.69163,98.288052 115.10107,98.690742 113.60896,97.571612 C 112.97842,97.098902 112.61381,96.431702 112.39580,95.705212 z M 57.383671,95.891852 C 57.217332,96.012982 57.251127,96.035572 57.057051,96.171812 C 54.367330,98.060502 52.193078,99.793612 49.124852,98.271512 C 48.483305,97.953222 48.223383,97.480502 48.005012,97.011692 C 46.640740,98.694072 46.307086,100.62659 48.331632,101.63103 C 51.399861,103.15311 53.574111,101.42002 56.263832,99.531332 C 58.953868,97.642932 58.884645,97.273622 58.690151,96.545092 C 58.562389,96.579162 57.924006,96.197372 57.383671,95.891852 z M 60.043291,99.577992 C 58.963831,100.86268 58.233858,102.15460 59.483371,103.40410 C 62.958684,106.87946 74.615872,102.55126 72.501510,111.61626 C 77.194670,116.30942 86.988927,114.06974 93.545171,109.37658 C 94.825402,108.09634 94.082889,107.39241 93.031907,106.76362 C 86.534250,110.87138 77.700406,112.66245 73.294729,108.25674 C 75.409092,99.191752 63.751901,103.51996 60.276591,100.04459 C 60.123748,99.891752 60.144117,99.731612 60.043291,99.577992 z " + style="fill:url(#linearGradient1231);fill-rule:evenodd;stroke-width:1.0000000pt;" /> + <path + transform="matrix(1.220396,0.000000,0.000000,1.220396,-20.19444,7.307033)" + sodipodi:nodetypes="cccccc" + id="path1271" + d="M 99.186075,30.398236 L 124.44205,57.534989 C 124.44205,57.534989 131.96512,65.595411 126.05415,68.819579 C 120.14317,72.043747 102.14157,76.880001 102.14157,76.880001 L 69.422516,29.764596 L 99.186075,30.398236 z " + style="fill:url(#linearGradient1272);fill-opacity:0.75000000;fill-rule:evenodd;stroke-width:1.0000000pt;" /> + <path + transform="matrix(1.401650,0.000000,0.000000,1.401650,-35.26049,-4.181157)" + sodipodi:nodetypes="cccccc" + id="path1276" + d="M 63.243695,31.078988 L 42.657304,54.706552 C 42.657304,54.706552 34.703472,61.724642 39.850070,64.531876 C 44.996668,67.339111 78.917426,78.801990 102.77892,74.591136 L 75.408382,33.652287 L 63.243695,31.078988 z " + style="fill:url(#linearGradient1277);fill-opacity:0.75000000;fill-rule:evenodd;stroke-width:1.0000000pt;" /> + <path + transform="matrix(1.220396,0.000000,0.000000,1.220396,-20.19444,7.307033)" + sodipodi:nodetypes="ccccccccccczz" + id="path1317" + d="M 79.571944,14.847933 C 83.032254,14.873506 97.565101,29.009298 101.72458,31.925491 C 105.88407,34.841684 104.90857,36.754316 104.90857,36.936622 L 93.243582,31.290763 L 92.077082,40.109502 L 85.638002,37.076602 L 75.746078,43.702321 L 71.919958,30.637523 L 67.067318,42.069221 L 53.395938,43.422361 L 53.535918,37.356562 L 73.730570,17.473723 C 75.195738,16.031178 76.175081,14.822360 79.571944,14.847933 z " + style="fill:url(#linearGradient1318);fill-rule:evenodd;stroke-width:1.0000000pt;" /> + </g> + </g> + <g + inkscape:label="Title" + id="layer2" + inkscape:groupmode="layer"> + <text + id="text48" + style="line-height:100%;font-variant:normal;font-stretch:normal;writing-mode:lr;text-anchor:start;font-family:Arial;display:block;stroke-opacity:1.0000000;stroke-linejoin:miter;stroke-linecap:butt;stroke-width:3.0000000pt;stroke:none;fill-opacity:1.0000000;fill:#ffffff;font-weight:normal;font-style:normal;font-size:48.000000" + y="70" + x="45" + sodipodi:linespacing="100%"><tspan + id="tspan1" + sodipodi:role="line" + y="70.000000" + x="45.000000">Evolving inkscape_gtkmm</tspan></text> + <text + xml:space="preserve" + style="line-height:120%;writing-mode:lr;text-anchor:start;font-family:Sans;stroke-opacity:1.0000000;stroke-linejoin:miter;stroke-linecap:butt;stroke-width:1.0000000pt;stroke:none;fill-opacity:1.0000000;fill:#000000;font-stretch:normal;font-weight:normal;font-variant:normal;font-style:normal;font-size:24.000000" + x="54.754395" + y="169.84863" + id="text74" + sodipodi:linespacing="120%"><tspan + id="tspan9" + sodipodi:role="line" + y="169.84863" + x="54.754395">* Expand Inkscape::Application</tspan><tspan + id="tspan10" + sodipodi:role="line" + y="198.64863" + x="54.754395"> + High level services (GC, args, paths)</tspan><tspan + id="tspan11" + sodipodi:role="line" + y="227.44864" + x="54.754395"> + Registries (extensions, prefs, etc.)</tspan><tspan + id="tspan12" + sodipodi:role="line" + y="256.24864" + x="54.754395"></tspan><tspan + id="tspan13" + sodipodi:role="line" + y="285.04864" + x="54.754395">* Create new Inkscape::Application::RunMode</tspan><tspan + id="tspan14" + sodipodi:role="line" + y="313.84864" + x="54.754395"> + Abstract base class</tspan><tspan + id="tspan15" + sodipodi:role="line" + y="342.64864" + x="54.754395"></tspan><tspan + id="tspan16" + sodipodi:role="line" + y="371.44864" + x="54.754395">* Refactor Inkscape::Application::ApplicationImpl</tspan><tspan + id="tspan17" + sodipodi:role="line" + y="400.24864" + x="54.754395"> + Rename it to Inkscape::Application::Editor</tspan><tspan + id="tspan18" + sodipodi:role="line" + y="429.04864" + x="54.754395"> + Make it subclass I::A::RunMode</tspan><tspan + id="tspan19" + sodipodi:role="line" + y="457.84864" + x="54.754395"> + Move items from SPDesktop into here</tspan><tspan + id="tspan20" + sodipodi:role="line" + y="486.64865" + x="54.754395"></tspan><tspan + id="tspan21" + sodipodi:role="line" + y="515.44865" + x="54.754395">* Create new Inkscape::Application::Cmdline</tspan><tspan + id="tspan22" + sodipodi:role="line" + y="544.24865" + x="54.754395"> + Make it subclass I::A::RunMode</tspan><tspan + id="tspan23" + sodipodi:role="line" + y="573.04865" + x="54.754395"> + Move stuff from main.cpp into here</tspan></text> + </g> + <g + inkscape:label="Drawing Area" + id="layer3" + inkscape:groupmode="layer" /> +</svg> diff --git a/doc/README.document b/doc/README.document new file mode 100644 index 000000000..e5f958cbb --- /dev/null +++ b/doc/README.document @@ -0,0 +1,77 @@ +31.03.2000 + +Well, we end with 2 basic objects: + +SPDocument - the base of all nongraphical wizardry. +Although you can well do all things via repr tree, Document will have some +neat features: +Undo stack managing: start_undo_step, end_undo_step +Selection grabbing - we can select via reprs, which is otherwise impossible +NB! SPDocument is SPRepr ref holder NB! + +SPDesktop - the base of all graphical wizardry + +What follows, is outdated... + +Document hierarchy + +This is currently in active rewrite. Structure should be something like: + +SPApp - main application thing, probably GnomeMDI in future +SPDesktop - one view to one document +SPDocument - SPItem tree rootmost element + +SPItem tree refers to xml backbone (currently reprs) and Canvas trees. +Backbone does not know anything about other items/classes/objects. There +can be more than one canvas tree (desktop) associated with document. + +There is (and should be more) event interconnection between different +objects. + +Editing can be done to all three levels, but should end up with modifying +reprs. No other change will be saved. +1. Non-interactive modifications (for example changing object color) +These should be done directly to backbone. Probably I'll implement a separate +wrapper thing (sp-app-repr-interface.h or similar) to minimize the need +to include lot of headers for such modules. These will be also probably the +first interface to plugins. +Such modifications will instantly propagate to all items and views and will +be preserved when saving, duplicating & so on. + +2. Interactive modifications to SPItems +These are a bit faster (no need of coding/decoding, allocing, freeing xml +attributes). Changes will display instantly to all views, but WILL NOT +propagate back to xml. The right way to use such things is: +When button pressed, grab mouse pointer +Do modifications to SPItem +When button released, write modifications to SPRepr + +3. Interactive modifications to GnomeCanvasItems +These affect only the current display (desktop) and DO NOT propagate back +neither to SPItems, nor SPReprs. Use with same caution, as the class above. + +Undo/Redo, when implemented, will be probably extracted from xml + +There are several more things, like +SPSelection - a per desktop selection (selection.h) +Handful of canvas groups for grid, guidelines & so on (desktop.h) +Intermediate holders of currently modified data (all contexts) +SPNodepath (nodepath.h) + +--------------------- + +Document == SPRoot +Provides convenience constructors + +Selection { /* opaque */ } +Per desktop structure, pointing to selected items + +Desktop { + Selection selection + Document document +} + +macro ACTIVE_DESKTOP ;) gives current active desktop ;-) +There will be probably several macros to deduce affected desktop from +UI events (menus & so on) + diff --git a/doc/WISHLIST b/doc/WISHLIST new file mode 100644 index 000000000..e083a591b --- /dev/null +++ b/doc/WISHLIST @@ -0,0 +1,51 @@ + +Inkscape Wishlist +----------------- +This file is for capturing random details about desired development +work, ideas, etc. The Inkscape feature request page is probably a +better location for such things, but this can serve as a convenient +scratchpad. + + +Rework xml tree +=============== +use reprs as lightweight wrappers around gnome-xml, +keeping syntax as close to DOM as possible + + +Split SPDesktop object into modular inherited objects +===================================================== +SPDesktop - base, has drawing group, no contexts +SPEDesktop - editable desktop - more full-featured +SPNamedDesktop - Desktop, deriving its layout from NamedView - i.e. guides, + grid etc. will be saved per-desktop + +desktop_show_borders/hide_borders - show/hide rulers & stuff - usable for + Bonobo component + + + +Javascript for Animation support(?) +=================================== +> The mozilla javascript engine is under dual MPL/GPL +> (http://lxr.mozilla.org/seamonkey/source/js/src/) and written in C. +> Hopefully there's some nice way to build off that... + +The main reason JavaScript would be tricky is that it would be modifying +the document out from under you via the DOM, so you couldn't have a +"time slider" or something like you could for the SMIL stuff. + +That's a real headache, and the only way I can see it working is if the +document is cloned and played back in a separate "audition" window, then +the modified document thrown away at the end. + +But then, why implement Javascript in Inkscape? An audition feature +that calls out to an external player application would work just as well +(and indeed, that's exactly how applications like Flash cope with +scripting). + +[ note that implementing scripting for Inkscape itself is a separate +issue, and probably warrants a language-agnostic scripting interface +like the GIMP's PDB, only less grotty ] + +-- Mental
\ No newline at end of file diff --git a/doc/architecture.svg b/doc/architecture.svg new file mode 100644 index 000000000..72ca07d18 --- /dev/null +++ b/doc/architecture.svg @@ -0,0 +1,607 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN" +"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd"> +<!-- Created with Inkscape (http://www.inkscape.org/) --> +<svg + id="svg1" + sodipodi:version="0.32" + width="210mm" + height="297mm" + sodipodi:docname="architecture.svg" + inkscape:version="0.37cvs" + xlink:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns="http://www.w3.org/2000/svg" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:xlink="http://www.w3.org/1999/xlink" + sodipodi:docbase="/home/d/ink/inkscape/doc"> + <defs + id="defs3"> + <marker + id="mArrow" + markerWidth="8" + markerHeight="10" + refX="0" + refY="0" + orient="auto"> + <path + d="M 10 4 C 10 4 0 0 0 0 C 0 0 10 -4 10 -4" + style="fill:none;fill-rule:evenodd;stroke:black;stroke-opacity:1;stroke-width:1pt;stroke-linejoin:miter;stroke-linecap:butt;fill-opacity:1;" + id="arrowMarkerPath" + sodipodi:nodetypes="cs" /> + </marker> + </defs> + <sodipodi:namedview + id="base" + showborder="false" + showgrid="true" + snaptogrid="true" + gridspacingx="2.5mm" + gridspacingy="2.5mm" + inkscape:zoom="0.93598944" + inkscape:cx="378.835131" + inkscape:cy="260.686506" + inkscape:window-width="752" + inkscape:window-height="563" + inkscape:window-x="15" + inkscape:window-y="15" /> + <path + style="font-size:12;fill:#ff0000;fill-opacity:0.655629;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.285718pt;" + d="M 921.26 653.74 L 921.26 768.898 L 894.685 768.898 L 903.544 786.614 L 868.11 786.614 L 876.969 768.898 L 575.788 768.898 L 584.646 786.614 L 549.213 786.614 L 558.071 768.898 L 203.74 768.897 L 212.598 786.614 L 177.165 786.614 L 186.024 768.897 L 17.7167 768.895 L 17.7168 653.74 L 921.26 653.74 z " + id="path290" + sodipodi:nodetypes="ccccccccccccccccc" + transform="translate(-0.0002433,-230.315)" /> + <path + style="font-size:12;fill:#a80000;fill-opacity:0.655629;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.277762pt;" + d="M 398.623 503.15 L 398.623 529.726 L 380.906 520.867 L 380.906 556.3 L 398.623 547.442 L 398.623 591.732 L 584.647 591.733 L 575.788 609.45 L 611.221 609.45 L 602.363 591.733 L 770.67 591.733 L 770.67 556.3 L 788.387 565.158 L 788.387 529.725 L 770.67 538.583 L 770.67 503.151 L 602.363 503.15 L 611.221 520.867 L 575.788 520.867 L 584.647 503.15 L 398.623 503.15 z " + id="path814" + sodipodi:nodetypes="ccccccccccccccccccccc" + transform="translate(-26.5758,35.4323)" /> + <text + style="font-size:12;font-weight:bold;stroke-width:1pt;font-family:Luxi Sans;font-style:normal;text-anchor:start;writing-mode:lr;" + x="380.905512" + y="553.984741" + id="text230" + sodipodi:linespacing="100%"><tspan + x="380.905518" + y="553.984741" + sodipodi:role="line" + id="tspan305">Module subsystem</tspan><tspan + x="380.905518" + y="565.984741" + sodipodi:role="line" + id="tspan307">(src/modules/*)</tspan><tspan + x="380.905518" + y="577.984741" + sodipodi:role="line" + id="tspan309"></tspan></text> + <text + style="font-size:10;font-weight:normal;stroke-width:1pt;font-family:Luxi Sans;" + x="389.763780" + y="586.378361" + id="text566" + sodipodi:linespacing="100%"><tspan + x="389.763794" + y="586.378357" + sodipodi:role="line" + id="tspan587">SPModules (aka plugins) handle filtering, input and export of</tspan><tspan + x="389.763794" + y="596.378357" + sodipodi:role="line" + id="tspan589">SPModuleDocs (wrapped SPDocuments) and to eventually</tspan><tspan + x="389.763794" + y="606.378357" + sodipodi:role="line" + id="tspan591">encompass more functionality like e.g. providing tool</tspan><tspan + x="389.763794" + y="616.378357" + sodipodi:role="line" + id="tspan593">implementations.</tspan></text> + <path + style="font-size:12;fill:#a85500;fill-opacity:0.655629;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.285718pt;" + d="M 372.047 538.583 L 372.047 565.157 L 354.331 556.299 L 354.331 591.732 L 372.047 582.874 L 372.047 680.315 L 389.764 671.457 L 389.764 706.89 L 372.047 698.032 L 372.047 768.897 L 203.74 768.897 L 212.598 786.614 L 177.165 786.614 L 186.024 768.897 L 17.7167 768.895 L 17.7165 538.583 L 186.024 538.583 L 177.165 556.299 L 212.598 556.299 L 203.74 538.583 L 372.047 538.583 z " + id="path810" + sodipodi:nodetypes="ccccccccccccccccccccc" /> + <path + style="font-size:12;fill:#0055a9;fill-opacity:0.655629;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.277762pt;" + d="M 372.047 946.063 L 372.047 972.639 L 354.331 963.779 L 354.331 999.213 L 372.047 990.355 L 372.047 1016.93 L 744.094 1016.93 L 744.094 946.063 L 487.205 946.063 L 496.063 963.78 L 460.63 963.78 L 469.488 946.063 L 372.047 946.063 z " + id="path806" + sodipodi:nodetypes="ccccccccccccc" /> + <path + style="font-size:12;fill:#00a7a8;fill-opacity:0.655629;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.285718pt;" + d="M 744.094 839.764 L 744.094 946.063 L 487.205 946.063 L 496.063 963.78 L 460.63 963.78 L 469.488 946.063 L 203.74 946.063 L 212.598 963.78 L 177.165 963.78 L 186.024 946.063 L 17.7167 946.061 L 17.7165 839.764 L 186.024 839.764 L 177.165 857.48 L 212.598 857.48 L 203.74 839.764 L 566.929 839.764 L 558.071 857.48 L 593.504 857.48 L 584.646 839.764 L 744.094 839.764 z " + id="path804" + sodipodi:nodetypes="ccccccccccccccccccccc" /> + <path + style="font-size:12;fill:#5400a8;fill-opacity:0.655629;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.277762pt;" + d="M 372.047 1016.93 L 372.047 990.354 L 354.331 999.213 L 354.331 963.78 L 372.047 972.638 L 372.047 946.063 L 203.74 946.063 L 212.598 963.78 L 177.165 963.78 L 186.024 946.063 L 17.7167 946.063 L 17.7165 1016.93 L 372.047 1016.93 z " + id="path802" + sodipodi:nodetypes="ccccccccccccc" /> + <text + style="fill:black;stroke:none;font-family:Luxi Sans;font-style:normal;font-weight:bold;font-size:12;text-anchor:start;writing-mode:lr;fill-opacity:1;stroke-opacity:1;stroke-width:1pt;stroke-linejoin:miter;stroke-linecap:butt;" + x="30.2825356" + y="961.974792" + id="text15" + sodipodi:linespacing="100%"><tspan + x="30.2825356" + y="961.974792" + sodipodi:role="line" + id="tspan835">New Renderer</tspan><tspan + x="30.2825356" + y="973.974792" + sodipodi:role="line" + id="tspan837">(src/libnr/*)</tspan><tspan + x="30.2825356" + y="985.974792" + sodipodi:role="line" + id="tspan839"></tspan></text> + <text + style="fill:black;stroke:none;font-family:Luxi Sans;font-style:normal;font-weight:bold;font-size:12;text-anchor:start;writing-mode:lr;fill-opacity:1;stroke-opacity:1;stroke-width:1pt;stroke-linejoin:miter;stroke-linecap:butt;" + x="381.039551" + y="979.356293" + id="text25" + sodipodi:linespacing="100%"><tspan + x="381.039551" + y="979.356323" + sodipodi:role="line" + id="tspan797">New Renderer Typesetting (src/libnr/libnrtype/*)</tspan><tspan + x="381.039551" + y="991.356323" + sodipodi:role="line" + id="tspan799"></tspan></text> + <text + style="fill:black;stroke:none;font-family:Luxi Sans;font-style:normal;font-weight:bold;font-size:12;text-anchor:start;writing-mode:lr;fill-opacity:1;stroke-opacity:1;stroke-width:1pt;stroke-linejoin:miter;stroke-linecap:butt;" + x="26.0826159" + y="860.882385" + id="text28" + sodipodi:linespacing="100%"><tspan + x="26.0826168" + y="860.882385" + sodipodi:role="line" + id="tspan821">Display Glue</tspan><tspan + x="26.0826168" + y="872.882385" + sodipodi:role="line" + id="tspan823">(src/display/*)</tspan><tspan + x="26.0826168" + y="884.882385" + sodipodi:role="line" + id="tspan825"></tspan></text> + <text + style="fill:black;stroke:none;font-family:Luxi Sans;font-style:normal;font-weight:bold;font-size:12;text-anchor:start;writing-mode:lr;fill-opacity:1;stroke-opacity:1;stroke-width:1pt;stroke-linejoin:miter;stroke-linecap:butt;" + x="27.5269089" + y="556.763535" + id="text189" + sodipodi:linespacing="100%"><tspan + x="27.5269089" + y="556.763550" + sodipodi:role="line" + id="tspan815">View subsystem</tspan><tspan + x="27.5269089" + y="568.763550" + sodipodi:role="line" + id="tspan817">(src/view.*, src/desktop*.*, src/svg-view.* and others)</tspan><tspan + x="27.5269089" + y="580.763550" + sodipodi:role="line" + id="tspan819"></tspan></text> + <text + style="fill:black;stroke:none;font-family:Luxi Sans;font-style:normal;font-weight:normal;font-size:10;text-anchor:start;writing-mode:lr;fill-opacity:1;stroke-opacity:1;stroke-width:1pt;stroke-linejoin:miter;stroke-linecap:butt;" + x="35.013150" + y="612.142164" + id="text685" + sodipodi:linespacing="100%"><tspan + x="35.0131493" + y="612.142151" + sodipodi:role="line" + id="tspan642">SPView is an abstract class representing a "view" of an SPDocument. It</tspan><tspan + x="35.0131493" + y="622.142151" + sodipodi:role="line" + id="tspan644">has a companion SPViewWidget class for the associated display widget.</tspan><tspan + x="35.0131493" + y="632.142151" + sodipodi:role="line" + id="tspan646"></tspan><tspan + x="35.0131493" + y="642.142151" + sodipodi:role="line" + id="tspan648">SPDesktop is an editable SPView, and SPSVGView is a display-only view</tspan><tspan + x="35.0131493" + y="652.142151" + sodipodi:role="line" + id="tspan650">(e.g. the about box). Both maintain an SPCanvas and provide an</tspan><tspan + x="35.0131493" + y="662.142151" + sodipodi:role="line" + id="tspan652">SPCanvasArena for SPObjects to display on. They have associated</tspan><tspan + x="35.0131493" + y="672.142151" + sodipodi:role="line" + id="tspan654">SPViewWidget subclasses: SPDesktopWidget and SPSVGViewWidget.</tspan><tspan + x="35.0131493" + y="682.142151" + sodipodi:role="line" + id="tspan656">SPDesktop is also responsible for maintaining the current selection in</tspan><tspan + x="35.0131493" + y="692.142151" + sodipodi:role="line" + id="tspan658">an SPSelection.</tspan><tspan + x="35.0131493" + y="702.142151" + sodipodi:role="line" + id="tspan660"></tspan><tspan + x="35.0131493" + y="712.142151" + sodipodi:role="line" + id="tspan662">SPDesktopWidget isn't just a bare canvas; it includes the scrollbars and</tspan><tspan + x="35.0131493" + y="722.142151" + sodipodi:role="line" + id="tspan664">other decorations.</tspan><tspan + x="35.0131493" + y="732.142151" + sodipodi:role="line" + id="tspan666"></tspan><tspan + x="35.0131493" + y="742.142151" + sodipodi:role="line" + id="tspan668">SPEventContexts handle tool state and interaction.</tspan><tspan + x="35.0131493" + y="752.142151" + sodipodi:role="line" + id="tspan670"></tspan></text> + <text + style="fill:black;stroke:none;font-family:Luxi Sans;font-style:normal;font-weight:normal;font-size:10;text-anchor:start;writing-mode:lr;fill-opacity:1;stroke-opacity:1;stroke-width:1pt;stroke-linejoin:miter;stroke-linecap:butt;" + x="35.4716110" + y="889.259216" + id="text730" + sodipodi:linespacing="100%"><tspan + x="35.4716110" + y="889.259216" + sodipodi:role="line" + id="tspan737">This subsystem provides a lightweight arena abstraction.</tspan><tspan + x="35.4716110" + y="899.259216" + sodipodi:role="line" + id="tspan739"></tspan><tspan + x="35.4716110" + y="909.259216" + sodipodi:role="line" + id="tspan741">NRArena - a collection of lightweight renderable NRArenaItems.</tspan><tspan + x="35.4716110" + y="919.259216" + sodipodi:role="line" + id="tspan743"></tspan><tspan + x="35.4716110" + y="929.259216" + sodipodi:role="line" + id="tspan745">SPCanvasArena - an SPCanvasItem that renders the contents of an</tspan><tspan + x="35.4716110" + y="939.259216" + sodipodi:role="line" + id="tspan747">NRArena.</tspan><tspan + x="35.4716110" + y="949.259216" + sodipodi:role="line" + id="tspan749"></tspan></text> + <text + style="fill:black;stroke:none;font-family:Luxi Sans;font-style:normal;font-weight:normal;font-size:10;text-anchor:start;writing-mode:lr;fill-opacity:1;stroke-opacity:1;stroke-width:1pt;stroke-linejoin:miter;stroke-linecap:butt;" + x="35.3354149" + y="989.205978" + id="text755" + sodipodi:linespacing="100%"><tspan + x="35.3354149" + y="989.205994" + sodipodi:role="line" + id="tspan768">The new rendering subsystem mostly replaces libart. It renders</tspan><tspan + x="35.3354149" + y="999.205994" + sodipodi:role="line" + id="tspan770">filled/stroked bezier curves and polygons into NRPixBlocks (image</tspan><tspan + x="35.3354149" + y="1009.20599" + sodipodi:role="line" + id="tspan772">buffers)</tspan><tspan + x="35.3354149" + y="1019.20599" + sodipodi:role="line" + id="tspan774"></tspan></text> + <text + style="fill:black;stroke:none;font-family:Luxi Sans;font-style:normal;font-weight:normal;font-size:10;text-anchor:start;writing-mode:lr;fill-opacity:1;stroke-opacity:1;stroke-width:1pt;stroke-linejoin:miter;stroke-linecap:butt;" + x="393.310669" + y="997.953644" + id="text780" + sodipodi:linespacing="100%"><tspan + x="393.310669" + y="997.953674" + sodipodi:role="line" + id="tspan791">Adaptor routines for using Xft, Win32, Gnome, and Freetype 2 to manage</tspan><tspan + x="393.310669" + y="1007.95367" + sodipodi:role="line" + id="tspan793">font metrics and outlines.</tspan><tspan + x="393.310669" + y="1017.95367" + sodipodi:role="line" + id="tspan795"></tspan></text> + <path + style="font-size:12;fill:#00a800;fill-opacity:0.655629;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.285718pt;" + d="M 372.047 565.157 L 372.047 636.023 L 203.74 636.023 L 212.598 653.74 L 177.165 653.74 L 186.024 636.023 L 17.7171 636.021 L 17.7163 565.157 L 186.024 565.157 L 177.165 582.873 L 212.598 582.873 L 203.74 565.157 L 372.047 565.157 z " + id="path809" + sodipodi:nodetypes="ccccccccccccc" + transform="translate(0.000234842,203.74)" /> + <text + style="font-size:10;font-weight:normal;stroke-width:1pt;font-family:Luxi Sans;" + x="34.8471336" + y="615.119431" + id="text22" + sodipodi:linespacing="100%" + transform="translate(0.000234842,203.74)"><tspan + x="34.8471336" + y="615.119446" + sodipodi:role="line" + id="tspan456">SPCanvas - handles input events</tspan><tspan + x="34.8471336" + y="625.119446" + sodipodi:role="line" + id="tspan458">SPCanvasItem - objects that can be displayed on SPCanvas</tspan><tspan + x="34.8471336" + y="635.119446" + sodipodi:role="line" + id="tspan460"></tspan></text> + <text + style="font-size:12;font-weight:bold;stroke-width:1pt;font-family:Luxi Sans;" + x="27.8824043" + y="586.276047" + id="text439" + sodipodi:linespacing="100%" + transform="translate(0.000234842,203.74)"><tspan + x="27.8824043" + y="586.276062" + sodipodi:role="line" + id="tspan827">SVG Canvas</tspan><tspan + x="27.8824043" + y="598.276062" + sodipodi:role="line" + id="tspan829">(src/helper/sp-canvas*)</tspan><tspan + x="27.8824043" + y="610.276062" + sodipodi:role="line" + id="tspan831"></tspan><tspan + x="27.8824043" + y="622.276062" + sodipodi:role="line" + id="tspan833"></tspan></text> + <path + style="font-size:12;fill:#a85555;fill-opacity:0.655629;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.285718pt;" + d="M 744.094 627.16533 L 744.094 680.31433 L 761.811 671.45633 L 761.811 706.88933 L 744.094 698.03133 L 744.095 839.76333 L 584.646 839.76333 L 593.504 857.48033 L 558.071 857.48033 L 566.929 839.76333 L 372.04723 839.76333 L 372.04673 698.03333 L 389.7633 706.89233 L 389.7633 671.45933 L 372.04673 680.31733 L 372.04673 627.16733 L 558.071 627.16533 L 549.212 644.88133 L 584.645 644.88133 L 575.787 627.16533 L 744.094 627.16533 z " + id="path808" + sodipodi:nodetypes="ccccccccccccccccccccc" /> + <text + style="font-size:12;font-weight:bold;stroke-width:1pt;font-family:Luxi Sans;" + x="386.918183" + y="648.283961" + id="text156" + sodipodi:linespacing="100%"><tspan + x="386.918182" + y="648.283936" + sodipodi:role="line" + id="tspan841">SVG document model</tspan><tspan + x="386.918182" + y="660.283936" + sodipodi:role="line" + id="tspan843">(src/sp-*.h and others)</tspan><tspan + x="386.918182" + y="672.283936" + sodipodi:role="line" + id="tspan845"></tspan></text> + <text + style="font-size:10;font-weight:normal;stroke-width:1pt;font-family:Luxi Sans;" + x="398.622047" + y="677.988570" + id="text468" + sodipodi:linespacing="100%"><tspan + x="398.622040" + y="677.988586" + sodipodi:role="line" + id="tspan521">Enforces validity constraints on the SPRepr document.</tspan><tspan + x="398.622040" + y="687.988586" + sodipodi:role="line" + id="tspan523"></tspan><tspan + x="398.622040" + y="697.988586" + sodipodi:role="line" + id="tspan525">SPDocument - an SVG document containing SPObjects.</tspan><tspan + x="398.622040" + y="707.988586" + sodipodi:role="line" + id="tspan527"></tspan><tspan + x="398.622040" + y="717.988586" + sodipodi:role="line" + id="tspan529">SPObjects - handles short term changes & propagates</tspan><tspan + x="398.622040" + y="727.988586" + sodipodi:role="line" + id="tspan531">longer term ones to the SPRepr</tspan><tspan + x="398.622040" + y="737.988586" + sodipodi:role="line" + id="tspan533"></tspan><tspan + x="398.622040" + y="747.988586" + sodipodi:role="line" + id="tspan535">SPItems - SPObjects that can be rendered. They have hide() and show()</tspan><tspan + x="398.622040" + y="757.988586" + sodipodi:role="line" + id="tspan537">methods for creating an associated NRArenaItem in a given NRArena.</tspan><tspan + x="398.622040" + y="767.988586" + sodipodi:role="line" + id="tspan539"></tspan></text> + <path + style="font-size:12;fill:#a80055;fill-opacity:0.655629;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.277762pt;" + d="M 372.047 706.89 L 372.047 742.325 L 389.763 733.466 L 389.763 768.899 L 372.047 760.04 L 372.047 848.623 L 389.764 839.764 L 389.764 875.197 L 372.047 866.339 L 372.047 1008.07 L 549.213 1008.07 L 549.213 706.89 L 522.638 706.89 L 531.496 724.606 L 496.063 724.606 L 504.922 706.89 L 372.047 706.89 z " + id="path813" + sodipodi:nodetypes="ccccccccccccccccc" + transform="translate(372.047,-168.307)" /> + <text + style="font-size:12;font-weight:bold;stroke-width:1pt;font-family:Luxi Sans;font-style:normal;text-anchor:start;writing-mode:lr;" + x="770.382197" + y="560.211046" + id="text163" + sodipodi:linespacing="100%"><tspan + x="770.382202" + y="560.211060" + sodipodi:role="line" + id="tspan341">XML doc model</tspan><tspan + x="770.382202" + y="572.211060" + sodipodi:role="line" + id="tspan343">(src/xml/*)</tspan><tspan + x="770.382202" + y="584.211060" + sodipodi:role="line" + id="tspan345"></tspan></text> + <text + style="font-size:10;font-weight:normal;stroke-width:1pt;font-family:Luxi Sans;font-style:normal;text-anchor:start;writing-mode:lr;" + x="782.132559" + y="596.256276" + id="text541" + sodipodi:linespacing="100%"><tspan + x="782.132568" + y="596.256287" + sodipodi:role="line" + id="tspan362">SPRepr - node in an XML</tspan><tspan + x="782.132568" + y="606.256287" + sodipodi:role="line" + id="tspan364">document (elements,</tspan><tspan + x="782.132568" + y="616.256287" + sodipodi:role="line" + id="tspan366">attributes, and text nodes).</tspan><tspan + x="782.132568" + y="626.256287" + sodipodi:role="line" + id="tspan368">Transactions are logged</tspan><tspan + x="782.132568" + y="636.256287" + sodipodi:role="line" + id="tspan370">for replaying/undoing</tspan><tspan + x="782.132568" + y="646.256287" + sodipodi:role="line" + id="tspan372">changes.</tspan></text> + <text + style="font-size:12;font-weight:bold;stroke-width:1pt;font-family:Luxi Sans;" + x="752.384338" + y="866.216599" + id="text270" + sodipodi:linespacing="100%"><tspan + x="752.384338" + y="866.216614" + sodipodi:role="line" + id="tspan714">Cruft subsystem - (src/svg/*)</tspan><tspan + x="752.384338" + y="878.216614" + sodipodi:role="line" + id="tspan716"></tspan></text> + <text + style="font-size:10;font-weight:normal;stroke-width:1pt;font-family:Luxi Sans;" + x="776.351135" + y="889.370956" + id="text723" + sodipodi:linespacing="100%"><tspan + x="776.351135" + y="889.370972" + sodipodi:role="line" + id="tspan708">Assorted stuff left over from</tspan><tspan + sodipodi:role="line" + id="tspan794" + x="776.351135" + y="899.370972">when Sodipodi forked from</tspan><tspan + sodipodi:role="line" + id="tspan796" + x="776.351135" + y="909.370972">Gill which doesn't have a better</tspan><tspan + sodipodi:role="line" + id="tspan800" + x="776.351135" + y="919.370972">home.</tspan></text> + <text + style="font-size:12;font-weight:bold;stroke-width:1pt;font-family:Luxi Sans;font-style:normal;text-anchor:start;writing-mode:lr;" + x="25.813100" + y="447.539008" + id="text257" + sodipodi:linespacing="100%"><tspan + x="25.8131008" + y="447.539001" + sodipodi:role="line" + id="tspan358">Inkscape Graphical User Interface (src/widgets, src/dialogs)</tspan><tspan + x="25.8131008" + y="459.539001" + sodipodi:role="line" + id="tspan360"></tspan></text> + <text + style="font-size:10;font-weight:normal;stroke-width:1pt;font-family:Luxi Sans;font-style:normal;text-anchor:start;writing-mode:lr;" + x="35.433071" + y="498.937401" + id="text676" + sodipodi:linespacing="100%"><tspan + x="35.4330711" + y="498.937408" + sodipodi:role="line" + id="tspan318">widgets/* - Utilities and custom widgets to assist in implementing</tspan><tspan + x="35.4330711" + y="508.937408" + sodipodi:role="line" + id="tspan320">the Inkscape GUI and to enforce a common look and feel style</tspan><tspan + x="35.4330711" + y="518.937408" + sodipodi:role="line" + id="tspan322">across the application.</tspan><tspan + x="35.4330711" + y="528.937408" + sodipodi:role="line" + id="tspan324"></tspan></text> + <text + style="font-size:10;font-weight:normal;stroke-width:1pt;font-family:Luxi Sans;font-style:normal;text-anchor:start;writing-mode:lr;" + x="35.433071" + y="463.504330" + id="text326" + sodipodi:linespacing="100%"><tspan + x="35.4330711" + y="463.504333" + sodipodi:role="line" + id="tspan335">dialogs/* - Code for creating the various UI dialogs in the</tspan><tspan + x="35.4330711" + y="473.504333" + sodipodi:role="line" + id="tspan337">application.</tspan><tspan + x="35.4330711" + y="483.504333" + sodipodi:role="line" + id="tspan339"></tspan></text> + <text + style="font-size:10;font-weight:normal;stroke-width:1pt;font-family:Luxi Sans;font-style:normal;text-anchor:start;writing-mode:lr;" + x="760.404043" + y="482.240528" + id="text347" + sodipodi:linespacing="100%"><tspan + x="760.404053" + y="482.240540" + sodipodi:role="line" + id="tspan374">dialogs/xml-tree.* - Code for</tspan><tspan + x="760.404053" + y="492.240540" + sodipodi:role="line" + id="tspan376">creating and maintaining an</tspan><tspan + x="760.404053" + y="502.240540" + sodipodi:role="line" + id="tspan378">interface for editing XML trees.</tspan></text> +</svg> diff --git a/doc/architecture.txt b/doc/architecture.txt new file mode 100644 index 000000000..14b038b6e --- /dev/null +++ b/doc/architecture.txt @@ -0,0 +1,490 @@ +Sodipodi internal architecture + +1. Overview + +The Sodipodi display and editing engine is built using the +"Model-View-Controller" (MVC) paradigm. Unlike "classic" MVC +programs, we have further split model into two distinct layers, +'backbone' and 'document'. This has proven to be extremely powerful +technique, giving us clear and fast implementation, functional +granularity and easy expandibility. + +1.1. Agnostic XML backbone + +The basis of the sodipodi document is its plain XML representation in +memory. This is a tree-shaped structure, in which each node is +represented by a lightweight typeless object (SPRepr). These objects +implement a minimal interface of both control (methods) and mutation +events (callbacks). We use the term 'agnostic' for describing that +part of model, to underline the typeless nature of SPRepr. More or +less, this is just an XML file representation in memory. + +1.2. Typed SVG document + +The most actively used part of the sodipodi document model is the SVG +object tree. This is constructed on top of the XML tree, and reacts to +all mutation events in the agnostic tree, thus always keeping its +internal state synchronized with the backbone. The opposite is not +true - the XML backbone is not aware of the SVG object tree, and thus +does not react to its modifications. If writeback to the backbone is +needed, it must be requested explicitly by the controller. The SVG +tree is constructed of SPObject subclasses - in general there is one +subclass for each SVG element type, plus abstract base classes. + +1.3. NRArena view + +NRarena is an abstract display engine that allows construction of +'display caches' from NRArenaItem subclasses. These are lightweight, +having only some basic object types, and used for most of the display +needs of Sodipodi. Both the editing window, and the bitmap export +code create special NRArena instances, and ask the SVG document to +show itself to the given NRArena. There is a ::show virtual method, +implemented by all visible object classes, that adds an NRArenaItem +node to the display tree. The completed display cache is used for fast +screen updates and stripe based bitmap exports. During the NRArena +lifetime SVG objects keep all of the display cache elements constantly +updated, thus ensuring the display is always up to date. + +1.4. Controllers + +Like the model suggests, controllers can be implemented acting on +different layers. Which one is best depends on the type of action +that the given controller performs. Usually very generic and +single-shot operating controllers act on the SPRepr layer, while those +providing visual feedback or tied to a certain object type act on the +SPObject layer. + + + +2. Detailed view + +2.1. SPRepr + +The most basic SVG (XML) document backbone is implemented as an +in-memory tree of SPRepr objects, each object corresponding to a +single node in the XML file. Currently there are only two types of +SPReprs - normal element nodes and text nodes. More types may be +added in the future, but the structure will probably always remain +much simpler (and faster) than DOM. + +SPRepr may have: +- attributes (keyword/value) pairs +- content (text) +- child nodes + +Attribute values are textual, and no checks are performed in that +layer to ensure document validity. Also, CSS style strings are +unparsed in that layer. The SPRepr tree is built during document +loading or creation. As it is textual and always synchronized with the +display, unfiltered saving involves just dumping it into a file. + +The basic API acting on SPRepr level is really spartan. + +SPRepr *sp_repr_new (const unsigned char *name) +SPRepr *sp_repr_new_text (const unsigned char *content) +SPRepr *sp_repr_ref (SPRepr *repr) +SPRepr *sp_repr_unref (SPRepr *repr) +SPRepr *sp_repr_duplicate (SPRepr *repr) + +int sp_repr_set_content (SPRepr *repr, const unsigned char *content) +int sp_repr_set_attr (SPRepr *repr, const unsigned char *key, const unsigned char *value) +int sp_repr_add_child (SPRepr *repr, SPRepr *child, SPRepr *ref) +int sp_repr_remove_child (SPRepr *repr, SPRepr *child) +int sp_repr_change_order (SPRepr *repr, SPRepr *child, SPRepr *ref) + +In addition there are some accessor methods and lot of convenience ones. + +Each SPRepr can have one or many event vectors associated with it. +Event vector is a block of callback pointers for different kind of +mutation events. + +void sp_repr_add_listener (SPRepr *repr, const SPReprEventVector *vector, void *data) +void sp_repr_remove_listener_by_data (SPRepr *repr, void *data) + +struct _SPReprEventVector { + void (* destroy) (SPRepr *repr, gpointer data); + gboolean (* add_child) (SPRepr *repr, SPRepr *child, SPRepr *ref, gpointer data); + void (* child_added) (SPRepr *repr, SPRepr *child, SPRepr *ref, gpointer data); + gboolean (* remove_child) (SPRepr *repr, SPRepr *child, SPRepr *ref, gpointer data); + void (* child_removed) (SPRepr *repr, SPRepr *child, SPRepr *ref, gpointer data); + gboolean (* change_attr) (SPRepr *repr, const guchar *key, const guchar *oldval, const guchar *newval, gpointer data); + void (* attr_changed) (SPRepr *repr, const guchar *key, const guchar *oldval, const guchar *newval, gpointer data); + gboolean (* change_content) (SPRepr *repr, const guchar *oldcontent, const guchar *newcontent, gpointer data); + void (* content_changed) (SPRepr *repr, const guchar *oldcontent, const guchar *newcontent, gpointer data); + gboolean (* change_order) (SPRepr *repr, SPRepr *child, SPRepr *oldref, SPRepr *newref, gpointer data); + void (* order_changed) (SPRepr *repr, SPRepr *child, SPRepr *oldref, SPRepr *newref, gpointer data); +} + +All events, except destroys (which are unconditional), have pre- and +post- event callbacks. The pre-event callback's return value is used to +signal whether the given modification is allowed. If it is FALSE the +operation will be cancelled and the invoking method will also return +FALSE. Using callbacks in block is much more convenient than adding +them one-by-one, as the listening code usually wants to install several +handlers at once, and the same set of handlers for many different +nodes. NULL pointers are allowed in event vector. + +Although the most important functionality of the SPRepr tree is to +serve as a document backbone, it has other functions besides +that. SPReprs are also used to store preferences, the copy buffer and +the undo stack. + + + +2.2. SPObject + +SPObject is an abstract base class of all of the document nodes at the +SVG document level. Each SPObject subclass implements a certain SVG +element node type, or is an abstract base class for different node +types. The SPObject layer is bound to the SPRepr layer, closely +following the SPRepr mutations via callbacks. During creation, +SPObject parses and interprets all textual attributes and CSS style +strings of the SPRepr, and later updates the internal state whenever +it receives a signal about a change. The opposite is not true - there +are methods manipulating SPObjects directly and such changes do not +propagate to the SPRepr layer. This is important for implementation of +the undo stack, animations and other features. + +SPObjects are bound to the higher-level container SPDocument, which +provides document level functionality such as the undo stack, +dictionary and so on. + +SPObjects are implemented using the Gtk object system (GObjects in gtk +2 version), which provides an extremely powerful and flexible OO +framework in pure C. + +SPObject class hierarchy + +SPObject ABSTRACT + SPObjectGroup ABSTRACT + SPNamedView <sodipodi:namedview> + SPClipPath <clipPath> + SPGuide <sodipodi:guide> + SPPaintServer ABSTRACT + SPGradient ABSTRACT + SPLinearGradient <linearGradient> + SPRadialGradient <radialGradient> + SPPattern <pattern> + SPDefs <defs> + SPItem ABSTRACT + SPGroup <g> + SPRoot <svg> + SPAnchor <a> + SPImage <image> + SPPath ABSTARCT + SPShape <path> + SPLine <line> + SPPolyLine <polyline> + SPPolygon <polygon> + SPStar <sodipodi:star> + SPRect <rect> + SPSpiral <sodipodi:spiral> + SPGenericEllipse ABSTRACT + SPCircle <circle> + SPEllipse <ellipse> + SPArc <sodipodi:arc> + SPChars ABSTRACT + SPString TEXT NODE + SPDefs <defs> + SPText <text> + SPTSpan <tspan> + +SPObject internals + +struct _SPObject { + GtkObject object; + unsigned int hrefcount; + SPDocument *document; + SPObject *parent; + SPObject *next; + SPRepr *repr; + unsigned char *id; + SPStyle *style; + const unsigned char *title; + const unsigned char *description; +}; + +The basic refcounting is handled by the parent class +(GtkObject). Hrefcount is used for weak references, for example, to +determine whether any graphical element references a certain gradient +node. The parent and next fields are used to establish the tree +structure. Id is copy of the SPRepr 'id' attribute for normal nodes, +and is used as a unique index of all objects in the given document. + +Virtual methods + +/******** Disclaimer *******/ +This will change a lot in the future + +void ::build (SPObject *object, SPDocument *document, SPRepr *repr) + +This has to be invoked immediately after creation of an SPObject. The +frontend method ensures that the new object is properly attached to +the document and repr; implementation then will parse all of the attributes, +generate the children objects and so on. Invoking ::build on the SPRoot +object results in creation of the whole document tree (this is, what +SPDocument does after the creation of the XML tree). + +void ::release (SPObject *object) + +This is the opposite of ::build. It has to be invoked as soon as the +object is removed from the tree, even if it is still alive according +to reference count. The frontend unregisters the object from the +document and releases the SPRepr bindings; implementations should free +state data and release all child objects. Invoking ::release on +SPRoot destroys the whole document tree. + +void ::child_added (SPObject *object, SPRepr *child, SPRepr *ref) +void ::remove_child (SPObject *object, SPRepr *child) +void ::order_changed (SPObject *object, SPRepr *repr, SPRepr *oldref, SPRepr *newref) + +These are invoked whenever the given mutation event happens in the XML +tree. ::remove_child is invoked BEFORE removal from the XML tree +happens, so grouping objects can safely release the child data. The +other two will be invoked AFTER the actual XML tree mutation. Only +grouping objects have to implement these. + +void ::read_attr (SPObject *object, const unsigned char *key) + +Signals object that the XML attribute is changed. The frontend checks +for 'id' attribute; implementations have to read the actual attribute +value and update the internal state. + +void ::read_content (SPObject *object) + +Signals object that the XML node content has changed. Only meaningful for +SPString implementing XML TEXT node. + +void ::modified (SPObject *object, unsigned int flags) + +Virtual method AND signal implementing asynchronous state change +notification. Whenever the object internal state changes, it requests +that ::modified will be scheduled from the idle loop. Flags are given +as hints as to what exactly changes. Read the relevant section for +more information. + +SPRepr ::write (SPObject *object, SPRepr *repr, unsigned int flags) + +Requests SPObject internal state to be written back to the SPRepr. If +the SP_OBJECT_WRITE_BUILD flag is set, SPRepr is created, if necessary. +This is used at various places, most notably to generate a plain SVG +document, and to complete certain GUI operations. + + + +2.3. SPItem + +SPItem is an abstract base class for all graphic (visible) SVG nodes. It +is a subclass of SPObject, with great deal of specific functionality. + +SPItem internals + +struct _SPItem { + SPObject object; + unsigned int sensitive : 1; + unsigned int stop_paint: 1; + double affine[6]; + SPItemView *display; + SPClipPath *clip; +}; + +Affine is a 3x2 matrix describing transformation from the item to the +parent local coordinate systems. Each display in linked list has a link +to a single NRArenaItem that implements actual renderable image of +the item. + +Virtual methods + +/******** Disclaimer *******/ +This will change a lot in the future +Only the most important are listed + +void ::bbox (SPItem *item, ArtDRect *bbox, const double *transform) + +Calculates item's logical bounding box. The logical bbox does not +take into account the stroke width, nor certain other visual +properties. Transformation is a 3x2 matrix describing coordinate +transform from the item's local coordinate system to the coordinate +system of the bounding box. + +void ::print (SPItem *item, SPPrintContext *ctx) + +Prints the item's visual representation, using the internal printing +frontend. In the future this may be turned into a more generic +exporting method. + +char ::description (SPItem *item) + +Gives a short description of the item suitable for use in a statusbar, +etc. + +NRArenaItem ::show (SPItem *item, NRArena *arena) + +Creates an NRArena display cache representation of the item. The +frontend places the generated item into a hierarchy; implementations +have to build a correct NRArenaItem and keep it up to date. + +void (* hide) (SPitem *item, NRArena *arena) + +The opposite of ::show. + +void ::write_transform (SPItem *item, SPRepr *repr, double *transform) + +Tries to remove the extra transformation by modifying other aspects of +the item representation. For example, by changing the rectangle width +and height, the scaling component of the transformation can be +dropped. This is used to make the SVG file more human-readable. + +void ::menu (SPItem *item, SPDesktop *desktop, GtkMenu *menu) + +Appends item specific lines into the menu. This is used to generate +the context menu, and will probably move into a separate module in +the future. + + + +2.4 SPDocument + +SPDocument serves as the container of both model trees (agnostic XML +and typed object tree), and implements all of the document-level +functionality used by the program. + +SPDocument implements undo and redo stacks and an id-based object +dictionary. Thanks to unique id attributes, the latter can be used to +map from the XML tree back to the object tree. Documents are +themselves registered by the main program metaobject 'Sodipodi', which +does elementary bookeeping. + +SPDocument performs the basic operations needed for asynchronous +update notification (SPObject ::modified virtual method), and implements +the 'modified' signal, as well. + +Many document level operations, like load, save, print, export and so on, +use SPDocument as their basic datatype. + +2.4.1. Undo and Redo implementation + +Using the split document model gives sodipodi a very simple and clean +undo implementation. Whenever mutation occurs in the XML tree, +SPObject invokes one of the five corresponding handlers of its +container document. This writes down a generic description of the +given action, and appends it to the recent action list, kept by the +document. There will be as many action records as there are mutation +events, which are all kept and processed together in the undo +stack. Two methods exist to indicate that the given action is completed: + +void sp_document_done (SPDocument *document) +void sp_document_maybe_done (SPDocument *document, const unsigned char *key) + +Both move the recent action list into the undo stack and clear the +list afterwards. While the first method does an unconditional push, +the second one first checks the key of the most recent stack entry. If +the keys are identical, the current action list is appended to the +existing stack entry, instead of pushing it onto its own. This +behaviour can be used to collect multi-step actions (like winding the +Gtk spinbutton) from the UI into a single undoable step. + +For controls implemented by Sodipodi itself, implementing undo as a +single step is usually done in a more efficent way. Most controls have +the abstract model of grab, drag, release, and change user +action. During the grab phase, all modifications are done to the +SPObject directly - i.e. they do not change XML tree, and thus do not +generate undo actions either. Only at the release phase (normally +associated with releasing the mousebutton), changes are written back +to the XML tree, thus generating only a single set of undo actions. + + +2.5. SPView and SPviewWidget + +SPView is an abstract base class of all UI document views. This +includes both the editing window and the SVG preview, but does not +include the non-UI RGBA buffer-based NRArenas nor the XML editor or +similar views. The SPView base class has very little functionality of +its own. + +SPViewWidget is a GUI widget that contain a single SPView. It is also +an abstract base class with little funtionality of its own. + +2.6. SPDesktop + +SPDesktop is a subclass of SPView, implementing an editable document +canvas. It is extensively used by many UI controls that need certain +visual representations of their own. + +SPDesktop provides a certain set of SPCanvasItems, serving as GUI +layers of different control objects. The one containing the whole +document is the drawing layer. In addition to it, there are grid, +guide, sketch and control layers. The sketch layer is used for +temporary drawing objects, before the real objects in document are +created. The control layer contains editing knots, rubberband and +similar non-document UI objects. + +Each SPDesktop is associated with a SPNamedView node of the document +tree. Currently, all desktops are created from a single main named +view, but in the future there may be support for different ones. +SPNamedView serves as an in-document container for desktop-related +data, like grid and guideline placement, snapping options and so on. + +Associated with each SPDesktop are the two most important editing +related objects - SPSelection and SPEventContext. + +Sodipodi keeps track of the active desktop and invokes notification +signals whenever it changes. UI elements can use these to update their +display to the selection of the currently active editing window. + +2.7. SPSelection + +This is a per-desktop object that keeps the list of selected objects +at the given desktop. Both SPItem and SPRepr lists can be retrieved +from the selection. Many actions operate on the selection, so it is +widely used throughout the Sodipodi code. + +SPSelection also implements its own asynchronous notification signals, +that UI elements can listen to. + +2.8. SPEventContext + +SPEventContext is an abstract base class of all tools. As the name +indicates, event context implementations process UI events (mouse +movements and keypresses) and take actions (like creating or modifying +objects). There is one event context implementation for each tool, +plus few abstract base classes. Writing a new tool involves +subclassing SPEventContext. + + + +3. Some thoughts + +3.1. Why do we need a two-level model tree? + +The need for a typed object tree is obvious if we want to utilize OO +programming - which we certainly want to do. Although implemented in pure C, +Sodipodi uses the gtk (glib in future versions) type and object system, +which gives us an extremely powerful set of OO functionality. As SVG is +designed with inheritance in mind, using object subclassing to represent +it is perfectly the right thing to do. + +But there are also areas where typed object structure would make +things more complex. For example, to implement the copy buffer we had +to save the full state of copied objects. While this could be done +with the separate virtual method of SPObject, we can use a much easier +way and create the duplicate corresponding SPRepr. As our document +model already has to implement generation of full object +representation for SPRepr tree of nodes, generation of new objects +during paste happens automatically when the given SPRepr is inserted +into XML tree. The agnostic xml tree is also used for undo stack, as +described earlier. + +The main benefit comes from the extreme simplicity of the XML tree +manipulation API. All operations can be done, using only around 10 +methods, which makes code much more robust, and is perfect for +implementing compatibility sensitive things, like a plugin API. + +The XML tree also makes implementing two SVG features - cloning and +animations - much easier by providing an invariant backbone. + + + +22. Novemebr 2002 +Lauris Kaplinski +<lauris@kaplinski.com> diff --git a/doc/class-hierarchy.dia b/doc/class-hierarchy.dia Binary files differnew file mode 100644 index 000000000..0781ffc94 --- /dev/null +++ b/doc/class-hierarchy.dia diff --git a/doc/coordinates.txt b/doc/coordinates.txt new file mode 100644 index 000000000..a68b5be59 --- /dev/null +++ b/doc/coordinates.txt @@ -0,0 +1,53 @@ +Please note that the behavior documented here (from Sodipodi) should be considered a bug. + +Inkscape should switch to the native SVG coordinate system. + +-mental + +Coordinate systems used by sodipodi + +1. Desktop coordinates + +Are the base coordinate system of all editing, UI etc. +i.e. the ones user is directly seeing (maybe some time +we'll make this configurable). + +0,0 is at lower-left +X grows to the right +Y grows upwards +Only valid units are real-world ones (mm, cm...) - i.e. +there is no such unit as pixel etc. +If printed, 1 desktop mm should be 1mm on paper + +2. Document coordinates + +As we all know, SVG Y grows downwards. So document is +placed at 0,HEIGHT, mirrored vertically, where HEIGHT +is vieport height in desktop coordinates. +Moreover SVG coordinate space is scaled by 0.8, so +1mm in SVG space equals 1mm in desktop space. + +The full matrix looks like: + +[ 0.8 0.0 0.0 ] +[ 0.0 -0.8 HEIGHT ] + +Where height equals SVG viewport height in real units +i.e. if viewport is 210mmx297mm HEIGHT is also 297mm. + +Document coordinates are stored in desktop object, +as doc2dt[] matrix, and not directly accessible to +document itself. I.e. document renders it just as any +normal SVG viewer should do. + +Technically SVG placement is achieved by specifying +doc2dt transform to drawing parent canvas group. + +3. user coordinates + +These are as specified by SVG spec. +1 px == 1 user unit +1 pt == 1.25 px +etc. + +31/08/2002 Lauris Kaplinski <lauris@kaplinski.com> diff --git a/doc/extension_system.txt b/doc/extension_system.txt new file mode 100644 index 000000000..39ab9b37d --- /dev/null +++ b/doc/extension_system.txt @@ -0,0 +1,411 @@ +== Inkscape Extensions == + +=== Introduction === + +The extensions system in Inkscape is a way for adding functionality to +Inkscape, without affecting the core of the program itself. We want +Inkscape to follow a core-plus-modules approach similar to that adopted +by many successful open source projects such as the Linux kernel, Perl, +Apache, Gimp, and so on. There are many different types of extension +mechanisms, including file format conversion tools, filter scripts that +process SVG, user interface elements that can be added at runtime, and +so forth. + +This proposal defines a design for handling this wide variety of +extensions in a flexible manner. This document provides a way to +understand the extensions system, and how extensions fit into this +overall system. + +Much of the documentation that will be useful for users of the extension +system is not included in this document, it is autogenerated from the +source code and placed on the Inkscape webpage. While this is less +convienient, it is more correct, and maintained as the source code is +modified. Please look aton the Inkscape webpage also. + + +=== Terminology === + +*Extension* - An extension is something that extends the functionality + of Inkscape without being directly part of the core. This implies + that it should be easy to remove or add, and nothing in the core should + depend on it directly. + +*Extension Type* - Establishes the functional interface that the + Extension provides, including the types of messages it handles and what + is contained in its data structures. + +*Extension Implementation* - Defines how the extension is accessed; + i.e. through message passing, pipe/exec calls with commandline + arguments, direct function calls, etc. + +*Plug-in* - An extension that is implemented through a loadable library. + This is a .so file on Unix-like systems or a .dll on Win32. The + libraries should not be loaded until they are used. + +*Script* - A script is a type of extension that is implemented through + an external program that recieves and sets SVG data through files and + pipes. This allows Inkscape to use programs that handle SVG but are + targeted differently, seemlessly inside of Inkscape. + +*Language Binding* - A special type of plug-in that wraps a scripting + language interpreter such as Perl, Python, Lisp, etc. A user + interested in programmatic access to Inkscape's internals via one of + these languages can install (or create) the relevant Language Binding + Plug-in to achieve this. + +*INX* - *'INkscape eXtension'* - The filename extension used for XML + metadata files that describe each Inkscape Extension. + +*Internal Extension* - A part of the Inkscape codebase which uses the + extension system in order to make it more modular. This code is + compiled into Inkscape, but appears as an extension to all other code + in the codebase. + + +=== Requirements === + + * Uses a general language binding system so it's easy to add new + language binding support. + * Allows direct interaction with the document object model including + changing. + * Allows some limited interaction with the Inkscape UI such as + manipulating grids, overlays, etc. + * Allows direct interaction with file load/save/export/print + subsystem. + * Guaranteed to work properly with the undo system, even if the + extension is not written carefully. + * Well documented so is easy for people to learn how to make new + extensions. + * Each extension can be implemented, distributed, and managed + independently of the core project. + * Icons, buttons, and other UI elements for extensions fit seamlessly + into main application GUI. + * User can easily select which extensions to automatically load into + application at startup. + * Loading of extensions shall not seriously slow startup time or make + a major impact on memory footprint. + * Failure of a extension shall not leave the drawing in an + inconsistent state. + * Main application must gracefully recover from extension crashes or + other serious problems with extension execution. + * Dependencies for particular extensions must be clearly identified for user if missing. + + +=== Overview === + +Different kinds of extensions can be categorized in two ways. First, +but what the extension does: File format converters, printing, SVG +manipulation, symbol libraries, etc. Second, by how the extension is +implemented: command-line scripts, dynamically loaded libraries, +internal compiled-in code, etc. + +The first kind of categorization is called the *Extension Type*. This +essentially establishes a calling interface and the set of messages the +extension must be able to receive and handle. For example, extensions +of type Print must have a way to handle 'print' message. + +The second is the *Extension Implementation*. This defines the +mechanism Inkscape must use for passing messages to the extension. For +example, commandline scripts would have messages passed as commandline +arguments, whereas loadable plug-ins would have the messages passed to +the plug-in's message handler routine. + +The categories of both Extension Types and Extension Implementations are +left open ended. This way, if someone comes up with new ideas for ways +to extend Inkscape that doesn't fit within the existing models, they can +add these mechanisms in a straightforward fashion. + +For the purposes of this document, however, we focus on just the +following Types and Implementations: + +Extension + "Input" - loading various file formats + "Output" - saving as various file formats + "Effect" - apply some sort of change to SVG elements in the doc + "Print" - prints using different drivers or modes + "Collection" - a group of objects that have thumbnails and images that + can be used inside a document. Libraries can be + searchable and may be presented in a hierarchical + structure + +"Extension Implementations" + "Internal" - code that is internal to Inkscape which uses the + extension system for some functionality + "Script" - a cmdline program that takes an SVG document to its + STDIN and emits a modified SVG document to its STDOUT, + with control messages given as commandline parameters. + + "Plug-in" - a loadable module with a message handler routine that + receives messages and that operates on the Inkscape API + functions directly. + +=== Extension System Basics === + +Leaving the topic of Types and Implementations aside, we can make some +generalizations about how all Extensions work, and behaviors or +attributes that all Extensions share. This includes how they are +registered, how they handle preferences, how dependency resolution is +achieved, and versioning. These common behaviors are all established +via a base class that all Extension Types derive from. + +=== Extension Base Class === + +The Extension base class holds the attribute data that all extensions +must have and establishes the base functionality that all extensions +share. All extensions have the following properties: + +"ID" - A unique identifier for this extension that is used for refering +to the extension and naming its parameters in the configuration files. + +"Name" - The textual name of the extension, it is used for user +interaction with the extension. It is used for users to identify the +extension. + +"Parameters" - Each extension keeps a record of all of the parameters +that it has. The can be changed internally, through a GUI, or by other +extensions. Parameters can be found and adjusted using functions that +are within the base class. + +=== Extension Registry === + +Inkscape maintains a data structure of all the registered extensions. +This registry can be queried against to retrieve lists of extensions +meeting various conditions (such as all Input extensions). + +The Extension Registry contains all extensions whether or not they +failed their dependency checking on startup. This allows for additional +information to be displayed on the reasoning behind marking the +extension as disabled. + +The registry can be reloaded from the Inkscape GUI while Inkscape is +running. This can be used to add new extensions into the system, or +help debug new extensions. When the registry is reloaded all extensions +are first unloaded, then they're specification files are re-read. + +=== Handling Preferences === + +Individual extensions can have their own preferences which are used by +the extension. These are typically attributes of the operation that can +be modified by the user through a dialog. It is also possible to have +other extensions modify these values when they are using an extension. +For most extensions, these will be edited by a dialog that relates to +the preferences of the user. + +The preferences themselves are defined in the inx file that describes +the extension. In this definition there is the name, the type, and the +default value. The types are: boolean, integer, float and string. +Other types can be developed using these as a basis. If there is no +custom value set the default value is used. + +When a value is written to a preference for an extension, that value is +saved in the global preferences for Inkscape using the ID of the module +as the basis for the naming. At next use (including after restarting +the application) this value is used instead of the default. This allows +user preferences on a extension to remain persistent throughout uses of +Inkscape. + +=== INX Files === + +The INX file is the description of the Inkscape Extension. It provides +all of the information that is used to identify the extension, and +determine what type of extension it is. This file is loaded on startup +of Inkscape, and the objects relating to the extension are created. All +extensions have an inx file, but many internal extensions compile this +file into the codebase (to reduce dependencies). + +The INX file also contains information on the dependencies that are +required for the extension to operate. These dependencies can be +everything from required files, required libraries or other extensions +that help this one. The dependencies are checked as the file is loaded, +and an extension is marked as dead if they are not met. Also +dependencies can check different versions of particular objects to see +if they are met. + + +=== Extension Types === + +Each Extension is identified by it's 'Type'. This determines the type +of programmatic interface that it adheres to, enabling Inkscape to know +what functionality it can expect from the extension. + +=== Input === + +An input extension provides a way to get data into Inkscape. This type +of extension creates a document given a filename. This is done by using +the 'open' method within the class. Also, there is a 'prefs' function +which will generate a GtkDialog. This dialog is then used to get any +settings that the incomming file and extension my use. This function is +executed, and the dialog returns, before the open method is called. + +There are also several other settings stored in an Input extension. +This includes information on the type of file the input module can take +in including its filename extension and mime type. Also, there is a +space to store a tooltip for additional information on the file type in +the file dialog. Lastly, there is the key of which Output extension is +recommended for saving this filetype. This is useful, as there is no +other direct links between the Input and Ouput functions, and a user +expects to be able to open and save without using the 'Save As...' +dialog. + +=== Output === + +An output extension controls how SVG documents are exported from +Inkscape. This type of extension creates a file given a document +object. This is done using the 'save' method within the class. + +The method for how files are exported depends on what type of +Implementation is used. For Scripts, the file is first saved as a +temporary SVG file, and then processed by calling the commandline +programs to convert it. For Plug-ins, the document object is passed to +the extension with a 'save' message and a filename, and the extension +program performs the file save operation itself. + +=== Effect === + +Effect extensions cause a modification of a loaded document. For +example, it might add a new shape to the drawing, or change all selected +objects to be purple with green dotted borders. + +=== Print === + +The Print Extension Type is for extensions that interface with printing +subsystems. Examples would be Win32, postscript, and GNOME Print. + +=== Collection === + + +=== Creating Extensions === + +In this chapter, we discuss how to create an extension from scratch, +incorporate into Inkscape, and release it for the general Inkscape +community to use. This chapter can be read independently of the rest of +the document, using the rest as reference material. + +=== Selecting an Extension Strategy === + +First of all, you will need to select the method you'll use for creating your extension. + +Scripts are the simplest extensions to create, because they work through +STDIN/STDOUT, so you need to know very little about Inkscape internals +to make them work. However, their ability to interact with the Inkscape +internals is limited compared with other approaches. For file format +converters, this is usually fine. You can also create filters programs +that take the entire document to its STDIN, process it, and return a +modified copy to STDOUT. Some control of the extension is possible via +its commandline arguments. + +One of the nice things about Scripts is that they can be written in any +language. It need not even be a scripting language - as long as it +handles STDIN and STDOUT and uses commandline arguments, you can write +it however you wish. + +Plug-ins are more powerful than Scripts, but require more knowledge of +Inkscape internals, and must be written according to specific criteria. +Generally, since these are loaded as dynamic objects, they'll need to be +written in a language that can generate them, such as C or C++. + +The best of both worlds can be available through Language Bindings, +which are Plug-ins that wrapper a script interpreter. This enables you +to call various Inkscape internal routines through your scripting +language's functions. If someone has created a Language Binding for +your language of choice, you're all set, otherwise you'll have to create +a Plug-in for it. Language Binding Plug-ins have a few more +requirements than ordinary Plug-ins, and require a greater amount of +knowledge of the Inkscape internals, so it can take quite some time to +do properly. + +Internal Extensions are in a way the reverse of a normal Extension, in +that instead of providing a way to hook into Inkscape from the outside, +they provide hooks from inside Inkscape. These are used directly by +Inkscape, such as in the case of compiled-in printing modules. Most +users will never need to write this type of extension, they are pretty +much for Inkscape core developers only. + +=== Writeing Your Extension === + +This section provides some guidance and examples for implementing +different kinds of Extensions. + +=== Writing Script Extensions === + +=== Writing Plug-in Extensions === + +=== Writing Language Binding Plug-in Extensions === + +=== Creating an INX File === + +Every extension must have a corrosponding *.inx file. This is an XML +file that provides Inkscape with information about the module and allows +it to load the info without needing to access the module itself. The +*.inx file contains enough info for Inkscape to set up menu items and +know what kinds of functionality to expect from the extension. + +=== Packaging Your Extension === + +=== Contributing Your Extensino to the Inkscape Community === + +Once your extension is complete, you may wish to share it with the +community. There are of course no hard and fast rules for how to share +your work, but this section illustrates some approaches. + +=== Listing Your Extension === + +First, you will need to put your extension someplace that others can +find and download it. If you have adequate webspace, you could simply +upload it to your web server. More typically, you will want to upload +it to a mirroring system like SourceForge (http://www.sourceforge.net), +CPAN (http://www.cpan.org), and the like. The Inkscape project may also +be willing to host your extension; contact the admins for more info. + +It can also be helpful to list your extension with one of the various +software registries, such as Freshmeat (http://www.freshmeat.net). You +should also list it on the Inkscape Wiki site. + +=== Announcing Your Extension === + +After posting your extension someplace from which it can be downloaded, +you should also announce its availability, by sending an email to +inkscape-announce@lists.sourceforge.net. You may also want to announce +it on other related sites; for instance, if you've written a plug-in to +allow operation of Imagemagick from within Inkscape, it could be a good +idea to announce it to the Imagemagick list. + + +=== Incorporating Your Extension in to Inkscape === + +Because the intent with the extension system is to break things *out* +from the core, most extensions should be packaged and distributed +independently of the main Inkscape distribution. However, for ease of +user installation, an extension-pack can be shipped along with the core +Inkscape package. Also, certain extensions may be so critical to +Inkscape operation (such as for printing) that they should be included +in the core. + +If your extension seems like it should be incorporated into the Inkscape +core, contact the Inkscape developers about this, and discuss how best +to include it in the distribution with them. + +=== Conclusion === + +It is anticipated that the incorporation of this extensions capability +will bring Inkscape added power and flexibility while avoiding bloating +the core with cool-but-rarely-used functionality. Further, it empowers +users and non-core Inkscape developers to extend the application with +their own new capabilities, without needing to gain special access and +acceptance by the project. Dynamic loading of functionality will also +allow Inkscape to remain 'lean and mean', loading up functionality on an +as-needed basis, and conserving memory by unloading functionality when +it is not needed. + +The key point of this design specification is the architectural concept +of separately identifying an extension's interface type, or 'Extension +Type', from its implementation method, or 'Extension Implementation'. +This feature enables Inkscape to be extended in a variety of mechanisms, +including ways not yet foreseen. + + +=== History and references === + +Base design taken from Ted Gould's Extension System work. + +This document originally authored by Bryce Harrington, July 2004 diff --git a/doc/extension_system.xml b/doc/extension_system.xml new file mode 100644 index 000000000..1e59eda91 --- /dev/null +++ b/doc/extension_system.xml @@ -0,0 +1,237 @@ +<?xml version="1.0"?> +<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN" "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd"> +<book lang="en_us"> + <title>Inkscape Extensions</title> + <chapter> + <title>Introduction</title> + <para>The extensions system in Inkscape is a way for adding functionality to Inkscape, without affecting the core of the program itself. We want Inkscape to follow a core-plus-modules approach similar to that adopted by many successful open source projects such as the Linux kernel, Perl, Apache, Gimp, and so on. There are many different types of extension mechanisms, including file format conversion tools, filter scripts that process SVG, user interface elements that can be added at runtime, and so forth.</para> + <para>This proposal defines a design for handling this wide variety of extensions in a flexible manner. This document provides a way to understand the extensions system, and how extensions fit into this overall system.</para> + <para>Much of the documentation that will be useful for users of the extension system is not included in this document, it is autogenerated from the source code and placed on the Inkscape webpage. While this is less convienient, it is more correct, and maintained as the source code is modified. Please look aton the Inkscape webpage also.</para> + </chapter> + <chapter> + <title>Terminology</title> + <para><emphasis>Extension</emphasis> - An extension is something that extends the functionality of Inkscape without being directly part of the core. This implies that it should be easy to remove or add, and nothing in the core should depend on it directly.</para> + <para><emphasis>Extension Type</emphasis> - Establishes the functional interface that the Extension provides, including the types of messages it handles and what is contained in its data structures.</para> + <para><emphasis>Extension Implementation</emphasis> - Defines how the extension is accessed; i.e. through message passing, pipe/exec calls with commandline arguments, direct function calls, etc.</para> + <para><emphasis>Plug-in</emphasis> - An extension that is implemented through a loadable library. This is a .so file on Unix-like systems or a .dll on Win32. The libraries should not be loaded until they are used.</para> + <para><emphasis>Script</emphasis> - A script is a type of extension that is implemented through an external program that recieves and sets SVG data through files and pipes. This allows Inkscape to use programs that handle SVG but are targeted differently, seemlessly inside of Inkscape.</para> + <para><emphasis>Language Binding</emphasis> - A special type of plug-in that wraps a scripting language interpreter such as Perl, Python, Lisp, etc. A user interested in programmatic access to Inkscape's internals via one of these languages can install (or create) the relevant Language Binding Plug-in to achieve this.</para> + <para><emphasis>INX</emphasis> - <emphasis>'INkscape eXtension'</emphasis> - The filename extension used for XML metadata files that describe each Inkscape Extension.</para> + <para><emphasis>Internal Extension</emphasis> - A part of the Inkscape codebase which uses the extension system in order to make it more modular. This code is compiled into Inkscape, but appears as an extension to all other code in the codebase.</para> + </chapter> + <chapter> + <title>Requirements</title> + <itemizedlist> + <listitem><para>Uses a general language binding system so it's easy to add new language binding support.</para></listitem> + <listitem><para>Allows direct interaction with the document object model including changing.</para></listitem> + <listitem><para>Allows some limited interaction with the Inkscape UI such as manipulating grids, overlays, etc.</para></listitem> + <listitem><para>Allows direct interaction with file load/save/export/print subsystem.</para></listitem> + <listitem><para>Guaranteed to work properly with the undo system, even if the extension is not written carefully.</para></listitem> + <listitem><para>Well documented so is easy for people to learn how to make new extensions.</para></listitem> + <listitem><para>Each extension can be implemented, distributed, and managed independently of the core project.</para></listitem> + <listitem><para>Icons, buttons, and other UI elements for extensions fit seamlessly into main application GUI.</para></listitem> + <listitem><para>User can easily select which extensions to automatically load into application at startup.</para></listitem> + <listitem><para>Loading of extensions shall not seriously slow startup time or make a major impact on memory footprint.</para></listitem> + <listitem><para>Failure of a extension shall not leave the drawing in an inconsistent state.</para></listitem> + <listitem><para>Main application must gracefully recover from extension crashes or other serious problems with extension execution.</para></listitem> + <listitem><para>Dependencies for particular extensions must be clearly identified for user if missing.</para></listitem> + </itemizedlist> + </chapter> + <chapter> + <title>Overview</title> + <para>Different kinds of extensions can be categorized in two ways. First, but what the extension does: File format converters, printing, SVG manipulation, symbol libraries, etc. Second, by how the extension is implemented: command-line scripts, dynamically loaded libraries, internal compiled-in code, etc.</para> + <para>The first kind of categorization is called the <emphasis>Extension Type</emphasis>. This essentially establishes a calling interface and the set of messages the extension must be able to receive and handle. For example, extensions of type Print must have a way to handle 'print' message.</para> + <para>The second is the <emphasis>Extension Implementation</emphasis>. This defines the mechanism Inkscape must use for passing messages to the extension. For example, commandline scripts would have messages passed as commandline arguments, whereas loadable plug-ins would have the messages passed to the plug-in's message handler routine.</para> + <para>The categories of both Extension Types and Extension Implementations are left open ended. This way, if someone comes up with new ideas for ways to extend Inkscape that doesn't fit within the existing models, they can add these mechanisms in a straightforward fashion.</para> + <para>For the purposes of this document, however, we focus on just the following Types and Implementations:</para> + <variablelist> + <varlistentry> + <term>Extension Types</term> + <listitem> + <variablelist> + <varlistentry> + <term>Input</term> + <listitem> + <para>loading various file formats</para> + </listitem> + </varlistentry> + <varlistentry> + <term>Output</term> + <listitem> + <para>saving as various file formats</para> + </listitem> + </varlistentry> + <varlistentry> + <term>Effect</term> + <listitem> + <para>apply some sort of change to SVG elements in the doc</para> + </listitem> + </varlistentry> + <varlistentry> + <term>Print</term> + <listitem> + <para>prints using different drivers or modes</para> + </listitem> + </varlistentry> + <varlistentry> + <term>Collection</term> + <listitem> + <para>a group of objects that have thumbnails and images that can be used inside a document. Libraries can be searchable and may be presented in a hierarchical structure</para> + </listitem> + </varlistentry> + </variablelist> + </listitem> + </varlistentry> + <varlistentry> + <term>Extension Implementations</term> + <listitem> + <variablelist> + <varlistentry> + <term>Internal</term> + <listitem> + <para>code that is internal to Inkscape which uses the extension system for some functionality</para> + </listitem> + </varlistentry> + <varlistentry> + <term>Script</term> + <listitem> + <para>a cmdline program that takes an SVG document to its STDIN and emits a modified SVG document to its STDOUT, with control messages given as commandline parameters.</para> + </listitem> + </varlistentry> + <varlistentry> + <term>Plug-in</term> + <listitem> + <para>a loadable module with a message handler routine that receives messages and that operates on the Inkscape API functions directly.</para> + </listitem> + </varlistentry> + </variablelist> + </listitem> + </varlistentry> + </variablelist> + </chapter> + <chapter> + <title>Extension System Basics</title> + <para>Leaving the topic of Types and Implementations aside, we can make some generalizations about how all Extensions work, and behaviors or attributes that all Extensions share. This includes how they are registered, how they handle preferences, how dependency resolution is achieved, and versioning. These common behaviors are all established via a base class that all Extension Types derive from.</para> + <section> + <title>Extension Base Class</title> + <para>The Extension base class holds the attribute data that all extensions must have and establishes the base functionality that all extensions share. All extensions have the following properties:</para> + <variablelist> + <varlistentry> + <term>ID</term> + <para>A unique identifier for this extension that is used for refering to the extension and naming its parameters in the configuration files.</para> + </varlistentry> + <varlistentry> + <term>Name</term> + <para>The textual name of the extension, it is used for user interaction with the extension. It is used for users to identify the extension.</para> + </varlistentry> + <varlistentry> + <term>Parameters</term> + <para>Each extension keeps a record of all of the parameters that it has. The can be changed internally, through a GUI, or by other extensions. Parameters can be found and adjusted using functions that are within the base class.</para> + </varlistentry> + </variablelist> + </section> + <section> + <title>Extension Registry</title> + <para>Inkscape maintains a data structure of all the registered extensions. This registry can be queried against to retrieve lists of extensions meeting various conditions (such as all Input extensions).</para> + <para>The Extension Registry contains all extensions whether or not they failed their dependency checking on startup. This allows for additional information to be displayed on the reasoning behind marking the extension as disabled.</para> + <para>The registry can be reloaded from the Inkscape GUI while Inkscape is running. This can be used to add new extensions into the system, or help debug new extensions. When the registry is reloaded all extensions are first unloaded, then they're specification files are re-read.</para> + </section> + <section> + <title>Handling Preferences</title> + <para>Individual extensions can have their own preferences which are used by the extension. These are typically attributes of the operation that can be modified by the user through a dialog. It is also possible to have other extensions modify these values when they are using an extension. For most extensions, these will be edited by a dialog that relates to the preferences of the user.</para> + <para>The preferences themselves are defined in the inx file that describes the extension. In this definition there is the name, the type, and the default value. The types are: boolean, integer, float and string. Other types can be developed using these as a basis. If there is no custom value set the default value is used.</para> + <para>When a value is written to a preference for an extension, that value is saved in the global preferences for Inkscape using the ID of the module as the basis for the naming. At next use (including after restarting the application) this value is used instead of the default. This allows user preferences on a extension to remain persistent throughout uses of Inkscape.</para> + </section> + <section> + <title>INX Files</title> + <para>The INX file is the description of the Inkscape Extension. It provides all of the information that is used to identify the extension, and determine what type of extension it is. This file is loaded on startup of Inkscape, and the objects relating to the extension are created. All extensions have an inx file, but many internal extensions compile this file into the codebase (to reduce dependencies).</para> + <para>The INX file also contains information on the dependencies that are required for the extension to operate. These dependencies can be everything from required files, required libraries or other extensions that help this one. The dependencies are checked as the file is loaded, and an extension is marked as dead if they are not met. Also dependencies can check different versions of particular objects to see if they are met.</para> + </section> + </chapter> + <chapter> + <title>Extension Types</title> + <para>Each Extension is identified by it's 'Type'. This determines the type of programmatic interface that it adheres to, enabling Inkscape to know what functionality it can expect from the extension.</para> + <section> + <title>Input</title> + <para>An input extension provides a way to get data into Inkscape. This type of extension creates a document given a filename. This is done by using the 'open' method within the class. Also, there is a 'prefs' function which will generate a GtkDialog. This dialog is then used to get any settings that the incomming file and extension my use. This function is executed, and the dialog returns, before the open method is called.</para> + <para>There are also several other settings stored in an Input extension. This includes information on the type of file the input module can take in including its filename extension and mime type. Also, there is a space to store a tooltip for additional information on the file type in the file dialog. Lastly, there is the key of which Output extension is recommended for saving this filetype. This is useful, as there is no other direct links between the Input and Ouput functions, and a user expects to be able to open and save without using the 'Save As...' dialog.</para> + </section> + <section> + <title>Output</title> + <para>An output extension controls how SVG documents are exported from Inkscape. This type of extension creates a file given a document object. This is done using the 'save' method within the class.</para> + <para>The method for how files are exported depends on what type of Implementation is used. For Scripts, the file is first saved as a temporary SVG file, and then processed by calling the commandline programs to convert it. For Plug-ins, the document object is passed to the extension with a 'save' message and a filename, and the extension program performs the file save operation itself.</para> + </section> + <section> + <title>Effect</title> + <para>Effect extensions cause a modification of a loaded document. For example, it might add a new shape to the drawing, or change all selected objects to be purple with green dotted borders.</para> + </section> + <section> + <title>Print</title> + <para>The Print Extension Type is for extensions that interface with printing subsystems. Examples would be Win32, postscript, and GNOME Print.</para> + </section> + <section> + <title>Collection</title> + </section> + </chapter> + <chapter> + <title>Creating Extensions</title> + <para>In this chapter, we discuss how to create an extension from scratch, incorporate into Inkscape, and release it for the general Inkscape community to use. This chapter can be read independently of the rest of the document, using the rest as reference material.</para> + <section> + <title>Selecting an Extension Strategy</title> + <para>First of all, you will need to select the method you'll use for creating your extension.</para> + <para>Scripts are the simplest extensions to create, because they work through STDIN/STDOUT, so you need to know very little about Inkscape internals to make them work. However, their ability to interact with the Inkscape internals is limited compared with other approaches. For file format converters, this is usually fine. You can also create filters programs that take the entire document to its STDIN, process it, and return a modified copy to STDOUT. Some control of the extension is possible via its commandline arguments.</para> + <para>One of the nice things about Scripts is that they can be written in any language. It need not even be a scripting language - as long as it handles STDIN and STDOUT and uses commandline arguments, you can write it however you wish.</para> + <para>Plug-ins are more powerful than Scripts, but require more knowledge of Inkscape internals, and must be written according to specific criteria. Generally, since these are loaded as dynamic objects, they'll need to be written in a language that can generate them, such as C or C++.</para> + <para>The best of both worlds can be available through Language Bindings, which are Plug-ins that wrapper a script interpreter. This enables you to call various Inkscape internal routines through your scripting language's functions. If someone has created a Language Binding for your language of choice, you're all set, otherwise you'll have to create a Plug-in for it. Language Binding Plug-ins have a few more requirements than ordinary Plug-ins, and require a greater amount of knowledge of the Inkscape internals, so it can take quite some time to do properly.</para> + <para>Internal Extensions are in a way the reverse of a normal Extension, in that instead of providing a way to hook into Inkscape from the outside, they provide hooks from inside Inkscape. These are used directly by Inkscape, such as in the case of compiled-in printing modules. Most users will never need to write this type of extension, they are pretty much for Inkscape core developers only.</para> + </section> + <section> + <title>Writeing Your Extension</title> + <para>This section provides some guidance and examples for implementing different kinds of Extensions.</para> + <section> + <title>Writing Script Extensions</title> + </section> + <section> + <title>Writing Plug-in Extensions</title> + </section> + <section> + <title>Writing Language Binding Plug-in Extensions</title> + </section> + </section> + <section> + <title>Creating an INX File</title> + <para>Every extension must have a corrosponding *.inx file. This is an XML file that provides Inkscape with information about the module and allows it to load the info without needing to access the module itself. The *.inx file contains enough info for Inkscape to set up menu items and know what kinds of functionality to expect from the extension.</para> + </section> + <section> + <title>Packaging Your Extension</title> + </section> + <section> + <title>Contributing Your Extensino to the Inkscape Community</title> + <para>Once your extension is complete, you may wish to share it with the community. There are of course no hard and fast rules for how to share your work, but this section illustrates some approaches.</para> + <section> + <title>Listing Your Extension</title> + <para>First, you will need to put your extension someplace that others can find and download it. If you have adequate webspace, you could simply upload it to your web server. More typically, you will want to upload it to a mirroring system like SourceForge (http://www.sourceforge.net), CPAN (http://www.cpan.org), and the like. The Inkscape project may also be willing to host your extension; contact the admins for more info.</para> + <para>It can also be helpful to list your extension with one of the various software registries, such as Freshmeat (http://www.freshmeat.net). You should also list it on the Inkscape Wiki site.</para> + </section> + <section> + <title>Announcing Your Extension</title> + <para>After posting your extension someplace from which it can be downloaded, you should also announce its availability, by sending an email to inkscape-announce@lists.sourceforge.net. You may also want to announce it on other related sites; for instance, if you've written a plug-in to allow operation of Imagemagick from within Inkscape, it could be a good idea to announce it to the Imagemagick list.</para> + </section> + <section> + <title>Incorporating Your Extension in to Inkscape</title> + <para>Because the intent with the extension system is to break things *out* from the core, most extensions should be packaged and distributed independently of the main Inkscape distribution. However, for ease of user installation, an extension-pack can be shipped along with the core Inkscape package. Also, certain extensions may be so critical to Inkscape operation (such as for printing) that they should be included in the core.</para> + <para>If your extension seems like it should be incorporated into the Inkscape core, contact the Inkscape developers about this, and discuss how best to include it in the distribution with them.</para> + </section> + </section> + </chapter> + <chapter> + <title>Conclusion</title> + <para>It is anticipated that the incorporation of this extensions capability will bring Inkscape added power and flexibility while avoiding bloating the core with cool-but-rarely-used functionality. Further, it empowers users and non-core Inkscape developers to extend the application with their own new capabilities, without needing to gain special access and acceptance by the project. Dynamic loading of functionality will also allow Inkscape to remain 'lean and mean', loading up functionality on an as-needed basis, and conserving memory by unloading functionality when it is not needed.</para> + <para>The key point of this design specification is the architectural concept of separately identifying an extension's interface type, or 'Extension Type', from its implementation method, or 'Extension Implementation'. This feature enables Inkscape to be extended in a variety of mechanisms, including ways not yet foreseen.</para> + </chapter> + <chapter> + <title>History and references</title> + <para>Base design taken from Ted Gould's Extension System work.</para> + <para>This document originally authored by Bryce Harrington, July 2004</para> + </chapter> +</book> diff --git a/doc/fonts.txt b/doc/fonts.txt new file mode 100644 index 000000000..815e79c36 --- /dev/null +++ b/doc/fonts.txt @@ -0,0 +1,40 @@ +Remarks about fonts + +1. System-wide font sources + +Sodipodi tries to extract font information +from different sources. Depending on your library +versions, this may, or may not succeed: + +xft - It usually works, but for some fontconfig setups +compiling this in may fail. In which case there is no +fonts available. + +libgnomeprint - only libgnomeprint 2.0 works currently. + +windows font database - this, of course, is used only +under win32 + +2. User-defined fonts + +If freeType2 support is compiled in (it usually is), +you can add fonts by hand to sodipodi. This can also be +useful to define aliases etc. + +Create file $HOME/.sodipodi/private-fonts + +Add one line for each font + +filename[:face number],font name,family name + +Face number if TrueType collection face number, it can +be omitted safely. +Font and family names should be space-delimited 'true' +names of font. +Example: + +garbdi.ttf,Garamond Bold Italic,Garamond + +2003-05-14 +Lauris Kaplinski + diff --git a/doc/inkscape-shadow.README b/doc/inkscape-shadow.README new file mode 100644 index 000000000..d555fd93f --- /dev/null +++ b/doc/inkscape-shadow.README @@ -0,0 +1,63 @@ +== BLURRED SHADOWS VIA BITMAPS + +The "Make a Bitmap Copy" command (Alt+B) exports a bitmap of +the selected objects (with all other objects hidden), saves it as a +PNG file in the same directory as the document, and imports it +back into the document. + +Via prefs, you can specify an external filter that will be run on the +PNG file after it is exported but before it is imported back. I use +this for grayscaling and blurring the image to create a soft drop +shadow for any object. So for me, Alt+B creates a shadow for +selected objects, and you can set it up to work the same for you. + +The script itself is share/extensions/inkscape-shadow.sh, though +it's not integrated nto the extensions or plugin system in any way. +The script requires Imagemagick 6.x to be installed; you can +modify the script as you like, probably adapting it for effects +other than shadows. The script is Unix-only; you can create +a similar batch file for Windows if you need it (send it to us +if you do). + +To enable this, you set in your ~/.inkscape/preferences.xml: + + <group + id="createbitmap" + minsize="250" + filter="/full/path/to/inkscape-shadow.sh" + filter_param1="20" /> + +Here minsize= gives the minimum size of the generated bitmap in +pixels (regardless of the object size); alternatively you can specify +resolution= to set the constant resolution (different pixel size +for different object sizes). + +In filter=, you specify either the full path to the script, or just +"inkscape-shadow.sh" if the script is in your PATH. The script +receives the image filename as the first parameter and the +filter_param1 as the second parameter (more parameters can be +added). This particular script interprets that as the blur radius +in pixels, but of course that depends on the script you use. + +The inkscape-shadow-white.sh script is the same but creates all-white +blurred shadows ("glows") instead of all-black. + +NOTE: I'm not going to provide a GUI for the blurred shadows feature, +for these reasons: + + 1. You have to carry around the shadow PNGs along your SVG. It's + inconvenient, and the PNGs may be much larger than the SVG. + + 2. The shadows are not resolution-independent and are not updated + automatically. For all this, we need to support the gaussian blur SVG + filter (a standard SVG feature). But since we don't have any filter + support yet, hence this hack. + + 3. Both Batik and Adobe have (different) problems with displaying PNGs + with alpha transparency. (Much like the Internet Exploder - shame on + them! :) This means that while this is valid SVG, its usefulness is + pretty much limited to Inkscape only. + +Still, for those who desperately need blurred shadows right now (such +as myself), this feature works well enough. Try it out, it's fun. + diff --git a/doc/inkscape-uml.dia b/doc/inkscape-uml.dia Binary files differnew file mode 100644 index 000000000..978a20f0f --- /dev/null +++ b/doc/inkscape-uml.dia diff --git a/doc/keys-html.xsl b/doc/keys-html.xsl new file mode 100644 index 000000000..c42e79059 --- /dev/null +++ b/doc/keys-html.xsl @@ -0,0 +1,182 @@ +<?xml version="1.0" encoding="utf-8"?> + +<xsl:stylesheet + xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" + xmlns="http://www.w3.org/1999/xhtml" + xmlns:k="http://www.inkscape.org/namespaces/keys" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:xlink="http://www.w3.org/1999/xlink" + exclude-result-prefixes="k #default inkscape sodipodi xlink" +> +<xsl:output method="html" encoding="utf-8" indent="no" doctype-public="-//W3C//DTD HTML 4.0 Transitional//EN"/> + +<xsl:template match="k:root"> +<xsl:comment> +Do not edit this file. +It is generated automatically from doc/keys.xml by doc/keys-html.xsl. +</xsl:comment> +<html> +<head> +<title>Inkscape keys and mouse reference</title> +<style type="text/css"> +.key {font-weight: bold} +.action {} +.note {padding-left: 50px; font-size: 70%} +h1 {margin-top: 0.5em; padding-left: 50px; padding-bottom: 0em; margin-bottom: 0em; letter-spacing: -0.02em} +h4 {font-weight: bold; font-style: italic; margin-top: 1em; padding-left: 50px; padding-bottom: 0em; margin-bottom: 0em} +</style> +</head> +<body bgcolor="#ffffff"> +<xsl:apply-templates select="k:p"/> +<table border ="0" cellspacing="0" cellpadding="4"> +<xsl:apply-templates select="k:column"/> +</table> + + <p> + <a href="http://validator.w3.org/check/referer"><img border="0" + src="http://www.w3.org/Icons/valid-html40" + alt="Valid HTML 4.0!" height="31" width="88" /></a> + </p> + +</body> +</html> +</xsl:template> + +<xsl:template match="k:p"> +<p><xsl:apply-templates/></p> +</xsl:template> + +<xsl:template match="k:a"> +<a href="{@href}"><xsl:apply-templates/></a> +</xsl:template> + +<xsl:template match="k:root/text() | k:column/text()"/> + +<xsl:template match="k:column"> +<xsl:apply-templates/> +</xsl:template> + +<xsl:template match="k:section"> +<tr><td colspan="3"><h1><xsl:value-of select="@title"/></h1></td></tr> +<xsl:apply-templates/> +</xsl:template> + +<xsl:template match="k:title"> +<tr bgcolor="{ancestor::k:section/@color}"><td colspan="3"><h4><xsl:value-of select="text()"/></h4></td></tr> +</xsl:template> + +<xsl:template match="k:note"> +<tr bgcolor="{ancestor::k:section/@color}"><td colspan="3"><span class="note"><xsl:value-of select="text()"/></span></td></tr> +</xsl:template> + +<xsl:template match="k:keys | k:mouse"> +<tr bgcolor="{ancestor::k:section/@color}"> +<td align="right"> +<xsl:choose> +<xsl:when test="count(k:key) = 2"> +<span class="key"><xsl:apply-templates select="k:key[1]"/></span>, +<span class="key"><xsl:apply-templates select="k:key[2]"/></span> +</xsl:when> +<xsl:otherwise> +<span class="key"><xsl:apply-templates select="k:key[1]"/></span> +</xsl:otherwise> +</xsl:choose> +</td> +<td> +<span class="action"> +<xsl:apply-templates select="k:action"/> +</span> +</td> +</tr> +</xsl:template> + +<xsl:template match="k:action"> +<xsl:apply-templates/> +</xsl:template> + +<xsl:template match="k:key"> +<xsl:apply-templates/> +</xsl:template> + +<xsl:template match="k:shift"> +<xsl:text>Shift+</xsl:text> +</xsl:template> + +<xsl:template match="k:ctrl"> +<xsl:text>Ctrl+</xsl:text> +</xsl:template> + +<xsl:template match="k:alt"> +<xsl:text>Alt+</xsl:text> +</xsl:template> + +<xsl:template match="k:left"> +<xsl:text>Left </xsl:text> +</xsl:template> + +<xsl:template match="k:right"> +<xsl:text>Right </xsl:text> +</xsl:template> + +<xsl:template match="k:keyf | k:misc | k:misc-wide"> +<xsl:value-of select="@f"/> +</xsl:template> + +<xsl:template match="k:arrows"> +<xsl:text>arrows</xsl:text> +</xsl:template> + +<xsl:template match="k:up"> +<xsl:text>Up arrow</xsl:text> +</xsl:template> + +<xsl:template match="k:down"> +<xsl:text>Down arrow</xsl:text> +</xsl:template> + +<xsl:template match="k:left-arrow"> +<xsl:text>Left arrow</xsl:text> +</xsl:template> + +<xsl:template match="k:right-arrow"> +<xsl:text>Right arrow</xsl:text> +</xsl:template> + +<xsl:template match="k:up-arrow"> +<xsl:text>Up arrow</xsl:text> +</xsl:template> + +<xsl:template match="k:down-arrow"> +<xsl:text>Down arrow</xsl:text> +</xsl:template> + +<xsl:template match="k:wheel"> +<xsl:text>mouse wheel</xsl:text> +</xsl:template> + +<xsl:template match="k:left-drag"> +<xsl:text>mouse drag</xsl:text> +</xsl:template> + +<xsl:template match="k:left-click"> +<xsl:text>click</xsl:text> +</xsl:template> + +<xsl:template match="k:mid-drag"> +<xsl:text>middle button drag</xsl:text> +</xsl:template> + +<xsl:template match="k:mid-click"> +<xsl:text>middle click</xsl:text> +</xsl:template> + +<xsl:template match="k:right-drag"> +<xsl:text>right button drag</xsl:text> +</xsl:template> + +<xsl:template match="k:right-click"> +<xsl:text>right click</xsl:text> +</xsl:template> + +</xsl:stylesheet>
\ No newline at end of file diff --git a/doc/keys-svg.xsl b/doc/keys-svg.xsl new file mode 100644 index 000000000..688356666 --- /dev/null +++ b/doc/keys-svg.xsl @@ -0,0 +1,1315 @@ +<?xml version="1.0" encoding="utf-8"?> + +<xsl:stylesheet + xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" + xmlns="http://www.w3.org/2000/svg" + xmlns:k="http://www.inkscape.org/namespaces/keys" + xmlns:h="http://www.w3.org/1999/xhtml" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:xlink="http://www.w3.org/1999/xlink" + exclude-result-prefixes="k" +> + +<xsl:output method="xml" encoding="utf-8" indent="no"/> + +<xsl:variable name="style-section" select="'fill:black;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans;font-style:normal;font-weight:bold;font-size:24;text-anchor:start;writing-mode:lr;letter-spacing:-2;'"/> +<xsl:variable name="space-section" select="28"/> +<xsl:variable name="skip-section-title" select="21"/> +<xsl:variable name="skip-section-content" select="25"/> + +<xsl:variable name="space-group" select="3"/> +<xsl:variable name="skip-group-content" select="1.5"/> + +<xsl:variable name="style-title" select="'fill:black;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans;font-style:oblique;font-weight:bold;font-size:7.4;text-anchor:start;writing-mode:lr;letter-spacing:-0.2;'"/> +<xsl:variable name="space-title" select="7"/> +<xsl:variable name="skip-title-content" select="5"/> + +<xsl:variable name="space-keys" select="8"/> +<xsl:variable name="skip-keys-content" select="1"/> +<xsl:variable name="skip-keys-action" select="5"/> <!-- from keys-content --> + +<xsl:variable name="space-mouse" select="11.5"/> +<xsl:variable name="skip-mouse-content" select="1.5"/> +<xsl:variable name="skip-mouse-action" select="5"/> <!-- from mouse-content --> + +<xsl:variable name="style-note" select="'fill:black;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans;font-style:normal;font-weight:normal;font-size:3;text-anchor:start;writing-mode:lr;letter-spacing:0;'"/> +<xsl:variable name="space-note" select="4"/> +<xsl:variable name="skip-note-content" select="3"/> + +<xsl:variable name="style-letterkey" select="'fill:black;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans;font-style:normal;font-weight:normal;font-size:4.4;text-anchor:start;writing-mode:lr;'"/> +<xsl:variable name="style-keyf" select="'fill:black;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans;font-style:normal;font-weight:normal;font-size:3.3;text-anchor:start;writing-mode:lr;letter-spacing:-0.4;'"/> +<xsl:variable name="style-keymisc" select="'fill:black;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans;font-style:normal;font-weight:normal;font-size:3.4;text-anchor:start;writing-mode:lr;letter-spacing:-0.2;'"/> +<xsl:variable name="style-action" select="'fill:black;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans;font-style:normal;font-weight:normal;font-size:6.4;text-anchor:start;writing-mode:lr;letter-spacing:-0.4;'"/> + +<xsl:variable name="section-width" select="215"/> +<xsl:variable name="section-hskip" select="2"/> +<xsl:variable name="note-hskip" select="6"/> + +<xsl:variable name="action-hskip" select="3"/> + +<xsl:variable name="w-shift" select="15.46"/> +<xsl:variable name="w-ctrl" select="12.38"/> +<xsl:variable name="w-alt" select="10.67"/> +<xsl:variable name="w-left" select="8.7"/> +<xsl:variable name="w-right" select="10.9"/> +<xsl:variable name="w-letterkey" select="8.00"/> +<xsl:variable name="w-misc-wide" select="17.46"/> +<xsl:variable name="w-misc" select="12.38"/> +<xsl:variable name="w-arrows" select="12.38"/> +<xsl:variable name="w-mouse" select="7.0"/> + +<xsl:variable name="w-key" select="31"/> + +<xsl:template match="k:root"> +<xsl:comment> + +Do not edit this file. +It is generated automatically from doc/keys.xml by doc/keys-svg.xsl. + +</xsl:comment> +<svg + version="1.0" + x="0" + y="0" + width="744.094482" + height="1052.36218" + id="svg559" + sodipodi:version="0.32" + inkscape:version="0.37cvs" + sodipodi:docname="keys-sample.svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:xlink="http://www.w3.org/1999/xlink" + sodipodi:docbase="/home/d/ink/inkscape"> + <sodipodi:namedview + id="base" + inkscape:zoom="0.48" + inkscape:cx="736" + inkscape:cy="588" + inkscape:window-width="780" + inkscape:window-height="580" + inkscape:window-x="0" + inkscape:window-y="0" + showborder="false" /> + <defs + id="defs561"> + <linearGradient + id="linearGradient711"> + <stop + style="stop-color:#ffffff;stop-opacity:1;" + offset="0.00000000" + id="stop712" /> + <stop + style="stop-color:#868686;stop-opacity:1;" + offset="1.00000000" + id="stop713" /> + </linearGradient> + <linearGradient + id="linearGradient607"> + <stop + style="stop-color:#cfcfcf;stop-opacity:1;" + offset="0.000000" + id="stop608" /> + <stop + style="stop-color:#efefef;stop-opacity:1;" + offset="1.000000" + id="stop609" /> + </linearGradient> + <linearGradient + id="linearGradient565"> + <stop + style="stop-color:#9d9d9f;stop-opacity:1;" + offset="0.000000" + id="stop566" /> + <stop + style="stop-color:#e5e5e5;stop-opacity:1;" + offset="1.000000" + id="stop567" /> + </linearGradient> + <radialGradient + id="radialGradient568" + xlink:href="#linearGradient711" + cx="0.69677418" + cy="0.30366492" + r="0.87194777" + fx="0.69677418" + fy="0.30366492" + spreadMethod="reflect" /> + <linearGradient + id="linearGradient569" + xlink:href="#linearGradient565" + y2="-0.03731298" + x2="0.72092992" + y1="0.99253702" + x1="-0.08527008" + spreadMethod="pad" + gradientUnits="objectBoundingBox" /> + <linearGradient + id="linearGradient580" + xlink:href="#linearGradient565" + y2="0.00000002" + x2="-0.04651194" + y1="0.99253708" + x1="-0.00775294" + spreadMethod="pad" + gradientUnits="objectBoundingBox" /> + <linearGradient + xlink:href="#linearGradient565" + id="linearGradient576" /> + <linearGradient + xlink:href="#linearGradient607" + id="linearGradient610" + x1="0.11764701" + y1="0.86885244" + x2="0.78280514" + y2="0.12295082" + gradientUnits="objectBoundingBox" + spreadMethod="pad" /> + <linearGradient + xlink:href="#linearGradient565" + id="linearGradient611" + x1="0.10837435" + y1="0.94531250" + x2="0.76847297" + y2="0.28125000" + gradientUnits="objectBoundingBox" + spreadMethod="pad" /> + <linearGradient + xlink:href="#linearGradient607" + id="linearGradient613" + x1="0.23529346" + y1="0.85156250" + x2="0.82805431" + y2="0.12499999" + gradientUnits="objectBoundingBox" + spreadMethod="pad" /> + <linearGradient + xlink:href="#linearGradient565" + id="linearGradient615" + x1="0.10731713" + y1="0.82031238" + x2="0.87804890" + y2="0.07812499" + gradientUnits="objectBoundingBox" + spreadMethod="pad" /> + <linearGradient + xlink:href="#linearGradient607" + id="linearGradient620" /> + </defs> + +<!-- Inkscape does not yet support svg:use of an object in defs, therefore we define the key graphics here (on the canvas at 0,0) --> +<!-- They will be overlaid by the background rectangle of the first section --> + +<!-- mouse images --> + + <g + id="left-click"> + <path + style="font-size:12;fill:url(#radialGradient568);fill-rule:evenodd;stroke-width:1pt;" + d="M 3.6677089 0.69866497 C 2.5111219 0.70247797 0.60176688 0.87400498 0.48616554 2.6404201 C 0.36648452 4.20794 0.58434883 5.5470015 1.1224739 6.7127964 C 1.6478125 7.8945497 2.3280327 8.770865 3.7101306 8.791406 C 3.7261892 8.791406 3.7366738 8.791641 3.7525494 8.791406 C 5.1346474 8.770865 5.8148662 7.8945497 6.3402062 6.7127964 C 6.8783313 5.5470015 7.0961985 4.20794 6.9765161 2.6404201 C 6.8609133 0.87400498 4.9515568 0.70247797 3.7949711 0.69866497 C 3.7582543 0.69854407 3.702741 0.69866497 3.6677089 0.69866497 z " + id="path742" + transform="matrix(0.886947,0.000000,0.000000,0.886947,0.279045,1.170720)" /> + <path + style="font-size:12;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.137792;" + d="M 4.9596784 0.75757138 L 4.9596784 4.5604601 " + id="path741" + transform="matrix(0.886947,0.000000,0.000000,0.886947,0.279045,1.170720)" /> + <path + style="font-size:12;fill-rule:evenodd;stroke-width:1pt;" + d="M 2.5836552 0.75683638 C 1.5807894 0.90294429 0.56647766 1.3378565 0.48232843 2.6236796 C 0.42599755 3.3614571 0.43206257 3.9104527 0.52347935 4.5527658 L 2.5836552 4.5527658 L 2.5836552 0.75683638 z " + id="path740" + transform="matrix(0.886947,0.000000,0.000000,0.886947,0.279045,1.170720)" /> + <path + style="font-size:12;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.137792;" + d="M 2.5571164 0.75757138 L 2.5571164 4.5604601 " + id="path739" + transform="matrix(0.886947,0.000000,0.000000,0.886947,0.279045,1.170720)" /> + <path + style="font-size:12;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.137792;" + d="M 0.52620977 4.5687418 L 6.9386881 4.5687418 " + id="path738" + transform="matrix(0.886947,0.000000,0.000000,0.886947,0.279045,1.170720)" /> + <text + xml:space="preserve" + style="font-size:1.2;font-weight:normal;stroke-width:1pt;font-family:Bitstream Vera Sans;" + x="0.44536325" + y="0.10000575" + id="text743" + sodipodi:linespacing="100%" + transform="matrix(1.288158,0.000000,0.000000,1.288158,0.279045,1.170720)"><tspan + x="0.44536325" + y="0.10000575" + sodipodi:role="line" + id="tspan748">click</tspan></text> + </g> + + <g + id="left-drag" + transform="translate(0.000000,1.125000e-6)"> + <path + style="font-size:12;fill:url(#radialGradient568);fill-rule:evenodd;stroke-width:1pt;" + d="M 4.2811092,3.6456834 C 3.5204235,3.6481912 2.2646447,3.7610042 2.1886133,4.9227722 C 2.1098991,5.9537272 2.2531880,6.8344255 2.6071123,7.6011667 C 2.9526262,8.3784037 3.4000056,8.9547546 4.3090093,8.9682645 C 4.3195716,8.9682645 4.3264664,8.9684190 4.3369079,8.9682645 C 5.2459115,8.9547546 5.6932901,8.3784037 6.0388055,7.6011667 C 6.3927298,6.8344255 6.5360202,5.9537272 6.4573052,4.9227722 C 6.3812739,3.7610042 5.1254936,3.6481912 4.3648094,3.6456834 C 4.3406607,3.6456039 4.3041493,3.6456834 4.2811092,3.6456834 z " + id="path737" /> + <path + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.0906254;" + d="M 5.1308348,3.6844260 L 5.1308348,6.1855791" + id="path736" /> + <path + style="font-size:12;fill-rule:evenodd;stroke-width:1pt;" + d="M 3.5681284,3.6839426 C 2.9085453,3.7800375 2.2414340,4.0660784 2.1860899,4.9117621 C 2.1490409,5.3969969 2.1530295,5.7580703 2.2131543,6.1805185 L 3.5681284,6.1805185 L 3.5681284,3.6839426 z " + id="path735" /> + <path + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.0906254;" + d="M 2.2149502,6.1910258 L 6.4324262,6.1910258" + id="path733" /> + <path + style="font-size:12;fill-rule:evenodd;stroke-width:1pt;" + d="M 0.87308887,0.18494458 C 1.9614707,0.76553855 2.1048185,1.7016907 2.2121750,2.6779119 C 2.6396563,2.5147384 2.5518759,2.6983745 2.9793570,2.5352012 C 3.0152194,1.1271410 2.9896720,0.37476438 2.2995828,-0.38186391 C 1.8611988,-0.016212694 1.4403488,0.10428085 0.87308887,0.18494458 z " + id="path732" + sodipodi:nodetypes="ccccc" /> + <path + style="font-size:12;fill-rule:evenodd;stroke-width:1pt;" + d="M 1.5112588,2.4479293 L 4.3111764,2.3405949 L 2.5176694,3.6888367 L 1.5112588,2.4479293 z " + id="path731" + sodipodi:nodetypes="cccc" /> + <text + xml:space="preserve" + style="font-size:1.2;font-weight:normal;stroke-width:1pt;font-family:Bitstream Vera Sans;" + x="2.55886233" + y="1.00883842" + id="text750" + sodipodi:linespacing="100%" + transform="scale(1.288158,1.288158)"><tspan + x="2.55886245" + y="1.00883842" + sodipodi:role="line" + id="tspan751">drag</tspan></text> + </g> + + <g + id="mid-click"> + <path + style="font-size:12;fill:url(#radialGradient568);fill-rule:evenodd;stroke-width:1pt;" + d="M 3.5020868 1.7911048 C 2.4762557 1.7944862 0.78275968 1.9466216 0.68022768 3.5133391 C 0.57407668 4.9036459 0.76731068 6.0913227 1.2445987 7.125321 C 1.7105457 8.1734737 2.3138647 8.9507193 3.5397118 8.9689372 C 3.5539558 8.9689372 3.5632548 8.9691456 3.5773358 8.9689372 C 4.8031828 8.9507193 5.4065018 8.1734737 5.8724498 7.125321 C 6.3497388 6.0913227 6.5429749 4.9036459 6.4368238 3.5133391 C 6.3342898 1.9466216 4.6407908 1.7944862 3.6149618 1.7911048 C 3.5823958 1.7909978 3.5331588 1.7911048 3.5020868 1.7911048 z " + id="path753" /> + <path + style="font-size:12;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.122214;" + d="M 0.71574468 5.2236579 L 6.4032718 5.2236579 " + id="path757" /> + <text + xml:space="preserve" + style="font-size:1.3;font-weight:normal;stroke-width:1pt;font-family:Bitstream Vera Sans;" + x="1.24093144" + y="1.00938547" + id="text765" + sodipodi:linespacing="100%" + transform="scale(1.288158,1.288158)"><tspan + x="1.24093139" + y="1.00938547" + sodipodi:role="line" + id="tspan766">click</tspan></text> + <path + style="font-size:12;fill-rule:evenodd;stroke-width:1pt;" + d="M 2.4989727 1.8559797 L 2.4989727 5.265219 L 4.6627718 5.265219 L 4.6627718 1.8559797 C 3.9666658 1.7238863 3.2453998 1.7238863 2.4989727 1.8559797 z " + id="path772" + sodipodi:nodetypes="ccccc" /> + </g> + + <g + id="mid-drag" + transform="translate(-1.125000e-6,1.125000e-6)"> + <path + style="font-size:12;fill:url(#radialGradient568);fill-rule:evenodd;stroke-width:1pt;" + d="M 4.2312960,3.5918108 C 3.4643678,3.5943388 2.1982835,3.7080776 2.1216282,4.8793802 C 2.0422680,5.9187954 2.1867335,6.8067213 2.5435616,7.5797547 C 2.8919109,8.3633701 3.3429624,8.9444505 4.2594258,8.9580711 C 4.2700748,8.9580711 4.2770261,8.9582270 4.2875525,8.9580711 C 5.2040158,8.9444505 5.6550659,8.3633701 6.0034166,7.5797547 C 6.3602447,6.8067213 6.5047117,5.9187954 6.4253508,4.8793802 C 6.3486955,3.7080776 5.0826097,3.5943388 4.3156823,3.5918108 C 4.2913355,3.5917309 4.2545251,3.5918108 4.2312960,3.5918108 z " + id="path758" /> + <path + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.0913691;" + d="M 2.1481820,6.1580415 L 6.4002675,6.1580415" + id="path762" /> + <path + style="font-size:12;fill-rule:evenodd;stroke-width:1pt;" + d="M 2.6941421,0.077840626 C 3.2444435,0.89346617 3.7063783,1.4221344 3.8046827,2.4788033 C 4.1961179,2.3256075 4.1391312,2.6208327 4.5305676,2.4676346 C 4.6094779,1.3820095 4.6609893,0.26064772 4.2105546,-0.46832581 C 3.9270868,0.098242238 3.3768906,0.24398760 2.6941421,0.077840626 z " + id="path763" + sodipodi:nodetypes="ccccc" /> + <path + style="font-size:12;fill-rule:evenodd;stroke-width:1pt;" + d="M 2.7030627,2.3593309 L 5.5454954,2.2669081 L 4.2415509,3.3675109 L 2.7030627,2.3593309 z " + id="path764" + sodipodi:nodetypes="cccc" /> + <text + xml:space="preserve" + style="font-size:1.2;font-weight:normal;stroke-width:1pt;font-family:Bitstream Vera Sans;" + x="3.72539061" + y="0.98140591" + id="text768" + sodipodi:linespacing="100%" + transform="scale(1.288158,1.288158)"><tspan + x="3.72539067" + y="0.98140591" + sodipodi:role="line" + id="tspan769">drag</tspan></text> + <path + style="font-size:12;fill-rule:evenodd;stroke-width:1pt;" + d="M 3.4954917,3.6403128 L 3.4954917,6.1891133 L 5.1131813,6.1891133 L 5.1131813,3.6403128 C 4.5927615,3.5415570 4.0535324,3.5415570 3.4954917,3.6403128 z " + id="path773" + sodipodi:nodetypes="ccccc" /> + </g> + + <g + id="right-click"> + <path + style="font-size:12;fill:url(#radialGradient568);fill-rule:evenodd;stroke-width:1pt;" + d="M 3.5470928 1.7706068 C 2.5212607 1.7739882 0.82776368 1.9261236 0.72523168 3.4928414 C 0.61908168 4.8831481 0.81231568 6.0708248 1.2896037 7.1048231 C 1.7555517 8.1529757 2.3588707 8.9302211 3.5847188 8.948439 C 3.5989618 8.948439 3.6082608 8.9486483 3.6223418 8.948439 C 4.8481898 8.9302211 5.4515078 8.1529757 5.9174568 7.1048231 C 6.3947448 6.0708248 6.5879819 4.8831481 6.4818299 3.4928414 C 6.3792958 1.9261236 4.6857978 1.7739882 3.6599678 1.7706068 C 3.6274018 1.7705 3.5781648 1.7706068 3.5470928 1.7706068 z " + id="path774" /> + <path + style="font-size:12;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.122214;" + d="M 0.76074868 5.2031601 L 6.4482788 5.2031601 " + id="path775" /> + <text + xml:space="preserve" + style="font-size:1.2;font-weight:normal;stroke-width:1pt;font-family:Bitstream Vera Sans;" + x="2.13629596" + y="0.99347234" + id="text780" + sodipodi:linespacing="100%" + transform="scale(1.288158,1.288158)"><tspan + x="2.13629603" + y="0.99347234" + sodipodi:role="line" + id="tspan813">click</tspan></text> + <path + style="font-size:12;fill-rule:evenodd;stroke-width:1pt;" + d="M 4.5998098 1.8222014 C 5.4892978 1.9517915 6.3889388 2.3375356 6.4635749 3.4779927 C 6.5135369 4.132363 6.5081579 4.619292 6.4270768 5.1889904 L 4.5998098 5.1889904 L 4.5998098 1.8222014 z " + id="path788" /> + <path + style="font-size:12;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.122214;" + d="M 2.5620557 1.8228546 L 2.5620557 5.1958163 " + id="path789" /> + </g> + + + <g + id="right-drag" + transform="translate(1.125000e-6,1.125000e-6)"> + <path + style="font-size:12;fill:url(#radialGradient568);fill-rule:evenodd;stroke-width:1pt;" + d="M 4.3685855,3.7242673 C 3.6248392,3.7267190 2.3970228,3.8370198 2.3226845,4.9729187 C 2.2457230,5.9809166 2.3858220,6.8420041 2.7318645,7.5916719 C 3.0696846,8.3516015 3.5071027,8.9151187 4.3958651,8.9283270 C 4.4061923,8.9283270 4.4129335,8.9284789 4.4231424,8.9283270 C 5.3119040,8.9151187 5.7493213,8.3516015 6.0871422,7.5916719 C 6.4331854,6.8420041 6.5732851,5.9809166 6.4963237,4.9729187 C 6.4219845,3.8370198 5.1941675,3.7267190 4.4504219,3.7242673 C 4.4268110,3.7241898 4.3911133,3.7242673 4.3685855,3.7242673 z " + id="path776" /> + <path + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.0886073;" + d="M 2.3484358,6.2129311 L 6.4719977,6.2129311" + id="path777" /> + <path + style="font-size:12;fill-rule:evenodd;stroke-width:1pt;" + d="M 4.1311923,0.26532657 C 5.1283963,0.70189914 5.7345773,1.4458530 5.6790143,2.6209236 C 6.0994583,2.4561351 6.0854903,2.8238471 6.5059344,2.6590563 C 6.4931134,1.7804446 6.7046664,0.84138473 5.7023623,-0.30709515 C 5.1736773,0.064120851 4.6683523,0.21983456 4.1311923,0.26532657 z " + id="path778" + sodipodi:nodetypes="ccccc" /> + <path + style="font-size:12;fill-rule:evenodd;stroke-width:1pt;" + d="M 4.4887093,2.5180790 L 7.1399773,2.4849831 L 6.2899294,3.7543860 L 4.4887093,2.5180790 z " + id="path779" + sodipodi:nodetypes="cccc" /> + <text + xml:space="preserve" + style="font-size:1.2;font-weight:normal;stroke-width:1pt;font-family:Bitstream Vera Sans;" + x="0.49732296" + y="0.95831662" + id="text783" + sodipodi:linespacing="100%" + transform="scale(1.288158,1.288158)"><tspan + x="0.49732295" + y="0.95831662" + sodipodi:role="line" + id="tspan784">drag</tspan></text> + <path + style="font-size:12;fill-rule:evenodd;stroke-width:1pt;" + d="M 5.1310314,3.7616744 C 5.7759272,3.8556295 6.4281828,4.1353010 6.4822960,4.9621532 C 6.5185187,5.4365836 6.5146188,5.7896161 6.4558335,6.2026579 L 5.1310314,6.2026579 L 5.1310314,3.7616744 z " + id="path790" /> + <path + style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.0886073;" + d="M 3.6536224,3.7621480 L 3.6536224,6.2076068" + id="path791" /> + </g> + + + + <g + id="wheel"> + <path + style="font-size:12;fill:url(#radialGradient568);fill-rule:evenodd;stroke-width:1pt;" + d="M 3.5370048 1.7303644 C 2.5111727 1.7337458 0.81767667 1.8858811 0.71514468 3.4525986 C 0.60899368 4.8429053 0.80222768 6.0305822 1.2795157 7.0645805 C 1.7454637 8.112733 2.3487827 8.8899785 3.5746308 8.9081964 C 3.5888738 8.9081964 3.5981728 8.9084057 3.6122538 8.9081964 C 4.8381018 8.8899785 5.4414198 8.112733 5.9073688 7.0645805 C 6.3846568 6.0305822 6.5778939 4.8429053 6.4717419 3.4525986 C 6.3692078 1.8858811 4.6757098 1.7337458 3.6498798 1.7303644 C 3.6173138 1.7302575 3.5680768 1.7303644 3.5370048 1.7303644 z " + id="path792" /> + <path + style="font-size:12;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.122214;" + d="M 0.75066068 5.1629174 L 2.6033227 5.1629174 " + id="path793" + sodipodi:nodetypes="cc" /> + <text + xml:space="preserve" + style="font-size:1.2;font-weight:normal;stroke-width:1pt;font-family:Bitstream Vera Sans;" + x="0.97063343" + y="0.96223223" + id="text794" + sodipodi:linespacing="100%" + transform="scale(1.288158,1.288158)"><tspan + x="0.97063345" + y="0.96223223" + sodipodi:role="line" + id="tspan795">wheel</tspan></text> + <path + style="font-size:12;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.122214;" + d="M 6.4381888 5.1629174 L 4.5855278 5.1629174 " + id="path799" + sodipodi:nodetypes="cc" /> + <rect + style="font-size:12;fill:url(#radialGradient568);fill-rule:evenodd;stroke-width:1pt;" + id="rect801" + width="1.10310698" + height="2.92336941" + x="3.06589717" + y="2.08157873" /> + <path + style="font-size:12;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.064408;" + d="M 3.0713508 2.0980692 L 4.1477788 2.0980692 " + id="path802" /> + <path + style="font-size:12;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.064408;" + d="M 3.0713508 2.1870294 L 4.1477788 2.1870294 " + id="path803" /> + <path + style="font-size:12;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.064408;" + d="M 3.0713508 2.3115737 L 4.1477788 2.3115737 " + id="path804" /> + <path + style="font-size:12;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.064408;" + d="M 3.0713508 2.5428703 L 4.1477788 2.5428703 " + id="path805" /> + <path + style="font-size:12;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.064408;" + d="M 3.0713508 2.9165032 L 4.1477788 2.9165032 " + id="path806" /> + <path + style="font-size:12;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.064408;" + d="M 3.0713508 3.5214326 L 4.1477788 3.5214326 " + id="path807" /> + <path + style="font-size:12;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.064408;" + d="M 3.0713508 4.9892801 L 4.1477788 4.9892801 " + id="path808" /> + <path + style="font-size:12;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.064408;" + d="M 3.0713508 4.9003199 L 4.1477788 4.9003199 " + id="path809" /> + <path + style="font-size:12;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.064408;" + d="M 3.0713508 4.7757756 L 4.1477788 4.7757756 " + id="path810" /> + <path + style="font-size:12;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.064408;" + d="M 3.0713508 4.544479 L 4.1477788 4.544479 " + id="path811" /> + <path + style="font-size:12;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.064408;" + d="M 3.0713508 4.1708461 L 4.1477788 4.1708461 " + id="path812" /> + </g> + + +<!-- key images --> + + <g + id="shift"> + <rect + style="font-size:12;fill:url(#linearGradient615);fill-rule:evenodd;stroke:none;stroke-width:0.0625pt;" + id="rect682" + width="14.46854401" + height="6.57892704" + x="0.03756316" + y="0.07391790" + ry="0.68839085" /> + <rect + style="font-size:12;fill:url(#linearGradient613);fill-rule:evenodd;stroke:none;stroke-width:0.15625;" + id="rect683" + width="12.71428394" + height="5.05001116" + x="0.84218349" + y="0.77243602" + ry="0.38310501" /> + <text + style="fill:black;stroke:none;font-family:Bitstream Vera Sans;font-style:oblique;font-weight:normal;font-size:4;fill-opacity:1;stroke-opacity:1;stroke-width:1pt;stroke-linejoin:miter;stroke-linecap:butt;text-anchor:start;writing-mode:lr;" + x="1.37996908" + y="4.35733509" + id="text685" + sodipodi:linespacing="100%"><tspan + x="1.37996912" + y="4.35733509" + sodipodi:role="line" + id="tspan692">Shift</tspan></text> + </g> + <g + id="ctrl"> + <rect + style="font-size:12;fill:url(#linearGradient615);fill-rule:evenodd;stroke:none;stroke-width:0.0625pt;" + id="rect695" + width="11.38750172" + height="6.57892704" + x="0" + y="0" + ry="0.68839085" /> + <rect + style="font-size:12;fill:url(#linearGradient613);fill-rule:evenodd;stroke:none;stroke-width:0.15625;" + id="rect696" + width="9.74373341" + height="5.05001116" + x="0.77" + y="0.77" + ry="0.38310501" /> + <text + style="fill:black;stroke:none;font-family:Bitstream Vera Sans;font-style:oblique;font-weight:normal;font-size:4;fill-opacity:1;stroke-opacity:1;stroke-width:1pt;stroke-linejoin:miter;stroke-linecap:butt;text-anchor:start;writing-mode:lr;" + x="1.3" + y="4.35733509" + id="text697" + sodipodi:linespacing="100%"><tspan + x="1.3" + y="4.35733509" + sodipodi:role="line" + id="tspan698">Ctrl</tspan></text> + </g> + <g + id="alt"> + <rect + style="font-size:12;fill:url(#linearGradient615);fill-rule:evenodd;stroke:none;stroke-width:0.0625pt;" + id="rect703" + width="9.67487087" + height="6.57892704" + x="0" + y="0" + ry="0.68839085" /> + <rect + style="font-size:12;fill:url(#linearGradient613);fill-rule:evenodd;stroke:none;stroke-width:0.15625;" + id="rect704" + width="7.97585612" + height="5.05001116" + x="0.77" + y="0.77" + ry="0.38310501" /> + <text + style="fill:black;stroke:none;font-family:Bitstream Vera Sans;font-style:oblique;font-weight:normal;font-size:4;fill-opacity:1;stroke-opacity:1;stroke-width:1pt;stroke-linejoin:miter;stroke-linecap:butt;text-anchor:start;writing-mode:lr;" + x="1.3" + y="4.35733509" + id="text705" + sodipodi:linespacing="100%"><tspan + x="1.3" + y="4.35733509" + sodipodi:role="line" + id="tspan706">Alt</tspan></text> + </g> + + <g + id="left"> + <text + style="fill:black;stroke:none;font-family:Bitstream Vera Sans;font-style:oblique;font-weight:normal;font-size:4;fill-opacity:1;stroke-opacity:1;stroke-width:1pt;stroke-linejoin:miter;stroke-linecap:butt;text-anchor:start;writing-mode:lr;letter-spacing:-0.3;" + x="1.3" + y="4.35733509" + sodipodi:linespacing="100%"><tspan + x="1.3" + y="4.35733509" + sodipodi:role="line" + >Left</tspan></text> + </g> + + <g + id="right"> + <text + style="fill:black;stroke:none;font-family:Bitstream Vera Sans;font-style:oblique;font-weight:normal;font-size:4;fill-opacity:1;stroke-opacity:1;stroke-width:1pt;stroke-linejoin:miter;stroke-linecap:butt;text-anchor:start;writing-mode:lr;letter-spacing:-0.3;" + x="1.3" + y="4.35733509" + sodipodi:linespacing="100%"><tspan + x="1.3" + y="4.35733509" + sodipodi:role="line" + >Right</tspan></text> + </g> + + <g + id="letterkey"> + <rect + style="font-size:12;fill:url(#linearGradient615);fill-rule:evenodd;stroke:none;stroke-width:0.0625pt;" + id="rect708" + width="7.00721359" + height="6.57892704" + x="0" + y="0" + ry="0.97501397" /> + <rect + style="font-size:12;fill:url(#linearGradient613);fill-rule:evenodd;stroke:none;stroke-width:0.15625;" + id="rect709" + width="5.07888126" + height="5.05001116" + x="0.77" + y="0.77" + ry="0.48707163" + rx="0.35459363" /> + </g> + + <g + id="misc-wide"> + <rect + style="font-size:12;fill:url(#linearGradient615);fill-rule:evenodd;stroke:none;stroke-width:0.0625pt;" + width="16.46854401" + height="6.57892704" + x="0.0" + y="0.0" + ry="0.68839085" /> + <rect + style="font-size:12;fill:url(#linearGradient613);fill-rule:evenodd;stroke:none;stroke-width:0.15625;" + width="14.7" + height="5.0" + x="0.77" + y="0.77" + ry="0.38310501" /> + </g> + + <g + id="misc"> + <rect + style="font-size:12;fill:url(#linearGradient615);fill-rule:evenodd;stroke:none;stroke-width:0.0625pt;" + width="11.4" + height="6.57892704" + x="0.0" + y="0.0" + ry="0.68839085" /> + <rect + style="font-size:12;fill:url(#linearGradient613);fill-rule:evenodd;stroke:none;stroke-width:0.15625;" + width="9.7" + height="5.0" + x="0.77" + y="0.77" + ry="0.38310501" /> + </g> + + <g + id="arrows"> + <rect + style="font-size:12;fill:url(#linearGradient615);fill-rule:evenodd;stroke-width:0.0625pt;" + id="rect708" + width="3.50360680" + height="3.28946352" + x="3.72818561" + y="0.09945580" + ry="0.48750699" /> + <rect + style="font-size:12;fill:url(#linearGradient613);fill-rule:evenodd;stroke-width:0.15625;" + id="rect709" + width="2.53944063" + height="2.52500558" + x="4.19200130" + y="0.44871032" + ry="0.24353582" + rx="0.17729682" /> + <rect + style="font-size:12;fill:url(#linearGradient615);fill-rule:evenodd;stroke-width:0.0625pt;" + id="rect787" + width="3.50360680" + height="3.28946352" + x="3.72818561" + y="3.64276290" + ry="0.48750699" /> + <rect + style="font-size:12;fill:url(#linearGradient613);fill-rule:evenodd;stroke-width:0.15625;" + id="rect788" + width="2.53944063" + height="2.52500558" + x="4.19200130" + y="3.99201751" + ry="0.24353582" + rx="0.17729682" /> + <rect + style="font-size:12;fill:url(#linearGradient615);fill-rule:evenodd;stroke-width:0.0625pt;" + id="rect789" + width="3.50360680" + height="3.28946352" + x="-0.00256788" + y="3.64276290" + ry="0.48750699" /> + <rect + style="font-size:12;fill:url(#linearGradient613);fill-rule:evenodd;stroke-width:0.15625;" + id="rect790" + width="2.53944063" + height="2.52500558" + x="0.46125068" + y="3.99201751" + ry="0.24353582" + rx="0.17729682" /> + <rect + style="font-size:12;fill:url(#linearGradient615);fill-rule:evenodd;stroke-width:0.0625pt;" + id="rect791" + width="3.50360680" + height="3.28946352" + x="7.45893283" + y="3.64276290" + ry="0.48750699" /> + <rect + style="font-size:12;fill:url(#linearGradient613);fill-rule:evenodd;stroke-width:0.15625;" + id="rect792" + width="2.53944063" + height="2.52500558" + x="7.92275138" + y="3.99201751" + ry="0.24353582" + rx="0.17729682" /> + <text + xml:space="preserve" + style="font-size:1.2;font-weight:normal;stroke-width:1pt;font-family:Bitstream Vera Sans;" + x="2.21508991" + y="6.47878742" + id="text796" + sodipodi:linespacing="100%" + transform="scale(1.288158,1.288158)"><tspan + x="2.21508980" + y="6.47878742" + sodipodi:role="line" + id="tspan797">arrows</tspan></text> + <path + style="font-size:12;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.122214;" + d="M 5.1322313 0.90289456 L 5.1322313 2.6190467 " + id="path801" + sodipodi:nodetypes="cc" /> + <path + style="fill:#000000;fill-rule:evenodd;stroke:none;stroke-opacity:1;stroke-width:0;stroke-linejoin:miter;stroke-linecap:butt;fill-opacity:1;stroke-dasharray:none;" + d="M 4.6182793 1.3212845 L 5.1418233 0.81871946 L 5.6541543 1.3212845 L 4.6182793 1.3212845 z " + id="path813" + sodipodi:nodetypes="cccc" /> + <path + style="font-size:12;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.122214;" + d="M 5.1322313 6.0781819 L 5.1322313 4.3620297 " + id="path814" + sodipodi:nodetypes="cc" /> + <path + style="fill:#000000;fill-rule:evenodd;stroke:none;stroke-opacity:1;stroke-width:0;stroke-linejoin:miter;stroke-linecap:butt;fill-opacity:1;stroke-dasharray:none;" + d="M 4.6182793 5.6597919 L 5.1418233 6.162357 L 5.6541543 5.6597919 L 4.6182793 5.6597919 z " + id="path815" + sodipodi:nodetypes="cccc" /> + <path + style="font-size:12;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.122214;" + d="M 9.868405 5.2661777 L 8.1522594 5.2661777 " + id="path816" + sodipodi:nodetypes="cc" /> + <path + style="fill:#000000;fill-rule:evenodd;stroke:none;stroke-opacity:1;stroke-width:0;stroke-linejoin:miter;stroke-linecap:butt;fill-opacity:1;stroke-dasharray:none;" + d="M 9.4500205 5.7801297 L 9.952579 5.2565857 L 9.4500205 4.7442547 L 9.4500205 5.7801297 z " + id="path817" + sodipodi:nodetypes="cccc" /> + <path + style="font-size:12;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.122214;" + d="M 0.76312022 5.2661777 L 2.4792643 5.2661777 " + id="path818" + sodipodi:nodetypes="cc" /> + <path + style="fill:#000000;fill-rule:evenodd;stroke:none;stroke-opacity:1;stroke-width:0;stroke-linejoin:miter;stroke-linecap:butt;fill-opacity:1;stroke-dasharray:none;" + d="M 1.1815105 5.7801297 L 0.67894514 5.2565857 L 1.1815105 4.7442547 L 1.1815105 5.7801297 z " + id="path819" + sodipodi:nodetypes="cccc" /> + </g> + + <g + id="up"> + <rect + style="font-size:12;fill:url(#linearGradient615);fill-rule:evenodd;stroke:none;stroke-width:0.0625pt;" + id="rect800" + width="7.00721359" + height="6.57892704" + x="-0.00741097" + y="0.11458590" + ry="0.97501397" /> + <rect + style="font-size:12;fill:url(#linearGradient613);fill-rule:evenodd;stroke:none;stroke-width:0.15625;" + id="rect802" + width="5.07888126" + height="5.05001116" + x="0.92021832" + y="0.81310272" + ry="0.48707163" + rx="0.35459363" /> + <path + style="font-size:12;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.244428;" + d="M 2.8349462 1.7275401 L 2.8349462 5.1598442 " + id="path825" + sodipodi:nodetypes="cc" /> + <path + style="font-size:12;fill-rule:evenodd;stroke-width:0;" + d="M 1.8070423 2.5643198 L 2.8541302 1.5591899 L 3.8787922 2.5643198 L 1.8070423 2.5643198 z " + id="path826" + sodipodi:nodetypes="cccc" /> + <text + xml:space="preserve" + style="font-size:1.2;font-weight:normal;stroke-width:1pt;font-family:Bitstream Vera Sans;" + x="1.82973492" + y="6.29683936" + id="text827" + sodipodi:linespacing="100%" + transform="scale(1.288158,1.288158)"><tspan + x="1.82973492" + y="6.29683924" + sodipodi:role="line" + id="tspan828">up</tspan></text> + </g> + <g + id="down"> + <rect + style="font-size:12;fill:url(#linearGradient615);fill-rule:evenodd;stroke-width:0.0625pt;" + id="rect839" + width="7.00721359" + height="6.57892704" + x="-0.00740963" + y="0.11458590" + ry="0.97501397" /> + <rect + style="font-size:12;fill:url(#linearGradient613);fill-rule:evenodd;stroke-width:0.15625;" + id="rect840" + width="5.07888126" + height="5.05001116" + x="0.92021960" + y="0.81310272" + ry="0.48707163" + rx="0.35459363" /> + <path + style="font-size:12;fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.244428;" + d="M 2.8349477 4.9915303 L 2.8349477 1.5592262 " + id="path841" + sodipodi:nodetypes="cc" /> + <path + style="font-size:12;fill-rule:evenodd;stroke-width:0;" + d="M 1.8070437 4.1547506 L 2.8541317 5.1598805 L 3.8787938 4.1547506 L 1.8070437 4.1547506 z " + id="path842" + sodipodi:nodetypes="cccc" /> + <text + xml:space="preserve" + style="font-size:1.2;font-weight:normal;stroke-width:1pt;font-family:Bitstream Vera Sans;" + x="1.04129975" + y="6.29683924" + id="text843" + sodipodi:linespacing="100%" + transform="scale(1.288158,1.288158)"><tspan + x="1.04129970" + y="6.29683924" + sodipodi:role="line" + id="tspan844">down</tspan></text> + </g> + + + <g + id="left-arrow"> + <rect + style="font-size:12.000000;fill:url(#linearGradient615);fill-rule:evenodd;stroke-width:0.062500000pt;" + id="rect4608" + width="7.0072136" + height="6.5789270" + x="-0.0074096299" + y="0.11458590" + ry="0.97501397" + rx="0.97501397" /> + <rect + style="font-size:12.000000;fill:url(#linearGradient613);fill-rule:evenodd;stroke-width:0.15625000;" + id="rect4609" + width="5.0788813" + height="5.0500112" + x="0.92021960" + y="0.81310272" + ry="0.48707163" + rx="0.35459363" /> + <path + style="font-size:12.000000;fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.24442799;" + d="M 1.6924937,3.3980186 L 5.1247978,3.3980185" + id="path4610" + sodipodi:nodetypes="cc" /> + <path + style="font-size:12.000000;fill-rule:evenodd;stroke-width:0.0000000;" + d="M 2.5292733,2.3701144 L 1.5241435,3.4172024 L 2.5292733,4.4418646 L 2.5292733,2.3701144 z " + id="path4611" + sodipodi:nodetypes="cccc" /> + <text + xml:space="preserve" + style="font-size:1.2000000;font-weight:normal;stroke-width:1.0000000pt;font-family:Bitstream Vera Sans;" + x="1.0412997" + y="6.2968392" + id="text4612" + sodipodi:linespacing="100%" + transform="matrix(1.288158,0.000000,0.000000,1.288158,0.717169,2.842171e-14)"><tspan + x="1.0412997" + y="6.2968392" + sodipodi:role="line" + id="tspan4613">left</tspan></text> + </g> + <g + id="right-arrow"> + <rect + style="font-size:12.000000;fill:url(#linearGradient615);fill-rule:evenodd;stroke-width:0.062500000pt;" + id="rect4598" + width="7.0072136" + height="6.5789270" + x="-0.0074096299" + y="0.11458590" + ry="0.97501397" + rx="0.97501397" /> + <rect + style="font-size:12.000000;fill:url(#linearGradient613);fill-rule:evenodd;stroke-width:0.15625000;" + id="rect4599" + width="5.0788813" + height="5.0500112" + x="0.92021960" + y="0.81310272" + ry="0.48707163" + rx="0.35459363" /> + <path + style="font-size:12.000000;fill:none;fill-opacity:0.75000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.24442799;" + d="M 5.1234847,3.4139604 L 1.6911806,3.4139605" + id="path4600" + sodipodi:nodetypes="cc" /> + <path + style="font-size:12.000000;fill-rule:evenodd;stroke-width:0.0000000;" + d="M 4.2867051,4.4418646 L 5.2918349,3.3947766 L 4.2867051,2.3701144 L 4.2867051,4.4418646 z " + id="path4601" + sodipodi:nodetypes="cccc" /> + <text + xml:space="preserve" + style="font-size:1.2000000;font-weight:normal;stroke-width:1.0000000pt;font-family:Bitstream Vera Sans;" + x="1.0412997" + y="6.2968392" + id="text4602" + sodipodi:linespacing="100%" + transform="scale(1.288158,1.288158)"><tspan + x="1.0412997" + y="6.2968392" + sodipodi:role="line" + id="tspan4603">right</tspan></text> + </g> + +<xsl:apply-templates/> +</svg> +</xsl:template> + +<xsl:template match="k:root/text() | k:column/text() | k:root/k:p"/> + +<xsl:template match="k:column"> +<xsl:variable name="y" select=" + count(preceding::k:section)*$space-section + + count(preceding::k:group)*$space-group + + count(preceding::k:title)*$space-title + + count(preceding::k:keys)*$space-keys + + count(preceding::k:mouse)*$space-mouse + + count(preceding::k:note)*$space-note"/> +<xsl:variable name="x" select="count(preceding::k:column)*$section-width"/> + <g transform="translate({$x},{-$y})"> + <xsl:apply-templates/> + </g> +</xsl:template> + +<xsl:template match="k:section"> +<xsl:variable name="y" select=" + count(preceding::k:section)*$space-section + + count(preceding::k:group)*$space-group + + count(preceding::k:title)*$space-title + + count(preceding::k:keys)*$space-keys + + count(preceding::k:mouse)*$space-mouse + + count(preceding::k:note)*$space-note"/> +<xsl:variable name="h" select=" + $space-section + + count(descendant::k:group)*$space-group + + count(descendant::k:title)*$space-title + + count(descendant::k:keys)*$space-keys + + count(descendant::k:mouse)*$space-mouse + + count(descendant::k:note)*$space-note"/> + <rect + style="fill:#{@color};fill-rule:evenodd;stroke:none" + width="{$section-width}" + height="{$h}" + x="0" + y="{$y}"/> + <text + xml:space="preserve" + style="{$style-section}" + x="{$section-hskip + 1*$w-key}" + y="{$y + $skip-section-title}" + id="sect{count(preceding-sibling::k:section) + 1}" + ><tspan + x="{$section-hskip + 1*$w-key}" + y="{$y + $skip-section-title}" + sodipodi:role="line" + id="sect-tspan{count(preceding-sibling::k:section) + 1}" + ><xsl:value-of select="@title"/></tspan></text> +<xsl:apply-templates/> +</xsl:template> + +<xsl:template match="k:title"> +<xsl:variable name="y" select=" + count(preceding::k:section) * $space-section + + count(preceding::k:group)*$space-group + + count(preceding::k:title)*$space-title + + count(preceding::k:keys)*$space-keys + + count(preceding::k:mouse)*$space-mouse + + count(preceding::k:note)*$space-note + + $skip-section-content + + $skip-group-content + + $skip-title-content"/> + + <text + xml:space="preserve" + style="{$style-title}" + x="{$section-hskip + 1*$w-key}" + y="{$y}" + id="title{count(preceding::k:title)+1}" + ><tspan + x="{$section-hskip + 1*$w-key}" + y="{$y}" + sodipodi:role="line" + id="title-tspan{count(preceding::k:title)+1}"><xsl:value-of select="text()"/></tspan></text> + +</xsl:template> + +<xsl:template match="k:note"> +<xsl:variable name="y" select=" + count(preceding::k:section) * $space-section + + count(preceding::k:group)*$space-group + + count(preceding::k:title)*$space-title + + count(preceding::k:keys)*$space-keys + + count(preceding::k:mouse)*$space-mouse + + count(preceding::k:note)*$space-note + + $skip-section-content + + $skip-group-content + + $skip-note-content"/> + + <text + xml:space="preserve" + style="{$style-note}" + x="{$section-hskip + $note-hskip}" + y="{$y}" + id="note{count(preceding::k:note)+1}" + ><tspan + x="{$section-hskip + $note-hskip}" + y="{$y}" + sodipodi:role="line" + id="note-tspan{count(preceding::k:note)+1}"><xsl:value-of select="text()"/></tspan></text> + +</xsl:template> + + +<xsl:template match="k:keys"> +<xsl:variable name="y" select=" + count(preceding::k:section) * $space-section + + count(preceding::k:group)*$space-group + + count(preceding::k:title)*$space-title + + count(preceding::k:keys)*$space-keys + + count(preceding::k:mouse)*$space-mouse + + count(preceding::k:note)*$space-note + + $skip-section-content + + $skip-group-content + + $skip-keys-content"/> +<xsl:apply-templates select="k:key | k:action"> +<xsl:with-param name="y" select="$y"/> +</xsl:apply-templates> +</xsl:template> + +<xsl:template match="k:mouse"> +<xsl:variable name="y" select=" + count(preceding::k:section) * $space-section + + count(preceding::k:group)*$space-group + + count(preceding::k:title)*$space-title + + count(preceding::k:keys)*$space-keys + + count(preceding::k:mouse)*$space-mouse + + count(preceding::k:note)*$space-note + + $skip-section-content + + $skip-group-content + + $skip-mouse-content"/> +<xsl:apply-templates select="k:key | k:action"> +<xsl:with-param name="y" select="$y"/> +</xsl:apply-templates> +</xsl:template> + +<xsl:template match="k:action"> +<xsl:param name="y"/> +<xsl:variable name="x" select="2*$w-key + $section-hskip + $action-hskip"/> <!--max two keys--> + <text + xml:space="preserve" + style="{$style-action}" + x="{$x}" + y="{$y + $skip-keys-action}" + id="action{count(preceding::k:action)+1}" + ><tspan + x="{$x}" + y="{$y + $skip-keys-action}" + sodipodi:role="line" + id="action-tspan{count(preceding::k:action)+1}" + ><xsl:value-of select="text()"/></tspan></text> +</xsl:template> + +<xsl:template match="k:key"> +<xsl:param name="y"/> +<xsl:variable name="x" select="(1 - count(following-sibling::k:key))*$w-key + $section-hskip"/> <!--max two keys--> +<xsl:apply-templates> +<xsl:with-param name="x" select="$x"/> +<xsl:with-param name="y" select="$y"/> +</xsl:apply-templates> +<xsl:variable name="comma-skip"> +<xsl:choose> +<xsl:when test="k:wheel | k:left-click | k:left-drag | k:mid-click | k:mid-drag | k:right-click | k:right-drag">0.4</xsl:when> +<xsl:otherwise>1.0</xsl:otherwise> +</xsl:choose> +</xsl:variable> +<xsl:if test="following-sibling::k:key/node()"> + <text + xml:space="preserve" + style="{$style-action}" + x="{$x + $w-key - $comma-skip}" + y="{$y + $skip-keys-action}" + ><tspan + x="{$x + $w-key - $comma-skip}" + y="{$y + $skip-keys-action}" + sodipodi:role="line" + >,</tspan></text> +</xsl:if> +</xsl:template> + +<xsl:template match="k:left-click | k:shift | k:ctrl | k:alt | k:left | k:right"> +<xsl:param name="x"/> +<xsl:param name="y"/> +<xsl:variable name="xx" select=" + $x + + $w-key - + count(following-sibling::k:shift | self::k:shift)*$w-shift - + count(following-sibling::k:ctrl | self::k:ctrl)*$w-ctrl - + count(following-sibling::k:alt | self::k:alt)*$w-alt - + count(following-sibling::k:left | self::k:left)*$w-left - + count(following-sibling::k:right | self::k:right)*$w-right - + count(following-sibling::text())*$w-letterkey - + count(following-sibling::k:keyf)*$w-letterkey - + count(following-sibling::k:misc-wide)*$w-misc-wide - + count(following-sibling::k:misc)*$w-misc - + count(following-sibling::k:arrows)*$w-arrows - + count(following-sibling::k:wheel | following-sibling::k:left-click | following-sibling::k:left-drag | following-sibling::k:mid-click | following-sibling::k:mid-drag | following-sibling::k:right-click | following-sibling::k:right-drag | self::k:left-click)*$w-mouse +"/> +<use xlink:href="#{name()}" +transform="translate({$xx},{$y})"/> +</xsl:template> + +<xsl:template match="k:key/text()"> +<xsl:param name="x"/> +<xsl:param name="y"/> +<xsl:variable name="xx" select=" + $x + + $w-key - + $w-letterkey"/> +<use xlink:href="#letterkey" +transform="translate({$xx},{$y})"/> + <text + xml:space="preserve" + style="{$style-letterkey}" + x="{1.7 + $xx}" + y="{4.66851145 + $y}" + ><tspan + x="{1.7 + $xx}" + y="{4.66851145 + $y}" + sodipodi:role="line" + ><xsl:value-of select="."/></tspan></text> +</xsl:template> + +<xsl:template match="k:keyf"> +<xsl:param name="x"/> +<xsl:param name="y"/> +<xsl:variable name="xx" select=" + $x + + $w-key - + $w-letterkey"/> +<use xlink:href="#letterkey" +transform="translate({$xx},{$y})"/> + <text + xml:space="preserve" + style="{$style-keyf}" + x="{0.9 + $xx}" + y="{3.5 + $y}" + ><tspan + x="{0.9 + $xx}" + y="{3.5 + $y}" + sodipodi:role="line" + ><xsl:value-of select="@f"/></tspan></text> +</xsl:template> + +<xsl:template match="k:misc-wide"> +<xsl:param name="x"/> +<xsl:param name="y"/> +<xsl:variable name="xx" select=" + $x + + $w-key - + $w-misc-wide"/> +<use xlink:href="#misc-wide" +transform="translate({$xx},{$y})"/> + <text + xml:space="preserve" + style="{$style-keymisc}" + x="{1.1 + $xx}" + y="{3.7 + $y}" + ><tspan + x="{1.1 + $xx}" + y="{3.7 + $y}" + sodipodi:role="line" + ><xsl:value-of select="@f"/></tspan></text> +</xsl:template> + +<xsl:template match="k:misc"> +<xsl:param name="x"/> +<xsl:param name="y"/> +<xsl:variable name="xx" select=" + $x + + $w-key - + $w-misc"/> +<use xlink:href="#misc" +transform="translate({$xx},{$y})"/> + <text + xml:space="preserve" + style="{$style-keymisc}" + x="{1.1 + $xx}" + y="{3.7 + $y}" + ><tspan + x="{1.1 + $xx}" + y="{3.7 + $y}" + sodipodi:role="line" + ><xsl:value-of select="@f"/></tspan></text> +</xsl:template> + +<xsl:template match="k:arrows"> +<xsl:param name="x"/> +<xsl:param name="y"/> +<xsl:variable name="xx" select=" + $x + + $w-key - + $w-arrows"/> +<use xlink:href="#arrows" +transform="translate({$xx},{$y})"/> +</xsl:template> + +<xsl:template match="k:up | k:down | k:left-arrow | k:right-arrow"> +<xsl:param name="x"/> +<xsl:param name="y"/> +<xsl:variable name="xx" select=" + $x + + $w-key - + $w-letterkey"/> +<use xlink:href="#{name()}" +transform="translate({$xx},{$y})"/> +</xsl:template> + +<xsl:template match="k:wheel | k:left-drag | k:mid-click | k:mid-drag | k:right-click | k:right-drag"> +<xsl:param name="x"/> +<xsl:param name="y"/> +<xsl:variable name="xx" select=" + $x + + $w-key - + $w-mouse - + count(following-sibling::k:misc-wide)*($w-misc-wide + 1)"/> +<use xlink:href="#{name()}" +transform="translate({$xx},{$y})"/> +</xsl:template> + +</xsl:stylesheet>
\ No newline at end of file diff --git a/doc/keys.README b/doc/keys.README new file mode 100644 index 000000000..7a71c758a --- /dev/null +++ b/doc/keys.README @@ -0,0 +1,26 @@ +To generate HTML and SVG files from keys.xml, you'll need an XSLT +processor. Any decent XSLT 1.0 or XSLT 2.0 processor should work. For example: + +I. Using xsltproc (available on most Linux systems): + +xsltproc keys-html.xsl keys.xml > keys.html +xsltproc keys-svg.xsl keys.xml > keys.svg + +II. Using Saxon (a Java processor that works on any Java-supporting platform): + +1. Install Java + +2. Install Saxon (http://saxon.sf.net) so that saxon.jar is in your Java classpath + +3. Run: + +java net.sf.saxon.Transform doc/keys.xml doc/keys-svg.xsl > icons/keys.svg +java net.sf.saxon.Transform doc/keys.xml doc/keys-html.xsl > doc/keys.html + +(for Saxon 7.*) or + +java com.icl.saxon.StyleSheet doc/keys.xml doc/keys-svg.xsl > icons/keys.svg +java com.icl.saxon.StyleSheet doc/keys.xml doc/keys-html.xsl > doc/keys.html + +(for Saxon 6.*) + diff --git a/doc/keys.fr.html b/doc/keys.fr.html new file mode 100644 index 000000000..f428e3737 --- /dev/null +++ b/doc/keys.fr.html @@ -0,0 +1,903 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> +<!-- +Do not edit this file. +It is generated automatically from doc/keys.xml by doc/keys-html.xsl. +--><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title>Inkscape keys and mouse reference</title><style type="text/css"> +.key {font-weight: bold} +.action {} +.note {padding-left: 4em; font-size: 70%} +h1 {} +h4 {font-weight: bold; font-style: italic} +</style></head><body bgcolor="#ffffff"><p> +Sauf mention contraire, les touches du pavé numérique (Début, Fin, +, -, les flèches et les chiffres par exemple) sont supposées se comporter comme des touches normales. Se référer au wiki, sur la page KeyboardShortcutsToDo (en anglais), pour voir la discussion sur les autres raccourcis que nous prévoyons d'instaurer; vous pouvez y laisser vos idées et requêtes. +</p><table border="0" cellspacing="0" cellpadding="4"><tr><td colspan="3"><h1>Outils</h1></td></tr> + + +<tr bgcolor="f5f5f5"><td align="right"><span class="key">F1, +s</span></td><td><span class="action">sélecteur</span></td></tr> +<tr bgcolor="f5f5f5"><td align="right"><span class="key">Espace</span></td><td><span class="action">sélecteur (temporaire)</span></td></tr> +<tr bgcolor="f5f5f5"><td colspan="3"><span class="note">Espace bascule temporairement vers le sélecteur. Espace de nouveau rebascule vers l'outil précédent.</span></td></tr> +<tr bgcolor="f5f5f5"><td align="right"><span class="key">F2, +n</span></td><td><span class="action">nœud</span></td></tr> +<tr bgcolor="f5f5f5"><td align="right"><span class="key">F3, +z</span></td><td><span class="action">zoom</span></td></tr> +<tr bgcolor="f5f5f5"><td align="right"><span class="key">F4, +r</span></td><td><span class="action">rectangle</span></td></tr> +<tr bgcolor="f5f5f5"><td align="right"><span class="key">F5, +e</span></td><td><span class="action">ellipse/arc</span></td></tr> +<tr bgcolor="f5f5f5"><td align="right"><span class="key">F6, +p</span></td><td><span class="action">crayon (main levée)</span></td></tr> +<tr bgcolor="f5f5f5"><td align="right"><span class="key">Shift+F6, +b</span></td><td><span class="action">stylo (Bézier)</span></td></tr> +<tr bgcolor="f5f5f5"><td align="right"><span class="key">Ctrl+F6, +</span></td><td><span class="action">plume calligraphique</span></td></tr> +<tr bgcolor="f5f5f5"><td align="right"><span class="key">F7, +d</span></td><td><span class="action">pipette</span></td></tr> +<tr bgcolor="f5f5f5"><td align="right"><span class="key">F8, +t</span></td><td><span class="action">texte</span></td></tr> +<tr bgcolor="f5f5f5"><td align="right"><span class="key">F9, +i</span></td><td><span class="action">spirale</span></td></tr> +<tr bgcolor="f5f5f5"><td align="right"><span class="key">Shift+F9, +*</span></td><td><span class="action">étoile</span></td></tr> +<tr bgcolor="f5f5f5"><td colspan="3"><span class="note">Un double clic sur le bouton d'un outil ouvre la boîte de dialogue des préférences à l'onglet de l'outil correspondant. +</span></td></tr> + +<tr><td colspan="3"><h1>Fichier</h1></td></tr> + + +<tr bgcolor="f3f2e2"><td align="right"><span class="key">Ctrl+N</span></td><td><span class="action">créer un nouveau document</span></td></tr> +<tr bgcolor="f3f2e2"><td align="right"><span class="key">Ctrl+O</span></td><td><span class="action">ouvrir un document SVG</span></td></tr> +<tr bgcolor="f3f2e2"><td align="right"><span class="key">Shift+Ctrl+E</span></td><td><span class="action">exporter en PNG</span></td></tr> +<tr bgcolor="f3f2e2"><td align="right"><span class="key">Ctrl+I</span></td><td><span class="action">importer un bitmap ou SVG</span></td></tr> +<tr bgcolor="f3f2e2"><td align="right"><span class="key">Ctrl+P</span></td><td><span class="action">imprimer le document</span></td></tr> +<tr bgcolor="f3f2e2"><td align="right"><span class="key">Ctrl+S</span></td><td><span class="action">sauver le document</span></td></tr> +<tr bgcolor="f3f2e2"><td align="right"><span class="key">Shift+Ctrl+S</span></td><td><span class="action">sauver sous un autre nom</span></td></tr> +<tr bgcolor="f3f2e2"><td align="right"><span class="key">Ctrl+Q</span></td><td><span class="action">quitter Inkscape</span></td></tr> + + +<tr><td colspan="3"><h1>Fenêtre</h1></td></tr> + + +<tr bgcolor="e8fae1"><td align="right"><span class="key">Ctrl+R</span></td><td><span class="action">(dés)afficher les règles</span></td></tr> +<tr bgcolor="e8fae1"><td align="right"><span class="key">Ctrl+B</span></td><td><span class="action">(dés)afficher les barres de défilement</span></td></tr> +<tr bgcolor="e8fae1"><td align="right"><span class="key">F11</span></td><td><span class="action">(dés)afficher en plein écran</span></td></tr> + + + +<tr bgcolor="e8fae1"><td align="right"><span class="key">F10</span></td><td><span class="action">menu principal</span></td></tr> +<tr bgcolor="e8fae1"><td colspan="3"><span class="note">Les menus peuvent aussi être activés en appuyant simultanément sur Alt et la lettre soulignée dans le nom du menu.</span></td></tr> +<tr bgcolor="e8fae1"><td align="right"><span class="key">Shift+F10, +right click</span></td><td><span class="action">menu contextuel</span></td></tr> + + + +<tr bgcolor="e8fae1"><td align="right"><span class="key">Ctrl+F4, +Ctrl+W</span></td><td><span class="action">fermer la fenêtre (document)</span></td></tr> +<tr bgcolor="e8fae1"><td colspan="3"><span class="note">Quitte Inkscape si la fenêtre courante est le seul document ouvert.</span></td></tr> +<tr bgcolor="e8fae1"><td align="right"><span class="key">Ctrl+Tab</span></td><td><span class="action">fenêtre (document) suivante</span></td></tr> +<tr bgcolor="e8fae1"><td align="right"><span class="key">Shift+Ctrl+Tab</span></td><td><span class="action">fenêtre (document) précédente</span></td></tr> +<tr bgcolor="e8fae1"><td colspan="3"><span class="note">Permet de circuler entre les fenêtres (documents) en avant ou en arrière.</span></td></tr> + + +<tr><td colspan="3"><h1>Dialogues</h1></td></tr> + +<tr bgcolor="f0eae7"><td align="right"><span class="key">Shift+Ctrl+F</span></td><td><span class="action">Remplissage et contour</span></td></tr> +<tr bgcolor="f0eae7"><td align="right"><span class="key">Shift+Ctrl+T</span></td><td><span class="action">Texte et police</span></td></tr> +<tr bgcolor="f0eae7"><td align="right"><span class="key">Shift+Ctrl+M</span></td><td><span class="action">Transformer</span></td></tr> +<tr bgcolor="f0eae7"><td align="right"><span class="key">Shift+Ctrl+A</span></td><td><span class="action">Aligner et distribuer</span></td></tr> +<tr bgcolor="f0eae7"><td align="right"><span class="key">Shift+Ctrl+O</span></td><td><span class="action">Propriétés de l'objet</span></td></tr> +<tr bgcolor="f0eae7"><td align="right"><span class="key">Shift+Ctrl+X</span></td><td><span class="action">Editeur XML</span></td></tr> +<tr bgcolor="f0eae7"><td align="right"><span class="key">Shift+Ctrl+D</span></td><td><span class="action">Préférences du document</span></td></tr> +<tr bgcolor="f0eae7"><td align="right"><span class="key">Shift+Ctrl+P</span></td><td><span class="action">Préférences d'Inkscape</span></td></tr> +<tr bgcolor="f0eae7"><td align="right"><span class="key">Shift+Ctrl+E</span></td><td><span class="action">Exporter en PNG</span></td></tr> +<tr bgcolor="f0eae7"><td align="right"><span class="key">Ctrl+F</span></td><td><span class="action">Rechercher</span></td></tr> +<tr bgcolor="f0eae7"><td align="right"><span class="key">Shift+Alt+B</span></td><td><span class="action">Vectoriser un bitmap</span></td></tr> +<tr bgcolor="f0eae7"><td colspan="3"><span class="note">Ces raccourcis ouvrent si nécessaire une nouvelle boîte de dialogue, sinon réactivent la boîte correspondante.</span></td></tr> + + + +<tr bgcolor="f0eae7"><td colspan="3"><h4>(dés)Afficher</h4></td></tr> +<tr bgcolor="f0eae7"><td align="right"><span class="key">F12</span></td><td><span class="action">(dés)afficher les boîtes de dialogue</span></td></tr> +<tr bgcolor="f0eae7"><td colspan="3"><span class="note">Masque temporairement les boîtes de dialogue ouvertes. Un appui de plus sur F12 les rend de nouveau visibles.</span></td></tr> + + + +<tr bgcolor="f0eae7"><td colspan="3"><h4>Dans une boîte de dialogue</h4></td></tr> +<tr bgcolor="f0eae7"><td align="right"><span class="key">Esc</span></td><td><span class="action">retourner au canevas</span></td></tr> +<tr bgcolor="f0eae7"><td align="right"><span class="key">Ctrl+F4, +Ctrl+W</span></td><td><span class="action">fermer le dialogue</span></td></tr> +<tr bgcolor="f0eae7"><td align="right"><span class="key">Tab</span></td><td><span class="action">passer au champ suivant</span></td></tr> +<tr bgcolor="f0eae7"><td align="right"><span class="key">Shift+Tab</span></td><td><span class="action">passer au champ précédent</span></td></tr> +<tr bgcolor="f0eae7"><td align="right"><span class="key">Entrée</span></td><td><span class="action">valider la nouvelle valeur</span></td></tr> +<tr bgcolor="f0eae7"><td colspan="3"><span class="note">Valide la nouvelle valeur entrée dans un champ et retourne au canevas.</span></td></tr> +<tr bgcolor="f0eae7"><td align="right"><span class="key">Ctrl+Entrée</span></td><td><span class="action">définir la valeur d'un attribut (éditeur XML)</span></td></tr> +<tr bgcolor="f0eae7"><td colspan="3"><span class="note">Valide la nouvelle valeur d'un attribut dans l'éditeur XML (comme cliquer sur le bouton "Définir l'attribut".</span></td></tr> +<tr bgcolor="f0eae7"><td align="right"><span class="key">Espace, +Entrée</span></td><td><span class="action">activer le bouton ou la valeur d'une liste.</span></td></tr> +<tr bgcolor="f0eae7"><td align="right"><span class="key">Ctrl+Préc., +Ctrl+Suiv.</span></td><td><span class="action">naviguer parmi les onglets d'un dialogue</span></td></tr> + +<tr><td colspan="3"><h1>Contrôle</h1></td></tr> + + +<tr bgcolor="f8f3e9"><td colspan="3"><span class="note">La barre de contrôle en haut de la fenêtre document affiche des champs et des contrôles pour chacun des outils.</span></td></tr> +<tr bgcolor="f8f3e9"><td align="right"><span class="key">Alt+X</span></td><td><span class="action">aller au premier champ</span></td></tr> +<tr bgcolor="f8f3e9"><td align="right"><span class="key">Entrée</span></td><td><span class="action">valider la nouvelle valeur</span></td></tr> +<tr bgcolor="f8f3e9"><td colspan="3"><span class="note">Valide la nouvelle valeur entrée dans un champ et retourne au canevas.</span></td></tr> +<tr bgcolor="f8f3e9"><td align="right"><span class="key">Esc</span></td><td><span class="action">annuler les modifications, retourner au canevas</span></td></tr> +<tr bgcolor="f8f3e9"><td colspan="3"><span class="note">Annule la modification d'un champ et retourne au canevas.</span></td></tr> +<tr bgcolor="f8f3e9"><td align="right"><span class="key">Ctrl+Z</span></td><td><span class="action">annuler les modifications</span></td></tr> +<tr bgcolor="f8f3e9"><td colspan="3"><span class="note">Annule la modification d'un champ mais reste dans ce champ.</span></td></tr> +<tr bgcolor="f8f3e9"><td align="right"><span class="key">Tab</span></td><td><span class="action">passer au champ suivant</span></td></tr> +<tr bgcolor="f8f3e9"><td align="right"><span class="key">Shift+Tab</span></td><td><span class="action">passer au champ précédent</span></td></tr> +<tr bgcolor="f8f3e9"><td colspan="3"><span class="note">Permet de naviguer entre les différents champs de la barre de contrôle (les modifications du champs quitté sont validées).</span></td></tr> + + + +<tr bgcolor="f8f3e9"><td colspan="3"><h4>Modification des valeurs</h4></td></tr> +<tr bgcolor="f8f3e9"><td align="right"><span class="key">Up arrow, +Down arrow</span></td><td><span class="action">modifier la valeur de 0.1</span></td></tr> +<tr bgcolor="f8f3e9"><td align="right"><span class="key">Préc., +Suiv.</span></td><td><span class="action">modifier la valeur de 5.0</span></td></tr> + + +<tr><td colspan="3"><h1>Canevas</h1></td></tr> + + +<tr bgcolor="e5f1e7"><td colspan="3"><h4>Zoom</h4></td></tr> +<tr bgcolor="e5f1e7"><td align="right"><span class="key">=, ++</span></td><td><span class="action">zoommer</span></td></tr> +<tr bgcolor="e5f1e7"><td align="right"><span class="key">-</span></td><td><span class="action">dézoommer</span></td></tr> +<tr bgcolor="e5f1e7"><td colspan="3"><span class="note">Les touches +/- du pavé numérique permettent de zoommer même pendant l'édition d'un objet texte.</span></td></tr> +<tr bgcolor="e5f1e7"><td align="right"><span class="key">middle click, +Ctrl+right click</span></td><td><span class="action">zoommer</span></td></tr> +<tr bgcolor="e5f1e7"><td align="right"><span class="key">Shift+middle click, +Shift+right click</span></td><td><span class="action">dézoommer</span></td></tr> +<tr bgcolor="e5f1e7"><td align="right"><span class="key">Ctrl+mouse wheel</span></td><td><span class="action">(dé)zoommer</span></td></tr> +<tr bgcolor="e5f1e7"><td align="right"><span class="key">Alt+Z</span></td><td><span class="action">activer le champ de zoom</span></td></tr> +<tr bgcolor="e5f1e7"><td colspan="3"><span class="note">Le champ zoom dans le coin inférieur gauche de la fenêtre vous permet de spécifier précisément la valeur de zoom.</span></td></tr> + + + +<tr bgcolor="e5f1e7"><td colspan="3"><h4>Zooms prédéfinis</h4></td></tr> +<tr bgcolor="e5f1e7"><td align="right"><span class="key">1</span></td><td><span class="action">zoommer à 1:1</span></td></tr> +<tr bgcolor="e5f1e7"><td align="right"><span class="key">2</span></td><td><span class="action">zoommer à 1:2</span></td></tr> +<tr bgcolor="e5f1e7"><td align="right"><span class="key">3</span></td><td><span class="action">zoommer sur la sélection</span></td></tr> +<tr bgcolor="e5f1e7"><td align="right"><span class="key">4</span></td><td><span class="action">zoommmer sur le dessin</span></td></tr> +<tr bgcolor="e5f1e7"><td align="right"><span class="key">5</span></td><td><span class="action">zoommer sur la page</span></td></tr> +<tr bgcolor="e5f1e7"><td align="right"><span class="key">Ctrl+E, +6</span></td><td><span class="action">zoommer sur la largeur de page</span></td></tr> + + + +<tr bgcolor="e5f1e7"><td colspan="3"><h4>Historique du zoom</h4></td></tr> +<tr bgcolor="e5f1e7"><td align="right"><span class="key">`</span></td><td><span class="action">(guillement inversé) zoom précédent</span></td></tr> +<tr bgcolor="e5f1e7"><td align="right"><span class="key">Shift+`</span></td><td><span class="action">zoom suivant</span></td></tr> +<tr bgcolor="e5f1e7"><td colspan="3"><span class="note">Ces raccourcis permettent de naviguer parmi les différents niveaux de zoom utilisés pendant la session.</span></td></tr> + + + +<tr bgcolor="e5f1e7"><td colspan="3"><h4>Défilement</h4></td></tr> +<tr bgcolor="e5f1e7"><td align="right"><span class="key">Ctrl+arrows</span></td><td><span class="action">faire défiler le canevas</span></td></tr> +<tr bgcolor="e5f1e7"><td colspan="3"><span class="note">Ces raccourcis peuvent être accélérés, par une répétition rapide ou un appui continu</span></td></tr> +<tr bgcolor="e5f1e7"><td align="right"><span class="key">middle button drag</span></td><td><span class="action">faire défiler le canevas</span></td></tr> +<tr bgcolor="e5f1e7"><td align="right"><span class="key">Shift+right button drag, +Ctrl+right button drag</span></td><td><span class="action">faire défiler le canevas</span></td></tr> +<tr bgcolor="e5f1e7"><td align="right"><span class="key">mouse wheel</span></td><td><span class="action">faire défiler le canevas verticalement</span></td></tr> +<tr bgcolor="e5f1e7"><td align="right"><span class="key">Shift+mouse wheel</span></td><td><span class="action">faire défiler le canevas horizontalement</span></td></tr> + + + +<tr bgcolor="e5f1e7"><td colspan="3"><h4>Guides et grille</h4></td></tr> +<tr bgcolor="e5f1e7"><td align="right"><span class="key">mouse drag</span></td><td><span class="action">créer un guide en le tirant depuis une règle</span></td></tr> +<tr bgcolor="e5f1e7"><td colspan="3"><span class="note">Cliquer-déplacer d'une règle vers le canevas pour créer un nouveau guide. Déplacer un guide vers la règle pour le supprimer.</span></td></tr> +<tr bgcolor="e5f1e7"><td align="right"><span class="key">|, +Shift+\</span></td><td><span class="action">(dés)activer affichage et collage des guides</span></td></tr> +<tr bgcolor="e5f1e7"><td colspan="3"><span class="note">Pour des valeurs différentes d'affichage/collage des guides, les régler dans les Préférences du document.</span></td></tr> +<tr bgcolor="e5f1e7"><td colspan="3"><span class="note">Lors de sa création par cliquer-déplacer depuis une règle, l'affichage et le collage des guides sont activés.</span></td></tr> +<tr bgcolor="e5f1e7"><td align="right"><span class="key">#, +Shift+3</span></td><td><span class="action">(dés)activer affichage et collage de la grille</span></td></tr> +<tr bgcolor="e5f1e7"><td colspan="3"><span class="note">Pour des valeurs différentes d'affichage/collage de la grille, les régler dans les Préférences du document.</span></td></tr> +<tr bgcolor="e5f1e7"><td colspan="3"><span class="note">Notez que seule la touche 3 du clavier principal a une action, pas celle du pavé numérique.</span></td></tr> + +<tr><td colspan="3"><h1>Calques</h1></td></tr> + +<tr bgcolor="f6f9d9"><td align="right"><span class="key">Shift+Préc.</span></td><td><span class="action">déplacer au calque supérieur</span></td></tr> +<tr bgcolor="f6f9d9"><td align="right"><span class="key">Shift+Suiv.</span></td><td><span class="action">déplacer au calque inférieur</span></td></tr> +<tr bgcolor="f6f9d9"><td colspan="3"><span class="note">Ces commandes déplacent les objets sélectionnés d'un calque à un autre.</span></td></tr> + +<tr bgcolor="f6f9d9"><td align="right"><span class="key">Shift+Ctrl+Préc.</span></td><td><span class="action">monter le calque</span></td></tr> +<tr bgcolor="f6f9d9"><td align="right"><span class="key">Shift+Ctrl+Suiv.</span></td><td><span class="action">descendre le calque</span></td></tr> +<tr bgcolor="f6f9d9"><td align="right"><span class="key">Shift+Ctrl+Début</span></td><td><span class="action">monter le calque au premier plan</span></td></tr> +<tr bgcolor="f6f9d9"><td align="right"><span class="key">Shift+Ctrl+Fin</span></td><td><span class="action">descendre le calque à l'arrière plan</span></td></tr> +<tr bgcolor="f6f9d9"><td colspan="3"><span class="note">Ces commandes déplacent le calque courant parmi sa hiérarchie (normalement d'autres calques)</span></td></tr> + +<tr><td colspan="3"><h1>Objet</h1></td></tr> + + +<tr bgcolor="f4ecf5"><td colspan="3"><h4>Annuler/refaire</h4></td></tr> +<tr bgcolor="f4ecf5"><td align="right"><span class="key">Shift+Ctrl+Y, +Ctrl+Z</span></td><td><span class="action">annuler</span></td></tr> +<tr bgcolor="f4ecf5"><td align="right"><span class="key">Shift+Ctrl+Z, +Ctrl+Y</span></td><td><span class="action">refaire</span></td></tr> + + + +<tr bgcolor="f4ecf5"><td colspan="3"><h4>Presse-papiers</h4></td></tr> +<tr bgcolor="f4ecf5"><td align="right"><span class="key">Ctrl+C</span></td><td><span class="action">copier la sélection</span></td></tr> +<tr bgcolor="f4ecf5"><td colspan="3"><span class="note">Copie la sélection dans le presse-papiers Inkscape (et aussi dans le presse-papiers système pour les textes).</span></td></tr> +<tr bgcolor="f4ecf5"><td align="right"><span class="key">Ctrl+X</span></td><td><span class="action">couper la sélection</span></td></tr> +<tr bgcolor="f4ecf5"><td colspan="3"><span class="note">Fonctionne comme un "copier la sélection" suivi de la suppression de la sélection.</span></td></tr> +<tr bgcolor="f4ecf5"><td align="right"><span class="key">Ctrl+V</span></td><td><span class="action">coller le presse-papiers</span></td></tr> +<tr bgcolor="f4ecf5"><td colspan="3"><span class="note">Ceci place les objets du presse-papier sous la souris, ou au centre de la fenêtre si la souris est hors du canevas.</span></td></tr> +<tr bgcolor="f4ecf5"><td colspan="3"><span class="note">Lors de l'édition d'un texte avec l'outil texte, colle le texte du presse-papiers système dans l'objet texte courant.</span></td></tr> +<tr bgcolor="f4ecf5"><td align="right"><span class="key">Ctrl+Alt+V</span></td><td><span class="action">coller sur place</span></td></tr> +<tr bgcolor="f4ecf5"><td colspan="3"><span class="note">Ceci place les objets du presse-papiers au même emplacement que lors de leur copie.</span></td></tr> +<tr bgcolor="f4ecf5"><td align="right"><span class="key">Shift+Ctrl+V</span></td><td><span class="action">coller le style</span></td></tr> +<tr bgcolor="f4ecf5"><td colspan="3"><span class="note">Ceci applique le style du premier des objet copiés à la sélection courante.</span></td></tr> + + + +<tr bgcolor="f4ecf5"><td colspan="3"><h4>Dupliquer</h4></td></tr> +<tr bgcolor="f4ecf5"><td align="right"><span class="key">Ctrl+D</span></td><td><span class="action">dupliquer la sélection</span></td></tr> +<tr bgcolor="f4ecf5"><td colspan="3"><span class="note">Les nouveaux objet(s) sont placés exactement au même endroit, au dessus des originaux et sont sélectionnés.</span></td></tr> + + + +<tr bgcolor="f4ecf5"><td colspan="3"><h4>Cloner</h4></td></tr> +<tr bgcolor="f4ecf5"><td align="right"><span class="key">Alt+D</span></td><td><span class="action">cloner l'objet</span></td></tr> +<tr bgcolor="f4ecf5"><td colspan="3"><span class="note">Un clone peut être déplacé/redimensionné/tourné/incliné indépendament, mais reçoit ses tracé/remplissage/contour de l'original.</span></td></tr> +<tr bgcolor="f4ecf5"><td colspan="3"><span class="note">Le clone est placé exactement au même endroit, au dessus de l'original et est sélectionné.</span></td></tr> +<tr bgcolor="f4ecf5"><td colspan="3"><span class="note">Vous ne pouvez cloner qu'un objet à la fois; si vous voulez cloner plusieurs objets ensemble, groupez-les puis clonez le groupe.</span></td></tr> +<tr bgcolor="f4ecf5"><td align="right"><span class="key">Shift+Alt+D</span></td><td><span class="action">délier le clone</span></td></tr> +<tr bgcolor="f4ecf5"><td colspan="3"><span class="note">Délier un clone supprime le lien vers son original, le clone devenant alors une simple copie.</span></td></tr> +<tr bgcolor="f4ecf5"><td align="right"><span class="key">Shift+D</span></td><td><span class="action">sélectionner l'original</span></td></tr> +<tr bgcolor="f4ecf5"><td colspan="3"><span class="note">Après sélection d'un clone, cette commande sélectionne l'objet original dont le clone est issu.</span></td></tr> + + + +<tr bgcolor="f4ecf5"><td colspan="3"><h4>Bitmaps</h4></td></tr> +<tr bgcolor="f4ecf5"><td align="right"><span class="key">Alt+B</span></td><td><span class="action">créer une copie bitmap</span></td></tr> +<tr bgcolor="f4ecf5"><td colspan="3"><span class="note">Exporte en PNG les objet(s) sélectionnés (les autres objets étant masqués) dans le répertoire du document et réimporte ce PNG.</span></td></tr> +<tr bgcolor="f4ecf5"><td colspan="3"><span class="note">Le bitmap (PNG) importé est placé exactement au même endroit, au dessus de la sélection originale, et est sélectionné.</span></td></tr> +<tr bgcolor="f4ecf5"><td align="right"><span class="key">Shift+Alt+B</span></td><td><span class="action">vectoriser le bitmap</span></td></tr> +<tr bgcolor="f4ecf5"><td colspan="3"><span class="note">Ceci ouvre la boîte de dialogue vectoriser un bitmap, vous permettant de convertir une image bitmap en chemin.</span></td></tr> + + + +<tr bgcolor="f4ecf5"><td colspan="3"><h4>Motif</h4></td></tr> +<tr bgcolor="f4ecf5"><td align="right"><span class="key">Alt+I</span></td><td><span class="action">objet en motif</span></td></tr> +<tr bgcolor="f4ecf5"><td colspan="3"><span class="note">Ceci convertit la sélection en un rectangle rempli avec la sélection comme motif de remplissage.</span></td></tr> +<tr bgcolor="f4ecf5"><td align="right"><span class="key">Shift+Alt+I</span></td><td><span class="action">motif en objet</span></td></tr> +<tr bgcolor="f4ecf5"><td colspan="3"><span class="note">Sépare tout objet sélectionné rempli avec un motif en deux objets : ce même objet sans remplissage et le motif seul.</span></td></tr> + + + +<tr bgcolor="f4ecf5"><td colspan="3"><h4>Grouper</h4></td></tr> +<tr bgcolor="f4ecf5"><td align="right"><span class="key">Shift+Ctrl+U, +Ctrl+G</span></td><td><span class="action">grouper les objets sélectionnés</span></td></tr> +<tr bgcolor="f4ecf5"><td colspan="3"><span class="note">Ctrl+cliquer permet de sélectionner des objets au sein d'un groupe.</span></td></tr> +<tr bgcolor="f4ecf5"><td align="right"><span class="key">Shift+Ctrl+G, +Ctrl+U</span></td><td><span class="action">dégrouper les groupe(s) sélectionnés</span></td></tr> +<tr bgcolor="f4ecf5"><td colspan="3"><span class="note">Retire un niveau de regroupement; répéter plusieurs fois Ctrl+U permet de dégrouper des groupes imbriqués.</span></td></tr> + + + +<tr bgcolor="f4ecf5"><td colspan="3"><h4>Ordre-Z (superposition)</h4></td></tr> +<tr bgcolor="f4ecf5"><td align="right"><span class="key">Début</span></td><td><span class="action">monter la sélection au premier plan</span></td></tr> +<tr bgcolor="f4ecf5"><td align="right"><span class="key">Fin</span></td><td><span class="action">descendre la sélection à l'arrière plan</span></td></tr> +<tr bgcolor="f4ecf5"><td align="right"><span class="key">Préc.</span></td><td><span class="action">monter la sélection d'un cran</span></td></tr> +<tr bgcolor="f4ecf5"><td align="right"><span class="key">Suiv.</span></td><td><span class="action">descendre la sélection d'un cran</span></td></tr> + + +<tr><td colspan="3"><h1>Chemin</h1></td></tr> + + +<tr bgcolor="f9f1d9"><td colspan="3"><h4>Convertir en chemin</h4></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">Shift+Ctrl+C</span></td><td><span class="action">convertir les objet(s) sélectionnés en chemin</span></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">Ctrl+Alt+C</span></td><td><span class="action">convertir les contour(s) sélectionnés en chemin</span></td></tr> + + + +<tr bgcolor="f9f1d9"><td colspan="3"><h4>Booléens</h4></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">Ctrl++</span></td><td><span class="action">union</span></td></tr> +<tr bgcolor="f9f1d9"><td colspan="3"><span class="note">L'union combine plusieurs objets en un seul chemin, fusionnant les recouvrements.</span></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">Ctrl+-</span></td><td><span class="action">différence</span></td></tr> +<tr bgcolor="f9f1d9"><td colspan="3"><span class="note">La différence s'applique à deux objets, extrayant celui du dessus de celui du dessous.</span></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">Ctrl+*</span></td><td><span class="action">intersection</span></td></tr> +<tr bgcolor="f9f1d9"><td colspan="3"><span class="note">L'intersection crée un chemin représentant l'intersection des objets sélectionnés.</span></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">Ctrl+^</span></td><td><span class="action">exclusion (ou exclusif)</span></td></tr> +<tr bgcolor="f9f1d9"><td colspan="3"><span class="note">L'exclusion est similaire à l'union, mais ne s'applique qu'à deux objets et supprime les recouvrements.</span></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">Ctrl+/</span></td><td><span class="action">division (coupe)</span></td></tr> +<tr bgcolor="f9f1d9"><td colspan="3"><span class="note">La division découpe l'objet du dessous en morceaux selon l'objet du dessus, et préserve ses remplissage et contour.</span></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">Ctrl+Alt+/</span></td><td><span class="action">découpe des chemins</span></td></tr> +<tr bgcolor="f9f1d9"><td colspan="3"><span class="note">Découper en chemin découpe le contour de l'objet du dessous aux points d'intersection avec celui du dessus.</span></td></tr> +<tr bgcolor="f9f1d9"><td colspan="3"><span class="note"> Le résultat est sans remplissage.</span></td></tr> +<tr bgcolor="f9f1d9"><td colspan="3"><span class="note">Le résultat d'une union/différence/intersection/exclusion hérite de l'attribut id (et donc des clones) de l'objet du dessous.</span></td></tr> +<tr bgcolor="f9f1d9"><td colspan="3"><span class="note">Les division et découpe en chemin peuvent produire plusieurs objets. L'un d'eux, au hasard, hérite de l'id de l'objet du dessous.</span></td></tr> + + + +<tr bgcolor="f9f1d9"><td colspan="3"><h4>Offsets</h4></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">Ctrl+(</span></td><td><span class="action">éroder le chemin</span></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">Ctrl+)</span></td><td><span class="action">dilater le chemin</span></td></tr> +<tr bgcolor="f9f1d9"><td colspan="3"><span class="note">La distance d'offset par défaut est de 2 px (en pixels SVG, pas en pixels à l'écran).</span></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">Alt+(</span></td><td><span class="action">éroder le chemin d'1 pixel</span></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">Alt+)</span></td><td><span class="action">dilater le chemin d'1 pixel</span></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">Shift+Alt+(</span></td><td><span class="action">éroder le chemin de 10 pixels</span></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">Shift+Alt+)</span></td><td><span class="action">dilater le chemin de 10 pixels</span></td></tr> +<tr bgcolor="f9f1d9"><td colspan="3"><span class="note">Le déplacement réel des pixels dépend du niveau de zoom. Zommer pour ajuster plus finement.</span></td></tr> +<tr bgcolor="f9f1d9"><td colspan="3"><span class="note">Toutes les commandes (, ) convertissent l'objet en chemin si nécessaire, et produisent un chemin normal.</span></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">Ctrl+J</span></td><td><span class="action">créer un offset dynamique</span></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">Ctrl+Alt+J</span></td><td><span class="action">créer un offset lié</span></td></tr> +<tr bgcolor="f9f1d9"><td colspan="3"><span class="note">Ces commandes produisent un objet offset (autonome ou lié à l'original) que l'on peut éditer avec l'outil nœud. +</span></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">Shift+D</span></td><td><span class="action">sélectionner l'objet source</span></td></tr> +<tr bgcolor="f9f1d9"><td colspan="3"><span class="note">Après sélection d'un offset lié, cette commande sélectionne l'objet original dont il est issu.</span></td></tr> + + + +<tr bgcolor="f9f1d9"><td colspan="3"><h4>Combiner</h4></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">Ctrl+K</span></td><td><span class="action">combiner les chemins</span></td></tr> +<tr bgcolor="f9f1d9"><td colspan="3"><span class="note">Cette commande est différente de grouper : des chemins combinés créent un objet, pas un groupe.</span></td></tr> +<tr bgcolor="f9f1d9"><td colspan="3"><span class="note">Différente aussi d'une union : les recouvrements ne sont pas affectés..</span></td></tr> +<tr bgcolor="f9f1d9"><td colspan="3"><span class="note">Le remplissage des recouvrements est géré par le champ remplissage (complet/alternatif) du dialogue Remplissage et contour.</span></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">Shift+Ctrl+K</span></td><td><span class="action">séparer les chemins</span></td></tr> +<tr bgcolor="f9f1d9"><td colspan="3"><span class="note">Sépare les sous-chemins d'un chemin composé; ceci échouera si l'objet est constitué d'un seul chemin.</span></td></tr> + + + +<tr bgcolor="f9f1d9"><td colspan="3"><h4>Simplifier</h4></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">Ctrl+L</span></td><td><span class="action">simplifier</span></td></tr> +<tr bgcolor="f9f1d9"><td colspan="3"><span class="note">Simplifie les chemin(s) sélectionnés en supprimant quelques nœuds. Si nécessaire, les objets sont convertis en chemins.</span></td></tr> +<tr bgcolor="f9f1d9"><td colspan="3"><span class="note">En invoquant cette commande plusieurs fois de suite rapidement, elle agira de plus en plus agressivement.</span></td></tr> +<tr bgcolor="f9f1d9"><td colspan="3"><span class="note">Le seuil par défaut (réglable dans les préférences d'Inkscape) est restauré après une pause.</span></td></tr> + + +<tr><td colspan="3"><h1>Sélecteur</h1></td></tr> + + +<tr bgcolor="eee4dc"><td colspan="3"><h4>Sélection au clavier</h4></td></tr> +<tr bgcolor="eee4dc"><td align="right"><span class="key">Tab</span></td><td><span class="action">sélectionner l'objet suivant</span></td></tr> +<tr bgcolor="eee4dc"><td align="right"><span class="key">Shift+Tab</span></td><td><span class="action">sélectionner l'objet précédent</span></td></tr> +<tr bgcolor="eee4dc"><td colspan="3"><span class="note">Sélectionne les objets selon leur ordre-z (Tab circule de l'arrière au premier plan, Maj+Tab fait l'inverse).</span></td></tr> +<tr bgcolor="eee4dc"><td colspan="3"><span class="note">A moins d'avoir fait des réarrangements manuels, le dernier objet créé est au tout premier plan</span></td></tr> +<tr bgcolor="eee4dc"><td colspan="3"><span class="note">Aussi, si rien n'est sélectionné, Maj+Tab est une façon pratique de sélectionner le dernier objet créé.</span></td></tr> +<tr bgcolor="eee4dc"><td colspan="3"><span class="note">Cette commande s'applique aux objets du calque courant (sauf modification des préférences).</span></td></tr> +<tr bgcolor="eee4dc"><td align="right"><span class="key">Ctrl+A</span></td><td><span class="action">tout sélectionner (calque courant)</span></td></tr> +<tr bgcolor="eee4dc"><td colspan="3"><span class="note">Cette commande s'applique aux objets du calque courant (sauf modification des préférences).</span></td></tr> +<tr bgcolor="eee4dc"><td align="right"><span class="key">Ctrl+Alt+A</span></td><td><span class="action">tout sélectionner (tous les calques)</span></td></tr> +<tr bgcolor="eee4dc"><td colspan="3"><span class="note">Cette commande s'applique aux objets de tout calque visible et déverrouillé.</span></td></tr> +<tr bgcolor="eee4dc"><td align="right"><span class="key">!</span></td><td><span class="action">inverser la sélection (calque courant)</span></td></tr> +<tr bgcolor="eee4dc"><td colspan="3"><span class="note">Inverse la sélection (désélectionne ce qui était sélectionné, et sélectionne tout le reste) du calque courant.</span></td></tr> +<tr bgcolor="eee4dc"><td align="right"><span class="key">Alt+!</span></td><td><span class="action">inverser la sélection (tous les calques)</span></td></tr> +<tr bgcolor="eee4dc"><td colspan="3"><span class="note">Inverse la sélection dans tout calque visible et déverrouillé.</span></td></tr> +<tr bgcolor="eee4dc"><td align="right"><span class="key">Esc</span></td><td><span class="action">désélectionner</span></td></tr> +<tr bgcolor="eee4dc"><td align="right"><span class="key">Backspace, +Suppr.</span></td><td><span class="action">supprimer la sélection</span></td></tr> + + + +<tr bgcolor="eee4dc"><td colspan="3"><h4>Déplacement au clavier</h4></td></tr> +<tr bgcolor="eee4dc"><td align="right"><span class="key">arrows</span></td><td><span class="action">déplacer la sélection par incrément(s)</span></td></tr> +<tr bgcolor="eee4dc"><td align="right"><span class="key">Shift+arrows</span></td><td><span class="action">déplacer la sélection de 10x l'incrément</span></td></tr> +<tr bgcolor="eee4dc"><td colspan="3"><span class="note">L'incrément de déplacement par défaut est 1mm.</span></td></tr> +<tr bgcolor="eee4dc"><td align="right"><span class="key">Alt+arrows</span></td><td><span class="action">déplacer la sélection d'1 pixel</span></td></tr> +<tr bgcolor="eee4dc"><td align="right"><span class="key">Alt+Shift+arrows</span></td><td><span class="action">déplacer la sélection de 10 pixels</span></td></tr> +<tr bgcolor="eee4dc"><td colspan="3"><span class="note">Le déplacement réel à l'échelle du pixel dépend du niveau de zoom. Zommer pour déplacer plus finement.</span></td></tr> + + + +<tr bgcolor="eee4dc"><td colspan="3"><h4>Rotation au clavier</h4></td></tr> +<tr bgcolor="eee4dc"><td align="right"><span class="key">[, +]</span></td><td><span class="action">tourner la sélection par incrément(s)</span></td></tr> +<tr bgcolor="eee4dc"><td colspan="3"><span class="note">L'incrément de rotation par défaut est 15°. ] tourne en sens horaire, [ en sens anti-horaire.</span></td></tr> +<tr bgcolor="eee4dc"><td align="right"><span class="key">Ctrl+[, +Ctrl+]</span></td><td><span class="action">tourner la sélection de 90 degrés</span></td></tr> +<tr bgcolor="eee4dc"><td align="right"><span class="key">Alt+[, +Alt+]</span></td><td><span class="action">tourner la sélection d'1 pixel</span></td></tr> +<tr bgcolor="eee4dc"><td colspan="3"><span class="note">La rotation réelle à l'échelle du pixel dépend du niveau de zoom. Zommer pour tourner plus finement.</span></td></tr> + + + +<tr bgcolor="eee4dc"><td colspan="3"><h4>Redimensionnement au clavier</h4></td></tr> +<tr bgcolor="eee4dc"><td align="right"><span class="key">., +></span></td><td><span class="action">agrandir la sélection par incrément(s)</span></td></tr> +<tr bgcolor="eee4dc"><td align="right"><span class="key">,, +<</span></td><td><span class="action">rétrécir la sélection par incrément(s)</span></td></tr> +<tr bgcolor="eee4dc"><td colspan="3"><span class="note">L'incrément de redimensionnement par défaut est de 2 px (en pixels SVG, pas en pixels à l'écran).</span></td></tr> +<tr bgcolor="eee4dc"><td align="right"><span class="key">Ctrl+., +Ctrl+></span></td><td><span class="action">agrandir la sélection à 200%</span></td></tr> +<tr bgcolor="eee4dc"><td align="right"><span class="key">Ctrl+,, +Ctrl+<</span></td><td><span class="action">rétrécir la sélection à 50%</span></td></tr> +<tr bgcolor="eee4dc"><td align="right"><span class="key">Alt+., +Alt+></span></td><td><span class="action">agrandir la sélection d'1 pixel</span></td></tr> +<tr bgcolor="eee4dc"><td align="right"><span class="key">Alt+,, +Alt+<</span></td><td><span class="action">rétrécir la sélection d'1 pixel</span></td></tr> +<tr bgcolor="eee4dc"><td colspan="3"><span class="note">Le redimensionnement réel à l'échelle du pixel dépend du niveau de zoom. Zommer pour dimensionner plus finement.</span></td></tr> +<tr bgcolor="eee4dc"><td colspan="3"><span class="note">Le redimensionnement est uniforme autour du centre : il est donc appliqué à la plus grande des deux dimensions.</span></td></tr> + + + +<tr bgcolor="eee4dc"><td colspan="3"><h4>Retournement au clavier</h4></td></tr> +<tr bgcolor="eee4dc"><td align="right"><span class="key">h</span></td><td><span class="action">retourner la sélection horizontalement</span></td></tr> +<tr bgcolor="eee4dc"><td align="right"><span class="key">v</span></td><td><span class="action">retourner la sélection verticalement</span></td></tr> + + + +<tr bgcolor="eee4dc"><td colspan="3"><h4>Sélection à la souris</h4></td></tr> +<tr bgcolor="eee4dc"><td align="right"><span class="key">click</span></td><td><span class="action">sélectionner un objet</span></td></tr> +<tr bgcolor="eee4dc"><td colspan="3"><span class="note">En cliquant (bouton gauche) sur un objet, la sélection précédente est desélectionnée.</span></td></tr> +<tr bgcolor="eee4dc"><td align="right"><span class="key">Shift+click</span></td><td><span class="action">alterner la sélection</span></td></tr> +<tr bgcolor="eee4dc"><td colspan="3"><span class="note">Maj+cliquer ajoute un objet à la sélection courante s'il n'était pas sélectionné, le retire sinon.</span></td></tr> + + + +<tr bgcolor="eee4dc"><td colspan="3"><h4>Sélection dans un groupe, en-dessous</h4></td></tr> +<tr bgcolor="eee4dc"><td align="right"><span class="key">Ctrl+click</span></td><td><span class="action">sélectionner dans un groupe</span></td></tr> +<tr bgcolor="eee4dc"><td colspan="3"><span class="note">Sélectionne l'objet sous le curseur, quel que soit le groupe auquel cet objet peut appartenir.</span></td></tr> +<tr bgcolor="eee4dc"><td align="right"><span class="key">Ctrl+Shift+click</span></td><td><span class="action">alterner la sélection (dans un groupe)</span></td></tr> +<tr bgcolor="eee4dc"><td align="right"><span class="key">Alt+click</span></td><td><span class="action">sélectionner en-dessous</span></td></tr> +<tr bgcolor="eee4dc"><td colspan="3"><span class="note">Sélectionne l'objet (sous le curseur) juste en dessous (dans l'ordre-z) l'objet sélectionné le plus bas.</span></td></tr> +<tr bgcolor="eee4dc"><td colspan="3"><span class="note">Si l'objet le plus en bas atteint, un Alt+Cliquer de plus sélectionne l'objet au premier plan, circulant ainsi dans l'ordre-z.</span></td></tr> +<tr bgcolor="eee4dc"><td colspan="3"><span class="note">Sous Linux, Alt+cliquer et Alt+cliquer-déplacer peuvent être préemptés par le gestionnaire de fenêtre.</span></td></tr> +<tr bgcolor="eee4dc"><td colspan="3"><span class="note">Reconfigurez celui-ci afin de pouvoir utiliser ces raccourcis dans Inkscape.</span></td></tr> +<tr bgcolor="eee4dc"><td align="right"><span class="key">Shift+Alt+click</span></td><td><span class="action">alterner en-dessous</span></td></tr> +<tr bgcolor="eee4dc"><td align="right"><span class="key">Ctrl+Alt+click</span></td><td><span class="action">sélectionner en-dessous, dans des groupes</span></td></tr> +<tr bgcolor="eee4dc"><td align="right"><span class="key">Shift+Ctrl+Alt+click</span></td><td><span class="action">alterner en-dessous, dans des groupes</span></td></tr> + + + +<tr bgcolor="eee4dc"><td colspan="3"><h4>Bande étirable</h4></td></tr> +<tr bgcolor="eee4dc"><td align="right"><span class="key">mouse drag</span></td><td><span class="action">sélectionner plusieurs objets</span></td></tr> +<tr bgcolor="eee4dc"><td colspan="3"><span class="note">Cliquer-déplacer autour d'objets les sélectionne par bande étirable; la sélection précédente est désélectionnée.</span></td></tr> +<tr bgcolor="eee4dc"><td align="right"><span class="key">Shift+mouse drag</span></td><td><span class="action">ajouter des objets à la sélection</span></td></tr> +<tr bgcolor="eee4dc"><td colspan="3"><span class="note">Normalement, vous devez commencer une bande étirable sur une zone vide.</span></td></tr> +<tr bgcolor="eee4dc"><td colspan="3"><span class="note">Mais, en appuyant sur Maj avant, Inkscape effectuera une zone étirable, même si elle commence sur un objet.</span></td></tr> + + + +<tr bgcolor="eee4dc"><td colspan="3"><h4>Déplacement à la souris</h4></td></tr> +<tr bgcolor="eee4dc"><td align="right"><span class="key">mouse drag</span></td><td><span class="action">sélectionner + déplacer</span></td></tr> +<tr bgcolor="eee4dc"><td colspan="3"><span class="note">Cliquer-déplacer sur un objet le sélectionne s'il n'était pas sélectionné, puis déplace la sélection.</span></td></tr> +<tr bgcolor="eee4dc"><td align="right"><span class="key">Alt+mouse drag</span></td><td><span class="action">déplacer la sélection</span></td></tr> +<tr bgcolor="eee4dc"><td colspan="3"><span class="note">Déplace la sélection courante (sans sélectionner ce qui est sous le curseur), quel que soit le point de départ.</span></td></tr> +<tr bgcolor="eee4dc"><td colspan="3"><span class="note">Sous Linux, Alt+cliquer et Alt+cliquer-déplacer peuvent être utilisés par le gestionnaire de fenêtre.</span></td></tr> +<tr bgcolor="eee4dc"><td colspan="3"><span class="note">Reconfigurez celui-ci afin de pouvoir utiliser ces raccourcis dans Inkscape.</span></td></tr> + +<tr bgcolor="eee4dc"><td align="right"><span class="key">Ctrl+mouse drag</span></td><td><span class="action">restreindre à un mouvement vertical/horizontal</span></td></tr> +<tr bgcolor="eee4dc"><td align="right"><span class="key">Shift+mouse drag</span></td><td><span class="action">désactiver temporairement le collage</span></td></tr> +<tr bgcolor="eee4dc"><td colspan="3"><span class="note">Désactive temporairement le collage à la grille ou aux guides lors de déplacements (grille/guides étant actifs).</span></td></tr> +<tr bgcolor="eee4dc"><td align="right"><span class="key">mouse dragEspace</span></td><td><span class="action">tamponner une copie</span></td></tr> +<tr bgcolor="eee4dc"><td colspan="3"><span class="note">Lors de déplacements/transformations à la souris, un appui sur la barre d'espace dépose une copie de l'objet sélectionné.</span></td></tr> +<tr bgcolor="eee4dc"><td colspan="3"><span class="note">Vous pouvez maintenir la barre d'espace appuyée lors d'un déplacement pour obtenir une belle "trainée".</span></td></tr> + + + +<tr bgcolor="eee4dc"><td colspan="3"><h4>Transformation à la souris</h4></td></tr> +<tr bgcolor="eee4dc"><td align="right"><span class="key">click</span></td><td><span class="action">alterner poignées arrondi/redimensionnement</span></td></tr> +<tr bgcolor="eee4dc"><td align="right"><span class="key">mouse drag</span></td><td><span class="action">redimensionner</span></td></tr> +<tr bgcolor="eee4dc"><td colspan="3"><span class="note">S'applique aux poignées de redimensionnement.</span></td></tr> +<tr bgcolor="eee4dc"><td align="right"><span class="key">mouse drag</span></td><td><span class="action">tourner ou incliner</span></td></tr> +<tr bgcolor="eee4dc"><td colspan="3"><span class="note">S'applique aux poignées de rotation/inclinaison.</span></td></tr> + + + +<tr bgcolor="eee4dc"><td colspan="3"><h4>Poignées de redimensionnement</h4></td></tr> +<tr bgcolor="eee4dc"><td align="right"><span class="key">Ctrl+mouse drag</span></td><td><span class="action">redimensionner en préservant le ratio</span></td></tr> + +<tr bgcolor="eee4dc"><td align="right"><span class="key">Shift+mouse drag</span></td><td><span class="action">transformation symétrique</span></td></tr> +<tr bgcolor="eee4dc"><td colspan="3"><span class="note">Appuyer sur Maj pendant une transformation rend cette transformation symétrique autour du centre de la sélection.</span></td></tr> + +<tr bgcolor="eee4dc"><td align="right"><span class="key">Alt+mouse drag</span></td><td><span class="action">mouvement lent</span></td></tr> +<tr bgcolor="eee4dc"><td colspan="3"><span class="note">Force un ralentissement des mouvements de la souris, permettant ainsi des modifications plus fines.</span></td></tr> + + + +<tr bgcolor="eee4dc"><td colspan="3"><h4>Poignées de rotation</h4></td></tr> +<tr bgcolor="eee4dc"><td align="right"><span class="key">Ctrl+mouse drag</span></td><td><span class="action">incliner et étirer</span></td></tr> +<tr bgcolor="eee4dc"><td colspan="3"><span class="note">Appuyer sur Ctrl tout en déplaçant une poignée d'inclinaison (pas un coin) permet d'étirer tout en inclinant.</span></td></tr> +<tr bgcolor="eee4dc"><td align="right"><span class="key">Ctrl+mouse drag</span></td><td><span class="action">tourner la sélection par incrément(s)</span></td></tr> +<tr bgcolor="eee4dc"><td colspan="3"><span class="note">L'incrément de rotation par défaut est 15 degrés.</span></td></tr> + + + +<tr bgcolor="eee4dc"><td colspan="3"><h4>Annuler</h4></td></tr> +<tr bgcolor="eee4dc"><td align="right"><span class="key">Esc</span></td><td><span class="action">annuler bande étirable/déplacer/transformer</span></td></tr> +<tr bgcolor="eee4dc"><td colspan="3"><span class="note">Un appui sur Esc (le bouton de la souris étant encore pressé) annule la bande étirable, le déplacement ou la transformation.</span></td></tr> + + +<tr><td colspan="3"><h1>Main levée</h1></td></tr> + +<tr bgcolor="e9efc5"><td align="right"><span class="key">mouse drag</span></td><td><span class="action">dessiner une ligne à main levée</span></td></tr> +<tr bgcolor="e9efc5"><td align="right"><span class="key">Shift+mouse drag</span></td><td><span class="action">désactiver temporairement le collage</span></td></tr> +<tr bgcolor="e9efc5"><td colspan="3"><span class="note">Désactive temporairement le collage à la grille ou aux guides lors de déplacements (grille/guides étant actifs).</span></td></tr> +<tr bgcolor="e9efc5"><td align="right"><span class="key">a</span></td><td><span class="action">alterner créer/prolonger</span></td></tr> +<tr bgcolor="e9efc5"><td colspan="3"><span class="note">Alterne entre créer une nouvelle ligne et prolonger la ligne sélectionnée (des ancres sont affichées en mode prolonger).</span></td></tr> + +<tr><td colspan="3"><h1>Bézier</h1></td></tr> + + +<tr bgcolor="e7f5d7"><td colspan="3"><h4>Créer des nœuds</h4></td></tr> +<tr bgcolor="e7f5d7"><td align="right"><span class="key">click</span></td><td><span class="action">créer un nœud anguleux</span></td></tr> +<tr bgcolor="e7f5d7"><td align="right"><span class="key">mouse drag</span></td><td><span class="action">créer un nœud de Bézier avec 2 poignées</span></td></tr> +<tr bgcolor="e7f5d7"><td align="right"><span class="key">Shift+mouse drag</span></td><td><span class="action">ne déplacer qu'une poignée</span></td></tr> + +<tr bgcolor="e7f5d7"><td colspan="3"><span class="note">Ceci ne déplace qu'une poignée (au lieu des deux), pour créer un nœud dur.</span></td></tr> +<tr bgcolor="e7f5d7"><td align="right"><span class="key">Ctrl+mouse drag</span></td><td><span class="action">tourner la poignée par incrément(s)</span></td></tr> +<tr bgcolor="e7f5d7"><td colspan="3"><span class="note">L'incrément de rotation par défaut est 15 degrés.</span></td></tr> + + + +<tr bgcolor="e7f5d7"><td colspan="3"><h4>Créer des segments</h4></td></tr> +<tr bgcolor="e7f5d7"><td align="right"><span class="key">Ctrl+</span></td><td><span class="action">tourner le segment par incrément(s)</span></td></tr> +<tr bgcolor="e7f5d7"><td colspan="3"><span class="note"> +Ceci force la rotation d'un nœud (nouvel angle relativement au nœud précédent) par incrément(s) (15 degrés par défaut) .</span></td></tr> + + + +<tr bgcolor="e7f5d7"><td colspan="3"><h4>Terminer</h4></td></tr> +<tr bgcolor="e7f5d7"><td align="right"><span class="key">Entrée</span></td><td><span class="action">terminer le tracé courant</span></td></tr> +<tr bgcolor="e7f5d7"><td align="right"><span class="key">right click</span></td><td><span class="action">terminer le tracé courant</span></td></tr> +<tr bgcolor="e7f5d7"><td align="right"><span class="key">clickclick</span></td><td><span class="action">terminer le tracé courant</span></td></tr> +<tr bgcolor="e7f5d7"><td colspan="3"><span class="note">Entrée, clic-droit ou double-clic terminent la ligne courante, annulant le dernier segment non fini (en rouge).</span></td></tr> + + + +<tr bgcolor="e7f5d7"><td colspan="3"><h4>Clavier</h4></td></tr> +<tr bgcolor="e7f5d7"><td align="right"><span class="key">Esc</span></td><td><span class="action">annuler le tracé courant</span></td></tr> +<tr bgcolor="e7f5d7"><td align="right"><span class="key">Backspace</span></td><td><span class="action">effacer le dernier segment du tracé courant</span></td></tr> +<tr bgcolor="e7f5d7"><td align="right"><span class="key">a</span></td><td><span class="action">alterner créer/prolonger</span></td></tr> +<tr bgcolor="e7f5d7"><td colspan="3"><span class="note">Alterne entre créer une nouvelle ligne et prolonger la ligne sélectionnée (des ancres sont affichées en mode prolonger).</span></td></tr> + +<tr><td colspan="3"><h1>Calligraphie</h1></td></tr> + +<tr bgcolor="e9dfef"><td align="right"><span class="key">mouse drag</span></td><td><span class="action">traver une ligne calligraphique</span></td></tr> +<tr bgcolor="e9dfef"><td align="right"><span class="key">, +</span></td><td><span class="action">ajuster la largeur de la plume</span></td></tr> +<tr bgcolor="e9dfef"><td align="right"><span class="key">Up arrow, +Down arrow</span></td><td><span class="action">aduster l'angle de la plume</span></td></tr> +<tr bgcolor="e9dfef"><td colspan="3"><span class="note">La largeur et l'angle de la plume peuvent être ajustés tout en dessinant.</span></td></tr> + +<tr><td colspan="3"><h1>Nœud</h1></td></tr> + + +<tr bgcolor="f9f1d9"><td colspan="3"><h4>Sélection au clavier</h4></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">Tab</span></td><td><span class="action">sélectionner le nœud suivant</span></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">Shift+Tab</span></td><td><span class="action">sélectionner le nœud précédent</span></td></tr> +<tr bgcolor="f9f1d9"><td colspan="3"><span class="note">Ces raccourcis vous permettent de sélectionner n'importe quel nœud du chemin sélectionné.</span></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">Ctrl+A</span></td><td><span class="action">sélectionner tous les nœuds du chemin</span></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">Esc</span></td><td><span class="action">désélectionner tous les nœuds</span></td></tr> + + + +<tr bgcolor="f9f1d9"><td colspan="3"><h4>Déplacement au clavier</h4></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">arrows</span></td><td><span class="action">déplacer les nœuds sélect. par incrément(s)</span></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">Shift+arrows</span></td><td><span class="action">déplacer les nœuds sélect. de 10x l'incrément</span></td></tr> +<tr bgcolor="f9f1d9"><td colspan="3"><span class="note">L'incrément de déplacement par défaut est 1mm.</span></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">Alt+arrows</span></td><td><span class="action">déplacer les nœuds sélectionnés d'1 pixel</span></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">Alt+Shift+arrows</span></td><td><span class="action">déplacer les nœuds sélectionnés de 10 pixels</span></td></tr> +<tr bgcolor="f9f1d9"><td colspan="3"><span class="note">Le déplacement réel à l'échelle du pixel dépend du niveau de zoom. Zommer pour déplacer plus finement.</span></td></tr> + + + +<tr bgcolor="f9f1d9"><td colspan="3"><h4>Rotation des poignées au clavier</h4></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">[, +]</span></td><td><span class="action">tourner les deux poignées par incrément(s)</span></td></tr> +<tr bgcolor="f9f1d9"><td colspan="3"><span class="note">L'incrément de rotation par défaut est 15 degrés. ] tourne en sens horaire, [ en sens anti-horaire. Applicable à plusieurs nœuds.</span></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">Left Ctrl+[, +Left Ctrl+]</span></td><td><span class="action">tourner la poignée gauche par incrément(s)</span></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">Right Ctrl+[, +Right Ctrl+]</span></td><td><span class="action">tourner la poignée droite par incrément(s)</span></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">Left Alt+[, +Left Alt+]</span></td><td><span class="action">tourner la poignée gauche d'1 pixel</span></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">Right Alt+[, +Right Alt+]</span></td><td><span class="action">tourner la poignée droite d'1 pixel</span></td></tr> + + + +<tr bgcolor="f9f1d9"><td colspan="3"><h4>Redim. des poignées au clavier</h4></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key"><, +></span></td><td><span class="action">redim. les deux poignées par incrément(s)</span></td></tr> +<tr bgcolor="f9f1d9"><td colspan="3"><span class="note">L'incrément de redimensionnement par défaut est de 2 px (en pixels SVG, pas en pixels à l'écran). Applicable à plusieurs nœuds.</span></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">Left Ctrl+<, +Left Ctrl+></span></td><td><span class="action">redim. la poignée gauche par incrément(s)</span></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">Right Ctrl+<, +Right Ctrl+></span></td><td><span class="action">redim. la poignée droite par incrément(s)</span></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">Left Alt+<, +Left Alt+></span></td><td><span class="action">redimensionner la poignée gauche d'1 pixel</span></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">Right Alt+<, +Right Alt+></span></td><td><span class="action">redimensionner la poignée droite d'1 pixel</span></td></tr> +<tr bgcolor="f9f1d9"><td colspan="3"><span class="note">Le redimensionnement réel à l'échelle du pixel dépend du niveau de zoom. Zommer pour dimensionner plus finement.</span></td></tr> +<tr bgcolor="f9f1d9"><td colspan="3"><span class="note">A la place des touches < et >, vous pouvez utiliser respectivement , (virgule) et . (point).</span></td></tr> + + + +<tr bgcolor="f9f1d9"><td colspan="3"><h4>Modifier le type de segment</h4></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">Shift+L</span></td><td><span class="action">rendre rectiligne</span></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">Shift+K</span></td><td><span class="action">rendre courbe</span></td></tr> +<tr bgcolor="f9f1d9"><td colspan="3"><span class="note">Ces commandes exigent que plus de deux nœuds adjacents soient sélectionnés.</span></td></tr> + + + +<tr bgcolor="f9f1d9"><td colspan="3"><h4>Modifier le type de nœud</h4></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">Shift+C</span></td><td><span class="action">rendre dur</span></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">Shift+S</span></td><td><span class="action">rendre doux</span></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">Shift+Y</span></td><td><span class="action">rendre symétrique</span></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">Ctrl+click</span></td><td><span class="action">alterner doux/dur/symétrique</span></td></tr> + + + +<tr bgcolor="f9f1d9"><td colspan="3"><h4>Joindre/briser</h4></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">Shift+J</span></td><td><span class="action">joindre les nœuds sélectionnés</span></td></tr> +<tr bgcolor="f9f1d9"><td colspan="3"><span class="note">Egige que deux (et seulement deux) nœuds terminaux du chemin soient sélectionnés.</span></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">Shift+B</span></td><td><span class="action">briser les nœud(s) sélectionnés</span></td></tr> +<tr bgcolor="f9f1d9"><td colspan="3"><span class="note">Après brisure, un seul des deux nœuds est sélectionné. Applicable à plus d'un nœud à la fois.</span></td></tr> + + + +<tr bgcolor="f9f1d9"><td colspan="3"><h4>Supprimer, créer, dupliquer</h4></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">Backspace, +Suppr.</span></td><td><span class="action">supprimer les nœud(s) sélectionnés</span></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">Ctrl+Alt+click</span></td><td><span class="action">supprimer le nœud</span></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">Ins.</span></td><td><span class="action">insérer des nouveaux nœuds </span></td></tr> +<tr bgcolor="f9f1d9"><td colspan="3"><span class="note">Ajoute de nouveaux nœud(s) au milieu des segment(s) sélectionnés, et exige la sélection de plus de deux nœuds adjacents.</span></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">Shift+D</span></td><td><span class="action">dupliquer les nœud(s) sélectionnés</span></td></tr> +<tr bgcolor="f9f1d9"><td colspan="3"><span class="note">Les nouveaux nœuds sont créés sur le même chemin; ils sont placés au-dessus des précédents et sont sélectionnés.</span></td></tr> + + + +<tr bgcolor="f9f1d9"><td colspan="3"><h4>Nœud actif</h4></td></tr> +<tr bgcolor="f9f1d9"><td colspan="3"><span class="note">Le nœud actif est celui sous la souris ou en train d'être déplacé.</span></td></tr> +<tr bgcolor="f9f1d9"><td colspan="3"><span class="note">Lorsque qu'un nœud est actif, certains raccourcis peuvent ne pas fonctionner;</span></td></tr> +<tr bgcolor="f9f1d9"><td colspan="3"><span class="note">déplacez votre souris de façon à ce qu'il n'y aie pas de nœud actif si vous voulez les utiliser.</span></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">c</span></td><td><span class="action">rendre le nœud actif dur</span></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">s</span></td><td><span class="action">rendre le nœud actif doux</span></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">y</span></td><td><span class="action">rendre le nœud actif symétrique</span></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">b</span></td><td><span class="action">briser le nœud actif</span></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">Backspace</span></td><td><span class="action">supprimer le nœud actif</span></td></tr> + + + +<tr bgcolor="f9f1d9"><td colspan="3"><h4>Sélection à la souris</h4></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">click</span></td><td><span class="action">sélectionner un objet</span></td></tr> +<tr bgcolor="f9f1d9"><td colspan="3"><span class="note">Cliquer sur un objet pour le sélectionner.</span></td></tr> +<tr bgcolor="f9f1d9"><td colspan="3"><span class="note">Les nœuds/poignées de l'objet sélectionné deviennent éditables (vous évitant d'avoir à basculer vers l'outil sélecteur).</span></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">click</span></td><td><span class="action">sélectionner un nœud</span></td></tr> +<tr bgcolor="f9f1d9"><td colspan="3"><span class="note">Cliquer sur un nœud pour le sélectionner.</span></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">Shift+click</span></td><td><span class="action">alterner la sélection d'un nœud</span></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">click</span></td><td><span class="action">désélectionner</span></td></tr> +<tr bgcolor="f9f1d9"><td colspan="3"><span class="note">Cliquer sur une zone vide désélectionne tous les nœuds sélectionnés.</span></td></tr> + + + +<tr bgcolor="f9f1d9"><td colspan="3"><h4>Bande étirable</h4></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">mouse drag</span></td><td><span class="action">sélectionner plusieurs nœuds</span></td></tr> +<tr bgcolor="f9f1d9"><td colspan="3"><span class="note">Cliquer-déplacer autour de nœuds les sélectionne par bande étirable; la sélection précédente est désélectionnée.</span></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">Shift+mouse drag</span></td><td><span class="action">ajouter des nœuds à la sélection</span></td></tr> + + + +<tr bgcolor="f9f1d9"><td colspan="3"><h4>Déplacement à la souris</h4></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">mouse drag</span></td><td><span class="action">déplacer les nœuds sélectionnés</span></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">Ctrl+mouse drag</span></td><td><span class="action">restreindre à des mouvements horiz./vert. </span></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">Ctrl+Alt+mouse drag</span></td><td><span class="action">déplacer le long des poignées</span></td></tr> +<tr bgcolor="f9f1d9"><td colspan="3"><span class="note">Restreint les déplacements selon les directions des poignées et leurs perpendiculaires (soit 8 directions).</span></td></tr> +<tr bgcolor="f9f1d9"><td colspan="3"><span class="note">Si le nœud a des droites d'un côté ou des deux, le déplacement sera restreint à ces droites et leurs perpendiculaires.</span></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">Shift+mouse drag</span></td><td><span class="action">désactiver temporairement le collage</span></td></tr> +<tr bgcolor="f9f1d9"><td colspan="3"><span class="note">Le collage des nœuds est activable dans les préférences du document. </span></td></tr> +<tr bgcolor="f9f1d9"><td colspan="3"><span class="note">Par défaut, seules les boîtes de contour des objets collent à la grille ou aux guides.</span></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">mouse dragEspace</span></td><td><span class="action">tamponner une copie</span></td></tr> + <tr bgcolor="f9f1d9"><td colspan="3"><span class="note">Lors du déplacement nœuds de à la souris, un appui sur la barre d'espace dépose une copie de l'objet sélectionné.</span></td></tr> +<tr bgcolor="f9f1d9"><td colspan="3"><span class="note">Vous pouvez maintenir la barre d'espace appuyée lors d'un déplacement pour obtenir une belle "trainée".</span></td></tr> + + + +<tr bgcolor="f9f1d9"><td colspan="3"><h4>Déplacement des poignées à la souris</h4></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">mouse drag</span></td><td><span class="action">déplacer une poignée de nœud</span></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">Ctrl+mouse drag</span></td><td><span class="action">tourner la poignée par incrément(s)</span></td></tr> +<tr bgcolor="f9f1d9"><td colspan="3"><span class="note"> +L'incrément de rotation par défaut est 15 degrés.</span></td></tr> +<tr bgcolor="f9f1d9"><td colspan="3"><span class="note"> Permet aussi de forcer le déplacement selon la direction de la poignée et sa perpendiculaire.</span></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">Shift+mouse drag</span></td><td><span class="action">tourner les deux poignées</span></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">Alt+mouse drag</span></td><td><span class="action">préserver la longueur de la poignée</span></td></tr> +<tr bgcolor="f9f1d9"><td colspan="3"><span class="note">Ctrl, Maj, Alt peuvent être combinés lors du cliquer-déplacer de contrôles.</span></td></tr> + + + +<tr bgcolor="f9f1d9"><td colspan="3"><h4>Inverser</h4></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">r</span></td><td><span class="action">inverser la direction du chemin</span></td></tr> + + + +<tr bgcolor="f9f1d9"><td colspan="3"><h4>Editer des formes</h4></td></tr> +<tr bgcolor="f9f1d9"><td colspan="3"><span class="note"> +L'outil nœud agit aussi sur les poignées des formes (rectangles, ellipses, étoiles, spirales).</span></td></tr> +<tr bgcolor="f9f1d9"><td colspan="3"><span class="note">Cliquer sur une forme pour la sélectionner.</span></td></tr> +<tr bgcolor="f9f1d9"><td colspan="3"><span class="note">Voir les les raccourcis des outils de formes correspondants, qui fonctionnent aussi dans l'outil nœud.</span></td></tr> + + + + +<tr bgcolor="f9f1d9"><td colspan="3"><h4>Annuler</h4></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">Esc</span></td><td><span class="action">annuler bande étirable/déplacer</span></td></tr> +<tr bgcolor="f9f1d9"><td colspan="3"><span class="note">Un appui sur Esc (le bouton de la souris étant encore pressé) annule la bande étirable, le déplacement de nœud/poignée.</span></td></tr> + + +<tr><td colspan="3"><h1>Zoom</h1></td></tr> + +<tr bgcolor="e7e9f3"><td align="right"><span class="key">click</span></td><td><span class="action">zoommer</span></td></tr> +<tr bgcolor="e7e9f3"><td align="right"><span class="key">Shift+click</span></td><td><span class="action">dézoommer</span></td></tr> +<tr bgcolor="e7e9f3"><td align="right"><span class="key">mouse drag</span></td><td><span class="action">zoommer sur la zone</span></td></tr> + +<tr><td colspan="3"><h1>Pipette</h1></td></tr> + +<tr bgcolor="feeffa"><td align="right"><span class="key">click</span></td><td><span class="action">capturer la couleur de remplissage</span></td></tr> +<tr bgcolor="feeffa"><td align="right"><span class="key">Shift+click</span></td><td><span class="action">capturer la couleur de contour</span></td></tr> +<tr bgcolor="feeffa"><td align="right"><span class="key">mouse drag</span></td><td><span class="action">couleur moyenne de remplissage</span></td></tr> +<tr bgcolor="feeffa"><td align="right"><span class="key">Shift+mouse drag</span></td><td><span class="action">couleur moyenne de contour</span></td></tr> +<tr bgcolor="feeffa"><td colspan="3"><span class="note">Cliquer applique la couleur sous le curseur à la sélection courante. Cliquer-déplacer un disque en calcule la couleur moyenne.</span></td></tr> +<tr bgcolor="feeffa"><td align="right"><span class="key">Ctrl+C</span></td><td><span class="action">copier la couleur</span></td></tr> +<tr bgcolor="feeffa"><td colspan="3"><span class="note">Copie la couleur sous le curseur vers le presse-papiers, en tant que texte au format RRVVBBAA (8 chiffres hexadécimaux).</span></td></tr> + +<tr><td colspan="3"><h1>Rectangle</h1></td></tr> + +<tr bgcolor="ebf1fd"><td colspan="3"><h4>Création</h4></td></tr> +<tr bgcolor="ebf1fd"><td align="right"><span class="key">mouse drag</span></td><td><span class="action">dessiner un rectangle</span></td></tr> +<tr bgcolor="ebf1fd"><td align="right"><span class="key">Ctrl+mouse drag</span></td><td><span class="action">dessiner un rectangle de ratio entier</span></td></tr> +<tr bgcolor="ebf1fd"><td colspan="3"><span class="note">Ceci force le rectangle à garder un rapport hauteur/largeur entier (permet aussi de dessiner un carré).</span></td></tr> +<tr bgcolor="ebf1fd"><td align="right"><span class="key">Shift+mouse drag</span></td><td><span class="action">dessiner autour du point de départ</span></td></tr> +<tr bgcolor="ebf1fd"><td colspan="3"><span class="note">Ceci crée un rectangle symétriquement autour du point de départ.</span></td></tr> + + +<tr bgcolor="ebf1fd"><td colspan="3"><h4>Edition</h4></td></tr> +<tr bgcolor="ebf1fd"><td align="right"><span class="key">click</span></td><td><span class="action">cliquer sur un rectangle à sélectionner</span></td></tr> +<tr bgcolor="ebf1fd"><td align="right"><span class="key">mouse drag</span></td><td><span class="action">redimensionner ou arrondir</span></td></tr> +<tr bgcolor="ebf1fd"><td colspan="3"><span class="note">Les deux poignées d'arrondi sont en haut à droite; celles de redimensionnement, en haut à gauche et en bas à droite.</span></td></tr> +<tr bgcolor="ebf1fd"><td align="right"><span class="key">Ctrl+mouse drag</span></td><td><span class="action">préserver largeur, hauteur ou ratio</span></td></tr> +<tr bgcolor="ebf1fd"><td colspan="3"><span class="note">S'applique aux poignées de redimensionnement.</span></td></tr> +<tr bgcolor="ebf1fd"><td colspan="3"><span class="note">Celles-ci redimensionnent le rectangle dans son propre système de coordonnées, avant d'appliquer toute transformation.</span></td></tr> +<tr bgcolor="ebf1fd"><td align="right"><span class="key">Ctrl+mouse drag</span></td><td><span class="action">préserver l'arrondi</span></td></tr> +<tr bgcolor="ebf1fd"><td colspan="3"><span class="note">S'applique aux poignées d'arrondi.</span></td></tr> +<tr bgcolor="ebf1fd"><td colspan="3"><span class="note">Lors de l'arrondi des coins, ne déplacer qu'une poignée (l'autre restant dans le coin) préserve la circularité du coin.</span></td></tr> +<tr bgcolor="ebf1fd"><td colspan="3"><span class="note">Déplacez les deux poignées pour un arrondi elliptique, ou une seule en appuyant sur Ctrl pour synchroniser la deuxième. +</span></td></tr> +<tr bgcolor="ebf1fd"><td align="right"><span class="key">Esc</span></td><td><span class="action">désélectionner</span></td></tr> + +<tr><td colspan="3"><h1>Ellipse</h1></td></tr> + +<tr bgcolor="ffece8"><td colspan="3"><h4>Création</h4></td></tr> +<tr bgcolor="ffece8"><td align="right"><span class="key">mouse drag</span></td><td><span class="action">dessiner une ellipse</span></td></tr> +<tr bgcolor="ffece8"><td align="right"><span class="key">Ctrl+mouse drag</span></td><td><span class="action">dessiner une ellipse de ratio entier</span></td></tr> +<tr bgcolor="ffece8"><td colspan="3"><span class="note">Ceci force l'ellipse à garder un rapport hauteur/largeur entier (permet aussi de dessiner un cercle).</span></td></tr> +<tr bgcolor="ffece8"><td align="right"><span class="key">Shift+mouse drag</span></td><td><span class="action">dessiner autour du point de départ</span></td></tr> +<tr bgcolor="ffece8"><td colspan="3"><span class="note">Ceci crée une ellipse symétriquement autour du point de départ.</span></td></tr> + + +<tr bgcolor="ffece8"><td colspan="3"><h4>Edition</h4></td></tr> +<tr bgcolor="ffece8"><td align="right"><span class="key">click</span></td><td><span class="action">cliquer sur une ellipse à sélectionner</span></td></tr> +<tr bgcolor="ffece8"><td align="right"><span class="key">mouse drag</span></td><td><span class="action">redimensionner ou "ouvrir"</span></td></tr> +<tr bgcolor="ffece8"><td colspan="3"><span class="note">Les deux poignées d'arc/camembert sont tout à droite; celles de redimensionnement, tout en haut et tout à gauche.</span></td></tr> +<tr bgcolor="ffece8"><td align="right"><span class="key">Ctrl+mouse drag</span></td><td><span class="action">forcer la circularité</span></td></tr> +<tr bgcolor="ffece8"><td colspan="3"><span class="note">S'applique aux poignées de redimensionnement.</span></td></tr> +<tr bgcolor="ffece8"><td colspan="3"><span class="note">Celles-ci redimensionnent l'ellipse dans son propre système de coordonnées, avant d'appliquer toute transformation.</span></td></tr> +<tr bgcolor="ffece8"><td align="right"><span class="key">Ctrl+mouse drag</span></td><td><span class="action">modifier l'angle par incréments</span></td></tr> +<tr bgcolor="ffece8"><td colspan="3"><span class="note">S'applique aux poignées d'arc/camembert.</span></td></tr> +<tr bgcolor="ffece8"><td colspan="3"><span class="note">L'incrément d'angle par défaut est de 15 degrés.</span></td></tr> +<tr bgcolor="ffece8"><td align="right"><span class="key">Esc</span></td><td><span class="action">désélectionner</span></td></tr> + +<tr><td colspan="3"><h1>Etoile</h1></td></tr> + +<tr bgcolor="f8f7d5"><td colspan="3"><h4>Création</h4></td></tr> +<tr bgcolor="f8f7d5"><td align="right"><span class="key">mouse drag</span></td><td><span class="action">dessiner une étoile</span></td></tr> +<tr bgcolor="f8f7d5"><td align="right"><span class="key">Ctrl+mouse drag</span></td><td><span class="action">tourner l'étoile par incréments</span></td></tr> +<tr bgcolor="f8f7d5"><td colspan="3"><span class="note">L'incrément d'angle par défaut est de 15 degrés.</span></td></tr> + + +<tr bgcolor="f8f7d5"><td colspan="3"><h4>Edition</h4></td></tr> +<tr bgcolor="f8f7d5"><td align="right"><span class="key">click</span></td><td><span class="action">cliquer sur une étoile à sélectionner</span></td></tr> +<tr bgcolor="f8f7d5"><td align="right"><span class="key">mouse drag</span></td><td><span class="action">déplacer une poignée pour modifier l'étoile</span></td></tr> +<tr bgcolor="f8f7d5"><td align="right"><span class="key">Ctrl+mouse drag</span></td><td><span class="action">garder l'étoile strictement radiale</span></td></tr> +<tr bgcolor="f8f7d5"><td align="right"><span class="key">Shift+mouse drag</span></td><td><span class="action">arrondir l'étoile</span></td></tr> +<tr bgcolor="f8f7d5"><td align="right"><span class="key">Shift+click</span></td><td><span class="action">supprimer l'arrondi</span></td></tr> +<tr bgcolor="f8f7d5"><td align="right"><span class="key">Alt+mouse drag</span></td><td><span class="action">rendre l'étoile aléatoire</span></td></tr> +<tr bgcolor="f8f7d5"><td align="right"><span class="key">Alt+click</span></td><td><span class="action">supprimer le hasard</span></td></tr> +<tr bgcolor="f8f7d5"><td align="right"><span class="key">Esc</span></td><td><span class="action">désélectionner</span></td></tr> + +<tr><td colspan="3"><h1>Spirale</h1></td></tr> + +<tr bgcolor="f3f3f3"><td colspan="3"><h4>Création</h4></td></tr> +<tr bgcolor="f3f3f3"><td align="right"><span class="key">mouse drag</span></td><td><span class="action">dessiner une spirale</span></td></tr> +<tr bgcolor="f3f3f3"><td align="right"><span class="key">Ctrl+mouse drag</span></td><td><span class="action">tourner la spirale par incréments</span></td></tr> +<tr bgcolor="f3f3f3"><td colspan="3"><span class="note">L'incrément d'angle par défaut est de 15 degrés.</span></td></tr> + + +<tr bgcolor="f3f3f3"><td colspan="3"><h4>Edition</h4></td></tr> +<tr bgcolor="f3f3f3"><td align="right"><span class="key">click</span></td><td><span class="action">cliquer sur une spirale à sélectionner</span></td></tr> + +<tr bgcolor="f3f3f3"><td align="right"><span class="key">mouse drag</span></td><td><span class="action">enrouler/dérouler (poignée intérieure)</span></td></tr> +<tr bgcolor="f3f3f3"><td colspan="3"><span class="note">Déplacer la poignée intérieure pour modifier le paramètre "rayon intérieur". +</span></td></tr> +<tr bgcolor="f3f3f3"><td align="right"><span class="key">Alt+mouse drag</span></td><td><span class="action">converger/diverger (poignée intérieure)</span></td></tr> +<tr bgcolor="f3f3f3"><td align="right"><span class="key">Alt+click</span></td><td><span class="action">forcer divergence=1 (poignée intérieure)</span></td></tr> +<tr bgcolor="f3f3f3"><td colspan="3"><span class="note">Alt+déplacer verticalement sur la poignée intérieure pour modifier la divergence, Alt+cliquer la remet à 1.</span></td></tr> +<tr bgcolor="f3f3f3"><td align="right"><span class="key">Shift+click</span></td><td><span class="action">forcer rayon intérieur=0 (poignée intérieure)</span></td></tr> +<tr bgcolor="f3f3f3"><td colspan="3"><span class="note">Maj+cliquer sur la poignée intérieure la déplace (et donc le départ de la spirale) au centre.</span></td></tr> + +<tr bgcolor="f3f3f3"><td align="right"><span class="key">mouse drag</span></td><td><span class="action">enrouler/dérouler (poignée extérieure)</span></td></tr> +<tr bgcolor="f3f3f3"><td colspan="3"><span class="note">Déplacer la poignée extérieure modifie le nombre de tours. Maj+Alt+cliquer-déplacer pour en/dé-rouler en préservant le rayon.</span></td></tr> +<tr bgcolor="f3f3f3"><td align="right"><span class="key">Shift+mouse drag</span></td><td><span class="action">redimensionner/tourner (poignée extérieure)</span></td></tr> +<tr bgcolor="f3f3f3"><td colspan="3"><span class="note">Utiliser Maj+Alt pour forcer une rotation seulement (verrouille le rayon de la spirale).</span></td></tr> + +<tr bgcolor="f3f3f3"><td align="right"><span class="key">Ctrl+mouse drag</span></td><td><span class="action">tourner une poignée par incréments</span></td></tr> +<tr bgcolor="f3f3f3"><td colspan="3"><span class="note">L'incrément d'angle par défaut est de 15 degrés. Ceci s'applique aux deux poignées.</span></td></tr> + +<tr bgcolor="f3f3f3"><td align="right"><span class="key">Esc</span></td><td><span class="action">désélectionner</span></td></tr> + +<tr><td colspan="3"><h1>Texte</h1></td></tr> + + +<tr bgcolor="eefdf3"><td align="right"><span class="key">click</span></td><td><span class="action">créer/activer un objet texte</span></td></tr> + +<tr bgcolor="eefdf3"><td colspan="3"><span class="note">Cliquer sur un espace libre ou sur un objet autre qu'un texte affiche un curseur texte; vous pouvez alors taper votre texte.</span></td></tr> +<tr bgcolor="eefdf3"><td colspan="3"><span class="note">Cliquer sur un objet texte pour l'activer; le curseur est placé à la fin du texte.</span></td></tr> +<tr bgcolor="eefdf3"><td colspan="3"><span class="note">Pour taper des caractères + ou -, utilisez le clavier principal, les touches + et - du pavé numérique étant réservées pour le zoom.</span></td></tr> +<tr bgcolor="eefdf3"><td align="right"><span class="key">arrows</span></td><td><span class="action">se déplacer dans un objet texte</span></td></tr> +<tr bgcolor="eefdf3"><td align="right"><span class="key">Début, +Fin</span></td><td><span class="action">aller au début/à la fin de la ligne</span></td></tr> +<tr bgcolor="eefdf3"><td align="right"><span class="key">Entrée</span></td><td><span class="action">commencer une nouvelle ligne</span></td></tr> +<tr bgcolor="eefdf3"><td align="right"><span class="key">Esc</span></td><td><span class="action">désélectionner l'objet texte</span></td></tr> + + + +<tr bgcolor="eefdf3"><td colspan="3"><h4>Caractères spéciaux</h4></td></tr> +<tr bgcolor="eefdf3"><td align="right"><span class="key">Ctrl+U</span></td><td><span class="action">(dés)activer le mode Unicode</span></td></tr> +<tr bgcolor="eefdf3"><td colspan="3"><span class="note">Dans ce mode, entrez des chiffres hexadécimaux et validez (Entrée ou Espace) pour obtenir le caractère Unicode correspondant.</span></td></tr> +<tr bgcolor="eefdf3"><td colspan="3"><span class="note">Exemple : Ctrl+U 2 0 1 4 Entrée insère un tiret long et sort du mode Unicode.</span></td></tr> +<tr bgcolor="eefdf3"><td colspan="3"><span class="note">Utilisez Espace au lieu d'Entrée pour rester en mode Unicode après avoir inséré un caractère.</span></td></tr> +<tr bgcolor="eefdf3"><td colspan="3"><span class="note">Un appui sur Esc annule le mode Unicode (sans insérer de caractère).</span></td></tr> + +<tr bgcolor="eefdf3"><td align="right"><span class="key">Ctrl+Espace</span></td><td><span class="action">insérer un espace insécable</span></td></tr> +<tr bgcolor="eefdf3"><td colspan="3"><span class="note">Un espace insécable est visible même dans un objet texte sans attribut xml:space="preserve".</span></td></tr> + + + +<tr bgcolor="eefdf3"><td colspan="3"><h4>Inter-lettrage</h4></td></tr> +<tr bgcolor="eefdf3"><td align="right"><span class="key">Alt+></span></td><td><span class="action">allonger la ligne d'1 pixel</span></td></tr> +<tr bgcolor="eefdf3"><td align="right"><span class="key">Shift+Alt+></span></td><td><span class="action">allonger la ligne de 10 pixels</span></td></tr> +<tr bgcolor="eefdf3"><td align="right"><span class="key">Alt+<</span></td><td><span class="action">rétrécir la ligne d'1 pixel</span></td></tr> +<tr bgcolor="eefdf3"><td align="right"><span class="key">Shift+Alt+<</span></td><td><span class="action">rétrécir la ligne de 10 pixels</span></td></tr> +<tr bgcolor="eefdf3"><td colspan="3"><span class="note">Ces raccourcis agissent lorsque vous éditez un objet texte. Ils ajustent l'inter-lignage de la ligne courante seulement.</span></td></tr> +<tr bgcolor="eefdf3"><td colspan="3"><span class="note">La précision réelle de ces ajustements (à l'échelle du pixel) dépend du niveau de zoom. Zommer pour un ajustement plus fin.</span></td></tr> + + + +<tr bgcolor="eefdf3"><td colspan="3"><h4>Inter-lignage</h4></td></tr> +<tr bgcolor="eefdf3"><td align="right"><span class="key">Ctrl+Alt+></span></td><td><span class="action">rendre l'objet texte plus haut d'1 pixel</span></td></tr> +<tr bgcolor="eefdf3"><td align="right"><span class="key">Shift+Ctrl+Alt+></span></td><td><span class="action">rendre l'objet texte plus haut de 10 pixels</span></td></tr> +<tr bgcolor="eefdf3"><td align="right"><span class="key">Ctrl+Alt+<</span></td><td><span class="action">rendre l'objet texte plus bas d'1 pixel</span></td></tr> +<tr bgcolor="eefdf3"><td align="right"><span class="key">Shift+Ctrl+Alt+<</span></td><td><span class="action">rendre l'objet texte plus bas de 10 pixels</span></td></tr> +<tr bgcolor="eefdf3"><td colspan="3"><span class="note">Ces raccourcis agissent lorsque vous éditez un objet texte. Ils ajustent l'inter-lignage de l'objet texte courant seulement.</span></td></tr> +<tr bgcolor="eefdf3"><td colspan="3"><span class="note">La précision réelle de ces ajustements (à l'échelle du pixel) dépend du niveau de zoom. Zommer pour un ajustement plus fin.</span></td></tr> + + + +<tr bgcolor="eefdf3"><td colspan="3"><h4>Crénage et déplacement</h4></td></tr> +<tr bgcolor="eefdf3"><td align="right"><span class="key">Alt+arrows</span></td><td><span class="action">déplacer les caractères suivants d'1 pixel</span></td></tr> +<tr bgcolor="eefdf3"><td align="right"><span class="key">Shift+Alt+arrows</span></td><td><span class="action">déplacer les caractères suivants de 10 pixels</span></td></tr> +<tr bgcolor="eefdf3"><td colspan="3"><span class="note">Ces raccourcis agissent lorsque vous éditez un objet texte.</span></td></tr> +<tr bgcolor="eefdf3"><td colspan="3"><span class="note">Elles déplacent (horizontalement ou verticalement) le caractère suivant le curseur et tous les autres jusqu'à la fin de la ligne.</span></td></tr> +<tr bgcolor="eefdf3"><td colspan="3"><span class="note">Exemeple : déplacer vers le bas un seul caractère.</span></td></tr> +<tr bgcolor="eefdf3"><td colspan="3"><span class="note">Placez le curseur devant le caractère, appuyez sur Alt+Bas, puis derrière et appuyez sur Alt+Haut. +</span></td></tr> + + +<tr bgcolor="eefdf3"><td colspan="3"><span class="note">La précision réelle des déplacements (à l'échelle du pixel) dépend du niveau de zoom. Zommer pour un ajustement plus fin.</span></td></tr> + + + +<tr bgcolor="eefdf3"><td colspan="3"><h4>Texte suivant un chemin</h4></td></tr> +<tr bgcolor="eefdf3"><td align="right"><span class="key">Shift+D</span></td><td><span class="action">sélectionner le chemin</span></td></tr> +<tr bgcolor="eefdf3"><td colspan="3"><span class="note">Sélectionner un texte suivant un chemin puis utiliser ce raccourci permet de sélectionner le chemin source du texte.</span></td></tr> + +</table><p><a href="http://validator.w3.org/check/referer"><img border="0" src="http://www.w3.org/Icons/valid-html40" alt="Valid HTML 4.0!" height="31" width="88"></img></a></p></body></html> diff --git a/doc/keys.fr.xml b/doc/keys.fr.xml new file mode 100644 index 000000000..a74198de2 --- /dev/null +++ b/doc/keys.fr.xml @@ -0,0 +1,927 @@ +<root xmlns="http://www.inkscape.org/namespaces/keys"> +<!-- Translated to French, based on cvs revision 1.44 of the English version 2005, Matiphas, matiphas@free.fr --> +<p> +Sauf mention contraire, les touches du pavé numérique (Début, Fin, +, -, les flèches et les chiffres par exemple) sont supposées se comporter comme des touches normales. Se référer au wiki, sur la page KeyboardShortcutsToDo (en anglais), pour voir la discussion sur les autres raccourcis que nous prévoyons d'instaurer; vous pouvez y laisser vos idées et requêtes. +</p> + +<column> + +*<section title="Outils" color="f5f5f5"> + +<group> +<keys><key><keyf f="F1"/></key><key>s</key> <action>sélecteur</action></keys> +<keys><key><misc-wide f="Espace"/></key> <action>sélecteur (temporaire)</action></keys> +<note>Espace bascule temporairement vers le sélecteur. Espace de nouveau rebascule vers l'outil précédent.</note> +<keys><key><keyf f="F2"/></key><key>n</key> <action>nœud</action></keys> +<keys><key><keyf f="F3"/></key><key>z</key> <action>zoom</action></keys> +<keys><key><keyf f="F4"/></key><key>r</key> <action>rectangle</action></keys> +<keys><key><keyf f="F5"/></key><key>e</key> <action>ellipse/arc</action></keys> +<keys><key><keyf f="F6"/></key><key>p</key> <action>crayon (main levée)</action></keys> +<keys><key><shift/><keyf f="F6"/></key><key>b</key> <action>stylo (Bézier)</action></keys> +<keys><key><ctrl/><keyf f="F6"/></key><key/> <action>plume calligraphique</action></keys> +<keys><key><keyf f="F7"/></key><key>d</key> <action>pipette</action></keys> +<keys><key><keyf f="F8"/></key><key>t</key> <action>texte</action></keys> +<keys><key><keyf f="F9"/></key><key>i</key> <action>spirale</action></keys> +<keys><key><shift/><keyf f="F9"/></key><key>*</key> <action>étoile</action></keys> +<note>Un double clic sur le bouton d'un outil ouvre la boîte de dialogue des préférences à l'onglet de l'outil correspondant. +</note> +</group> +</section> + +*<section title="Fichier" color="f3f2e2"> + +<group> +<keys><key><ctrl/>N</key> <action>créer un nouveau document</action></keys> +<keys><key><ctrl/>O</key> <action>ouvrir un document SVG</action></keys> +<keys><key><shift/><ctrl/>E</key> <action>exporter en PNG</action></keys> +<keys><key><ctrl/>I</key> <action>importer un bitmap ou SVG</action></keys> +<keys><key><ctrl/>P</key> <action>imprimer le document</action></keys> +<keys><key><ctrl/>S</key> <action>sauver le document</action></keys> +<keys><key><shift/><ctrl/>S</key> <action>sauver sous un autre nom</action></keys> +<keys><key><ctrl/>Q</key> <action>quitter Inkscape</action></keys> +</group> + +</section> + +*<section title="Fenêtre" color="e8fae1"> + +<group> +<keys><key><ctrl/>R</key> <action>(dés)afficher les règles</action></keys> +<keys><key><ctrl/>B</key> <action>(dés)afficher les barres de défilement</action></keys> +<keys><key><keyf f="F11"/></key> <action>(dés)afficher en plein écran</action></keys> +</group> + +<group> +<keys><key><keyf f="F10"/></key> <action>menu principal</action></keys> +<note>Les menus peuvent aussi être activés en appuyant simultanément sur Alt et la lettre soulignée dans le nom du menu.</note> +<keys><key><shift/><keyf f="F10"/></key> <key><right-click/></key> <action>menu contextuel</action></keys> +</group> + +<group> +<keys><key><ctrl/><keyf f="F4"/></key> <key><ctrl/>W</key> <action>fermer la fenêtre (document)</action></keys> +<note>Quitte Inkscape si la fenêtre courante est le seul document ouvert.</note> +<keys><key><ctrl/><misc f="Tab"/></key> <action>fenêtre (document) suivante</action></keys> +<keys><key><shift/><ctrl/><misc f="Tab"/></key> <action>fenêtre (document) précédente</action></keys> +<note>Permet de circuler entre les fenêtres (documents) en avant ou en arrière.</note> +</group> + +</section> + + +*<section title="Dialogues" color="f0eae7"> +<group> +<keys><key><shift/><ctrl/>F</key> <action>Remplissage et contour</action></keys> +<keys><key><shift/><ctrl/>T</key> <action>Texte et police</action></keys> +<keys><key><shift/><ctrl/>M</key> <action>Transformer</action></keys> +<keys><key><shift/><ctrl/>A</key> <action>Aligner et distribuer</action></keys> +<keys><key><shift/><ctrl/>O</key> <action>Propriétés de l'objet</action></keys> +<keys><key><shift/><ctrl/>X</key> <action>Editeur XML</action></keys> +<keys><key><shift/><ctrl/>D</key> <action>Préférences du document</action></keys> +<keys><key><shift/><ctrl/>P</key> <action>Préférences d'Inkscape</action></keys> +<keys><key><shift/><ctrl/>E</key> <action>Exporter en PNG</action></keys> +<keys><key><ctrl/>F</key> <action>Rechercher</action></keys> +<keys><key><shift/><alt/>B</key> <action>Vectoriser un bitmap</action></keys> +<note>Ces raccourcis ouvrent si nécessaire une nouvelle boîte de dialogue, sinon réactivent la boîte correspondante.</note> +</group> + +<group> +<title>(dés)Afficher</title> +<keys><key><keyf f="F12"/></key> <action>(dés)afficher les boîtes de dialogue</action></keys> +<note>Masque temporairement les boîtes de dialogue ouvertes. Un appui de plus sur F12 les rend de nouveau visibles.</note> +</group> + +<group> +<title>Dans une boîte de dialogue</title> +<keys><key><misc f="Esc"/></key> <action>retourner au canevas</action></keys> +<keys><key><ctrl/><keyf f="F4"/></key> <key><ctrl/>W</key> <action>fermer le dialogue</action></keys> +<keys><key><misc f="Tab"/></key> <action>passer au champ suivant</action></keys> +<keys><key><shift/><misc f="Tab"/></key> <action>passer au champ précédent</action></keys> +<keys><key><misc-wide f="Entrée"/></key> <action>valider la nouvelle valeur</action></keys> +<note>Valide la nouvelle valeur entrée dans un champ et retourne au canevas.</note> +<keys><key><ctrl/><misc-wide f="Entrée"/></key> <action>définir la valeur d'un attribut (éditeur XML)</action></keys> +<note>Valide la nouvelle valeur d'un attribut dans l'éditeur XML (comme cliquer sur le bouton "Définir l'attribut".</note> +<keys><key><misc-wide f="Espace"/></key> <key><misc-wide f="Entrée"/></key> <action>activer le bouton ou la valeur d'une liste.</action></keys> +<keys><key><ctrl/><misc f="Préc."/></key> <key><ctrl/><misc f="Suiv."/></key> <action>naviguer parmi les onglets d'un dialogue</action></keys> +</group> +</section> + +*<section title="Contrôle" color="f8f3e9"> + +<group> +<note>La barre de contrôle en haut de la fenêtre document affiche des champs et des contrôles pour chacun des outils.</note> +<keys><key><alt/>X</key> <action>aller au premier champ</action></keys> +<keys><key><misc-wide f="Entrée"/></key> <action>valider la nouvelle valeur</action></keys> +<note>Valide la nouvelle valeur entrée dans un champ et retourne au canevas.</note> +<keys><key><misc f="Esc"/></key> <action>annuler les modifications, retourner au canevas</action></keys> +<note>Annule la modification d'un champ et retourne au canevas.</note> +<keys><key><ctrl/>Z</key> <action>annuler les modifications</action></keys> +<note>Annule la modification d'un champ mais reste dans ce champ.</note> +<keys><key><misc f="Tab"/></key> <action>passer au champ suivant</action></keys> +<keys><key><shift/><misc f="Tab"/></key> <action>passer au champ précédent</action></keys> +<note>Permet de naviguer entre les différents champs de la barre de contrôle (les modifications du champs quitté sont validées).</note> +</group> + +<group> +<title>Modification des valeurs</title> +<mouse><key><up/></key> <key><down/></key> <action>modifier la valeur de 0.1</action></mouse> +<keys><key><misc f="Préc."/></key><key><misc f="Suiv."/></key> <action>modifier la valeur de 5.0</action></keys> +</group> + +</section> + +</column> + + +<column> + +*<section title="Canevas" color="e5f1e7"> + +<group> +<title>Zoom</title> +<keys><key>=</key> <key>+</key> <action>zoommer</action></keys> +<keys><key>-</key> <action>dézoommer</action></keys> +<note>Les touches +/- du pavé numérique permettent de zoommer même pendant l'édition d'un objet texte.</note> +<mouse><key><mid-click/></key> <key><ctrl/><right-click/></key> <action>zoommer</action></mouse> +<mouse><key><shift/><mid-click/></key> <key><shift/><right-click/></key> <action>dézoommer</action></mouse> +<mouse><key><ctrl/><wheel/></key> <action>(dé)zoommer</action></mouse> +<keys><key><alt/>Z</key> <action>activer le champ de zoom</action></keys> +<note>Le champ zoom dans le coin inférieur gauche de la fenêtre vous permet de spécifier précisément la valeur de zoom.</note> +</group> + +<group> +<title>Zooms prédéfinis</title> +<keys><key>1</key> <action>zoommer à 1:1</action></keys> +<keys><key>2</key> <action>zoommer à 1:2</action></keys> +<keys><key>3</key> <action>zoommer sur la sélection</action></keys> +<keys><key>4</key> <action>zoommmer sur le dessin</action></keys> +<keys><key>5</key> <action>zoommer sur la page</action></keys> +<keys><key><ctrl/>E</key><key>6</key> <action>zoommer sur la largeur de page</action></keys> +</group> + +<group> +<title>Historique du zoom</title> +<keys><key>`</key> <action>(guillement inversé) zoom précédent</action></keys> +<keys><key><shift/>`</key> <action>zoom suivant</action></keys> +<note>Ces raccourcis permettent de naviguer parmi les différents niveaux de zoom utilisés pendant la session.</note> +</group> + +<group> +<title>Défilement</title> +<mouse><key><ctrl/><arrows/></key> <action>faire défiler le canevas</action></mouse> +<note>Ces raccourcis peuvent être accélérés, par une répétition rapide ou un appui continu</note> +<mouse><key><mid-drag/></key> <action>faire défiler le canevas</action></mouse> +<mouse><key><shift/><right-drag/></key> <key><ctrl/><right-drag/></key> <action>faire défiler le canevas</action></mouse> +<mouse><key><wheel/></key> <action>faire défiler le canevas verticalement</action></mouse> +<mouse><key><shift/><wheel/></key> <action>faire défiler le canevas horizontalement</action></mouse> +</group> + +<group> +<title>Guides et grille</title> +<mouse><key><left-drag/></key> <action>créer un guide en le tirant depuis une règle</action></mouse> +<note>Cliquer-déplacer d'une règle vers le canevas pour créer un nouveau guide. Déplacer un guide vers la règle pour le supprimer.</note> +<keys><key>|</key> <key><shift/>\</key> <action>(dés)activer affichage et collage des guides</action></keys> +<note>Pour des valeurs différentes d'affichage/collage des guides, les régler dans les Préférences du document.</note> +<note>Lors de sa création par cliquer-déplacer depuis une règle, l'affichage et le collage des guides sont activés.</note> +<keys><key>#</key> <key><shift/>3</key> <action>(dés)activer affichage et collage de la grille</action></keys> +<note>Pour des valeurs différentes d'affichage/collage de la grille, les régler dans les Préférences du document.</note> +<note>Notez que seule la touche 3 du clavier principal a une action, pas celle du pavé numérique.</note> +</group> +</section> + +*<section title="Calques" color="f6f9d9"> +<group> +<keys><key><shift/><misc f="Préc."/></key> <action>déplacer au calque supérieur</action></keys> +<keys><key><shift/><misc f="Suiv."/></key> <action>déplacer au calque inférieur</action></keys> +<note>Ces commandes déplacent les objets sélectionnés d'un calque à un autre.</note> + +<keys><key><shift/><ctrl/><misc f="Préc."/></key> <action>monter le calque</action></keys> +<keys><key><shift/><ctrl/><misc f="Suiv."/></key> <action>descendre le calque</action></keys> +<keys><key><shift/><ctrl/><misc f="Début"/></key> <action>monter le calque au premier plan</action></keys> +<keys><key><shift/><ctrl/><misc f="Fin"/></key> <action>descendre le calque à l'arrière plan</action></keys> +<note>Ces commandes déplacent le calque courant parmi sa hiérarchie (normalement d'autres calques)</note> +</group> +</section> + + +*<section title="Objet" color="f4ecf5"> + +<group> +<title>Annuler/refaire</title> +<keys><key><shift/><ctrl/>Y</key> <key><ctrl/>Z</key> <action>annuler</action></keys> +<keys><key><shift/><ctrl/>Z</key> <key><ctrl/>Y</key> <action>refaire</action></keys> +</group> + +<group> +<title>Presse-papiers</title> +<keys><key><ctrl/>C</key> <action>copier la sélection</action></keys> +<note>Copie la sélection dans le presse-papiers Inkscape (et aussi dans le presse-papiers système pour les textes).</note> +<keys><key><ctrl/>X</key> <action>couper la sélection</action></keys> +<note>Fonctionne comme un "copier la sélection" suivi de la suppression de la sélection.</note> +<keys><key><ctrl/>V</key> <action>coller le presse-papiers</action></keys> +<note>Ceci place les objets du presse-papier sous la souris, ou au centre de la fenêtre si la souris est hors du canevas.</note> +<note>Lors de l'édition d'un texte avec l'outil texte, colle le texte du presse-papiers système dans l'objet texte courant.</note> +<keys><key><ctrl/><alt/>V</key> <action>coller sur place</action></keys> +<note>Ceci place les objets du presse-papiers au même emplacement que lors de leur copie.</note> +<keys><key><shift/><ctrl/>V</key> <action>coller le style</action></keys> +<note>Ceci applique le style du premier des objet copiés à la sélection courante.</note> +</group> + +<group> +<title>Dupliquer</title> +<keys><key><ctrl/>D</key> <action>dupliquer la sélection</action></keys> +<note>Les nouveaux objet(s) sont placés exactement au même endroit, au dessus des originaux et sont sélectionnés.</note> +</group> + +<group> +<title>Cloner</title> +<keys><key><alt/>D</key> <action>cloner l'objet</action></keys> +<note>Un clone peut être déplacé/redimensionné/tourné/incliné indépendament, mais reçoit ses tracé/remplissage/contour de l'original.</note> +<note>Le clone est placé exactement au même endroit, au dessus de l'original et est sélectionné.</note> +<note>Vous ne pouvez cloner qu'un objet à la fois; si vous voulez cloner plusieurs objets ensemble, groupez-les puis clonez le groupe.</note> +<keys><key><shift/><alt/>D</key> <action>délier le clone</action></keys> +<note>Délier un clone supprime le lien vers son original, le clone devenant alors une simple copie.</note> +<keys><key><shift/>D</key> <action>sélectionner l'original</action></keys> +<note>Après sélection d'un clone, cette commande sélectionne l'objet original dont le clone est issu.</note> +</group> + +<group> +<title>Bitmaps</title> +<keys><key><alt/>B</key> <action>créer une copie bitmap</action></keys> +<note>Exporte en PNG les objet(s) sélectionnés (les autres objets étant masqués) dans le répertoire du document et réimporte ce PNG.</note> +<note>Le bitmap (PNG) importé est placé exactement au même endroit, au dessus de la sélection originale, et est sélectionné.</note> +<keys><key><shift/><alt/>B</key> <action>vectoriser le bitmap</action></keys> +<note>Ceci ouvre la boîte de dialogue vectoriser un bitmap, vous permettant de convertir une image bitmap en chemin.</note> +</group> + +<group> +<title>Motif</title> +<keys><key><alt/>I</key> <action>objet en motif</action></keys> +<note>Ceci convertit la sélection en un rectangle rempli avec la sélection comme motif de remplissage.</note> +<keys><key><shift/><alt/>I</key> <action>motif en objet</action></keys> +<note>Sépare tout objet sélectionné rempli avec un motif en deux objets : ce même objet sans remplissage et le motif seul.</note> +</group> + +<group> +<title>Grouper</title> +<keys> <key><shift/><ctrl/>U</key> <key><ctrl/>G</key> <action>grouper les objets sélectionnés</action></keys> +<note>Ctrl+cliquer permet de sélectionner des objets au sein d'un groupe.</note> +<keys><key><shift/><ctrl/>G</key> <key><ctrl/>U</key> <action>dégrouper les groupe(s) sélectionnés</action></keys> +<note>Retire un niveau de regroupement; répéter plusieurs fois Ctrl+U permet de dégrouper des groupes imbriqués.</note> +</group> + +<group> +<title>Ordre-Z (superposition)</title> +<keys><key><misc f="Début"/></key> <action>monter la sélection au premier plan</action></keys> +<keys><key><misc f="Fin"/></key> <action>descendre la sélection à l'arrière plan</action></keys> +<keys><key><misc f="Préc."/></key> <action>monter la sélection d'un cran</action></keys> +<keys><key><misc f="Suiv."/></key> <action>descendre la sélection d'un cran</action></keys> + </group> + +</section> + +*<section title="Chemin" color="f9f1d9"> + +<group> +<title>Convertir en chemin</title> +<keys><key><shift/><ctrl/>C</key> <action>convertir les objet(s) sélectionnés en chemin</action></keys> +<keys><key><ctrl/><alt/>C</key> <action>convertir les contour(s) sélectionnés en chemin</action></keys> +</group> + +<group> +<title>Booléens</title> +<keys><key><ctrl/>+</key> <action>union</action></keys> +<note>L'union combine plusieurs objets en un seul chemin, fusionnant les recouvrements.</note> +<keys><key><ctrl/>-</key> <action>différence</action></keys> +<note>La différence s'applique à deux objets, extrayant celui du dessus de celui du dessous.</note> +<keys><key><ctrl/>*</key> <action>intersection</action></keys> +<note>L'intersection crée un chemin représentant l'intersection des objets sélectionnés.</note> +<keys><key><ctrl/>^</key> <action>exclusion (ou exclusif)</action></keys> +<note>L'exclusion est similaire à l'union, mais ne s'applique qu'à deux objets et supprime les recouvrements.</note> +<keys><key><ctrl/>/</key> <action>division (coupe)</action></keys> +<note>La division découpe l'objet du dessous en morceaux selon l'objet du dessus, et préserve ses remplissage et contour.</note> +<keys><key><ctrl/><alt/>/</key> <action>découpe des chemins</action></keys> +<note>Découper en chemin découpe le contour de l'objet du dessous aux points d'intersection avec celui du dessus.</note> +<note> Le résultat est sans remplissage.</note> +<note>Le résultat d'une union/différence/intersection/exclusion hérite de l'attribut id (et donc des clones) de l'objet du dessous.</note> +<note>Les division et découpe en chemin peuvent produire plusieurs objets. L'un d'eux, au hasard, hérite de l'id de l'objet du dessous.</note> +</group> + +<group> +<title>Offsets</title> +<keys><key><ctrl/>(</key> <action>éroder le chemin</action></keys> +<keys><key><ctrl/>)</key> <action>dilater le chemin</action></keys> +<note>La distance d'offset par défaut est de 2 px (en pixels SVG, pas en pixels à l'écran).</note> +<keys><key><alt/>(</key> <action>éroder le chemin d'1 pixel</action></keys> +<keys><key><alt/>)</key> <action>dilater le chemin d'1 pixel</action></keys> +<keys><key><shift/><alt/>(</key> <action>éroder le chemin de 10 pixels</action></keys> +<keys><key><shift/><alt/>)</key> <action>dilater le chemin de 10 pixels</action></keys> +<note>Le déplacement réel des pixels dépend du niveau de zoom. Zommer pour ajuster plus finement.</note> +<note>Toutes les commandes (, ) convertissent l'objet en chemin si nécessaire, et produisent un chemin normal.</note> +<keys><key><ctrl/>J</key> <action>créer un offset dynamique</action></keys> +<keys><key><ctrl/><alt/>J</key> <action>créer un offset lié</action></keys> +<note>Ces commandes produisent un objet offset (autonome ou lié à l'original) que l'on peut éditer avec l'outil nœud. +</note> +<keys><key><shift/>D</key> <action>sélectionner l'objet source</action></keys> +<note>Après sélection d'un offset lié, cette commande sélectionne l'objet original dont il est issu.</note> +</group> + +<group> +<title>Combiner</title> +<keys><key><ctrl/>K</key> <action>combiner les chemins</action></keys> +<note>Cette commande est différente de grouper : des chemins combinés créent un objet, pas un groupe.</note> +<note>Différente aussi d'une union : les recouvrements ne sont pas affectés..</note> +<note>Le remplissage des recouvrements est géré par le champ remplissage (complet/alternatif) du dialogue Remplissage et contour.</note> +<keys><key><shift/><ctrl/>K</key> <action>séparer les chemins</action></keys> +<note>Sépare les sous-chemins d'un chemin composé; ceci échouera si l'objet est constitué d'un seul chemin.</note> +</group> + +<group> +<title>Simplifier</title> +<keys><key><ctrl/>L</key> <action>simplifier</action></keys> +<note>Simplifie les chemin(s) sélectionnés en supprimant quelques nœuds. Si nécessaire, les objets sont convertis en chemins.</note> +<note>En invoquant cette commande plusieurs fois de suite rapidement, elle agira de plus en plus agressivement.</note> +<note>Le seuil par défaut (réglable dans les préférences d'Inkscape) est restauré après une pause.</note> +</group> + +</section> + +</column> + +<column> + +*<section title="Sélecteur" color="eee4dc"> + +<group> +<title>Sélection au clavier</title> +<keys><key><misc f="Tab"/></key> <action>sélectionner l'objet suivant</action></keys> +<keys><key><shift/><misc f="Tab"/></key> <action>sélectionner l'objet précédent</action></keys> +<note>Sélectionne les objets selon leur ordre-z (Tab circule de l'arrière au premier plan, Maj+Tab fait l'inverse).</note> +<note>A moins d'avoir fait des réarrangements manuels, le dernier objet créé est au tout premier plan</note> +<note>Aussi, si rien n'est sélectionné, Maj+Tab est une façon pratique de sélectionner le dernier objet créé.</note> +<note>Cette commande s'applique aux objets du calque courant (sauf modification des préférences).</note> +<keys><key><ctrl/>A</key> <action>tout sélectionner (calque courant)</action></keys> +<note>Cette commande s'applique aux objets du calque courant (sauf modification des préférences).</note> +<keys><key><ctrl/><alt/>A</key> <action>tout sélectionner (tous les calques)</action></keys> +<note>Cette commande s'applique aux objets de tout calque visible et déverrouillé.</note> +<keys><key>!</key> <action>inverser la sélection (calque courant)</action></keys> +<note>Inverse la sélection (désélectionne ce qui était sélectionné, et sélectionne tout le reste) du calque courant.</note> +<keys><key><alt/>!</key> <action>inverser la sélection (tous les calques)</action></keys> +<note>Inverse la sélection dans tout calque visible et déverrouillé.</note> +<keys><key><misc f="Esc"/></key> <action>désélectionner</action></keys> +<keys><key><misc-wide f="Backspace"/></key><key><misc f="Suppr."/></key> <action>supprimer la sélection</action></keys> +</group> + +<group> +<title>Déplacement au clavier</title> +<mouse><key><arrows/></key> <action>déplacer la sélection par incrément(s)</action></mouse> +<mouse><key><shift/><arrows/></key> <action>déplacer la sélection de 10x l'incrément</action></mouse> +<note>L'incrément de déplacement par défaut est 1mm.</note> +<mouse><key><alt/><arrows/></key> <action>déplacer la sélection d'1 pixel</action></mouse> +<mouse><key><alt/><shift/><arrows/></key> <action>déplacer la sélection de 10 pixels</action></mouse> +<note>Le déplacement réel à l'échelle du pixel dépend du niveau de zoom. Zommer pour déplacer plus finement.</note> +</group> + +<group> +<title>Rotation au clavier</title> +<keys><key>[</key> <key>]</key> <action>tourner la sélection par incrément(s)</action></keys> +<note>L'incrément de rotation par défaut est 15°. ] tourne en sens horaire, [ en sens anti-horaire.</note> +<keys><key><ctrl/>[</key> <key><ctrl/>]</key> <action>tourner la sélection de 90 degrés</action></keys> +<keys><key><alt/>[</key> <key><alt/>]</key> <action>tourner la sélection d'1 pixel</action></keys> +<note>La rotation réelle à l'échelle du pixel dépend du niveau de zoom. Zommer pour tourner plus finement.</note> +</group> + +<group> +<title>Redimensionnement au clavier</title> +<keys><key>.</key> <key>></key> <action>agrandir la sélection par incrément(s)</action></keys> +<keys><key>,</key> <key><</key> <action>rétrécir la sélection par incrément(s)</action></keys> +<note>L'incrément de redimensionnement par défaut est de 2 px (en pixels SVG, pas en pixels à l'écran).</note> +<keys><key><ctrl/>.</key> <key><ctrl/>></key> <action>agrandir la sélection à 200%</action></keys> +<keys><key><ctrl/>,</key> <key><ctrl/><</key> <action>rétrécir la sélection à 50%</action></keys> +<keys><key><alt/>.</key> <key><alt/>></key> <action>agrandir la sélection d'1 pixel</action></keys> +<keys><key><alt/>,</key> <key><alt/><</key> <action>rétrécir la sélection d'1 pixel</action></keys> +<note>Le redimensionnement réel à l'échelle du pixel dépend du niveau de zoom. Zommer pour dimensionner plus finement.</note> +<note>Le redimensionnement est uniforme autour du centre : il est donc appliqué à la plus grande des deux dimensions.</note> +</group> + +<group> +<title>Retournement au clavier</title> +<keys><key>h</key> <action>retourner la sélection horizontalement</action></keys> +<keys><key>v</key> <action>retourner la sélection verticalement</action></keys> +</group> + +<group> +<title>Sélection à la souris</title> +<mouse><key><left-click/></key> <action>sélectionner un objet</action></mouse> +<note>En cliquant (bouton gauche) sur un objet, la sélection précédente est desélectionnée.</note> +<mouse><key><shift/><left-click/></key> <action>alterner la sélection</action></mouse> +<note>Maj+cliquer ajoute un objet à la sélection courante s'il n'était pas sélectionné, le retire sinon.</note> +</group> + +<group> +<title>Sélection dans un groupe, en-dessous</title> +<mouse><key><ctrl/><left-click/></key> <action>sélectionner dans un groupe</action></mouse> +<note>Sélectionne l'objet sous le curseur, quel que soit le groupe auquel cet objet peut appartenir.</note> +<mouse><key><ctrl/><shift/><left-click/></key> <action>alterner la sélection (dans un groupe)</action></mouse> +<mouse><key><alt/><left-click/></key> <action>sélectionner en-dessous</action></mouse> +<note>Sélectionne l'objet (sous le curseur) juste en dessous (dans l'ordre-z) l'objet sélectionné le plus bas.</note> +<note>Si l'objet le plus en bas atteint, un Alt+Cliquer de plus sélectionne l'objet au premier plan, circulant ainsi dans l'ordre-z.</note> +<note>Sous Linux, Alt+cliquer et Alt+cliquer-déplacer peuvent être préemptés par le gestionnaire de fenêtre.</note> +<note>Reconfigurez celui-ci afin de pouvoir utiliser ces raccourcis dans Inkscape.</note> +<mouse><key><shift/><alt/><left-click/></key> <action>alterner en-dessous</action></mouse> +<mouse><key><ctrl/><alt/><left-click/></key> <action>sélectionner en-dessous, dans des groupes</action></mouse> +<mouse><key><shift/><ctrl/><alt/><left-click/></key> <action>alterner en-dessous, dans des groupes</action></mouse> +</group> + +<group> +<title>Bande étirable</title> +<mouse><key><left-drag/></key> <action>sélectionner plusieurs objets</action></mouse> +<note>Cliquer-déplacer autour d'objets les sélectionne par bande étirable; la sélection précédente est désélectionnée.</note> +<mouse><key><shift/><left-drag/></key> <action>ajouter des objets à la sélection</action></mouse> +<note>Normalement, vous devez commencer une bande étirable sur une zone vide.</note> +<note>Mais, en appuyant sur Maj avant, Inkscape effectuera une zone étirable, même si elle commence sur un objet.</note> +</group> + +<group> +<title>Déplacement à la souris</title> +<mouse><key><left-drag/></key> <action>sélectionner + déplacer</action></mouse> +<note>Cliquer-déplacer sur un objet le sélectionne s'il n'était pas sélectionné, puis déplace la sélection.</note> +<mouse><key><alt/><left-drag/></key> <action>déplacer la sélection</action></mouse> +<note>Déplace la sélection courante (sans sélectionner ce qui est sous le curseur), quel que soit le point de départ.</note> +<note>Sous Linux, Alt+cliquer et Alt+cliquer-déplacer peuvent être utilisés par le gestionnaire de fenêtre.</note> +<note>Reconfigurez celui-ci afin de pouvoir utiliser ces raccourcis dans Inkscape.</note> + +<mouse><key><ctrl/><left-drag/></key> <action>restreindre à un mouvement vertical/horizontal</action></mouse> +<mouse><key><shift/><left-drag/></key> <action>désactiver temporairement le collage</action></mouse> +<note>Désactive temporairement le collage à la grille ou aux guides lors de déplacements (grille/guides étant actifs).</note> +<mouse><key><left-drag/><misc-wide f="Espace"/></key> <action>tamponner une copie</action></mouse> +<note>Lors de déplacements/transformations à la souris, un appui sur la barre d'espace dépose une copie de l'objet sélectionné.</note> +<note>Vous pouvez maintenir la barre d'espace appuyée lors d'un déplacement pour obtenir une belle "trainée".</note> +</group> + +<group> +<title>Transformation à la souris</title> +<mouse><key><left-click/></key> <action>alterner poignées arrondi/redimensionnement</action></mouse> +<mouse><key><left-drag/></key> <action>redimensionner</action></mouse> +<note>S'applique aux poignées de redimensionnement.</note> +<mouse><key><left-drag/></key> <action>tourner ou incliner</action></mouse> +<note>S'applique aux poignées de rotation/inclinaison.</note> +</group> + +<group> +<title>Poignées de redimensionnement</title> +<mouse><key><ctrl/><left-drag/></key> <action>redimensionner en préservant le ratio</action></mouse> +<!--<mouse><key><ctrl/><left-drag/></key> only smaller, keep aspect ratio--> <!-- TO BE REMOVED --> +<mouse><key><shift/><left-drag/></key> <action>transformation symétrique</action></mouse> +<note>Appuyer sur Maj pendant une transformation rend cette transformation symétrique autour du centre de la sélection.</note> +<!-- FIXME: why not disable snapping? inconsistent! --> +<mouse><key><alt/><left-drag/></key> <action>mouvement lent</action></mouse> +<note>Force un ralentissement des mouvements de la souris, permettant ainsi des modifications plus fines.</note> +</group> + +<group> +<title>Poignées de rotation</title> +<mouse><key><ctrl/><left-drag/></key> <action>incliner et étirer</action></mouse> +<note>Appuyer sur Ctrl tout en déplaçant une poignée d'inclinaison (pas un coin) permet d'étirer tout en inclinant.</note> <!-- FIXME! --> +<mouse><key><ctrl/><left-drag/></key> <action>tourner la sélection par incrément(s)</action></mouse> +<note>L'incrément de rotation par défaut est 15 degrés.</note> +</group> + +<group> +<title>Annuler</title> +<keys><key><misc f="Esc"/></key> <action>annuler bande étirable/déplacer/transformer</action></keys> +<note>Un appui sur Esc (le bouton de la souris étant encore pressé) annule la bande étirable, le déplacement ou la transformation.</note> +</group> + +</section> + +*<section title="Main levée" color="e9efc5"> +<group> +<mouse><key><left-drag/></key> <action>dessiner une ligne à main levée</action></mouse> +<mouse><key><shift/><left-drag/></key> <action>désactiver temporairement le collage</action></mouse> +<note>Désactive temporairement le collage à la grille ou aux guides lors de déplacements (grille/guides étant actifs).</note> +<keys><key>a</key> <action>alterner créer/prolonger</action></keys> +<note>Alterne entre créer une nouvelle ligne et prolonger la ligne sélectionnée (des ancres sont affichées en mode prolonger).</note> +</group> +</section> + +*<section title="Bézier" color="e7f5d7"> + +<group> +<title>Créer des nœuds</title> +<mouse><key><left-click/></key> <action>créer un nœud anguleux</action></mouse> +<mouse><key><left-drag/></key> <action>créer un nœud de Bézier avec 2 poignées</action></mouse> +<mouse><key><shift/><left-drag/></key> <action>ne déplacer qu'une poignée</action></mouse> +<!-- FIXME: also disables snapping! another conflict --> +<note>Ceci ne déplace qu'une poignée (au lieu des deux), pour créer un nœud dur.</note> +<mouse><key><ctrl/><left-drag/></key> <action>tourner la poignée par incrément(s)</action></mouse> +<note>L'incrément de rotation par défaut est 15 degrés.</note> +</group> + +<group> +<title>Créer des segments</title> +<keys><key><ctrl/></key> <action>tourner le segment par incrément(s)</action></keys> +<note> +Ceci force la rotation d'un nœud (nouvel angle relativement au nœud précédent) par incrément(s) (15 degrés par défaut) .</note> +</group> + +<group> +<title>Terminer</title> +<keys><key><misc-wide f="Entrée"/></key> <action>terminer le tracé courant</action></keys> +<mouse><key><right-click/></key> <action>terminer le tracé courant</action></mouse> +<mouse><key><left-click/><left-click/></key> <action>terminer le tracé courant</action></mouse> +<note>Entrée, clic-droit ou double-clic terminent la ligne courante, annulant le dernier segment non fini (en rouge).</note> +</group> + +<group> +<title>Clavier</title> +<keys><key><misc f="Esc"/></key> <action>annuler le tracé courant</action></keys> +<keys><key><misc-wide f="Backspace"/></key> <action>effacer le dernier segment du tracé courant</action></keys> +<keys><key>a</key> <action>alterner créer/prolonger</action></keys> +<note>Alterne entre créer une nouvelle ligne et prolonger la ligne sélectionnée (des ancres sont affichées en mode prolonger).</note> +</group> +</section> + +*<section title="Calligraphie" color="e9dfef"> +<group> +<mouse><key><left-drag/></key> <action>traver une ligne calligraphique</action></mouse> +<mouse><key><left-arrow/></key> <key><right-arrow/></key> <action>ajuster la largeur de la plume</action></mouse> +<mouse><key><up/></key> <key><down/></key> <action>aduster l'angle de la plume</action></mouse> +<note>La largeur et l'angle de la plume peuvent être ajustés tout en dessinant.</note> +</group> +</section> + + + +</column> + +<column> +*<section title="Nœud" color="f9f1d9"> + +<group> +<title>Sélection au clavier</title> +<keys><key><misc f="Tab"/></key> <action>sélectionner le nœud suivant</action></keys> +<keys><key><shift/><misc f="Tab"/></key> <action>sélectionner le nœud précédent</action></keys> +<note>Ces raccourcis vous permettent de sélectionner n'importe quel nœud du chemin sélectionné.</note> +<keys><key><ctrl/>A</key> <action>sélectionner tous les nœuds du chemin</action></keys> +<keys><key><misc f="Esc"/></key> <action>désélectionner tous les nœuds</action></keys> +</group> + +<group> +<title>Déplacement au clavier</title> +<mouse><key><arrows/></key> <action>déplacer les nœuds sélect. par incrément(s)</action></mouse> +<mouse><key><shift/><arrows/></key> <action>déplacer les nœuds sélect. de 10x l'incrément</action></mouse> +<note>L'incrément de déplacement par défaut est 1mm.</note> +<mouse><key><alt/><arrows/></key> <action>déplacer les nœuds sélectionnés d'1 pixel</action></mouse> +<mouse><key><alt/><shift/><arrows/></key> <action>déplacer les nœuds sélectionnés de 10 pixels</action></mouse> +<note>Le déplacement réel à l'échelle du pixel dépend du niveau de zoom. Zommer pour déplacer plus finement.</note> +</group> + +<group> +<title>Rotation des poignées au clavier</title> +<keys><key>[</key> <key>]</key> <action>tourner les deux poignées par incrément(s)</action></keys> +<note>L'incrément de rotation par défaut est 15 degrés. ] tourne en sens horaire, [ en sens anti-horaire. Applicable à plusieurs nœuds.</note> +<keys><key><left/><ctrl/>[</key> <key><left/><ctrl/>]</key> <action>tourner la poignée gauche par incrément(s)</action></keys> +<keys><key><right/><ctrl/>[</key> <key><right/><ctrl/>]</key> <action>tourner la poignée droite par incrément(s)</action></keys> +<keys><key><left/><alt/>[</key> <key><left/><alt/>]</key> <action>tourner la poignée gauche d'1 pixel</action></keys> +<keys><key><right/><alt/>[</key> <key><right/><alt/>]</key> <action>tourner la poignée droite d'1 pixel</action></keys> +</group> + +<group> +<title>Redim. des poignées au clavier</title> +<keys><key><</key> <key>></key> <action>redim. les deux poignées par incrément(s)</action></keys> +<note>L'incrément de redimensionnement par défaut est de 2 px (en pixels SVG, pas en pixels à l'écran). Applicable à plusieurs nœuds.</note> +<keys> +<key><left/><ctrl/><</key> +<key><left/><ctrl/>></key> +<action>redim. la poignée gauche par incrément(s)</action> +</keys> +<keys> +<key><right/><ctrl/><</key> +<key><right/><ctrl/>></key> +<action>redim. la poignée droite par incrément(s)</action> +</keys> +<keys> +<key><left/><alt/><</key> +<key><left/><alt/>></key> +<action>redimensionner la poignée gauche d'1 pixel</action> +</keys> +<keys> +<key><right/><alt/><</key> +<key><right/><alt/>></key> +<action>redimensionner la poignée droite d'1 pixel</action> +</keys> +<note>Le redimensionnement réel à l'échelle du pixel dépend du niveau de zoom. Zommer pour dimensionner plus finement.</note> +<note>A la place des touches < et >, vous pouvez utiliser respectivement , (virgule) et . (point).</note> +</group> + +<group> +<title>Modifier le type de segment</title> +<keys><key><shift/>L</key> <action>rendre rectiligne</action></keys> +<keys><key><shift/>K</key> <action>rendre courbe</action></keys> +<note>Ces commandes exigent que plus de deux nœuds adjacents soient sélectionnés.</note> +</group> + +<group> +<title>Modifier le type de nœud</title> +<keys><key><shift/>C</key> <action>rendre dur</action></keys> +<keys><key><shift/>S</key> <action>rendre doux</action></keys> +<keys><key><shift/>Y</key> <action>rendre symétrique</action></keys> +<mouse><key><ctrl/><left-click/></key> <action>alterner doux/dur/symétrique</action></mouse> +</group> + +<group> +<title>Joindre/briser</title> +<keys><key><shift/>J</key> <action>joindre les nœuds sélectionnés</action></keys> +<note>Egige que deux (et seulement deux) nœuds terminaux du chemin soient sélectionnés.</note> +<keys><key><shift/>B</key> <action>briser les nœud(s) sélectionnés</action></keys> +<note>Après brisure, un seul des deux nœuds est sélectionné. Applicable à plus d'un nœud à la fois.</note> +</group> + +<group> +<title>Supprimer, créer, dupliquer</title> +<keys><key><misc-wide f="Backspace"/></key><key><misc f="Suppr."/></key> <action>supprimer les nœud(s) sélectionnés</action></keys> +<mouse><key><ctrl/><alt/><left-click/></key> <action>supprimer le nœud</action></mouse> +<keys><key><misc f="Ins."/></key> <action>insérer des nouveaux nœuds </action></keys> +<note>Ajoute de nouveaux nœud(s) au milieu des segment(s) sélectionnés, et exige la sélection de plus de deux nœuds adjacents.</note> +<keys><key><shift/>D</key> <action>dupliquer les nœud(s) sélectionnés</action></keys> +<note>Les nouveaux nœuds sont créés sur le même chemin; ils sont placés au-dessus des précédents et sont sélectionnés.</note> +</group> + +<group> +<title>Nœud actif</title> +<note>Le nœud actif est celui sous la souris ou en train d'être déplacé.</note> +<note>Lorsque qu'un nœud est actif, certains raccourcis peuvent ne pas fonctionner;</note> +<note>déplacez votre souris de façon à ce qu'il n'y aie pas de nœud actif si vous voulez les utiliser.</note> +<keys><key>c</key> <action>rendre le nœud actif dur</action></keys> +<keys><key>s</key> <action>rendre le nœud actif doux</action></keys> +<keys><key>y</key> <action>rendre le nœud actif symétrique</action></keys> +<keys><key>b</key> <action>briser le nœud actif</action></keys> +<keys><key><misc-wide f="Backspace"/></key> <action>supprimer le nœud actif</action></keys> +</group> + +<group> +<title>Sélection à la souris</title> +<mouse><key><left-click/></key> <action>sélectionner un objet</action></mouse> +<note>Cliquer sur un objet pour le sélectionner.</note> +<note>Les nœuds/poignées de l'objet sélectionné deviennent éditables (vous évitant d'avoir à basculer vers l'outil sélecteur).</note> +<mouse><key><left-click/></key> <action>sélectionner un nœud</action></mouse> +<note>Cliquer sur un nœud pour le sélectionner.</note> +<mouse><key><shift/><left-click/></key> <action>alterner la sélection d'un nœud</action></mouse> +<mouse><key><left-click/></key> <action>désélectionner</action></mouse> +<note>Cliquer sur une zone vide désélectionne tous les nœuds sélectionnés.</note> +</group> + +<group> +<title>Bande étirable</title> +<mouse><key><left-drag/></key> <action>sélectionner plusieurs nœuds</action></mouse> +<note>Cliquer-déplacer autour de nœuds les sélectionne par bande étirable; la sélection précédente est désélectionnée.</note> +<mouse><key><shift/><left-drag/></key> <action>ajouter des nœuds à la sélection</action></mouse> +</group> + +<group> +<title>Déplacement à la souris</title> +<mouse><key><left-drag/></key> <action>déplacer les nœuds sélectionnés</action></mouse> +<mouse><key><ctrl/><left-drag/></key> <action>restreindre à des mouvements horiz./vert. </action></mouse> +<mouse><key><ctrl/><alt/><left-drag/></key> <action>déplacer le long des poignées</action></mouse> +<note>Restreint les déplacements selon les directions des poignées et leurs perpendiculaires (soit 8 directions).</note> +<note>Si le nœud a des droites d'un côté ou des deux, le déplacement sera restreint à ces droites et leurs perpendiculaires.</note> +<mouse><key><shift/><left-drag/></key> <action>désactiver temporairement le collage</action></mouse> +<note>Le collage des nœuds est activable dans les préférences du document. </note> +<note>Par défaut, seules les boîtes de contour des objets collent à la grille ou aux guides.</note> +<mouse><key><left-drag/><misc-wide f="Espace"/></key> <action>tamponner une copie</action></mouse> + <note>Lors du déplacement nœuds de à la souris, un appui sur la barre d'espace dépose une copie de l'objet sélectionné.</note> +<note>Vous pouvez maintenir la barre d'espace appuyée lors d'un déplacement pour obtenir une belle "trainée".</note> +</group> + +<group> +<title>Déplacement des poignées à la souris</title> +<mouse><key><left-drag/></key> <action>déplacer une poignée de nœud</action></mouse> +<mouse><key><ctrl/><left-drag/></key> <action>tourner la poignée par incrément(s)</action></mouse> +<note> +L'incrément de rotation par défaut est 15 degrés.</note> +<note> Permet aussi de forcer le déplacement selon la direction de la poignée et sa perpendiculaire.</note> +<mouse><key><shift/><left-drag/></key> <action>tourner les deux poignées</action></mouse> +<mouse><key><alt/><left-drag/></key> <action>préserver la longueur de la poignée</action></mouse> +<note>Ctrl, Maj, Alt peuvent être combinés lors du cliquer-déplacer de contrôles.</note> +</group> + +<group> +<title>Inverser</title> +<keys><key>r</key> <action>inverser la direction du chemin</action></keys> +</group> + +<group> +<title>Editer des formes</title> +<note> +L'outil nœud agit aussi sur les poignées des formes (rectangles, ellipses, étoiles, spirales).</note> +<note>Cliquer sur une forme pour la sélectionner.</note> +<note>Voir les les raccourcis des outils de formes correspondants, qui fonctionnent aussi dans l'outil nœud.</note> +</group> + + +<group> +<title>Annuler</title> +<keys><key><misc f="Esc"/></key> <action>annuler bande étirable/déplacer</action></keys> +<note>Un appui sur Esc (le bouton de la souris étant encore pressé) annule la bande étirable, le déplacement de nœud/poignée.</note> +</group> + +</section> + +*<section title="Zoom" color="e7e9f3"> +<group> +<mouse><key><left-click/></key> <action>zoommer</action></mouse> +<mouse><key><shift/><left-click/></key> <action>dézoommer</action></mouse> +<mouse><key><left-drag/></key> <action>zoommer sur la zone</action></mouse> +</group> +</section> + +</column> +<column> + +*<section title="Pipette" color="feeffa"> +<group> +<mouse><key><left-click/></key> <action>capturer la couleur de remplissage</action></mouse> +<mouse><key><shift/><left-click/></key> <action>capturer la couleur de contour</action></mouse> +<mouse><key><left-drag/></key> <action>couleur moyenne de remplissage</action></mouse> +<mouse><key><shift/><left-drag/></key> <action>couleur moyenne de contour</action></mouse> +<note>Cliquer applique la couleur sous le curseur à la sélection courante. Cliquer-déplacer un disque en calcule la couleur moyenne.</note> +<keys><key><ctrl/>C</key> <action>copier la couleur</action></keys> +<note>Copie la couleur sous le curseur vers le presse-papiers, en tant que texte au format RRVVBBAA (8 chiffres hexadécimaux).</note> +</group> +</section> + + + +*<section title="Rectangle" color="ebf1fd"> +<group> +<title>Création</title> +<mouse><key><left-drag/></key> <action>dessiner un rectangle</action></mouse> +<mouse><key><ctrl/><left-drag/></key> <action>dessiner un rectangle de ratio entier</action></mouse> +<note>Ceci force le rectangle à garder un rapport hauteur/largeur entier (permet aussi de dessiner un carré).</note> +<mouse><key><shift/><left-drag/></key> <action>dessiner autour du point de départ</action></mouse> +<note>Ceci crée un rectangle symétriquement autour du point de départ.</note> +</group> +<group> +<title>Edition</title> +<mouse><key><left-click/></key> <action>cliquer sur un rectangle à sélectionner</action></mouse> +<mouse><key><left-drag/></key> <action>redimensionner ou arrondir</action></mouse> +<note>Les deux poignées d'arrondi sont en haut à droite; celles de redimensionnement, en haut à gauche et en bas à droite.</note> +<mouse><key><ctrl/><left-drag/></key> <action>préserver largeur, hauteur ou ratio</action></mouse> +<note>S'applique aux poignées de redimensionnement.</note> +<note>Celles-ci redimensionnent le rectangle dans son propre système de coordonnées, avant d'appliquer toute transformation.</note> +<mouse><key><ctrl/><left-drag/></key> <action>préserver l'arrondi</action></mouse> +<note>S'applique aux poignées d'arrondi.</note> +<note>Lors de l'arrondi des coins, ne déplacer qu'une poignée (l'autre restant dans le coin) préserve la circularité du coin.</note> +<note>Déplacez les deux poignées pour un arrondi elliptique, ou une seule en appuyant sur Ctrl pour synchroniser la deuxième. +</note> +<keys><key><misc f="Esc"/></key> <action>désélectionner</action></keys> +</group> +</section> + +*<section title="Ellipse" color="ffece8"> +<group> +<title>Création</title> +<mouse><key><left-drag/></key> <action>dessiner une ellipse</action></mouse> +<mouse><key><ctrl/><left-drag/></key> <action>dessiner une ellipse de ratio entier</action></mouse> +<note>Ceci force l'ellipse à garder un rapport hauteur/largeur entier (permet aussi de dessiner un cercle).</note> +<mouse><key><shift/><left-drag/></key> <action>dessiner autour du point de départ</action></mouse> +<note>Ceci crée une ellipse symétriquement autour du point de départ.</note> +</group> +<group> +<title>Edition</title> +<mouse><key><left-click/></key> <action>cliquer sur une ellipse à sélectionner</action></mouse> +<mouse><key><left-drag/></key> <action>redimensionner ou "ouvrir"</action></mouse> +<note>Les deux poignées d'arc/camembert sont tout à droite; celles de redimensionnement, tout en haut et tout à gauche.</note> +<mouse><key><ctrl/><left-drag/></key> <action>forcer la circularité</action></mouse> +<note>S'applique aux poignées de redimensionnement.</note> +<note>Celles-ci redimensionnent l'ellipse dans son propre système de coordonnées, avant d'appliquer toute transformation.</note> +<mouse><key><ctrl/><left-drag/></key> <action>modifier l'angle par incréments</action></mouse> +<note>S'applique aux poignées d'arc/camembert.</note> +<note>L'incrément d'angle par défaut est de 15 degrés.</note> +<keys><key><misc f="Esc"/></key> <action>désélectionner</action></keys> +</group> +</section> + +*<section title="Etoile" color="f8f7d5"> +<group> +<title>Création</title> +<mouse><key><left-drag/></key> <action>dessiner une étoile</action></mouse> +<mouse><key><ctrl/><left-drag/></key> <action>tourner l'étoile par incréments</action></mouse> +<note>L'incrément d'angle par défaut est de 15 degrés.</note> +</group> +<group> +<title>Edition</title> +<mouse><key><left-click/></key> <action>cliquer sur une étoile à sélectionner</action></mouse> +<mouse><key><left-drag/></key> <action>déplacer une poignée pour modifier l'étoile</action></mouse> +<mouse><key><ctrl/><left-drag/></key> <action>garder l'étoile strictement radiale</action></mouse> +<mouse><key><shift/><left-drag/></key> <action>arrondir l'étoile</action></mouse> +<mouse><key><shift/><left-click/></key> <action>supprimer l'arrondi</action></mouse> +<mouse><key><alt/><left-drag/></key> <action>rendre l'étoile aléatoire</action></mouse> +<mouse><key><alt/><left-click/></key> <action>supprimer le hasard</action></mouse> +<keys><key><misc f="Esc"/></key> <action>désélectionner</action></keys> +</group> +</section> + +*<section title="Spirale" color="f3f3f3"> +<group> +<title>Création</title> +<mouse><key><left-drag/></key> <action>dessiner une spirale</action></mouse> +<mouse><key><ctrl/><left-drag/></key> <action>tourner la spirale par incréments</action></mouse> +<note>L'incrément d'angle par défaut est de 15 degrés.</note> +</group> +<group> +<title>Edition</title> +<mouse><key><left-click/></key> <action>cliquer sur une spirale à sélectionner</action></mouse> + +<mouse><key><left-drag/></key> <action>enrouler/dérouler (poignée intérieure)</action></mouse> +<note>Déplacer la poignée intérieure pour modifier le paramètre "rayon intérieur". +</note> +<mouse><key><alt/><left-drag/></key> <action>converger/diverger (poignée intérieure)</action></mouse> +<mouse><key><alt/><left-click/></key> <action>forcer divergence=1 (poignée intérieure)</action></mouse> +<note>Alt+déplacer verticalement sur la poignée intérieure pour modifier la divergence, Alt+cliquer la remet à 1.</note> +<mouse><key><shift/><left-click/></key> <action>forcer rayon intérieur=0 (poignée intérieure)</action></mouse> +<note>Maj+cliquer sur la poignée intérieure la déplace (et donc le départ de la spirale) au centre.</note> + +<mouse><key><left-drag/></key> <action>enrouler/dérouler (poignée extérieure)</action></mouse> +<note>Déplacer la poignée extérieure modifie le nombre de tours. Maj+Alt+cliquer-déplacer pour en/dé-rouler en préservant le rayon.</note> +<mouse><key><shift/><left-drag/></key> <action>redimensionner/tourner (poignée extérieure)</action></mouse> +<note>Utiliser Maj+Alt pour forcer une rotation seulement (verrouille le rayon de la spirale).</note> + +<mouse><key><ctrl/><left-drag/></key> <action>tourner une poignée par incréments</action></mouse> +<note>L'incrément d'angle par défaut est de 15 degrés. Ceci s'applique aux deux poignées.</note> + +<keys><key><misc f="Esc"/></key> <action>désélectionner</action></keys> +</group> +</section> + + +*<section title="Texte" color="eefdf3"> + +<group> +<mouse><key><left-click/></key> <action>créer/activer un objet texte</action></mouse> +<!--<keys><key>letters, digits, space, ...</key> <action>type text in a text object</action></keys>--> +<note>Cliquer sur un espace libre ou sur un objet autre qu'un texte affiche un curseur texte; vous pouvez alors taper votre texte.</note> +<note>Cliquer sur un objet texte pour l'activer; le curseur est placé à la fin du texte.</note> +<note>Pour taper des caractères + ou -, utilisez le clavier principal, les touches + et - du pavé numérique étant réservées pour le zoom.</note> +<mouse><key><arrows/></key> <action>se déplacer dans un objet texte</action></mouse> +<keys><key><misc f="Début"/></key> <key><misc f="Fin"/></key> <action>aller au début/à la fin de la ligne</action></keys> +<keys><key><misc-wide f="Entrée"/></key> <action>commencer une nouvelle ligne</action></keys> +<keys><key><misc f="Esc"/></key> <action>désélectionner l'objet texte</action></keys> +</group> + +<group> +<title>Caractères spéciaux</title> +<keys><key><ctrl/>U</key> <action>(dés)activer le mode Unicode</action></keys> +<note>Dans ce mode, entrez des chiffres hexadécimaux et validez (Entrée ou Espace) pour obtenir le caractère Unicode correspondant.</note> +<note>Exemple : Ctrl+U 2 0 1 4 Entrée insère un tiret long et sort du mode Unicode.</note> +<note>Utilisez Espace au lieu d'Entrée pour rester en mode Unicode après avoir inséré un caractère.</note> +<note>Un appui sur Esc annule le mode Unicode (sans insérer de caractère).</note> + +<keys><key><ctrl/><misc-wide f="Espace"/></key> <action>insérer un espace insécable</action></keys> +<note>Un espace insécable est visible même dans un objet texte sans attribut xml:space="preserve".</note> +</group> + +<group> +<title>Inter-lettrage</title> +<keys><key><alt/>></key> <action>allonger la ligne d'1 pixel</action></keys> +<keys><key><shift/><alt/>></key> <action>allonger la ligne de 10 pixels</action></keys> +<keys><key><alt/><</key> <action>rétrécir la ligne d'1 pixel</action></keys> +<keys><key><shift/><alt/><</key> <action>rétrécir la ligne de 10 pixels</action></keys> +<note>Ces raccourcis agissent lorsque vous éditez un objet texte. Ils ajustent l'inter-lignage de la ligne courante seulement.</note> +<note>La précision réelle de ces ajustements (à l'échelle du pixel) dépend du niveau de zoom. Zommer pour un ajustement plus fin.</note> +</group> + +<group> +<title>Inter-lignage</title> +<keys><key><ctrl/><alt/>></key> <action>rendre l'objet texte plus haut d'1 pixel</action></keys> +<keys><key><shift/><ctrl/><alt/>></key> <action>rendre l'objet texte plus haut de 10 pixels</action></keys> +<keys><key><ctrl/><alt/><</key> <action>rendre l'objet texte plus bas d'1 pixel</action></keys> +<keys><key><shift/><ctrl/><alt/><</key> <action>rendre l'objet texte plus bas de 10 pixels</action></keys> +<note>Ces raccourcis agissent lorsque vous éditez un objet texte. Ils ajustent l'inter-lignage de l'objet texte courant seulement.</note> +<note>La précision réelle de ces ajustements (à l'échelle du pixel) dépend du niveau de zoom. Zommer pour un ajustement plus fin.</note> +</group> + +<group> +<title>Crénage et déplacement</title> +<mouse><key><alt/><arrows/></key> <action>déplacer les caractères suivants d'1 pixel</action></mouse> +<mouse><key><shift/><alt/><arrows/></key> <action>déplacer les caractères suivants de 10 pixels</action></mouse> +<note>Ces raccourcis agissent lorsque vous éditez un objet texte.</note> +<note>Elles déplacent (horizontalement ou verticalement) le caractère suivant le curseur et tous les autres jusqu'à la fin de la ligne.</note> +<note>Exemeple : déplacer vers le bas un seul caractère.</note> +<note>Placez le curseur devant le caractère, appuyez sur Alt+Bas, puis derrière et appuyez sur Alt+Haut. +</note> + + +<note>La précision réelle des déplacements (à l'échelle du pixel) dépend du niveau de zoom. Zommer pour un ajustement plus fin.</note> +</group> + +<group> +<title>Texte suivant un chemin</title> +<keys><key><shift/>D</key> <action>sélectionner le chemin</action></keys> +<note>Sélectionner un texte suivant un chemin puis utiliser ce raccourci permet de sélectionner le chemin source du texte.</note> +</group> +</section> + +</column> + +</root> diff --git a/doc/keys.html b/doc/keys.html new file mode 100644 index 000000000..a64bffe8a --- /dev/null +++ b/doc/keys.html @@ -0,0 +1,1060 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> +<!-- +Do not edit this file. +It is generated automatically from doc/keys.xml by doc/keys-html.xsl. +--><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title>Inkscape keys and mouse reference</title><style type="text/css"> +.key {font-weight: bold} +.action {} +.note {padding-left: 50px; font-size: 70%} +h1 {margin-top: 0.5em; padding-left: 50px; padding-bottom: 0em; margin-bottom: 0em; letter-spacing: -0.02em} +h4 {font-weight: bold; font-style: italic; margin-top: 1em; padding-left: 50px; padding-bottom: 0em; margin-bottom: 0em} +</style></head><body bgcolor="#ffffff"><p>Unless noted otherwise, keypad keys (such as arrows, Home, End, +, -, digits) are +supposed to work the same as corresponding regular keys. If you have a new shortcut +idea, please contact the developers (by writing to the <a href="http://lists.sourceforge.net/lists/listinfo/inkscape-devel">devel mailing list</a> +or by <a href="http://sourceforge.net/tracker/?group_id=93438&atid=604309">submitting an +RFE</a>).</p><table border="0" cellspacing="0" cellpadding="4"><tr><td colspan="3"><h1>Tools</h1></td></tr> + + +<tr bgcolor="f5f5f5"><td align="right"><span class="key">F1</span>, +<span class="key">s</span></td><td><span class="action">Selector</span></td></tr> +<tr bgcolor="f5f5f5"><td align="right"><span class="key">Space</span></td><td><span class="action">Selector (temporary)</span></td></tr> +<tr bgcolor="f5f5f5"><td colspan="3"><span class="note">Space switches to the Selector tool temporarily; another Space switches back.</span></td></tr> +<tr bgcolor="f5f5f5"><td align="right"><span class="key">F2</span>, +<span class="key">n</span></td><td><span class="action">Node tool</span></td></tr> +<tr bgcolor="f5f5f5"><td align="right"><span class="key">F3</span>, +<span class="key">z</span></td><td><span class="action">Zoom tool</span></td></tr> +<tr bgcolor="f5f5f5"><td align="right"><span class="key">F4</span>, +<span class="key">r</span></td><td><span class="action">Rectangle tool</span></td></tr> +<tr bgcolor="f5f5f5"><td align="right"><span class="key">F5</span>, +<span class="key">e</span></td><td><span class="action">Ellipse/arc tool</span></td></tr> +<tr bgcolor="f5f5f5"><td align="right"><span class="key">F6</span>, +<span class="key">p</span></td><td><span class="action">Freehand (Pencil) tool</span></td></tr> +<tr bgcolor="f5f5f5"><td align="right"><span class="key">Shift+F6</span>, +<span class="key">b</span></td><td><span class="action">Bezier (Pen) tool</span></td></tr> +<tr bgcolor="f5f5f5"><td align="right"><span class="key">Ctrl+F6</span>, +<span class="key">c</span></td><td><span class="action">Calligraphic tool</span></td></tr> +<tr bgcolor="f5f5f5"><td align="right"><span class="key">Ctrl+F1</span>, +<span class="key">g</span></td><td><span class="action">Gradient tool</span></td></tr> +<tr bgcolor="f5f5f5"><td align="right"><span class="key">F7</span>, +<span class="key">d</span></td><td><span class="action">Dropper tool</span></td></tr> +<tr bgcolor="f5f5f5"><td align="right"><span class="key">F8</span>, +<span class="key">t</span></td><td><span class="action">Text tool</span></td></tr> +<tr bgcolor="f5f5f5"><td align="right"><span class="key">F9</span>, +<span class="key">i</span></td><td><span class="action">Spiral tool</span></td></tr> +<tr bgcolor="f5f5f5"><td align="right"><span class="key">Shift+F9</span>, +<span class="key">*</span></td><td><span class="action">Star tool</span></td></tr> +<tr bgcolor="f5f5f5"><td align="right"><span class="key">Ctrl+F2</span>, +<span class="key">o</span></td><td><span class="action">Connector tool</span></td></tr> +<tr bgcolor="f5f5f5"><td colspan="3"><span class="note">Double click on the tool buttons opens the Preferences dialog showing the page of the corresponding tool.</span></td></tr> + +<tr><td colspan="3"><h1>Dialogs</h1></td></tr> + +<tr bgcolor="f0eae7"><td align="right"><span class="key">Shift+Ctrl+F</span></td><td><span class="action">Fill and Stroke</span></td></tr> +<tr bgcolor="f0eae7"><td align="right"><span class="key">Shift+Ctrl+W</span></td><td><span class="action">Swatches</span></td></tr> +<tr bgcolor="f0eae7"><td align="right"><span class="key">Shift+Ctrl+T</span></td><td><span class="action">Text and Font</span></td></tr> +<tr bgcolor="f0eae7"><td align="right"><span class="key">Shift+Ctrl+M</span></td><td><span class="action">Transform</span></td></tr> +<tr bgcolor="f0eae7"><td align="right"><span class="key">Shift+Ctrl+A</span></td><td><span class="action">Align and Distribute</span></td></tr> +<tr bgcolor="f0eae7"><td align="right"><span class="key">Shift+Ctrl+O</span></td><td><span class="action">Object Properties</span></td></tr> +<tr bgcolor="f0eae7"><td align="right"><span class="key">Shift+Ctrl+X</span></td><td><span class="action">XML Editor</span></td></tr> +<tr bgcolor="f0eae7"><td align="right"><span class="key">Shift+Ctrl+D</span></td><td><span class="action">Document Preferences</span></td></tr> +<tr bgcolor="f0eae7"><td align="right"><span class="key">Shift+Ctrl+P</span></td><td><span class="action">Inkscape Preferences</span></td></tr> +<tr bgcolor="f0eae7"><td align="right"><span class="key">Shift+Ctrl+E</span></td><td><span class="action">Export to PNG</span></td></tr> +<tr bgcolor="f0eae7"><td align="right"><span class="key">Ctrl+F</span></td><td><span class="action">Find</span></td></tr> +<tr bgcolor="f0eae7"><td align="right"><span class="key">Shift+Alt+B</span></td><td><span class="action">Trace bitmap</span></td></tr> +<tr bgcolor="f0eae7"><td colspan="3"><span class="note">These open a new dialog window if it wasn't open yet, otherwise the corresponding dialog gets focus.</span></td></tr> + + + +<tr bgcolor="f0eae7"><td colspan="3"><h4>Toggle visibility</h4></td></tr> +<tr bgcolor="f0eae7"><td align="right"><span class="key">F12</span></td><td><span class="action">toggle dialogs</span></td></tr> +<tr bgcolor="f0eae7"><td colspan="3"><span class="note">This temporarily hides all open dialogs; another F12 shows them again.</span></td></tr> + + + +<tr bgcolor="f0eae7"><td colspan="3"><h4>Within a dialog</h4></td></tr> +<tr bgcolor="f0eae7"><td align="right"><span class="key">Esc</span></td><td><span class="action">return to the canvas</span></td></tr> +<tr bgcolor="f0eae7"><td align="right"><span class="key">Ctrl+F4</span>, +<span class="key">Ctrl+W</span></td><td><span class="action">close the dialog</span></td></tr> +<tr bgcolor="f0eae7"><td align="right"><span class="key">Tab</span></td><td><span class="action">jump to next widget</span></td></tr> +<tr bgcolor="f0eae7"><td align="right"><span class="key">Shift+Tab</span></td><td><span class="action">jump to previous widget</span></td></tr> +<tr bgcolor="f0eae7"><td align="right"><span class="key">Enter</span></td><td><span class="action">set the new value</span></td></tr> +<tr bgcolor="f0eae7"><td colspan="3"><span class="note">This accepts the new value you typed in a text field and returns focus to canvas.</span></td></tr> +<tr bgcolor="f0eae7"><td align="right"><span class="key">Ctrl+Enter</span></td><td><span class="action">in XML Editor, set the attr value</span></td></tr> +<tr bgcolor="f0eae7"><td colspan="3"><span class="note">When editing an attribute value in XML Editor, this sets the new value (same as clicking the "Set attribute" button).</span></td></tr> +<tr bgcolor="f0eae7"><td align="right"><span class="key">Space</span>, +<span class="key">Enter</span></td><td><span class="action">activate current button or list</span></td></tr> +<tr bgcolor="f0eae7"><td align="right"><span class="key">Ctrl+PgUp</span>, +<span class="key">Ctrl+PgDn</span></td><td><span class="action">in a multi-tab dialog, switch tabs</span></td></tr> + +<tr><td colspan="3"><h1>Controls bar</h1></td></tr> + + +<tr bgcolor="f8f3e9"><td colspan="3"><span class="note">The Controls bar at the top of the document window provides different buttons and controls for each tool.</span></td></tr> +<tr bgcolor="f8f3e9"><td align="right"><span class="key">Alt+X</span></td><td><span class="action">jump to the first editable field</span></td></tr> +<tr bgcolor="f8f3e9"><td align="right"><span class="key">Enter</span></td><td><span class="action">accept the new value</span></td></tr> +<tr bgcolor="f8f3e9"><td colspan="3"><span class="note">This accepts the new value you typed in a text field and returns focus to canvas.</span></td></tr> +<tr bgcolor="f8f3e9"><td align="right"><span class="key">Esc</span></td><td><span class="action">cancel changes, return to canvas</span></td></tr> +<tr bgcolor="f8f3e9"><td colspan="3"><span class="note">This cancels any changes you made in a text field and returns focus to canvas.</span></td></tr> +<tr bgcolor="f8f3e9"><td align="right"><span class="key">Ctrl+Z</span></td><td><span class="action">cancel changes</span></td></tr> +<tr bgcolor="f8f3e9"><td colspan="3"><span class="note">This cancels any changes you made in a text field but you stay in the field.</span></td></tr> +<tr bgcolor="f8f3e9"><td align="right"><span class="key">Tab</span></td><td><span class="action">jump to next field</span></td></tr> +<tr bgcolor="f8f3e9"><td align="right"><span class="key">Shift+Tab</span></td><td><span class="action">jump to previous field</span></td></tr> +<tr bgcolor="f8f3e9"><td colspan="3"><span class="note">Use these to navigate between fields in the Controls bar (the value in the field you leave, if changed, is accepted).</span></td></tr> + + + +<tr bgcolor="f8f3e9"><td colspan="3"><h4>Changing values</h4></td></tr> +<tr bgcolor="f8f3e9"><td align="right"><span class="key">Up arrow</span>, +<span class="key">Down arrow</span></td><td><span class="action">change value by 0.1</span></td></tr> +<tr bgcolor="f8f3e9"><td align="right"><span class="key">PgUp</span>, +<span class="key">PgDn</span></td><td><span class="action">change value by 5.0</span></td></tr> + + +<tr><td colspan="3"><h1>Canvas</h1></td></tr> + + +<tr bgcolor="e5f1e7"><td colspan="3"><h4>Zoom</h4></td></tr> +<tr bgcolor="e5f1e7"><td align="right"><span class="key">=</span>, +<span class="key">+</span></td><td><span class="action">zoom in</span></td></tr> +<tr bgcolor="e5f1e7"><td align="right"><span class="key">-</span></td><td><span class="action">zoom out</span></td></tr> +<tr bgcolor="e5f1e7"><td colspan="3"><span class="note">The keypad +/- keys do zooming even when you are editing a text object, unless NumLock is on.</span></td></tr> +<tr bgcolor="e5f1e7"><td align="right"><span class="key">middle click</span>, +<span class="key">Ctrl+right click</span></td><td><span class="action">zoom in</span></td></tr> +<tr bgcolor="e5f1e7"><td align="right"><span class="key">Shift+middle click</span>, +<span class="key">Shift+right click</span></td><td><span class="action">zoom out</span></td></tr> +<tr bgcolor="e5f1e7"><td align="right"><span class="key">Ctrl+mouse wheel</span></td><td><span class="action">zoom in or out</span></td></tr> +<tr bgcolor="e5f1e7"><td align="right"><span class="key">Shift+middle button drag</span></td><td><span class="action">zoom into the area</span></td></tr> +<tr bgcolor="e5f1e7"><td align="right"><span class="key">Alt+Z</span></td><td><span class="action">activate zoom field</span></td></tr> +<tr bgcolor="e5f1e7"><td colspan="3"><span class="note">The zoom field in the lower left corner of the window allows you to specify zoom level precisely.</span></td></tr> + + + +<tr bgcolor="e5f1e7"><td colspan="3"><h4>Preset zooms</h4></td></tr> +<tr bgcolor="e5f1e7"><td align="right"><span class="key">1</span></td><td><span class="action">zoom 1:1</span></td></tr> +<tr bgcolor="e5f1e7"><td align="right"><span class="key">2</span></td><td><span class="action">zoom 1:2</span></td></tr> +<tr bgcolor="e5f1e7"><td align="right"><span class="key">3</span></td><td><span class="action">zoom to selection</span></td></tr> +<tr bgcolor="e5f1e7"><td align="right"><span class="key">4</span></td><td><span class="action">zoom to drawing</span></td></tr> +<tr bgcolor="e5f1e7"><td align="right"><span class="key">5</span></td><td><span class="action">zoom to page</span></td></tr> +<tr bgcolor="e5f1e7"><td align="right"><span class="key">Ctrl+E</span>, +<span class="key">6</span></td><td><span class="action">zoom to page width</span></td></tr> + + + +<tr bgcolor="e5f1e7"><td colspan="3"><h4>Zoom history</h4></td></tr> +<tr bgcolor="e5f1e7"><td align="right"><span class="key">`</span></td><td><span class="action">(back quote) previous zoom </span></td></tr> +<tr bgcolor="e5f1e7"><td align="right"><span class="key">Shift+`</span></td><td><span class="action">next zoom</span></td></tr> +<tr bgcolor="e5f1e7"><td colspan="3"><span class="note">With these keys, you can travel back and forth through the history of zooms in this session</span></td></tr> + + + +<tr bgcolor="e5f1e7"><td colspan="3"><h4>Scrolling (panning)</h4></td></tr> +<tr bgcolor="e5f1e7"><td align="right"><span class="key">Ctrl+arrows</span></td><td><span class="action">scroll canvas</span></td></tr> +<tr bgcolor="e5f1e7"><td colspan="3"><span class="note">Scrolling by keys is accelerated, i.e. it speeds up when you press Ctrl+arrows in quick succession, or press and hold.</span></td></tr> +<tr bgcolor="e5f1e7"><td align="right"><span class="key">middle button drag</span></td><td><span class="action">pan canvas</span></td></tr> +<tr bgcolor="e5f1e7"><td align="right"><span class="key">Shift+right button drag</span>, +<span class="key">Ctrl+right button drag</span></td><td><span class="action">pan canvas</span></td></tr> +<tr bgcolor="e5f1e7"><td align="right"><span class="key">mouse wheel</span></td><td><span class="action">scroll canvas vertically</span></td></tr> +<tr bgcolor="e5f1e7"><td align="right"><span class="key">Shift+mouse wheel</span></td><td><span class="action">scroll canvas horizontally</span></td></tr> + + + +<tr bgcolor="e5f1e7"><td colspan="3"><h4>Guides and grid</h4></td></tr> +<tr bgcolor="e5f1e7"><td align="right"><span class="key">mouse drag</span></td><td><span class="action">drag off a ruler to create guide</span></td></tr> +<tr bgcolor="e5f1e7"><td colspan="3"><span class="note">Drag off the horizontal or vertical ruler to create a new guideline. Drag a guideline onto the ruler to delete it.</span></td></tr> +<tr bgcolor="e5f1e7"><td align="right"><span class="key">|</span>, +<span class="key">Shift+\</span></td><td><span class="action">toggle guides and snapping to guides</span></td></tr> +<tr bgcolor="e5f1e7"><td colspan="3"><span class="note">If you want to have different values for guides visibility and snapping, set them via the Document Options dialog.</span></td></tr> +<tr bgcolor="e5f1e7"><td colspan="3"><span class="note">When you create a new guide by dragging off the ruler, guide visibility and snapping are turned on.</span></td></tr> +<tr bgcolor="e5f1e7"><td align="right"><span class="key">#</span>, +<span class="key">Shift+3</span></td><td><span class="action">toggle grid and snapping to grid</span></td></tr> +<tr bgcolor="e5f1e7"><td colspan="3"><span class="note">If you want to have different values for grid visibility and snapping, set them via the Document Options dialog.</span></td></tr> +<tr bgcolor="e5f1e7"><td colspan="3"><span class="note">Note that only the 3 key on the main keyboard works, not on the keypad.</span></td></tr> + +<tr><td colspan="3"><h1>File</h1></td></tr> + + +<tr bgcolor="f3f2e2"><td align="right"><span class="key">Ctrl+N</span></td><td><span class="action">create new document</span></td></tr> +<tr bgcolor="f3f2e2"><td align="right"><span class="key">Ctrl+O</span></td><td><span class="action">open an SVG document</span></td></tr> +<tr bgcolor="f3f2e2"><td align="right"><span class="key">Shift+Ctrl+E</span></td><td><span class="action">export to PNG</span></td></tr> +<tr bgcolor="f3f2e2"><td align="right"><span class="key">Ctrl+I</span></td><td><span class="action">import bitmap or SVG</span></td></tr> +<tr bgcolor="f3f2e2"><td align="right"><span class="key">Ctrl+P</span></td><td><span class="action">print document</span></td></tr> +<tr bgcolor="f3f2e2"><td align="right"><span class="key">Ctrl+S</span></td><td><span class="action">save document</span></td></tr> +<tr bgcolor="f3f2e2"><td align="right"><span class="key">Shift+Ctrl+S</span></td><td><span class="action">save under a new name</span></td></tr> +<tr bgcolor="f3f2e2"><td align="right"><span class="key">Ctrl+Q</span></td><td><span class="action">exit Inkscape</span></td></tr> + + +<tr><td colspan="3"><h1>Window</h1></td></tr> + + +<tr bgcolor="e8fae1"><td align="right"><span class="key">Ctrl+R</span></td><td><span class="action">toggle rulers</span></td></tr> +<tr bgcolor="e8fae1"><td align="right"><span class="key">Ctrl+B</span></td><td><span class="action">toggle scrollbars</span></td></tr> +<tr bgcolor="e8fae1"><td align="right"><span class="key">F11</span></td><td><span class="action">toggle fullscreen</span></td></tr> + + + +<tr bgcolor="e8fae1"><td align="right"><span class="key">F10</span></td><td><span class="action">main menu</span></td></tr> +<tr bgcolor="e8fae1"><td colspan="3"><span class="note">Menus can also be activated by Alt with the letter underscored in the menu name.</span></td></tr> +<tr bgcolor="e8fae1"><td align="right"><span class="key">Shift+F10</span>, +<span class="key">right click</span></td><td><span class="action">drop-down (context) menu</span></td></tr> + + + +<tr bgcolor="e8fae1"><td align="right"><span class="key">Ctrl+F4</span>, +<span class="key">Ctrl+W</span></td><td><span class="action">close document window</span></td></tr> +<tr bgcolor="e8fae1"><td colspan="3"><span class="note">This shuts down Inkscape if it was the only document window open.</span></td></tr> +<tr bgcolor="e8fae1"><td align="right"><span class="key">Ctrl+Tab</span></td><td><span class="action">next document window</span></td></tr> +<tr bgcolor="e8fae1"><td align="right"><span class="key">Shift+Ctrl+Tab</span></td><td><span class="action">previous document window</span></td></tr> +<tr bgcolor="e8fae1"><td colspan="3"><span class="note">These cycle through the active document windows forward and backward.</span></td></tr> + + +<tr><td colspan="3"><h1>Layers</h1></td></tr> + +<tr bgcolor="f6f9d9"><td align="right"><span class="key">Shift+PgUp</span></td><td><span class="action">move to layer above</span></td></tr> +<tr bgcolor="f6f9d9"><td align="right"><span class="key">Shift+PgDn</span></td><td><span class="action">move to layer below</span></td></tr> +<tr bgcolor="f6f9d9"><td colspan="3"><span class="note">These commands move the selected objects from one layer to another.</span></td></tr> + +<tr bgcolor="f6f9d9"><td align="right"><span class="key">Shift+Ctrl+PgUp</span></td><td><span class="action">raise layer</span></td></tr> +<tr bgcolor="f6f9d9"><td align="right"><span class="key">Shift+Ctrl+PgDn</span></td><td><span class="action">lower layer</span></td></tr> +<tr bgcolor="f6f9d9"><td align="right"><span class="key">Shift+Ctrl+Home</span></td><td><span class="action">raise layer to top</span></td></tr> +<tr bgcolor="f6f9d9"><td align="right"><span class="key">Shift+Ctrl+End</span></td><td><span class="action">lower layer to bottom</span></td></tr> +<tr bgcolor="f6f9d9"><td colspan="3"><span class="note">These commands move the current layer among its siblings (normally other layers).</span></td></tr> + +<tr><td colspan="3"><h1>Object</h1></td></tr> + + +<tr bgcolor="f4ecf5"><td colspan="3"><h4>Undo/redo</h4></td></tr> +<tr bgcolor="f4ecf5"><td align="right"><span class="key">Shift+Ctrl+Y</span>, +<span class="key">Ctrl+Z</span></td><td><span class="action">undo</span></td></tr> +<tr bgcolor="f4ecf5"><td align="right"><span class="key">Shift+Ctrl+Z</span>, +<span class="key">Ctrl+Y</span></td><td><span class="action">redo</span></td></tr> + + + +<tr bgcolor="f4ecf5"><td colspan="3"><h4>Clipboard</h4></td></tr> +<tr bgcolor="f4ecf5"><td align="right"><span class="key">Ctrl+C</span></td><td><span class="action">copy selection</span></td></tr> +<tr bgcolor="f4ecf5"><td colspan="3"><span class="note">This places a copy of the selection to the Inkscape clipboard. Text from text objects is also placed onto the system clipboard.</span></td></tr> +<tr bgcolor="f4ecf5"><td align="right"><span class="key">Ctrl+X</span></td><td><span class="action">cut selection</span></td></tr> +<tr bgcolor="f4ecf5"><td colspan="3"><span class="note">This works the same as "copy selection" followed by deleting the selection.</span></td></tr> +<tr bgcolor="f4ecf5"><td align="right"><span class="key">Ctrl+V</span></td><td><span class="action">paste clipboard</span></td></tr> +<tr bgcolor="f4ecf5"><td colspan="3"><span class="note">This places the clipboard objects at the mouse cursor, or at the center of the window if mouse is outside the canvas.</span></td></tr> +<tr bgcolor="f4ecf5"><td colspan="3"><span class="note">When editing text with the text tool, this pastes the text from the system clipboard into the current text object.</span></td></tr> +<tr bgcolor="f4ecf5"><td align="right"><span class="key">Ctrl+Alt+V</span></td><td><span class="action">paste in place</span></td></tr> +<tr bgcolor="f4ecf5"><td colspan="3"><span class="note">This places the clipboard objects to the original location from which they were copied.</span></td></tr> +<tr bgcolor="f4ecf5"><td align="right"><span class="key">Shift+Ctrl+V</span></td><td><span class="action">paste style</span></td></tr> +<tr bgcolor="f4ecf5"><td colspan="3"><span class="note">This applies the style of the (first of the) coped object(s) to the current selection.</span></td></tr> +<tr bgcolor="f4ecf5"><td colspan="3"><span class="note">If a gradient handle (in Gradient tool) or a text span (in Text tool) are selected, they get the style instead of the entire object.</span></td></tr> + + + +<tr bgcolor="f4ecf5"><td colspan="3"><h4>Duplicate</h4></td></tr> +<tr bgcolor="f4ecf5"><td align="right"><span class="key">Ctrl+D</span></td><td><span class="action">duplicate selection</span></td></tr> +<tr bgcolor="f4ecf5"><td colspan="3"><span class="note">New object(s) are placed exactly over the original(s) and selected.</span></td></tr> + + + +<tr bgcolor="f4ecf5"><td colspan="3"><h4>Clone</h4></td></tr> +<tr bgcolor="f4ecf5"><td align="right"><span class="key">Alt+D</span></td><td><span class="action">clone object</span></td></tr> +<tr bgcolor="f4ecf5"><td colspan="3"><span class="note">A clone can be moved/scaled/rotated/skewed independently, but it updates the path, fill, and stroke from its original.</span></td></tr> +<tr bgcolor="f4ecf5"><td colspan="3"><span class="note">The clone is placed exactly over the original object and is selected.</span></td></tr> +<tr bgcolor="f4ecf5"><td colspan="3"><span class="note">You can only clone one object at a time; if you want to clone several objects together, group them and clone the group.</span></td></tr> +<tr bgcolor="f4ecf5"><td align="right"><span class="key">Shift+Alt+D</span></td><td><span class="action">unlink clone</span></td></tr> +<tr bgcolor="f4ecf5"><td colspan="3"><span class="note">Unlinking a clone cuts the link to the original, turning the clone into a plain copy.</span></td></tr> +<tr bgcolor="f4ecf5"><td align="right"><span class="key">Shift+D</span></td><td><span class="action">select original</span></td></tr> +<tr bgcolor="f4ecf5"><td colspan="3"><span class="note">To find out which object this is a clone of, select the clone and give this command. The original will be selected.</span></td></tr> + + + +<tr bgcolor="f4ecf5"><td colspan="3"><h4>Bitmaps</h4></td></tr> +<tr bgcolor="f4ecf5"><td align="right"><span class="key">Alt+B</span></td><td><span class="action">create a bitmap copy</span></td></tr> +<tr bgcolor="f4ecf5"><td colspan="3"><span class="note">This exports the selected object(s) (all other objects hidden) as PNG in the document's directory and imports it back.</span></td></tr> +<tr bgcolor="f4ecf5"><td colspan="3"><span class="note">The imported bitmap is placed over the original selection and is selected.</span></td></tr> +<tr bgcolor="f4ecf5"><td align="right"><span class="key">Shift+Alt+B</span></td><td><span class="action">trace bitmap</span></td></tr> +<tr bgcolor="f4ecf5"><td colspan="3"><span class="note">This opens the Trace Bitmap dialog allowing you to convert a bitmap object to path(s).</span></td></tr> + + + +<tr bgcolor="f4ecf5"><td colspan="3"><h4>Patterns</h4></td></tr> +<tr bgcolor="f4ecf5"><td align="right"><span class="key">Alt+I</span></td><td><span class="action">object(s) to pattern</span></td></tr> +<tr bgcolor="f4ecf5"><td colspan="3"><span class="note">This converts the selection to a rectangle with tiled pattern fill.</span></td></tr> +<tr bgcolor="f4ecf5"><td align="right"><span class="key">Shift+Alt+I</span></td><td><span class="action">pattern to object(s)</span></td></tr> +<tr bgcolor="f4ecf5"><td colspan="3"><span class="note">Each selected object with pattern fill is broken into the same object without fill and a single pattern object.</span></td></tr> + + + +<tr bgcolor="f4ecf5"><td colspan="3"><h4>Group</h4></td></tr> +<tr bgcolor="f4ecf5"><td align="right"><span class="key">Shift+Ctrl+U</span>, +<span class="key">Ctrl+G</span></td><td><span class="action">group selected objects</span></td></tr> +<tr bgcolor="f4ecf5"><td colspan="3"><span class="note">Use Ctrl+click to select objects within group.</span></td></tr> +<tr bgcolor="f4ecf5"><td align="right"><span class="key">Shift+Ctrl+G</span>, +<span class="key">Ctrl+U</span></td><td><span class="action">ungroup selected group(s)</span></td></tr> +<tr bgcolor="f4ecf5"><td colspan="3"><span class="note">This removes only one level of grouping; press Ctrl+U repeatedly to ungroup nested groups.</span></td></tr> + + + +<tr bgcolor="f4ecf5"><td colspan="3"><h4>Z-order</h4></td></tr> +<tr bgcolor="f4ecf5"><td align="right"><span class="key">Home</span></td><td><span class="action">raise selection to top</span></td></tr> +<tr bgcolor="f4ecf5"><td align="right"><span class="key">End</span></td><td><span class="action">lower selection to bottom</span></td></tr> +<tr bgcolor="f4ecf5"><td align="right"><span class="key">PgUp</span></td><td><span class="action">raise selection one step</span></td></tr> +<tr bgcolor="f4ecf5"><td align="right"><span class="key">PgDn</span></td><td><span class="action">lower selection one step</span></td></tr> + + +<tr><td colspan="3"><h1>Path</h1></td></tr> + + +<tr bgcolor="f9f1d9"><td colspan="3"><h4>Convert to path</h4></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">Shift+Ctrl+C</span></td><td><span class="action">convert selected object(s) to path</span></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">Ctrl+Alt+C</span></td><td><span class="action">convert stroke to path</span></td></tr> + + + +<tr bgcolor="f9f1d9"><td colspan="3"><h4>Booleans</h4></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">Ctrl++</span></td><td><span class="action">union</span></td></tr> +<tr bgcolor="f9f1d9"><td colspan="3"><span class="note">Union combines any number of objects into a single path, removing overlaps.</span></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">Ctrl+-</span></td><td><span class="action">difference</span></td></tr> +<tr bgcolor="f9f1d9"><td colspan="3"><span class="note">Difference works on 2 objects, extracting the top from the bottom.</span></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">Ctrl+*</span></td><td><span class="action">intersection</span></td></tr> +<tr bgcolor="f9f1d9"><td colspan="3"><span class="note">Intersection creates a path representing the common (overlapping) area of all selected objects.</span></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">Ctrl+^</span></td><td><span class="action">exclusive OR (XOR)</span></td></tr> +<tr bgcolor="f9f1d9"><td colspan="3"><span class="note">XOR is similar to Union, except that it works on 2 objects and removes areas where the objects overlap.</span></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">Ctrl+/</span></td><td><span class="action">division (cut)</span></td></tr> +<tr bgcolor="f9f1d9"><td colspan="3"><span class="note">Division cuts the bottom object into pieces by the top object, preserving the fill and stroke of the bottom.</span></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">Ctrl+Alt+/</span></td><td><span class="action">cut path</span></td></tr> +<tr bgcolor="f9f1d9"><td colspan="3"><span class="note">Cut Path cuts the bottom object's stroke only where it is intersected by the top path, removing any fill from the result.</span></td></tr> +<tr bgcolor="f9f1d9"><td colspan="3"><span class="note">The result of Union, Difference, Intersection, and XOR inherits the id= attribute and therefore the clones of the bottom object.</span></td></tr> +<tr bgcolor="f9f1d9"><td colspan="3"><span class="note">Division and Cut path normally produce several objects; of them, a random one inherits the id= of the bottom source object.</span></td></tr> + + + +<tr bgcolor="f9f1d9"><td colspan="3"><h4>Offsets</h4></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">Ctrl+(</span></td><td><span class="action">inset path (towards center)</span></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">Ctrl+)</span></td><td><span class="action">outset path (away from center)</span></td></tr> +<tr bgcolor="f9f1d9"><td colspan="3"><span class="note">The default offset distance is 2 px (SVG pixel units, not screen pixels).</span></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">Alt+(</span></td><td><span class="action">inset path by 1 pixel</span></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">Alt+)</span></td><td><span class="action">outset path by 1 pixel</span></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">Shift+Alt+(</span></td><td><span class="action">inset path by 10 pixels</span></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">Shift+Alt+)</span></td><td><span class="action">outset path by 10 pixels</span></td></tr> +<tr bgcolor="f9f1d9"><td colspan="3"><span class="note">The actual distance for pixel offsets depends on zoom level. Zoom in for finer adjustment.</span></td></tr> +<tr bgcolor="f9f1d9"><td colspan="3"><span class="note">All the (, ) commands convert the object to path, if necessary, and produce regular path.</span></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">Ctrl+J</span></td><td><span class="action">create dynamic offset</span></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">Ctrl+Alt+J</span></td><td><span class="action">create linked offset</span></td></tr> +<tr bgcolor="f9f1d9"><td colspan="3"><span class="note">These commands produce an offset object, editable by the node tool, standalone or linked to the original.</span></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">Shift+D</span></td><td><span class="action">select source</span></td></tr> +<tr bgcolor="f9f1d9"><td colspan="3"><span class="note">Selecting a linked offset and giving this command will select the source path of the linked offset.</span></td></tr> + + + +<tr bgcolor="f9f1d9"><td colspan="3"><h4>Combine</h4></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">Ctrl+K</span></td><td><span class="action">combine paths</span></td></tr> +<tr bgcolor="f9f1d9"><td colspan="3"><span class="note">This is different from grouping in that combined paths create one object.</span></td></tr> +<tr bgcolor="f9f1d9"><td colspan="3"><span class="note">This is different from Union in that overlapping areas are not affected.</span></td></tr> +<tr bgcolor="f9f1d9"><td colspan="3"><span class="note">Whether overlapping areas are filled is controlled by the Fill: winding/alternating switch on the Fill & Stroke dialog.</span></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">Shift+Ctrl+K</span></td><td><span class="action">break paths apart</span></td></tr> +<tr bgcolor="f9f1d9"><td colspan="3"><span class="note">This attempts to break an object into constituent paths; it will fail if the object is one solid path.</span></td></tr> + + + +<tr bgcolor="f9f1d9"><td colspan="3"><h4>Simplify</h4></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">Ctrl+L</span></td><td><span class="action">simplify</span></td></tr> +<tr bgcolor="f9f1d9"><td colspan="3"><span class="note">This command attempts to simplify selected path(s) by removing extra nodes. It converts all objects to paths first.</span></td></tr> +<tr bgcolor="f9f1d9"><td colspan="3"><span class="note">If you invoke this command several times in quick succession, it will act more and more aggressively.</span></td></tr> +<tr bgcolor="f9f1d9"><td colspan="3"><span class="note">Invoking Simplify again after a pause restores the default threshold (settable in the Inkscape Preferences dialog).</span></td></tr> + + +<tr><td colspan="3"><h1>Selector</h1></td></tr> + + +<tr bgcolor="eee4dc"><td colspan="3"><h4>Keyboard select</h4></td></tr> +<tr bgcolor="eee4dc"><td align="right"><span class="key">Tab</span></td><td><span class="action">select next object </span></td></tr> +<tr bgcolor="eee4dc"><td align="right"><span class="key">Shift+Tab</span></td><td><span class="action">select previous object </span></td></tr> +<tr bgcolor="eee4dc"><td colspan="3"><span class="note">These keys pick objects in their z-order (Tab cycles from bottom to top, Shift+Tab cycles from top to bottom).</span></td></tr> +<tr bgcolor="eee4dc"><td colspan="3"><span class="note">Unless you did manual rearrangements, the last object you created is always on top.</span></td></tr> +<tr bgcolor="eee4dc"><td colspan="3"><span class="note">As a result, if nothing is selected, pressing Shift+Tab once conveniently selects the object you created last.</span></td></tr> +<tr bgcolor="eee4dc"><td colspan="3"><span class="note">This works on objects within the current layer (unless you change that in preferences).</span></td></tr> +<tr bgcolor="eee4dc"><td align="right"><span class="key">Ctrl+A</span></td><td><span class="action">select all (current layer)</span></td></tr> +<tr bgcolor="eee4dc"><td colspan="3"><span class="note">This works on objects within the current layer (unless you change that in preferences).</span></td></tr> +<tr bgcolor="eee4dc"><td align="right"><span class="key">Ctrl+Alt+A</span></td><td><span class="action">select all (all layers)</span></td></tr> +<tr bgcolor="eee4dc"><td colspan="3"><span class="note">This works on objects in all visible and unlocked layers.</span></td></tr> +<tr bgcolor="eee4dc"><td align="right"><span class="key">!</span></td><td><span class="action">invert selection (current layer)</span></td></tr> +<tr bgcolor="eee4dc"><td colspan="3"><span class="note">This inverts selection (deselects what was selected and vice versa) in the current layer.</span></td></tr> +<tr bgcolor="eee4dc"><td align="right"><span class="key">Alt+!</span></td><td><span class="action">invert selection (all layers)</span></td></tr> +<tr bgcolor="eee4dc"><td colspan="3"><span class="note">This inverts selection (deselects what was selected and vice versa) in visible and unlocked layers.</span></td></tr> +<tr bgcolor="eee4dc"><td align="right"><span class="key">Esc</span></td><td><span class="action">deselect</span></td></tr> +<tr bgcolor="eee4dc"><td align="right"><span class="key">Backspace</span>, +<span class="key">Del</span></td><td><span class="action">delete selection</span></td></tr> + + + +<tr bgcolor="eee4dc"><td colspan="3"><h4>Keyboard move</h4></td></tr> +<tr bgcolor="eee4dc"><td align="right"><span class="key">arrows</span></td><td><span class="action">move selection by the nudge distance</span></td></tr> +<tr bgcolor="eee4dc"><td align="right"><span class="key">Shift+arrows</span></td><td><span class="action">move selection by 10x nudge distance</span></td></tr> +<tr bgcolor="eee4dc"><td colspan="3"><span class="note">The default nudge distance is 2 px (SVG pixel units, not screen pixels).</span></td></tr> +<tr bgcolor="eee4dc"><td align="right"><span class="key">Alt+arrows</span></td><td><span class="action">move selection by 1 pixel</span></td></tr> +<tr bgcolor="eee4dc"><td align="right"><span class="key">Alt+Shift+arrows</span></td><td><span class="action">move selection by 10 pixels</span></td></tr> +<tr bgcolor="eee4dc"><td colspan="3"><span class="note">The actual distance for pixel movements depends on zoom level. Zoom in for finer movement.</span></td></tr> + + + +<tr bgcolor="eee4dc"><td colspan="3"><h4>Keyboard scale</h4></td></tr> +<tr bgcolor="eee4dc"><td align="right"><span class="key">.</span>, +<span class="key">></span></td><td><span class="action">scale selection up by the scale step</span></td></tr> +<tr bgcolor="eee4dc"><td align="right"><span class="key">,</span>, +<span class="key"><</span></td><td><span class="action">scale selection down by the scale step</span></td></tr> +<tr bgcolor="eee4dc"><td colspan="3"><span class="note">The default scale step is 2 px (SVG pixel units, not screen pixels).</span></td></tr> +<tr bgcolor="eee4dc"><td align="right"><span class="key">Ctrl+.</span>, +<span class="key">Ctrl+></span></td><td><span class="action">scale selection to 200%</span></td></tr> +<tr bgcolor="eee4dc"><td align="right"><span class="key">Ctrl+,</span>, +<span class="key">Ctrl+<</span></td><td><span class="action">scale selection to 50%</span></td></tr> +<tr bgcolor="eee4dc"><td align="right"><span class="key">Alt+.</span>, +<span class="key">Alt+></span></td><td><span class="action">scale selection up by 1 pixel</span></td></tr> +<tr bgcolor="eee4dc"><td align="right"><span class="key">Alt+,</span>, +<span class="key">Alt+<</span></td><td><span class="action">scale selection down by 1 pixel</span></td></tr> +<tr bgcolor="eee4dc"><td colspan="3"><span class="note">The actual size increment for pixel scaling depends on zoom level. Zoom in for finer scaling.</span></td></tr> +<tr bgcolor="eee4dc"><td colspan="3"><span class="note">Scaling is uniform around the center, so that the size increment applies to the larger of the two dimensions.</span></td></tr> + + + +<tr bgcolor="eee4dc"><td colspan="3"><h4>Keyboard rotate</h4></td></tr> +<tr bgcolor="eee4dc"><td align="right"><span class="key">[</span>, +<span class="key">]</span></td><td><span class="action">rotate selection by the angle step</span></td></tr> +<tr bgcolor="eee4dc"><td colspan="3"><span class="note">The default angle step is 15 degrees. ] rotates clockwise, [ rotates counterclockwise.</span></td></tr> +<tr bgcolor="eee4dc"><td align="right"><span class="key">Ctrl+[</span>, +<span class="key">Ctrl+]</span></td><td><span class="action">rotate selection by 90 degrees</span></td></tr> +<tr bgcolor="eee4dc"><td align="right"><span class="key">Alt+[</span>, +<span class="key">Alt+]</span></td><td><span class="action">rotate selection by 1 pixel</span></td></tr> +<tr bgcolor="eee4dc"><td colspan="3"><span class="note">The actual angle for pixel rotation depends on zoom level. Zoom in for finer movement.</span></td></tr> + + + +<tr bgcolor="eee4dc"><td colspan="3"><h4>Keyboard flip</h4></td></tr> +<tr bgcolor="eee4dc"><td align="right"><span class="key">h</span></td><td><span class="action">flip selection horizontally</span></td></tr> +<tr bgcolor="eee4dc"><td align="right"><span class="key">v</span></td><td><span class="action">flip selection vertically</span></td></tr> + + + +<tr bgcolor="eee4dc"><td colspan="3"><h4>Mouse select</h4></td></tr> +<tr bgcolor="eee4dc"><td align="right"><span class="key">click</span></td><td><span class="action">select an object</span></td></tr> +<tr bgcolor="eee4dc"><td colspan="3"><span class="note">When you left-click on an object, previous selection is deselected.</span></td></tr> +<tr bgcolor="eee4dc"><td align="right"><span class="key">Shift+click</span></td><td><span class="action">toggle selection </span></td></tr> +<tr bgcolor="eee4dc"><td colspan="3"><span class="note">Shift+click adds an object to the current selection if it was not selected, or deselects it otherwise.</span></td></tr> +<tr bgcolor="eee4dc"><td align="right"><span class="key">clickclick</span></td><td><span class="action">edit the object</span></td></tr> +<tr bgcolor="eee4dc"><td colspan="3"><span class="note">For paths, double clicking switches to Node tool; for shapes, to corresponding shape tool; for text, to Text tool.</span></td></tr> +<tr bgcolor="eee4dc"><td colspan="3"><span class="note">For groups, double clicking performs the "Enter group" command (the group becomes temporary layer).</span></td></tr> + + + +<tr bgcolor="eee4dc"><td colspan="3"><h4>Select within group, select under</h4></td></tr> +<tr bgcolor="eee4dc"><td align="right"><span class="key">Ctrl+click</span></td><td><span class="action">select within group</span></td></tr> +<tr bgcolor="eee4dc"><td colspan="3"><span class="note">Ctrl+click selects the object at click point disregarding any levels of grouping that this object might belong to.</span></td></tr> +<tr bgcolor="eee4dc"><td align="right"><span class="key">Ctrl+Shift+click</span></td><td><span class="action">toggle selection within group</span></td></tr> +<tr bgcolor="eee4dc"><td align="right"><span class="key">Alt+click</span></td><td><span class="action">select under</span></td></tr> +<tr bgcolor="eee4dc"><td colspan="3"><span class="note">Alt+click selects the object at click point which is beneath (in z-order) the lowest selected object at click point.</span></td></tr> +<tr bgcolor="eee4dc"><td colspan="3"><span class="note">If the bottom object is reached, Alt+click again selects the top object. So, several Alt+clicks cycle through z-order stack at point.</span></td></tr> +<tr bgcolor="eee4dc"><td colspan="3"><span class="note">On Linux, Alt+click and Alt+drag may be reserved by the window manager. Reconfigure it so you can use them in Inkscape.</span></td></tr> +<tr bgcolor="eee4dc"><td align="right"><span class="key">Shift+Alt+click</span></td><td><span class="action">toggle under</span></td></tr> +<tr bgcolor="eee4dc"><td align="right"><span class="key">Ctrl+Alt+click</span></td><td><span class="action">select under, in groups</span></td></tr> +<tr bgcolor="eee4dc"><td align="right"><span class="key">Shift+Ctrl+Alt+click</span></td><td><span class="action">toggle under, in groups</span></td></tr> + + + +<tr bgcolor="eee4dc"><td colspan="3"><h4>Rubberband</h4></td></tr> +<tr bgcolor="eee4dc"><td align="right"><span class="key">mouse drag</span></td><td><span class="action">select multiple objects</span></td></tr> +<tr bgcolor="eee4dc"><td colspan="3"><span class="note">Dragging around objects does "rubberband" selection; previous selection is deselected.</span></td></tr> +<tr bgcolor="eee4dc"><td align="right"><span class="key">Shift+mouse drag</span></td><td><span class="action">add objects to selection</span></td></tr> +<tr bgcolor="eee4dc"><td colspan="3"><span class="note">Normally, you need to start from an empty space to initiate a rubberband.</span></td></tr> +<tr bgcolor="eee4dc"><td colspan="3"><span class="note">However, if you press Shift before dragging, Inkscape will do rubberband selection even if you start from an object.</span></td></tr> + + + +<tr bgcolor="eee4dc"><td colspan="3"><h4>Mouse move</h4></td></tr> +<tr bgcolor="eee4dc"><td align="right"><span class="key">mouse drag</span></td><td><span class="action">select + move</span></td></tr> +<tr bgcolor="eee4dc"><td colspan="3"><span class="note">Dragging an object selects it if it was not selected, then moves selection.</span></td></tr> +<tr bgcolor="eee4dc"><td align="right"><span class="key">Alt+mouse drag</span></td><td><span class="action">move selected</span></td></tr> +<tr bgcolor="eee4dc"><td colspan="3"><span class="note">Alt+drag moves the current selection (without selecting what is under cursor), no matter where you start the drag.</span></td></tr> +<tr bgcolor="eee4dc"><td colspan="3"><span class="note">On Linux, Alt+click and Alt+drag may be reserved by the window manager. Reconfigure it so you can use them in Inkscape.</span></td></tr> +<tr bgcolor="eee4dc"><td align="right"><span class="key">Ctrl+mouse drag</span></td><td><span class="action">restrict movement to horizontal or vertical</span></td></tr> +<tr bgcolor="eee4dc"><td align="right"><span class="key">Shift+mouse drag</span></td><td><span class="action">temporarily disable snapping</span></td></tr> +<tr bgcolor="eee4dc"><td colspan="3"><span class="note">This temporaily disables snapping to grid or guides when you are dragging with grid or guides on.</span></td></tr> +<tr bgcolor="eee4dc"><td align="right"><span class="key">mouse dragSpace</span></td><td><span class="action">drop a copy</span></td></tr> +<tr bgcolor="eee4dc"><td colspan="3"><span class="note">When dragging or transforming with mouse, each Space leaves a copy of the selected object.</span></td></tr> +<tr bgcolor="eee4dc"><td colspan="3"><span class="note">You can press and hold Space while dragging for a nice "trail."</span></td></tr> + + + +<tr bgcolor="eee4dc"><td colspan="3"><h4>Mouse transform</h4></td></tr> +<tr bgcolor="eee4dc"><td align="right"><span class="key">click</span></td><td><span class="action">toggle scale/rotation handles</span></td></tr> +<tr bgcolor="eee4dc"><td align="right"><span class="key">mouse drag</span></td><td><span class="action">scale (scale handles)</span></td></tr> +<tr bgcolor="eee4dc"><td align="right"><span class="key">mouse drag</span></td><td><span class="action">rotate or skew (rotation handles)</span></td></tr> + + + +<tr bgcolor="eee4dc"><td colspan="3"><h4>Scale handles</h4></td></tr> +<tr bgcolor="eee4dc"><td align="right"><span class="key">Ctrl+mouse drag</span></td><td><span class="action">scale preserving aspect ratio</span></td></tr> + +<tr bgcolor="eee4dc"><td align="right"><span class="key">Shift+mouse drag</span></td><td><span class="action">symmetric transformation</span></td></tr> +<tr bgcolor="eee4dc"><td colspan="3"><span class="note">Holding Shift while transforming makes transformation symmetric around the center of the selection.</span></td></tr> + +<tr bgcolor="eee4dc"><td align="right"><span class="key">Alt+mouse drag</span></td><td><span class="action">slow movement</span></td></tr> +<tr bgcolor="eee4dc"><td colspan="3"><span class="note">Holding Alt while transforming makes transformation lag behind mouse movement, allowing finer changes.</span></td></tr> + + + +<tr bgcolor="eee4dc"><td colspan="3"><h4>Rotation handles</h4></td></tr> +<tr bgcolor="eee4dc"><td align="right"><span class="key">Ctrl+mouse drag</span></td><td><span class="action">snap skew angle</span></td></tr> +<tr bgcolor="eee4dc"><td colspan="3"><span class="note">Holding Ctrl when dragging a skew (non-corner) handle snaps the skew angle to angle steps (default 15 degrees).</span></td></tr> +<tr bgcolor="eee4dc"><td align="right"><span class="key">Ctrl+mouse drag</span></td><td><span class="action">snap rotation angle</span></td></tr> +<tr bgcolor="eee4dc"><td colspan="3"><span class="note">Holding Ctrl when dragging a rotation (corner) handle snaps the rotation angle to angle steps (default 15 degrees).</span></td></tr> + + + +<tr bgcolor="eee4dc"><td colspan="3"><h4>Cancel</h4></td></tr> +<tr bgcolor="eee4dc"><td align="right"><span class="key">Esc</span></td><td><span class="action">cancel rubberband, move, transformation</span></td></tr> +<tr bgcolor="eee4dc"><td colspan="3"><span class="note">Press Esc while mouse button is still down to cancel rubberband selection, move, or transformation of any kind.</span></td></tr> + + +<tr><td colspan="3"><h1>Node tool</h1></td></tr> + + +<tr bgcolor="f9f1d9"><td colspan="3"><h4>Keyboard select</h4></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">Tab</span></td><td><span class="action">select next node</span></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">Shift+Tab</span></td><td><span class="action">select previous node</span></td></tr> +<tr bgcolor="f9f1d9"><td colspan="3"><span class="note">These keys select nodes within the selected path</span></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">Ctrl+A</span></td><td><span class="action">select all nodes in subpath(s)</span></td></tr> +<tr bgcolor="f9f1d9"><td colspan="3"><span class="note">If the path has multiple subpaths and some nodes selected, this selects all only in subpaths with already selected nodes.</span></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">Ctrl+Alt+A</span></td><td><span class="action">select all nodes in path</span></td></tr> +<tr bgcolor="f9f1d9"><td colspan="3"><span class="note">This selects all nodes in the entire path.</span></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">!</span></td><td><span class="action">invert selection in subpath(s)</span></td></tr> +<tr bgcolor="f9f1d9"><td colspan="3"><span class="note">If the path has multiple subpaths and some nodes selected, this inverts selection only in subpaths with already selected nodes.</span></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">Alt+!</span></td><td><span class="action">invert selection in path</span></td></tr> +<tr bgcolor="f9f1d9"><td colspan="3"><span class="note">This inverts selection (deselects what was selected and vice versa) in the entire path.</span></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">Esc</span></td><td><span class="action">deselect all nodes</span></td></tr> + + + +<tr bgcolor="f9f1d9"><td colspan="3"><h4>Keyboard move</h4></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">arrows</span></td><td><span class="action">move selected node(s) by the nudge distance</span></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">Shift+arrows</span></td><td><span class="action">move selected node(s) by 10x nudge distance</span></td></tr> +<tr bgcolor="f9f1d9"><td colspan="3"><span class="note">The default nudge distance is 2 px (SVG pixel units, not screen pixels).</span></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">Alt+arrows</span></td><td><span class="action">move selected node(s) by 1 pixel</span></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">Alt+Shift+arrows</span></td><td><span class="action">move selected node(s) by 10 pixels</span></td></tr> +<tr bgcolor="f9f1d9"><td colspan="3"><span class="note">The actual distance for pixel movements depends on zoom level. Zoom in for finer movement.</span></td></tr> + + + +<tr bgcolor="f9f1d9"><td colspan="3"><h4>Keyboard handle scale (1 node selected)</h4></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key"><</span>, +<span class="key">></span></td><td><span class="action">contract/expand both handles by scale step</span></td></tr> +<tr bgcolor="f9f1d9"><td colspan="3"><span class="note">The default scale step is 2 px (SVG pixel units, not screen pixels). May apply to more than one node.</span></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">Left Ctrl+<</span>, +<span class="key">Left Ctrl+></span></td><td><span class="action">scale left handle by the scale step</span></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">Right Ctrl+<</span>, +<span class="key">Right Ctrl+></span></td><td><span class="action">scale right handle by the scale step</span></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">Left Alt+<</span>, +<span class="key">Left Alt+></span></td><td><span class="action">scale left handle by 1 pixel</span></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">Right Alt+<</span>, +<span class="key">Right Alt+></span></td><td><span class="action">scale right handle by 1 pixel</span></td></tr> +<tr bgcolor="f9f1d9"><td colspan="3"><span class="note">The actual size increment for pixel scaling depends on zoom level. Zoom in for finer scaling.</span></td></tr> +<tr bgcolor="f9f1d9"><td colspan="3"><span class="note">Instead of the < and > keys, you can use the , (comma) and . (period) keys respectively.</span></td></tr> + + + +<tr bgcolor="f9f1d9"><td colspan="3"><h4>Keyboard handle rotate (1 node selected)</h4></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">[</span>, +<span class="key">]</span></td><td><span class="action">rotate both handles by the angle step</span></td></tr> +<tr bgcolor="f9f1d9"><td colspan="3"><span class="note">The default angle step is 15 degrees. ] rotates clockwise, [ rotates counterclockwise. May apply to more than one node.</span></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">Left Ctrl+[</span>, +<span class="key">Left Ctrl+]</span></td><td><span class="action">rotate left handle by the angle step</span></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">Right Ctrl+[</span>, +<span class="key">Right Ctrl+]</span></td><td><span class="action">rotate right handle by the angle step</span></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">Left Alt+[</span>, +<span class="key">Left Alt+]</span></td><td><span class="action">rotate left handle by 1 pixel</span></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">Right Alt+[</span>, +<span class="key">Right Alt+]</span></td><td><span class="action">rotate right handle by 1 pixel</span></td></tr> + + + + +<tr bgcolor="f9f1d9"><td colspan="3"><h4>Keyboard scale (>1 nodes selected)</h4></td></tr> +<tr bgcolor="f9f1d9"><td colspan="3"><span class="note">These commands scale the selected nodes as if they were an "object", around the center of that object.</span></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">.</span>, +<span class="key">></span></td><td><span class="action">scale nodes up by the scale step</span></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">,</span>, +<span class="key"><</span></td><td><span class="action">scale nodes down by the scale step</span></td></tr> +<tr bgcolor="f9f1d9"><td colspan="3"><span class="note">The default scale step is 2 px (SVG pixel units, not screen pixels).</span></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">Alt+.</span>, +<span class="key">Alt+></span></td><td><span class="action">scale nodes up by 1 pixel</span></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">Alt+,</span>, +<span class="key">Alt+<</span></td><td><span class="action">scale nodes down by 1 pixel</span></td></tr> +<tr bgcolor="f9f1d9"><td colspan="3"><span class="note">The actual size increment for pixel scaling depends on zoom level. Zoom in for finer scaling.</span></td></tr> +<tr bgcolor="f9f1d9"><td colspan="3"><span class="note">Scaling is uniform around the center, so that the size increment applies to the larger of the two dimensions.</span></td></tr> + + + +<tr bgcolor="f9f1d9"><td colspan="3"><h4>Keyboard rotate (>1 nodes selected)</h4></td></tr> +<tr bgcolor="f9f1d9"><td colspan="3"><span class="note">These commands rotate the selected nodes as if they were an "object", around the center of that object.</span></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">[</span>, +<span class="key">]</span></td><td><span class="action">rotate nodes by the angle step</span></td></tr> +<tr bgcolor="f9f1d9"><td colspan="3"><span class="note">The default angle step is 15 degrees. ] rotates clockwise, [ rotates counterclockwise.</span></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">Alt+[</span>, +<span class="key">Alt+]</span></td><td><span class="action">rotate nodes by 1 pixel</span></td></tr> +<tr bgcolor="f9f1d9"><td colspan="3"><span class="note">The actual angle for pixel rotation depends on zoom level. Zoom in for finer movement.</span></td></tr> + + + +<tr bgcolor="f9f1d9"><td colspan="3"><h4>Keyboard flip (>1 nodes selected)</h4></td></tr> +<tr bgcolor="f9f1d9"><td colspan="3"><span class="note">These commands flip the selected nodes as if they were an "object", around the center of that object.</span></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">h</span></td><td><span class="action">flip nodes horizontally</span></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">v</span></td><td><span class="action">flip nodes vertically</span></td></tr> + + + + +<tr bgcolor="f9f1d9"><td colspan="3"><h4>Change segment(s)</h4></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">Shift+L</span></td><td><span class="action">make line</span></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">Shift+U</span></td><td><span class="action">make curve</span></td></tr> +<tr bgcolor="f9f1d9"><td colspan="3"><span class="note">These commands require that more than two adjacent nodes be selected.</span></td></tr> + + + +<tr bgcolor="f9f1d9"><td colspan="3"><h4>Change node type</h4></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">Shift+C</span></td><td><span class="action">make cusp</span></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">Shift+S</span></td><td><span class="action">make smooth</span></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">Shift+Y</span></td><td><span class="action">make symmetric</span></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">Ctrl+click</span></td><td><span class="action">toggle smooth/cusp/symmetric</span></td></tr> + + + +<tr bgcolor="f9f1d9"><td colspan="3"><h4>Join/break</h4></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">Shift+J</span></td><td><span class="action">join selected nodes</span></td></tr> +<tr bgcolor="f9f1d9"><td colspan="3"><span class="note">This requires that exactly two end nodes within the path be selected.</span></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">Shift+B</span></td><td><span class="action">break selected node(s)</span></td></tr> +<tr bgcolor="f9f1d9"><td colspan="3"><span class="note">After break, only one of each two new nodes is selected. May apply to more than one node.</span></td></tr> + + + +<tr bgcolor="f9f1d9"><td colspan="3"><h4>Delete, create, duplicate</h4></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">Backspace</span>, +<span class="key">Del</span></td><td><span class="action">delete selected node(s)</span></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">Ctrl+Alt+click</span></td><td><span class="action">create/delete node</span></td></tr> +<tr bgcolor="f9f1d9"><td colspan="3"><span class="note">Ctrl+Alt+click on a node deletes it; Ctrl+Alt+click on the path between nodes creates a new node in the click point.</span></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">clickclick</span></td><td><span class="action">create node</span></td></tr> +<tr bgcolor="f9f1d9"><td colspan="3"><span class="note">Double clicking on the path between nodes creates a node in the click point.</span></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">Ins</span></td><td><span class="action">insert new node(s)</span></td></tr> +<tr bgcolor="f9f1d9"><td colspan="3"><span class="note">This adds new node(s) in the middle(s) of selected segment(s), so it requires that more than two adjacent nodes be selected.</span></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">Shift+D</span></td><td><span class="action">duplicate selected node(s)</span></td></tr> +<tr bgcolor="f9f1d9"><td colspan="3"><span class="note">New nodes are created on the same path; they are placed exactly over the old ones and are selected.</span></td></tr> + + + + + +<tr bgcolor="f9f1d9"><td colspan="3"><h4>Mouse select: objects</h4></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">click</span></td><td><span class="action">click a non-selected object to select</span></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">Alt+click</span></td><td><span class="action">select under</span></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">Shift+click</span></td><td><span class="action">toggle selection</span></td></tr> +<tr bgcolor="f9f1d9"><td colspan="3"><span class="note">These work the same as in Selector. The nodes or handles of the single selected object become editable.</span></td></tr> + + + +<tr bgcolor="f9f1d9"><td colspan="3"><h4>Mouse select: nodes</h4></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">click</span></td><td><span class="action">select a node</span></td></tr> +<tr bgcolor="f9f1d9"><td colspan="3"><span class="note">Clicking on a node selects it.</span></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">click</span></td><td><span class="action">select two adjacent nodes</span></td></tr> +<tr bgcolor="f9f1d9"><td colspan="3"><span class="note">Clicking on a selected path between the nodes selects the two nodes closest to the click point.</span></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">Shift+click</span></td><td><span class="action">toggle selection</span></td></tr> +<tr bgcolor="f9f1d9"><td colspan="3"><span class="note">This adds/removes a node (if clicked on node) or two nodes (if clicked on path) to/from the node selection.</span></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">click</span></td><td><span class="action">deselect</span></td></tr> +<tr bgcolor="f9f1d9"><td colspan="3"><span class="note">Clicking in an empty space deselects all selected nodes. Next click will deselect the object.</span></td></tr> + + + +<tr bgcolor="f9f1d9"><td colspan="3"><h4>Rubberband</h4></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">mouse drag</span></td><td><span class="action">select multiple nodes</span></td></tr> +<tr bgcolor="f9f1d9"><td colspan="3"><span class="note">Dragging around nodes does "rubberband" selection; previous node selection is deselected.</span></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">Shift+mouse drag</span></td><td><span class="action">add nodes to selection</span></td></tr> +<tr bgcolor="f9f1d9"><td colspan="3"><span class="note">Normally, you need to start from a point not over a path or a node to initiate a rubberband.</span></td></tr> +<tr bgcolor="f9f1d9"><td colspan="3"><span class="note">However, if you press Shift before dragging, Inkscape will do rubberband selection even if you start over the path.</span></td></tr> + + + + +<tr bgcolor="f9f1d9"><td colspan="3"><h4>Node move (mouse)</h4></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">mouse drag</span></td><td><span class="action">move selected nodes</span></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">Ctrl+mouse drag</span></td><td><span class="action">restrict movement to horizontal or vertical</span></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">Ctrl+Alt+mouse drag</span></td><td><span class="action">move along handles</span></td></tr> +<tr bgcolor="f9f1d9"><td colspan="3"><span class="note">This restricts movement to the directions of the node's handles, their continuations and perpendiculars (total 8 snaps).</span></td></tr> +<tr bgcolor="f9f1d9"><td colspan="3"><span class="note">If the node has straight lines on one or both sides, this will snap it to these lines' directions and perpendiculars instead.</span></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">Shift+mouse drag</span></td><td><span class="action">temporarily disable snapping</span></td></tr> +<tr bgcolor="f9f1d9"><td colspan="3"><span class="note">Snapping nodes is enabled in Document Preferences. By default, only bounding box of objects snaps to grid/guides.</span></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">Shift+mouse drag</span></td><td><span class="action">drag out handle</span></td></tr> +<tr bgcolor="f9f1d9"><td colspan="3"><span class="note">If a node has a retracted handle, dragging with Shift lets you drag it out of the node.</span></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">mouse dragSpace</span></td><td><span class="action">drop a copy</span></td></tr> +<tr bgcolor="f9f1d9"><td colspan="3"><span class="note">When dragging nodes with mouse, each Space leaves a copy of the selected object.</span></td></tr> +<tr bgcolor="f9f1d9"><td colspan="3"><span class="note">You can press and hold Space while dragging for a nice "trail."</span></td></tr> + + + +<tr bgcolor="f9f1d9"><td colspan="3"><h4>Node handles</h4></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">mouse drag</span></td><td><span class="action">move a node handle</span></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">Ctrl+mouse drag</span></td><td><span class="action">snap the handle to angle steps</span></td></tr> +<tr bgcolor="f9f1d9"><td colspan="3"><span class="note">The default angle step is 15 degrees. This also snaps to the handle's original angle, its continuation and perpendiculars.</span></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">Shift+mouse drag</span></td><td><span class="action">rotate both handles</span></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">Alt+mouse drag</span></td><td><span class="action">lock the handle length</span></td></tr> +<tr bgcolor="f9f1d9"><td colspan="3"><span class="note">Ctrl, Shift, Alt can be combined when dragging handles.</span></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">Ctrl+click</span></td><td><span class="action">retract the handle</span></td></tr> +<tr bgcolor="f9f1d9"><td colspan="3"><span class="note">Retracted handle is zero length; use Shift+drag to drag it back out.</span></td></tr> + + + +<tr bgcolor="f9f1d9"><td colspan="3"><h4>Reversing</h4></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">Shift+r</span></td><td><span class="action">reverse path direction</span></td></tr> + + + +<tr bgcolor="f9f1d9"><td colspan="3"><h4>Editing shapes</h4></td></tr> +<tr bgcolor="f9f1d9"><td colspan="3"><span class="note">Node tool can also drag the handles of shapes (rectangles, ellipses, stars, spirals). Click on a shape to select it.</span></td></tr> +<tr bgcolor="f9f1d9"><td colspan="3"><span class="note">See the corresponding shape tools for their editing shortcuts, all of which also work in node tool.</span></td></tr> + + + + +<tr bgcolor="f9f1d9"><td colspan="3"><h4>Cancel</h4></td></tr> +<tr bgcolor="f9f1d9"><td align="right"><span class="key">Esc</span></td><td><span class="action">cancel rubberband or move</span></td></tr> +<tr bgcolor="f9f1d9"><td colspan="3"><span class="note">Press Esc while mouse button is still down to cancel rubberband selection, node move, handle move, or handle move.</span></td></tr> + + +<tr><td colspan="3"><h1>Rectangle tool</h1></td></tr> + +<tr bgcolor="ebf1fd"><td colspan="3"><h4>Drawing</h4></td></tr> +<tr bgcolor="ebf1fd"><td align="right"><span class="key">mouse drag</span></td><td><span class="action">draw a rectangle</span></td></tr> +<tr bgcolor="ebf1fd"><td align="right"><span class="key">Ctrl+mouse drag</span></td><td><span class="action">make a square or integer-ratio rectangle</span></td></tr> +<tr bgcolor="ebf1fd"><td colspan="3"><span class="note">This restricts rectangle so its height/width ratio is a whole number.</span></td></tr> +<tr bgcolor="ebf1fd"><td align="right"><span class="key">Shift+mouse drag</span></td><td><span class="action">draw around the starting point</span></td></tr> +<tr bgcolor="ebf1fd"><td colspan="3"><span class="note">This creates a rectangle symmetric around the starting point of the mouse drag.</span></td></tr> + + +<tr bgcolor="ebf1fd"><td colspan="3"><h4>Editing</h4></td></tr> +<tr bgcolor="ebf1fd"><td align="right"><span class="key">click</span></td><td><span class="action">click an object to select</span></td></tr> +<tr bgcolor="ebf1fd"><td align="right"><span class="key">Alt+click</span></td><td><span class="action">select under</span></td></tr> +<tr bgcolor="ebf1fd"><td align="right"><span class="key">Shift+click</span></td><td><span class="action">toggle selection</span></td></tr> +<tr bgcolor="ebf1fd"><td align="right"><span class="key">mouse drag</span></td><td><span class="action">drag a handle to resize or round corners</span></td></tr> +<tr bgcolor="ebf1fd"><td colspan="3"><span class="note">Initially, the two rounding handles are in the top right corner; two resize handles are in top left and bottom right corners.</span></td></tr> +<tr bgcolor="ebf1fd"><td align="right"><span class="key">Ctrl+mouse drag</span></td><td><span class="action">lock width, height, or ratio (resize handles)</span></td></tr> +<tr bgcolor="ebf1fd"><td align="right"><span class="key">Ctrl+mouse drag</span></td><td><span class="action">lock the corner circular (rounding handles)</span></td></tr> +<tr bgcolor="ebf1fd"><td colspan="3"><span class="note">Resize handles change the width and height of the rectangle in its own coordinate system, before any transforms are applied.</span></td></tr> +<tr bgcolor="ebf1fd"><td colspan="3"><span class="note">When rounding corners, dragging only one rounding handle (with the other at the corner) keeps the corner circular.</span></td></tr> +<tr bgcolor="ebf1fd"><td colspan="3"><span class="note">You can drag both handles for an elliptic rounded corner, or drag one with Ctrl to make sure the other one is synchronized.</span></td></tr> +<tr bgcolor="ebf1fd"><td align="right"><span class="key">Esc</span></td><td><span class="action">deselect</span></td></tr> + +<tr><td colspan="3"><h1>Ellipse tool</h1></td></tr> + +<tr bgcolor="ffece8"><td colspan="3"><h4>Drawing</h4></td></tr> +<tr bgcolor="ffece8"><td align="right"><span class="key">mouse drag</span></td><td><span class="action">draw an ellipse</span></td></tr> +<tr bgcolor="ffece8"><td align="right"><span class="key">Ctrl+mouse drag</span></td><td><span class="action">make circle or integer-ratio ellipse</span></td></tr> +<tr bgcolor="ffece8"><td colspan="3"><span class="note">This restricts ellipse so its height/width ratio is a whole number.</span></td></tr> +<tr bgcolor="ffece8"><td align="right"><span class="key">Shift+mouse drag</span></td><td><span class="action">draw around the starting point</span></td></tr> +<tr bgcolor="ffece8"><td colspan="3"><span class="note">This creates an ellipse symmetric around the starting point of the mouse drag.</span></td></tr> + + +<tr bgcolor="ffece8"><td colspan="3"><h4>Editing</h4></td></tr> +<tr bgcolor="ffece8"><td align="right"><span class="key">click</span></td><td><span class="action">click an object to select</span></td></tr> +<tr bgcolor="ffece8"><td align="right"><span class="key">Alt+click</span></td><td><span class="action">select under</span></td></tr> +<tr bgcolor="ffece8"><td align="right"><span class="key">Shift+click</span></td><td><span class="action">toggle selection</span></td></tr> +<tr bgcolor="ffece8"><td align="right"><span class="key">mouse drag</span></td><td><span class="action">drag a handle to resize, make arc or segment</span></td></tr> +<tr bgcolor="ffece8"><td colspan="3"><span class="note">Initially, the two arc/segment handles are in the rightmost point; two resize handles are at the topmost and leftmost points.</span></td></tr> +<tr bgcolor="ffece8"><td align="right"><span class="key">Ctrl+mouse drag</span></td><td><span class="action">lock circle (resize handles)</span></td></tr> +<tr bgcolor="ffece8"><td align="right"><span class="key">Ctrl+mouse drag</span></td><td><span class="action">snap to angle steps (arc/segment handles)</span></td></tr> +<tr bgcolor="ffece8"><td colspan="3"><span class="note">Resize handles change the width and height of the ellipse in its own coordinate system, before any transforms are applied.</span></td></tr> +<tr bgcolor="ffece8"><td colspan="3"><span class="note">The default angle step is 15 degrees.</span></td></tr> +<tr bgcolor="ffece8"><td align="right"><span class="key">Esc</span></td><td><span class="action">deselect</span></td></tr> + +<tr><td colspan="3"><h1>Star tool</h1></td></tr> + +<tr bgcolor="f8f7d5"><td colspan="3"><h4>Drawing</h4></td></tr> +<tr bgcolor="f8f7d5"><td align="right"><span class="key">mouse drag</span></td><td><span class="action">draw a star</span></td></tr> +<tr bgcolor="f8f7d5"><td align="right"><span class="key">Ctrl+mouse drag</span></td><td><span class="action">snap star to angle steps</span></td></tr> +<tr bgcolor="f8f7d5"><td colspan="3"><span class="note">The default angle step is 15 degrees.</span></td></tr> + + +<tr bgcolor="f8f7d5"><td colspan="3"><h4>Editing</h4></td></tr> +<tr bgcolor="f8f7d5"><td align="right"><span class="key">click</span></td><td><span class="action">click an object to select</span></td></tr> +<tr bgcolor="f8f7d5"><td align="right"><span class="key">Alt+click</span></td><td><span class="action">select under</span></td></tr> +<tr bgcolor="f8f7d5"><td align="right"><span class="key">Shift+click</span></td><td><span class="action">toggle selection</span></td></tr> +<tr bgcolor="f8f7d5"><td align="right"><span class="key">mouse drag</span></td><td><span class="action">drag a handle to vary the star shape</span></td></tr> +<tr bgcolor="f8f7d5"><td align="right"><span class="key">Ctrl+mouse drag</span></td><td><span class="action">keep star rays radial (no skew)</span></td></tr> +<tr bgcolor="f8f7d5"><td align="right"><span class="key">Shift+mouse drag</span></td><td><span class="action">round the star</span></td></tr> +<tr bgcolor="f8f7d5"><td align="right"><span class="key">Shift+click</span></td><td><span class="action">remove rounding</span></td></tr> +<tr bgcolor="f8f7d5"><td align="right"><span class="key">Alt+mouse drag</span></td><td><span class="action">randomize the star</span></td></tr> +<tr bgcolor="f8f7d5"><td align="right"><span class="key">Alt+click</span></td><td><span class="action">remove randomization</span></td></tr> +<tr bgcolor="f8f7d5"><td align="right"><span class="key">Esc</span></td><td><span class="action">deselect</span></td></tr> + +<tr><td colspan="3"><h1>Spiral tool</h1></td></tr> + +<tr bgcolor="f3f3f3"><td colspan="3"><h4>Drawing</h4></td></tr> +<tr bgcolor="f3f3f3"><td align="right"><span class="key">mouse drag</span></td><td><span class="action">draw a spiral</span></td></tr> +<tr bgcolor="f3f3f3"><td align="right"><span class="key">Ctrl+mouse drag</span></td><td><span class="action">snap spiral to angle steps</span></td></tr> +<tr bgcolor="f3f3f3"><td colspan="3"><span class="note">The default angle step is 15 degrees.</span></td></tr> + + +<tr bgcolor="f3f3f3"><td colspan="3"><h4>Editing</h4></td></tr> +<tr bgcolor="f3f3f3"><td align="right"><span class="key">click</span></td><td><span class="action">click an object to select</span></td></tr> +<tr bgcolor="f3f3f3"><td align="right"><span class="key">Alt+click</span></td><td><span class="action">select under</span></td></tr> +<tr bgcolor="f3f3f3"><td align="right"><span class="key">Shift+click</span></td><td><span class="action">toggle selection</span></td></tr> +<tr bgcolor="f3f3f3"><td align="right"><span class="key">mouse drag</span></td><td><span class="action">roll/unroll from inside (inner handle)</span></td></tr> +<tr bgcolor="f3f3f3"><td colspan="3"><span class="note">Dragging the inner handle adjusts the "inner radius" parameter.</span></td></tr> +<tr bgcolor="f3f3f3"><td align="right"><span class="key">Alt+mouse drag</span></td><td><span class="action">converge/diverge (inner handle)</span></td></tr> +<tr bgcolor="f3f3f3"><td align="right"><span class="key">Alt+click</span></td><td><span class="action">reset divergence (inner handle)</span></td></tr> +<tr bgcolor="f3f3f3"><td colspan="3"><span class="note">Vertical Alt+drag of the inner handle adjusts the "divergence" parameter, Alt+click resets it to 1.</span></td></tr> +<tr bgcolor="f3f3f3"><td align="right"><span class="key">Shift+click</span></td><td><span class="action">zero inner radius (inner handle)</span></td></tr> +<tr bgcolor="f3f3f3"><td colspan="3"><span class="note">Shift+click on inner handle makes the spiral start from the center.</span></td></tr> + +<tr bgcolor="f3f3f3"><td align="right"><span class="key">mouse drag</span></td><td><span class="action">roll/unroll from outside (outer handle)</span></td></tr> +<tr bgcolor="f3f3f3"><td colspan="3"><span class="note">Dragging the outer handle adjusts the "turns" parameter. Use Shift+Alt+drag to roll/unroll without changing radius.</span></td></tr> +<tr bgcolor="f3f3f3"><td align="right"><span class="key">Shift+mouse drag</span></td><td><span class="action">scale/rotate (outer handle)</span></td></tr> +<tr bgcolor="f3f3f3"><td colspan="3"><span class="note">Use Shift+Alt to rotate only (locks the radius of the spiral).</span></td></tr> + +<tr bgcolor="f3f3f3"><td align="right"><span class="key">Ctrl+mouse drag</span></td><td><span class="action">snap handles to angle steps</span></td></tr> +<tr bgcolor="f3f3f3"><td colspan="3"><span class="note">The default angle step is 15 degrees. This works for both handles.</span></td></tr> + +<tr bgcolor="f3f3f3"><td align="right"><span class="key">Esc</span></td><td><span class="action">deselect</span></td></tr> + +<tr><td colspan="3"><h1>Zoom tool</h1></td></tr> + +<tr bgcolor="e7e9f3"><td align="right"><span class="key">click</span></td><td><span class="action">zoom in</span></td></tr> +<tr bgcolor="e7e9f3"><td align="right"><span class="key">Shift+click</span></td><td><span class="action">zoom out</span></td></tr> +<tr bgcolor="e7e9f3"><td align="right"><span class="key">mouse drag</span></td><td><span class="action">zoom into the area</span></td></tr> + +<tr><td colspan="3"><h1>Freehand tool</h1></td></tr> + +<tr bgcolor="e9efc5"><td align="right"><span class="key">mouse drag</span></td><td><span class="action">draw a freehand line</span></td></tr> +<tr bgcolor="e9efc5"><td align="right"><span class="key">Shift+mouse drag</span></td><td><span class="action">add to selected path</span></td></tr> +<tr bgcolor="e9efc5"><td colspan="3"><span class="note">If a path is selected, Shift+dragging anywhere creates a new subpath instead of a new independent path.</span></td></tr> +<tr bgcolor="e9efc5"><td align="right"><span class="key">Shift+mouse drag</span></td><td><span class="action">temporarily disable snapping</span></td></tr> +<tr bgcolor="e9efc5"><td colspan="3"><span class="note">Shift also temporaily disables snapping to grid or guides when you are drawing with grid or guides on.</span></td></tr> + +<tr><td colspan="3"><h1>Bezier (Pen) tool</h1></td></tr> + + +<tr bgcolor="e7f5d7"><td colspan="3"><h4>Create nodes</h4></td></tr> +<tr bgcolor="e7f5d7"><td align="right"><span class="key">click</span></td><td><span class="action">create a sharp node</span></td></tr> +<tr bgcolor="e7f5d7"><td colspan="3"><span class="note">If no path is being created, this starts a new path.</span></td></tr> +<tr bgcolor="e7f5d7"><td align="right"><span class="key">Shift+click</span></td><td><span class="action">add to selected path</span></td></tr> +<tr bgcolor="e7f5d7"><td colspan="3"><span class="note">If a path is selected, Shift+clicking anywhere starts a new subpath instead of a new independent path.</span></td></tr> +<tr bgcolor="e7f5d7"><td align="right"><span class="key">mouse drag</span></td><td><span class="action">create a bezier node with two handles</span></td></tr> +<tr bgcolor="e7f5d7"><td align="right"><span class="key">Shift+mouse drag</span></td><td><span class="action">move only one handle</span></td></tr> + +<tr bgcolor="e7f5d7"><td colspan="3"><span class="note">This moves only one handle (instead of both) to create a cusp node.</span></td></tr> +<tr bgcolor="e7f5d7"><td align="right"><span class="key">Ctrl+mouse drag</span></td><td><span class="action">snap the handle to angle steps</span></td></tr> +<tr bgcolor="e7f5d7"><td colspan="3"><span class="note">The default angle step is 15 degrees.</span></td></tr> + + + +<tr bgcolor="e7f5d7"><td colspan="3"><h4>Create segments</h4></td></tr> +<tr bgcolor="e7f5d7"><td align="right"><span class="key">Ctrl+</span></td><td><span class="action">snap the segment to angle steps</span></td></tr> +<tr bgcolor="e7f5d7"><td colspan="3"><span class="note">This snaps the new node's angle, relative to the previous node, to angle steps (default 15 degrees).</span></td></tr> + + + +<tr bgcolor="e7f5d7"><td colspan="3"><h4>Finish</h4></td></tr> +<tr bgcolor="e7f5d7"><td align="right"><span class="key">Enter</span></td><td><span class="action">finish current line</span></td></tr> +<tr bgcolor="e7f5d7"><td align="right"><span class="key">right click</span></td><td><span class="action">finish current line</span></td></tr> +<tr bgcolor="e7f5d7"><td align="right"><span class="key">clickclick</span></td><td><span class="action">finish current line</span></td></tr> +<tr bgcolor="e7f5d7"><td colspan="3"><span class="note">Enter, right click, or double left click finish the current line, discarding the last unfinished (red) segment.</span></td></tr> + + + +<tr bgcolor="e7f5d7"><td colspan="3"><h4>Keyboard</h4></td></tr> +<tr bgcolor="e7f5d7"><td align="right"><span class="key">Esc</span></td><td><span class="action">cancel current line</span></td></tr> +<tr bgcolor="e7f5d7"><td align="right"><span class="key">Backspace</span>, +<span class="key">Del</span></td><td><span class="action">erase last segment of current line</span></td></tr> + +<tr><td colspan="3"><h1>Calligraphy</h1></td></tr> + +<tr bgcolor="e9dfef"><td align="right"><span class="key">mouse drag</span></td><td><span class="action">draw a calligraphic line</span></td></tr> +<tr bgcolor="e9dfef"><td align="right"><span class="key">Left arrow</span>, +<span class="key">Right arrow</span></td><td><span class="action">adjust pen width</span></td></tr> +<tr bgcolor="e9dfef"><td align="right"><span class="key">Up arrow</span>, +<span class="key">Down arrow</span></td><td><span class="action">adjust pen angle</span></td></tr> +<tr bgcolor="e9dfef"><td colspan="3"><span class="note">Width and angle can be adjusted while drawing. </span></td></tr> + +<tr><td colspan="3"><h1>Gradient tool</h1></td></tr> + +<tr bgcolor="e9f3e7"><td colspan="3"><h4>Creating gradients</h4></td></tr> +<tr bgcolor="e9f3e7"><td align="right"><span class="key">mouse drag</span></td><td><span class="action">create gradient</span></td></tr> +<tr bgcolor="e9f3e7"><td colspan="3"><span class="note">This creates gradient on selected objects. The Controls bar lets you select linear/radial and fill/stroke for the new gradient.</span></td></tr> +<tr bgcolor="e9f3e7"><td align="right"><span class="key">clickclick</span></td><td><span class="action">create default gradient</span></td></tr> +<tr bgcolor="e9f3e7"><td colspan="3"><span class="note">This creates default (horizontal edge-to-edge for linear, centered edge-to-edge-to-edge for radial) gradient on clicked object. </span></td></tr> + + + +<tr bgcolor="e9f3e7"><td colspan="3"><h4>Handles</h4></td></tr> +<tr bgcolor="e9f3e7"><td align="right"><span class="key">Tab</span></td><td><span class="action">select next handle</span></td></tr> +<tr bgcolor="e9f3e7"><td align="right"><span class="key">Shift+Tab</span></td><td><span class="action">select previous handle</span></td></tr> +<tr bgcolor="e9f3e7"><td align="right"><span class="key">arrows</span></td><td><span class="action">move selected handle by the nudge distance</span></td></tr> +<tr bgcolor="e9f3e7"><td align="right"><span class="key">Shift+arrows</span></td><td><span class="action">move selected handle by 10x nudge distance</span></td></tr> +<tr bgcolor="e9f3e7"><td colspan="3"><span class="note">The default nudge distance is 2 px (SVG pixel units, not screen pixels).</span></td></tr> +<tr bgcolor="e9f3e7"><td align="right"><span class="key">Alt+arrows</span></td><td><span class="action">move selected handle by 1 pixel</span></td></tr> +<tr bgcolor="e9f3e7"><td align="right"><span class="key">Alt+Shift+arrows</span></td><td><span class="action">move selected handle by 10 pixels</span></td></tr> +<tr bgcolor="e9f3e7"><td colspan="3"><span class="note">The actual distance for pixel movements depends on zoom level. Zoom in for finer movement.</span></td></tr> +<tr bgcolor="e9f3e7"><td align="right"><span class="key">Esc</span></td><td><span class="action">deselect handle</span></td></tr> +<tr bgcolor="e9f3e7"><td align="right"><span class="key">clickclick</span></td><td><span class="action">open gradient editor</span></td></tr> +<tr bgcolor="e9f3e7"><td colspan="3"><span class="note">Double clicking a gradient handle opens the Gradient Editor with that gradient and the clicked handle chosen in the stops list.</span></td></tr> + + + +<tr bgcolor="e9f3e7"><td colspan="3"><h4>Reversing</h4></td></tr> +<tr bgcolor="e9f3e7"><td align="right"><span class="key">Shift+r</span></td><td><span class="action">reverse gradient definition</span></td></tr> +<tr bgcolor="e9f3e7"><td colspan="3"><span class="note">This mirrors the stop positions of the current gradient without moving the gradient handles.</span></td></tr> + + + +<tr bgcolor="e9f3e7"><td colspan="3"><h4>Mouse select</h4></td></tr> +<tr bgcolor="e9f3e7"><td align="right"><span class="key">click</span></td><td><span class="action">click an object to select</span></td></tr> +<tr bgcolor="e9f3e7"><td align="right"><span class="key">Alt+click</span></td><td><span class="action">select under</span></td></tr> +<tr bgcolor="e9f3e7"><td align="right"><span class="key">Shift+click</span></td><td><span class="action">toggle selection</span></td></tr> + + +<tr><td colspan="3"><h1>Dropper tool</h1></td></tr> + +<tr bgcolor="feeffa"><td align="right"><span class="key">click</span></td><td><span class="action">pick fill color</span></td></tr> +<tr bgcolor="feeffa"><td align="right"><span class="key">Shift+click</span></td><td><span class="action">pick stroke color</span></td></tr> +<tr bgcolor="feeffa"><td align="right"><span class="key">mouse drag</span></td><td><span class="action">average fill color</span></td></tr> +<tr bgcolor="feeffa"><td align="right"><span class="key">Shift+mouse drag</span></td><td><span class="action">average stroke color</span></td></tr> +<tr bgcolor="feeffa"><td colspan="3"><span class="note">Click applies the color under cursor to the current selection. Dragging a radius calculates the average color of a circular area.</span></td></tr> +<tr bgcolor="feeffa"><td colspan="3"><span class="note">If a gradient handle (in Gradient tool) is selected, it gets the color instead of the entire object.</span></td></tr> +<tr bgcolor="feeffa"><td align="right"><span class="key">Alt+click</span>, +<span class="key">Alt+mouse drag</span></td><td><span class="action">pick inverse color</span></td></tr> +<tr bgcolor="feeffa"><td colspan="3"><span class="note">If Alt is pressed, picking color (with or without Shift, by click or by drag) picks the inverse of the color.</span></td></tr> +<tr bgcolor="feeffa"><td align="right"><span class="key">Ctrl+C</span></td><td><span class="action">copy color</span></td></tr> +<tr bgcolor="feeffa"><td colspan="3"><span class="note">This copies the color under cursor to the system clipboard, as text in RRGGBBAA format (8 hex digits).</span></td></tr> + +<tr><td colspan="3"><h1>Text tool</h1></td></tr> + + +<tr bgcolor="eefdf3"><td colspan="3"><h4>Selecting/creating</h4></td></tr> +<tr bgcolor="eefdf3"><td align="right"><span class="key">click</span></td><td><span class="action">create/select a text object</span></td></tr> + +<tr bgcolor="eefdf3"><td colspan="3"><span class="note">Clicking in an empty space or on a non-text creates a text object; now you can type your text.</span></td></tr> +<tr bgcolor="eefdf3"><td colspan="3"><span class="note">Clicking on a text object selects it; cursor is placed near the click point.</span></td></tr> +<tr bgcolor="eefdf3"><td align="right"><span class="key">Esc</span></td><td><span class="action">deselect the text object</span></td></tr> + + + +<tr bgcolor="eefdf3"><td colspan="3"><h4>Text navigation</h4></td></tr> +<tr bgcolor="eefdf3"><td align="right"><span class="key">arrows</span></td><td><span class="action">move cursor by one character</span></td></tr> +<tr bgcolor="eefdf3"><td align="right"><span class="key">Ctrl+Left arrow</span>, +<span class="key">Ctrl+Right arrow</span></td><td><span class="action">move cursor by one word</span></td></tr> +<tr bgcolor="eefdf3"><td align="right"><span class="key">Ctrl+Up arrow</span>, +<span class="key">Ctrl+Down arrow</span></td><td><span class="action">move cursor by one paragraph</span></td></tr> +<tr bgcolor="eefdf3"><td align="right"><span class="key">Home</span>, +<span class="key">End</span></td><td><span class="action">go to beginning/end of line</span></td></tr> +<tr bgcolor="eefdf3"><td align="right"><span class="key">Ctrl+Home</span>, +<span class="key">Ctrl+End</span></td><td><span class="action">go to beginning/end of text</span></td></tr> +<tr bgcolor="eefdf3"><td colspan="3"><span class="note">All these commands cancel current text selection, if any.</span></td></tr> + + + +<tr bgcolor="eefdf3"><td colspan="3"><h4>Flowed text (internal frame)</h4></td></tr> +<tr bgcolor="eefdf3"><td align="right"><span class="key">mouse drag</span></td><td><span class="action">create flowed text</span></td></tr> +<tr bgcolor="eefdf3"><td colspan="3"><span class="note">Clicking and dragging in an empty space or on a non-text creates a flowed text object with internal frame.</span></td></tr> +<tr bgcolor="eefdf3"><td align="right"><span class="key">mouse drag</span></td><td><span class="action">adjust frame size</span></td></tr> +<tr bgcolor="eefdf3"><td colspan="3"><span class="note">Dragging the handle in the lower right corner of the selected flowed text changes width/height of the frame.</span></td></tr> +<tr bgcolor="eefdf3"><td align="right"><span class="key">Ctrl+mouse drag</span></td><td><span class="action">lock width, height, or ratio of frame</span></td></tr> +<tr bgcolor="eefdf3"><td colspan="3"><span class="note">Dragging the corner handle with Ctrl resizes the frame preserving either width, or height, or ratio.</span></td></tr> + + + +<tr bgcolor="eefdf3"><td colspan="3"><h4>Flowed text (external frame)</h4></td></tr> +<tr bgcolor="eefdf3"><td align="right"><span class="key">Alt+W</span></td><td><span class="action">flow text into frame</span></td></tr> +<tr bgcolor="eefdf3"><td colspan="3"><span class="note">With a text object and a shape/path selected, this flows text into the shape/path.</span></td></tr> +<tr bgcolor="eefdf3"><td colspan="3"><span class="note">Both remain separate objects, but are linked; editing the shape/path causes the text to reflow.</span></td></tr> +<tr bgcolor="eefdf3"><td align="right"><span class="key">Alt+Shift+W</span></td><td><span class="action">unflow text from frame</span></td></tr> +<tr bgcolor="eefdf3"><td colspan="3"><span class="note">This cuts the flowed text's link to the shape/path, producing a single-line regular text object.</span></td></tr> +<tr bgcolor="eefdf3"><td align="right"><span class="key">Shift+D</span></td><td><span class="action">select external frame</span></td></tr> +<tr bgcolor="eefdf3"><td colspan="3"><span class="note">To find out which object is the frame of this flowed text, select it and press Shift+D. The frame will be selected.</span></td></tr> + + + +<tr bgcolor="eefdf3"><td colspan="3"><h4>Text on path</h4></td></tr> +<tr bgcolor="eefdf3"><td align="right"><span class="key">Shift+D</span></td><td><span class="action">select path</span></td></tr> +<tr bgcolor="eefdf3"><td colspan="3"><span class="note">To find out which path this text is put on, select it and press Shift+D. The path will be selected.</span></td></tr> + + + +<tr bgcolor="eefdf3"><td colspan="3"><h4>Editing text</h4></td></tr> +<tr bgcolor="eefdf3"><td colspan="3"><span class="note">To type + and - characters, use the main keyboard; keypad + and - are reserved for zoom (unless NumLock is on).</span></td></tr> +<tr bgcolor="eefdf3"><td align="right"><span class="key">Enter</span></td><td><span class="action">start a new line or paragraph</span></td></tr> +<tr bgcolor="eefdf3"><td colspan="3"><span class="note">Enter in regular text creates new line; in flowed text it creates a new paragraph</span></td></tr> +<tr bgcolor="eefdf3"><td align="right"><span class="key">Ctrl+U</span></td><td><span class="action">toggle Unicode entry</span></td></tr> +<tr bgcolor="eefdf3"><td colspan="3"><span class="note">To insert an arbitrary Unicode character, type Ctrl+U, then the hexadecimal code point, then Enter.</span></td></tr> +<tr bgcolor="eefdf3"><td colspan="3"><span class="note">For example, Ctrl+U 2 0 1 4 Enter inserts an em-dash.</span></td></tr> +<tr bgcolor="eefdf3"><td colspan="3"><span class="note">To stay in Unicode mode after inserting the character, press Space instead of Enter.</span></td></tr> +<tr bgcolor="eefdf3"><td colspan="3"><span class="note">Press Esc or another Ctrl+U to cancel Unicode mode without inserting the character.</span></td></tr> +<tr bgcolor="eefdf3"><td align="right"><span class="key">Ctrl+Space</span></td><td><span class="action">insert no-break space</span></td></tr> +<tr bgcolor="eefdf3"><td colspan="3"><span class="note">A no-break space is visible even in a text object without xml:space="preserve".</span></td></tr> + + + +<tr bgcolor="eefdf3"><td colspan="3"><h4>Selecting text</h4></td></tr> +<tr bgcolor="eefdf3"><td align="right"><span class="key">mouse drag</span></td><td><span class="action">select text</span></td></tr> +<tr bgcolor="eefdf3"><td colspan="3"><span class="note">Left-dragging over a text object selects a text span.</span></td></tr> +<tr bgcolor="eefdf3"><td align="right"><span class="key">Shift+arrows</span></td><td><span class="action">select text by character</span></td></tr> +<tr bgcolor="eefdf3"><td align="right"><span class="key">Ctrl+Shift+arrows</span></td><td><span class="action">select text by word</span></td></tr> +<tr bgcolor="eefdf3"><td align="right"><span class="key">Shift+Home</span>, +<span class="key">Shift+End</span></td><td><span class="action">select to beginning/end of line</span></td></tr> +<tr bgcolor="eefdf3"><td align="right"><span class="key">Ctrl+Shift+Home</span>, +<span class="key">Ctrl+Shift+End</span></td><td><span class="action">select to beginning/end of text</span></td></tr> +<tr bgcolor="eefdf3"><td align="right"><span class="key">clickclick</span></td><td><span class="action">select word</span></td></tr> +<tr bgcolor="eefdf3"><td align="right"><span class="key">clickclickclick</span></td><td><span class="action">select line</span></td></tr> +<tr bgcolor="eefdf3"><td align="right"><span class="key">Ctrl+A</span></td><td><span class="action">select all text</span></td></tr> +<tr bgcolor="eefdf3"><td colspan="3"><span class="note">This selects the entire text of the current text object.</span></td></tr> + + + +<tr bgcolor="eefdf3"><td colspan="3"><h4>Styling selection</h4></td></tr> +<tr bgcolor="eefdf3"><td align="right"><span class="key">Ctrl+B</span></td><td><span class="action">make selection bold</span></td></tr> +<tr bgcolor="eefdf3"><td align="right"><span class="key">Ctrl+I</span></td><td><span class="action">make selection italic</span></td></tr> +<tr bgcolor="eefdf3"><td colspan="3"><span class="note">Also, you can use the Text&Font or Fill&Stroke dialogs to assign any style to text selection.</span></td></tr> + + + +<tr bgcolor="eefdf3"><td colspan="3"><h4>Letter spacing</h4></td></tr> +<tr bgcolor="eefdf3"><td align="right"><span class="key">Alt+></span></td><td><span class="action">expand line/paragraph by 1 pixel</span></td></tr> +<tr bgcolor="eefdf3"><td align="right"><span class="key">Shift+Alt+></span></td><td><span class="action">expand line/paragraph by 10 pixels</span></td></tr> +<tr bgcolor="eefdf3"><td align="right"><span class="key">Alt+<</span></td><td><span class="action">contract line/paragraph by 1 pixel</span></td></tr> +<tr bgcolor="eefdf3"><td align="right"><span class="key">Shift+Alt+<</span></td><td><span class="action">contract line/paragraph by 10 pixels</span></td></tr> +<tr bgcolor="eefdf3"><td colspan="3"><span class="note">These commands (only when editing text) adjust letter spacing in the current line (regular text) or paragraph (flowed text).</span></td></tr> +<tr bgcolor="eefdf3"><td colspan="3"><span class="note">The actual adjustment for pixel movements depends on zoom level. Zoom in for finer adjustment.</span></td></tr> + + + +<tr bgcolor="eefdf3"><td colspan="3"><h4>Line spacing</h4></td></tr> +<tr bgcolor="eefdf3"><td align="right"><span class="key">Ctrl+Alt+></span></td><td><span class="action">make the text object taller by 1 pixel</span></td></tr> +<tr bgcolor="eefdf3"><td align="right"><span class="key">Shift+Ctrl+Alt+></span></td><td><span class="action">make the text object taller by 10 pixels</span></td></tr> +<tr bgcolor="eefdf3"><td align="right"><span class="key">Ctrl+Alt+<</span></td><td><span class="action">make the text object shorter by 1 pixel</span></td></tr> +<tr bgcolor="eefdf3"><td align="right"><span class="key">Shift+Ctrl+Alt+<</span></td><td><span class="action">make the text object shorter by 10 pixels</span></td></tr> +<tr bgcolor="eefdf3"><td colspan="3"><span class="note">These commands (only when editing text) adjust line spacing in the entire text object (regular or flowed).</span></td></tr> +<tr bgcolor="eefdf3"><td colspan="3"><span class="note">The actual adjustment for pixel movements depends on zoom level. Zoom in for finer adjustment.</span></td></tr> + + + +<tr bgcolor="eefdf3"><td colspan="3"><h4>Kerning and shifting</h4></td></tr> +<tr bgcolor="eefdf3"><td align="right"><span class="key">Alt+arrows</span></td><td><span class="action">shift characters by 1 pixel</span></td></tr> +<tr bgcolor="eefdf3"><td align="right"><span class="key">Shift+Alt+arrows</span></td><td><span class="action">shift characters by 10 pixels</span></td></tr> +<tr bgcolor="eefdf3"><td colspan="3"><span class="note">These commands work when editing a regular text object. Kerning does not work in flowed text.</span></td></tr> +<tr bgcolor="eefdf3"><td colspan="3"><span class="note">With no selection, they shift (horizontally or vertically) the characters after the cursor until the end of line.</span></td></tr> +<tr bgcolor="eefdf3"><td colspan="3"><span class="note">With selection, they shift the selection relative to the rest of text (by inserting opposite kerns at both ends of selection).</span></td></tr> +<tr bgcolor="eefdf3"><td colspan="3"><span class="note">The actual adjustment for pixel movements depends on zoom level. Zoom in for finer adjustment.</span></td></tr> + + + +<tr bgcolor="eefdf3"><td colspan="3"><h4>Rotating</h4></td></tr> +<tr bgcolor="eefdf3"><td align="right"><span class="key">Ctrl+[</span>, +<span class="key">Ctrl+]</span></td><td><span class="action">rotate character(s) by 90 degrees</span></td></tr> +<tr bgcolor="eefdf3"><td align="right"><span class="key">Alt+[</span>, +<span class="key">Alt+]</span></td><td><span class="action">rotate character(s) by 1 pixel</span></td></tr> +<tr bgcolor="eefdf3"><td colspan="3"><span class="note">These commands rotate the next character (without selection) or all characters in the selection (with selection).</span></td></tr> +<tr bgcolor="eefdf3"><td colspan="3"><span class="note">Rotation only works in regular text (not flowed text).</span></td></tr> +<tr bgcolor="eefdf3"><td colspan="3"><span class="note">The actual angle for pixel rotation depends on zoom level. Zoom in for finer movement.</span></td></tr> + + +</table><p><a href="http://validator.w3.org/check/referer"><img border="0" src="http://www.w3.org/Icons/valid-html40" alt="Valid HTML 4.0!" height="31" width="88"></img></a></p></body></html> diff --git a/doc/keys.xml b/doc/keys.xml new file mode 100644 index 000000000..f566480b4 --- /dev/null +++ b/doc/keys.xml @@ -0,0 +1,1104 @@ +<root xmlns="http://www.inkscape.org/namespaces/keys"> + +<p>Unless noted otherwise, keypad keys (such as arrows, Home, End, +, -, digits) are +supposed to work the same as corresponding regular keys. If you have a new shortcut +idea, please contact the developers (by writing to the <a +href="http://lists.sourceforge.net/lists/listinfo/inkscape-devel">devel mailing list</a> +or by <a href="http://sourceforge.net/tracker/?group_id=93438&atid=604309">submitting an +RFE</a>).</p> + +<column> + +*<section title="Tools" color="f5f5f5"> + +<group> +<keys><key><keyf f="F1"/></key><key>s</key> <action>Selector</action></keys> +<keys><key><misc-wide f="Space"/></key> <action>Selector (temporary)</action></keys> +<note>Space switches to the Selector tool temporarily; another Space switches back.</note> +<keys><key><keyf f="F2"/></key><key>n</key> <action>Node tool</action></keys> +<keys><key><keyf f="F3"/></key><key>z</key> <action>Zoom tool</action></keys> +<keys><key><keyf f="F4"/></key><key>r</key> <action>Rectangle tool</action></keys> +<keys><key><keyf f="F5"/></key><key>e</key> <action>Ellipse/arc tool</action></keys> +<keys><key><keyf f="F6"/></key><key>p</key> <action>Freehand (Pencil) tool</action></keys> +<keys><key><shift/><keyf f="F6"/></key><key>b</key> <action>Bezier (Pen) tool</action></keys> +<keys><key><ctrl/><keyf f="F6"/></key><key>c</key> <action>Calligraphic tool</action></keys> +<keys><key><ctrl/><keyf f="F1"/></key><key>g</key> <action>Gradient tool</action></keys> +<keys><key><keyf f="F7"/></key><key>d</key> <action>Dropper tool</action></keys> +<keys><key><keyf f="F8"/></key><key>t</key> <action>Text tool</action></keys> +<keys><key><keyf f="F9"/></key><key>i</key> <action>Spiral tool</action></keys> +<keys><key><shift/><keyf f="F9"/></key><key>*</key> <action>Star tool</action></keys> +<keys><key><ctrl/><keyf f="F2"/></key><key>o</key> <action>Connector tool</action></keys> +<note>Double click on the tool buttons opens the Preferences dialog showing the page of the corresponding tool.</note> +</group> +</section> + + +*<section title="Dialogs" color="f0eae7"> +<group> +<keys><key><shift/><ctrl/>F</key> <action>Fill and Stroke</action></keys> +<keys><key><shift/><ctrl/>W</key> <action>Swatches</action></keys> +<keys><key><shift/><ctrl/>T</key> <action>Text and Font</action></keys> +<keys><key><shift/><ctrl/>M</key> <action>Transform</action></keys> +<keys><key><shift/><ctrl/>A</key> <action>Align and Distribute</action></keys> +<keys><key><shift/><ctrl/>O</key> <action>Object Properties</action></keys> +<keys><key><shift/><ctrl/>X</key> <action>XML Editor</action></keys> +<keys><key><shift/><ctrl/>D</key> <action>Document Preferences</action></keys> +<keys><key><shift/><ctrl/>P</key> <action>Inkscape Preferences</action></keys> +<keys><key><shift/><ctrl/>E</key> <action>Export to PNG</action></keys> +<keys><key><ctrl/>F</key> <action>Find</action></keys> +<keys><key><shift/><alt/>B</key> <action>Trace bitmap</action></keys> +<note>These open a new dialog window if it wasn't open yet, otherwise the corresponding dialog gets focus.</note> +</group> + +<group> +<title>Toggle visibility</title> +<keys><key><keyf f="F12"/></key> <action>toggle dialogs</action></keys> +<note>This temporarily hides all open dialogs; another F12 shows them again.</note> +</group> + +<group> +<title>Within a dialog</title> +<keys><key><misc f="Esc"/></key> <action>return to the canvas</action></keys> +<keys><key><ctrl/><keyf f="F4"/></key> <key><ctrl/>W</key> <action>close the dialog</action></keys> +<keys><key><misc f="Tab"/></key> <action>jump to next widget</action></keys> +<keys><key><shift/><misc f="Tab"/></key> <action>jump to previous widget</action></keys> +<keys><key><misc-wide f="Enter"/></key> <action>set the new value</action></keys> +<note>This accepts the new value you typed in a text field and returns focus to canvas.</note> +<keys><key><ctrl/><misc-wide f="Enter"/></key> <action>in XML Editor, set the attr value</action></keys> +<note>When editing an attribute value in XML Editor, this sets the new value (same as clicking the "Set attribute" button).</note> +<keys><key><misc-wide f="Space"/></key> <key><misc-wide f="Enter"/></key> <action>activate current button or list</action></keys> +<keys><key><ctrl/><misc f="PgUp"/></key> <key><ctrl/><misc f="PgDn"/></key> <action>in a multi-tab dialog, switch tabs</action></keys> +</group> +</section> + +*<section title="Controls bar" color="f8f3e9"> + +<group> +<note>The Controls bar at the top of the document window provides different buttons and controls for each tool.</note> +<keys><key><alt/>X</key> <action>jump to the first editable field</action></keys> +<keys><key><misc-wide f="Enter"/></key> <action>accept the new value</action></keys> +<note>This accepts the new value you typed in a text field and returns focus to canvas.</note> +<keys><key><misc f="Esc"/></key> <action>cancel changes, return to canvas</action></keys> +<note>This cancels any changes you made in a text field and returns focus to canvas.</note> +<keys><key><ctrl/>Z</key> <action>cancel changes</action></keys> +<note>This cancels any changes you made in a text field but you stay in the field.</note> +<keys><key><misc f="Tab"/></key> <action>jump to next field</action></keys> +<keys><key><shift/><misc f="Tab"/></key> <action>jump to previous field</action></keys> +<note>Use these to navigate between fields in the Controls bar (the value in the field you leave, if changed, is accepted).</note> +</group> + +<group> +<title>Changing values</title> +<mouse><key><up/></key> <key><down/></key> <action>change value by 0.1</action></mouse> +<keys><key><misc f="PgUp"/></key><key><misc f="PgDn"/></key> <action>change value by 5.0</action></keys> +</group> + +</section> + +*<section title="Canvas" color="e5f1e7"> + +<group> +<title>Zoom</title> +<keys><key>=</key> <key>+</key> <action>zoom in</action></keys> +<keys><key>-</key> <action>zoom out</action></keys> +<note>The keypad +/- keys do zooming even when you are editing a text object, unless NumLock is on.</note> +<mouse><key><mid-click/></key> <key><ctrl/><right-click/></key> <action>zoom in</action></mouse> +<mouse><key><shift/><mid-click/></key> <key><shift/><right-click/></key> <action>zoom out</action></mouse> +<mouse><key><ctrl/><wheel/></key> <action>zoom in or out</action></mouse> +<mouse><key><shift/><mid-drag/></key> <action>zoom into the area</action></mouse> +<keys><key><alt/>Z</key> <action>activate zoom field</action></keys> +<note>The zoom field in the lower left corner of the window allows you to specify zoom level precisely.</note> +</group> + +<group> +<title>Preset zooms</title> +<keys><key>1</key> <action>zoom 1:1</action></keys> +<keys><key>2</key> <action>zoom 1:2</action></keys> +<keys><key>3</key> <action>zoom to selection</action></keys> +<keys><key>4</key> <action>zoom to drawing</action></keys> +<keys><key>5</key> <action>zoom to page</action></keys> +<keys><key><ctrl/>E</key><key>6</key> <action>zoom to page width</action></keys> +</group> + +<group> +<title>Zoom history</title> +<keys><key>`</key> <action>(back quote) previous zoom </action></keys> +<keys><key><shift/>`</key> <action>next zoom</action></keys> +<note>With these keys, you can travel back and forth through the history of zooms in this session</note> +</group> + +<group> +<title>Scrolling (panning)</title> +<mouse><key><ctrl/><arrows/></key> <action>scroll canvas</action></mouse> +<note>Scrolling by keys is accelerated, i.e. it speeds up when you press Ctrl+arrows in quick succession, or press and hold.</note> +<mouse><key><mid-drag/></key> <action>pan canvas</action></mouse> +<mouse><key><shift/><right-drag/></key> <key><ctrl/><right-drag/></key> <action>pan canvas</action></mouse> +<mouse><key><wheel/></key> <action>scroll canvas vertically</action></mouse> +<mouse><key><shift/><wheel/></key> <action>scroll canvas horizontally</action></mouse> +</group> + +<group> +<title>Guides and grid</title> +<mouse><key><left-drag/></key> <action>drag off a ruler to create guide</action></mouse> +<note>Drag off the horizontal or vertical ruler to create a new guideline. Drag a guideline onto the ruler to delete it.</note> +<keys><key>|</key> <key><shift/>\</key> <action>toggle guides and snapping to guides</action></keys> +<note>If you want to have different values for guides visibility and snapping, set them via the Document Options dialog.</note> +<note>When you create a new guide by dragging off the ruler, guide visibility and snapping are turned on.</note> +<keys><key>#</key> <key><shift/>3</key> <action>toggle grid and snapping to grid</action></keys> +<note>If you want to have different values for grid visibility and snapping, set them via the Document Options dialog.</note> +<note>Note that only the 3 key on the main keyboard works, not on the keypad.</note> +</group> +</section> + + +</column> + + + + + +<column> + +*<section title="File" color="f3f2e2"> + +<group> +<keys><key><ctrl/>N</key> <action>create new document</action></keys> +<keys><key><ctrl/>O</key> <action>open an SVG document</action></keys> +<keys><key><shift/><ctrl/>E</key> <action>export to PNG</action></keys> +<keys><key><ctrl/>I</key> <action>import bitmap or SVG</action></keys> +<keys><key><ctrl/>P</key> <action>print document</action></keys> +<keys><key><ctrl/>S</key> <action>save document</action></keys> +<keys><key><shift/><ctrl/>S</key> <action>save under a new name</action></keys> +<keys><key><ctrl/>Q</key> <action>exit Inkscape</action></keys> +</group> + +</section> + +*<section title="Window" color="e8fae1"> + +<group> +<keys><key><ctrl/>R</key> <action>toggle rulers</action></keys> +<keys><key><ctrl/>B</key> <action>toggle scrollbars</action></keys> +<keys><key><keyf f="F11"/></key> <action>toggle fullscreen</action></keys> +</group> + +<group> +<keys><key><keyf f="F10"/></key> <action>main menu</action></keys> +<note>Menus can also be activated by Alt with the letter underscored in the menu name.</note> +<keys><key><shift/><keyf f="F10"/></key> <key><right-click/></key> <action>drop-down (context) menu</action></keys> +</group> + +<group> +<keys><key><ctrl/><keyf f="F4"/></key> <key><ctrl/>W</key> <action>close document window</action></keys> +<note>This shuts down Inkscape if it was the only document window open.</note> +<keys><key><ctrl/><misc f="Tab"/></key> <action>next document window</action></keys> +<keys><key><shift/><ctrl/><misc f="Tab"/></key> <action>previous document window</action></keys> +<note>These cycle through the active document windows forward and backward.</note> +</group> + +</section> + + +*<section title="Layers" color="f6f9d9"> +<group> +<keys><key><shift/><misc f="PgUp"/></key> <action>move to layer above</action></keys> +<keys><key><shift/><misc f="PgDn"/></key> <action>move to layer below</action></keys> +<note>These commands move the selected objects from one layer to another.</note> + +<keys><key><shift/><ctrl/><misc f="PgUp"/></key> <action>raise layer</action></keys> +<keys><key><shift/><ctrl/><misc f="PgDn"/></key> <action>lower layer</action></keys> +<keys><key><shift/><ctrl/><misc f="Home"/></key> <action>raise layer to top</action></keys> +<keys><key><shift/><ctrl/><misc f="End"/></key> <action>lower layer to bottom</action></keys> +<note>These commands move the current layer among its siblings (normally other layers).</note> +</group> +</section> + + +*<section title="Object" color="f4ecf5"> + +<group> +<title>Undo/redo</title> +<keys><key><shift/><ctrl/>Y</key> <key><ctrl/>Z</key> <action>undo</action></keys> +<keys><key><shift/><ctrl/>Z</key> <key><ctrl/>Y</key> <action>redo</action></keys> +</group> + +<group> +<title>Clipboard</title> +<keys><key><ctrl/>C</key> <action>copy selection</action></keys> +<note>This places a copy of the selection to the Inkscape clipboard. Text from text objects is also placed onto the system clipboard.</note> +<keys><key><ctrl/>X</key> <action>cut selection</action></keys> +<note>This works the same as "copy selection" followed by deleting the selection.</note> +<keys><key><ctrl/>V</key> <action>paste clipboard</action></keys> +<note>This places the clipboard objects at the mouse cursor, or at the center of the window if mouse is outside the canvas.</note> +<note>When editing text with the text tool, this pastes the text from the system clipboard into the current text object.</note> +<keys><key><ctrl/><alt/>V</key> <action>paste in place</action></keys> +<note>This places the clipboard objects to the original location from which they were copied.</note> +<keys><key><shift/><ctrl/>V</key> <action>paste style</action></keys> +<note>This applies the style of the (first of the) coped object(s) to the current selection.</note> +<note>If a gradient handle (in Gradient tool) or a text span (in Text tool) are selected, they get the style instead of the entire object.</note> +</group> + +<group> +<title>Duplicate</title> +<keys><key><ctrl/>D</key> <action>duplicate selection</action></keys> +<note>New object(s) are placed exactly over the original(s) and selected.</note> +</group> + +<group> +<title>Clone</title> +<keys><key><alt/>D</key> <action>clone object</action></keys> +<note>A clone can be moved/scaled/rotated/skewed independently, but it updates the path, fill, and stroke from its original.</note> +<note>The clone is placed exactly over the original object and is selected.</note> +<note>You can only clone one object at a time; if you want to clone several objects together, group them and clone the group.</note> +<keys><key><shift/><alt/>D</key> <action>unlink clone</action></keys> +<note>Unlinking a clone cuts the link to the original, turning the clone into a plain copy.</note> +<keys><key><shift/>D</key> <action>select original</action></keys> +<note>To find out which object this is a clone of, select the clone and give this command. The original will be selected.</note> +</group> + +<group> +<title>Bitmaps</title> +<keys><key><alt/>B</key> <action>create a bitmap copy</action></keys> +<note>This exports the selected object(s) (all other objects hidden) as PNG in the document's directory and imports it back.</note> +<note>The imported bitmap is placed over the original selection and is selected.</note> +<keys><key><shift/><alt/>B</key> <action>trace bitmap</action></keys> +<note>This opens the Trace Bitmap dialog allowing you to convert a bitmap object to path(s).</note> +</group> + +<group> +<title>Patterns</title> +<keys><key><alt/>I</key> <action>object(s) to pattern</action></keys> +<note>This converts the selection to a rectangle with tiled pattern fill.</note> +<keys><key><shift/><alt/>I</key> <action>pattern to object(s)</action></keys> +<note>Each selected object with pattern fill is broken into the same object without fill and a single pattern object.</note> +</group> + +<group> +<title>Group</title> +<keys> <key><shift/><ctrl/>U</key> <key><ctrl/>G</key> <action>group selected objects</action></keys> +<note>Use Ctrl+click to select objects within group.</note> +<keys><key><shift/><ctrl/>G</key> <key><ctrl/>U</key> <action>ungroup selected group(s)</action></keys> +<note>This removes only one level of grouping; press Ctrl+U repeatedly to ungroup nested groups.</note> +</group> + +<group> +<title>Z-order</title> +<keys><key><misc f="Home"/></key> <action>raise selection to top</action></keys> +<keys><key><misc f="End"/></key> <action>lower selection to bottom</action></keys> +<keys><key><misc f="PgUp"/></key> <action>raise selection one step</action></keys> +<keys><key><misc f="PgDn"/></key> <action>lower selection one step</action></keys> + </group> + +</section> + +*<section title="Path" color="f9f1d9"> + +<group> +<title>Convert to path</title> +<keys><key><shift/><ctrl/>C</key> <action>convert selected object(s) to path</action></keys> +<keys><key><ctrl/><alt/>C</key> <action>convert stroke to path</action></keys> +</group> + +<group> +<title>Booleans</title> +<keys><key><ctrl/>+</key> <action>union</action></keys> +<note>Union combines any number of objects into a single path, removing overlaps.</note> +<keys><key><ctrl/>-</key> <action>difference</action></keys> +<note>Difference works on 2 objects, extracting the top from the bottom.</note> +<keys><key><ctrl/>*</key> <action>intersection</action></keys> +<note>Intersection creates a path representing the common (overlapping) area of all selected objects.</note> +<keys><key><ctrl/>^</key> <action>exclusive OR (XOR)</action></keys> +<note>XOR is similar to Union, except that it works on 2 objects and removes areas where the objects overlap.</note> +<keys><key><ctrl/>/</key> <action>division (cut)</action></keys> +<note>Division cuts the bottom object into pieces by the top object, preserving the fill and stroke of the bottom.</note> +<keys><key><ctrl/><alt/>/</key> <action>cut path</action></keys> +<note>Cut Path cuts the bottom object's stroke only where it is intersected by the top path, removing any fill from the result.</note> +<note>The result of Union, Difference, Intersection, and XOR inherits the id= attribute and therefore the clones of the bottom object.</note> +<note>Division and Cut path normally produce several objects; of them, a random one inherits the id= of the bottom source object.</note> +</group> + +<group> +<title>Offsets</title> +<keys><key><ctrl/>(</key> <action>inset path (towards center)</action></keys> +<keys><key><ctrl/>)</key> <action>outset path (away from center)</action></keys> +<note>The default offset distance is 2 px (SVG pixel units, not screen pixels).</note> +<keys><key><alt/>(</key> <action>inset path by 1 pixel</action></keys> +<keys><key><alt/>)</key> <action>outset path by 1 pixel</action></keys> +<keys><key><shift/><alt/>(</key> <action>inset path by 10 pixels</action></keys> +<keys><key><shift/><alt/>)</key> <action>outset path by 10 pixels</action></keys> +<note>The actual distance for pixel offsets depends on zoom level. Zoom in for finer adjustment.</note> +<note>All the (, ) commands convert the object to path, if necessary, and produce regular path.</note> +<keys><key><ctrl/>J</key> <action>create dynamic offset</action></keys> +<keys><key><ctrl/><alt/>J</key> <action>create linked offset</action></keys> +<note>These commands produce an offset object, editable by the node tool, standalone or linked to the original.</note> +<keys><key><shift/>D</key> <action>select source</action></keys> +<note>Selecting a linked offset and giving this command will select the source path of the linked offset.</note> +</group> + +<group> +<title>Combine</title> +<keys><key><ctrl/>K</key> <action>combine paths</action></keys> +<note>This is different from grouping in that combined paths create one object.</note> +<note>This is different from Union in that overlapping areas are not affected.</note> +<note>Whether overlapping areas are filled is controlled by the Fill: winding/alternating switch on the Fill & Stroke dialog.</note> +<keys><key><shift/><ctrl/>K</key> <action>break paths apart</action></keys> +<note>This attempts to break an object into constituent paths; it will fail if the object is one solid path.</note> +</group> + +<group> +<title>Simplify</title> +<keys><key><ctrl/>L</key> <action>simplify</action></keys> +<note>This command attempts to simplify selected path(s) by removing extra nodes. It converts all objects to paths first.</note> +<note>If you invoke this command several times in quick succession, it will act more and more aggressively.</note> +<note>Invoking Simplify again after a pause restores the default threshold (settable in the Inkscape Preferences dialog).</note> +</group> + +</section> + +</column> + +<column> + +*<section title="Selector" color="eee4dc"> + +<group> +<title>Keyboard select</title> +<keys><key><misc f="Tab"/></key> <action>select next object </action></keys> +<keys><key><shift/><misc f="Tab"/></key> <action>select previous object </action></keys> +<note>These keys pick objects in their z-order (Tab cycles from bottom to top, Shift+Tab cycles from top to bottom).</note> +<note>Unless you did manual rearrangements, the last object you created is always on top.</note> +<note>As a result, if nothing is selected, pressing Shift+Tab once conveniently selects the object you created last.</note> +<note>This works on objects within the current layer (unless you change that in preferences).</note> +<keys><key><ctrl/>A</key> <action>select all (current layer)</action></keys> +<note>This works on objects within the current layer (unless you change that in preferences).</note> +<keys><key><ctrl/><alt/>A</key> <action>select all (all layers)</action></keys> +<note>This works on objects in all visible and unlocked layers.</note> +<keys><key>!</key> <action>invert selection (current layer)</action></keys> +<note>This inverts selection (deselects what was selected and vice versa) in the current layer.</note> +<keys><key><alt/>!</key> <action>invert selection (all layers)</action></keys> +<note>This inverts selection (deselects what was selected and vice versa) in visible and unlocked layers.</note> +<keys><key><misc f="Esc"/></key> <action>deselect</action></keys> +<keys><key><misc-wide f="Backspace"/></key><key><misc f="Del"/></key> <action>delete selection</action></keys> +</group> + +<group> +<title>Keyboard move</title> +<mouse><key><arrows/></key> <action>move selection by the nudge distance</action></mouse> +<mouse><key><shift/><arrows/></key> <action>move selection by 10x nudge distance</action></mouse> +<note>The default nudge distance is 2 px (SVG pixel units, not screen pixels).</note> +<mouse><key><alt/><arrows/></key> <action>move selection by 1 pixel</action></mouse> +<mouse><key><alt/><shift/><arrows/></key> <action>move selection by 10 pixels</action></mouse> +<note>The actual distance for pixel movements depends on zoom level. Zoom in for finer movement.</note> +</group> + +<group> +<title>Keyboard scale</title> +<keys><key>.</key> <key>></key> <action>scale selection up by the scale step</action></keys> +<keys><key>,</key> <key><</key> <action>scale selection down by the scale step</action></keys> +<note>The default scale step is 2 px (SVG pixel units, not screen pixels).</note> +<keys><key><ctrl/>.</key> <key><ctrl/>></key> <action>scale selection to 200%</action></keys> +<keys><key><ctrl/>,</key> <key><ctrl/><</key> <action>scale selection to 50%</action></keys> +<keys><key><alt/>.</key> <key><alt/>></key> <action>scale selection up by 1 pixel</action></keys> +<keys><key><alt/>,</key> <key><alt/><</key> <action>scale selection down by 1 pixel</action></keys> +<note>The actual size increment for pixel scaling depends on zoom level. Zoom in for finer scaling.</note> +<note>Scaling is uniform around the center, so that the size increment applies to the larger of the two dimensions.</note> +</group> + +<group> +<title>Keyboard rotate</title> +<keys><key>[</key> <key>]</key> <action>rotate selection by the angle step</action></keys> +<note>The default angle step is 15 degrees. ] rotates clockwise, [ rotates counterclockwise.</note> +<keys><key><ctrl/>[</key> <key><ctrl/>]</key> <action>rotate selection by 90 degrees</action></keys> +<keys><key><alt/>[</key> <key><alt/>]</key> <action>rotate selection by 1 pixel</action></keys> +<note>The actual angle for pixel rotation depends on zoom level. Zoom in for finer movement.</note> +</group> + +<group> +<title>Keyboard flip</title> +<keys><key>h</key> <action>flip selection horizontally</action></keys> +<keys><key>v</key> <action>flip selection vertically</action></keys> +</group> + +<group> +<title>Mouse select</title> +<mouse><key><left-click/></key> <action>select an object</action></mouse> +<note>When you left-click on an object, previous selection is deselected.</note> +<mouse><key><shift/><left-click/></key> <action>toggle selection </action></mouse> +<note>Shift+click adds an object to the current selection if it was not selected, or deselects it otherwise.</note> +<mouse><key><left-click/><left-click/></key> <action>edit the object</action></mouse> +<note>For paths, double clicking switches to Node tool; for shapes, to corresponding shape tool; for text, to Text tool.</note> +<note>For groups, double clicking performs the "Enter group" command (the group becomes temporary layer).</note> +<note>Double clicking in empty space swithes to the parent layer in the hierarchy, if any.</note> +</group> + +<group> +<title>Select within group, select under</title> +<mouse><key><ctrl/><left-click/></key> <action>select within group</action></mouse> +<note>Ctrl+click selects the object at click point disregarding any levels of grouping that this object might belong to.</note> +<mouse><key><ctrl/><shift/><left-click/></key> <action>toggle selection within group</action></mouse> +<mouse><key><alt/><left-click/></key> <action>select under</action></mouse> +<note>Alt+click selects the object at click point which is beneath (in z-order) the lowest selected object at click point.</note> +<note>If the bottom object is reached, Alt+click again selects the top object. So, several Alt+clicks cycle through z-order stack at point.</note> +<note>On Linux, Alt+click and Alt+drag may be reserved by the window manager. Reconfigure it so you can use them in Inkscape.</note> +<mouse><key><shift/><alt/><left-click/></key> <action>toggle under</action></mouse> +<mouse><key><ctrl/><alt/><left-click/></key> <action>select under, in groups</action></mouse> +<mouse><key><shift/><ctrl/><alt/><left-click/></key> <action>toggle under, in groups</action></mouse> +<keys><key><ctrl/><misc-wide f="Enter"/></key> <action>enter group</action></keys> +<keys><key><ctrl/><misc-wide f="Backspace"/></key> <action>go to parent group</action></keys> +</group> + +<group> +<title>Rubberband</title> +<mouse><key><left-drag/></key> <action>select multiple objects</action></mouse> +<note>Dragging around objects does "rubberband" selection; previous selection is deselected.</note> +<mouse><key><shift/><left-drag/></key> <action>add objects to selection</action></mouse> +<note>Normally, you need to start from an empty space to initiate a rubberband.</note> +<note>However, if you press Shift before dragging, Inkscape will do rubberband selection even if you start from an object.</note> +</group> + +<group> +<title>Mouse move</title> +<mouse><key><left-drag/></key> <action>select + move</action></mouse> +<note>Dragging an object selects it if it was not selected, then moves selection.</note> +<mouse><key><alt/><left-drag/></key> <action>move selected</action></mouse> +<note>Alt+drag moves the current selection (without selecting what is under cursor), no matter where you start the drag.</note> +<note>On Linux, Alt+click and Alt+drag may be reserved by the window manager. Reconfigure it so you can use them in Inkscape.</note> +<mouse><key><ctrl/><left-drag/></key> <action>restrict movement to horizontal or vertical</action></mouse> +<mouse><key><shift/><left-drag/></key> <action>temporarily disable snapping</action></mouse> +<note>This temporaily disables snapping to grid or guides when you are dragging with grid or guides on.</note> +<mouse><key><left-drag/><misc-wide f="Space"/></key> <action>drop a copy</action></mouse> +<note>When dragging or transforming with mouse, each Space leaves a copy of the selected object.</note> +<note>You can press and hold Space while dragging for a nice "trail."</note> +</group> + +<group> +<title>Mouse transform</title> +<mouse><key><left-click/></key> <action>toggle scale/rotation handles</action></mouse> +<mouse><key><left-drag/></key> <action>scale (scale handles)</action></mouse> +<mouse><key><left-drag/></key> <action>rotate or skew (rotation handles)</action></mouse> +</group> + +<group> +<title>Scale handles</title> +<mouse><key><ctrl/><left-drag/></key> <action>scale preserving aspect ratio</action></mouse> +<!--<mouse><key><ctrl/><left-drag/></key> only smaller, keep aspect ratio--> <!-- TO BE REMOVED --> +<mouse><key><shift/><left-drag/></key> <action>symmetric transformation</action></mouse> +<note>Holding Shift while transforming makes transformation symmetric around the center of the selection.</note> +<!-- FIXME: why not disable snapping? inconsistent! --> +<mouse><key><alt/><left-drag/></key> <action>slow movement</action></mouse> +<note>Holding Alt while transforming makes transformation lag behind mouse movement, allowing finer changes.</note> +</group> + +<group> +<title>Rotation handles</title> +<mouse><key><ctrl/><left-drag/></key> <action>snap skew angle</action></mouse> +<note>Holding Ctrl when dragging a skew (non-corner) handle snaps the skew angle to angle steps (default 15 degrees).</note> +<mouse><key><ctrl/><left-drag/></key> <action>snap rotation angle</action></mouse> +<note>Holding Ctrl when dragging a rotation (corner) handle snaps the rotation angle to angle steps (default 15 degrees).</note> +</group> + +<group> +<title>Cancel</title> +<keys><key><misc f="Esc"/></key> <action>cancel rubberband, move, transformation</action></keys> +<note>Press Esc while mouse button is still down to cancel rubberband selection, move, or transformation of any kind.</note> +</group> + +</section> + +</column> + +<column> +*<section title="Node tool" color="f9f1d9"> + +<group> +<title>Keyboard select</title> +<keys><key><misc f="Tab"/></key> <action>select next node</action></keys> +<keys><key><shift/><misc f="Tab"/></key> <action>select previous node</action></keys> +<note>These keys select nodes within the selected path</note> +<keys><key><ctrl/>A</key> <action>select all nodes in subpath(s)</action></keys> +<note>If the path has multiple subpaths and some nodes selected, this selects all only in subpaths with already selected nodes.</note> +<keys><key><ctrl/><alt/>A</key> <action>select all nodes in path</action></keys> +<note>This selects all nodes in the entire path.</note> +<keys><key>!</key> <action>invert selection in subpath(s)</action></keys> +<note>If the path has multiple subpaths and some nodes selected, this inverts selection only in subpaths with already selected nodes.</note> +<keys><key><alt/>!</key> <action>invert selection in path</action></keys> +<note>This inverts selection (deselects what was selected and vice versa) in the entire path.</note> +<keys><key><misc f="Esc"/></key> <action>deselect all nodes</action></keys> +</group> + +<group> +<title>Keyboard move</title> +<mouse><key><arrows/></key> <action>move selected node(s) by the nudge distance</action></mouse> +<mouse><key><shift/><arrows/></key> <action>move selected node(s) by 10x nudge distance</action></mouse> +<note>The default nudge distance is 2 px (SVG pixel units, not screen pixels).</note> +<mouse><key><alt/><arrows/></key> <action>move selected node(s) by 1 pixel</action></mouse> +<mouse><key><alt/><shift/><arrows/></key> <action>move selected node(s) by 10 pixels</action></mouse> +<note>The actual distance for pixel movements depends on zoom level. Zoom in for finer movement.</note> +</group> + +<group> +<title>Keyboard handle scale (1 node selected)</title> +<keys><key><</key> <key>></key> <action>contract/expand both handles by scale step</action></keys> +<note>The default scale step is 2 px (SVG pixel units, not screen pixels). May apply to more than one node.</note> +<keys> +<key><left/><ctrl/><</key> +<key><left/><ctrl/>></key> +<action>scale left handle by the scale step</action> +</keys> +<keys> +<key><right/><ctrl/><</key> +<key><right/><ctrl/>></key> +<action>scale right handle by the scale step</action> +</keys> +<keys> +<key><left/><alt/><</key> +<key><left/><alt/>></key> +<action>scale left handle by 1 pixel</action> +</keys> +<keys> +<key><right/><alt/><</key> +<key><right/><alt/>></key> +<action>scale right handle by 1 pixel</action> +</keys> +<note>The actual size increment for pixel scaling depends on zoom level. Zoom in for finer scaling.</note> +<note>Instead of the < and > keys, you can use the , (comma) and . (period) keys respectively.</note> +</group> + +<group> +<title>Keyboard handle rotate (1 node selected)</title> +<keys><key>[</key> <key>]</key> <action>rotate both handles by the angle step</action></keys> +<note>The default angle step is 15 degrees. ] rotates clockwise, [ rotates counterclockwise. May apply to more than one node.</note> +<keys><key><left/><ctrl/>[</key> <key><left/><ctrl/>]</key> <action>rotate left handle by the angle step</action></keys> +<keys><key><right/><ctrl/>[</key> <key><right/><ctrl/>]</key> <action>rotate right handle by the angle step</action></keys> +<keys><key><left/><alt/>[</key> <key><left/><alt/>]</key> <action>rotate left handle by 1 pixel</action></keys> +<keys><key><right/><alt/>[</key> <key><right/><alt/>]</key> <action>rotate right handle by 1 pixel</action></keys> +</group> + + +<group> +<title>Keyboard scale (>1 nodes selected)</title> +<note>These commands scale the selected nodes as if they were an "object", around the center of that object.</note> +<keys><key>.</key> <key>></key> <action>scale nodes up by the scale step</action></keys> +<keys><key>,</key> <key><</key> <action>scale nodes down by the scale step</action></keys> +<note>The default scale step is 2 px (SVG pixel units, not screen pixels).</note> +<keys><key><alt/>.</key> <key><alt/>></key> <action>scale nodes up by 1 pixel</action></keys> +<keys><key><alt/>,</key> <key><alt/><</key> <action>scale nodes down by 1 pixel</action></keys> +<note>The actual size increment for pixel scaling depends on zoom level. Zoom in for finer scaling.</note> +<note>Scaling is uniform around the center, so that the size increment applies to the larger of the two dimensions.</note> +</group> + +<group> +<title>Keyboard rotate (>1 nodes selected)</title> +<note>These commands rotate the selected nodes as if they were an "object", around the center of that object.</note> +<keys><key>[</key> <key>]</key> <action>rotate nodes by the angle step</action></keys> +<note>The default angle step is 15 degrees. ] rotates clockwise, [ rotates counterclockwise.</note> +<keys><key><alt/>[</key> <key><alt/>]</key> <action>rotate nodes by 1 pixel</action></keys> +<note>The actual angle for pixel rotation depends on zoom level. Zoom in for finer movement.</note> +</group> + +<group> +<title>Keyboard flip (>1 nodes selected)</title> +<note>These commands flip the selected nodes as if they were an "object", around the center of that object.</note> +<keys><key>h</key> <action>flip nodes horizontally</action></keys> +<keys><key>v</key> <action>flip nodes vertically</action></keys> +</group> + + +<group> +<title>Change segment(s)</title> +<keys><key><shift/>L</key> <action>make line</action></keys> +<keys><key><shift/>U</key> <action>make curve</action></keys> +<note>These commands require that more than two adjacent nodes be selected.</note> +</group> + +<group> +<title>Change node type</title> +<keys><key><shift/>C</key> <action>make cusp</action></keys> +<keys><key><shift/>S</key> <action>make smooth</action></keys> +<keys><key><shift/>Y</key> <action>make symmetric</action></keys> +<mouse><key><ctrl/><left-click/></key> <action>toggle smooth/cusp/symmetric</action></mouse> +</group> + +<group> +<title>Join/break</title> +<keys><key><shift/>J</key> <action>join selected nodes</action></keys> +<note>This requires that exactly two end nodes within the path be selected.</note> +<keys><key><shift/>B</key> <action>break selected node(s)</action></keys> +<note>After break, only one of each two new nodes is selected. May apply to more than one node.</note> +</group> + +<group> +<title>Delete, create, duplicate</title> +<keys><key><misc-wide f="Backspace"/></key><key><misc f="Del"/></key> <action>delete selected node(s)</action></keys> +<mouse><key><ctrl/><alt/><left-click/></key> <action>create/delete node</action></mouse> +<note>Ctrl+Alt+click on a node deletes it; Ctrl+Alt+click on the path between nodes creates a new node in the click point.</note> +<mouse><key><left-click/><left-click/></key> <action>create node</action></mouse> +<note>Double clicking on the path between nodes creates a node in the click point.</note> +<keys><key><misc f="Ins"/></key> <action>insert new node(s)</action></keys> +<note>This adds new node(s) in the middle(s) of selected segment(s), so it requires that more than two adjacent nodes be selected.</note> +<keys><key><shift/>D</key> <action>duplicate selected node(s)</action></keys> +<note>New nodes are created on the same path; they are placed exactly over the old ones and are selected.</note> +</group> + +<!-- does not seem to work +<group> +<title>Active node</title> +<note>The active node is one under mouse or being dragged.</note> +<note>When you have an active node, some of the single-letter tool switch shortcuts may not work;</note> +<note>move your mouse cursor so that no node is active if you want to use them.</note> +<keys><key>c</key> <action>make active node cusp</action></keys> +<keys><key>s</key> <action>make active node smooth</action></keys> +<keys><key>y</key> <action>make active node symmetric</action></keys> +<keys><key>b</key> <action>break active node</action></keys> +<keys><key><misc-wide f="Backspace"/></key> <action>delete active node</action></keys> +</group> +--> + +<group> +<title>Mouse select: objects</title> +<mouse><key><left-click/></key> <action>click a non-selected object to select</action></mouse> +<mouse><key><alt/><left-click/></key> <action>select under</action></mouse> +<mouse><key><shift/><left-click/></key> <action>toggle selection</action></mouse> +<note>These work the same as in Selector. The nodes or handles of the single selected object become editable.</note> +</group> + +<group> +<title>Mouse select: nodes</title> +<mouse><key><left-click/></key> <action>select a node</action></mouse> +<note>Clicking on a node selects it.</note> +<mouse><key><left-click/></key> <action>select two adjacent nodes</action></mouse> +<note>Clicking on a selected path between the nodes selects the two nodes closest to the click point.</note> +<mouse><key><shift/><left-click/></key> <action>toggle selection</action></mouse> +<note>This adds/removes a node (if clicked on node) or two nodes (if clicked on path) to/from the node selection.</note> +<mouse><key><left-click/></key> <action>deselect</action></mouse> +<note>Clicking in an empty space deselects all selected nodes. Next click will deselect the object.</note> +</group> + +<group> +<title>Rubberband</title> +<mouse><key><left-drag/></key> <action>select multiple nodes</action></mouse> +<note>Dragging around nodes does "rubberband" selection; previous node selection is deselected.</note> +<mouse><key><shift/><left-drag/></key> <action>add nodes to selection</action></mouse> +<note>Normally, you need to start from a point not over a path or a node to initiate a rubberband.</note> +<note>However, if you press Shift before dragging, Inkscape will do rubberband selection even if you start over the path.</note> + +</group> + +<group> +<title>Node move (mouse)</title> +<mouse><key><left-drag/></key> <action>move selected nodes</action></mouse> +<mouse><key><ctrl/><left-drag/></key> <action>restrict movement to horizontal or vertical</action></mouse> +<mouse><key><ctrl/><alt/><left-drag/></key> <action>move along handles</action></mouse> +<note>This restricts movement to the directions of the node's handles, their continuations and perpendiculars (total 8 snaps).</note> +<note>If the node has straight lines on one or both sides, this will snap it to these lines' directions and perpendiculars instead.</note> +<mouse><key><shift/><left-drag/></key> <action>temporarily disable snapping</action></mouse> +<note>Snapping nodes is enabled in Document Preferences. By default, only bounding box of objects snaps to grid/guides.</note> +<mouse><key><shift/><left-drag/></key> <action>drag out handle</action></mouse> +<note>If a node has a retracted handle, dragging with Shift lets you drag it out of the node.</note> +<mouse><key><left-drag/><misc-wide f="Space"/></key> <action>drop a copy</action></mouse> +<note>When dragging nodes with mouse, each Space leaves a copy of the selected object.</note> +<note>You can press and hold Space while dragging for a nice "trail."</note> +</group> + +<group> +<title>Node handles</title> +<mouse><key><left-drag/></key> <action>move a node handle</action></mouse> +<mouse><key><ctrl/><left-drag/></key> <action>snap the handle to angle steps</action></mouse> +<note>The default angle step is 15 degrees. This also snaps to the handle's original angle, its continuation and perpendiculars.</note> +<mouse><key><shift/><left-drag/></key> <action>rotate both handles</action></mouse> +<mouse><key><alt/><left-drag/></key> <action>lock the handle length</action></mouse> +<note>Ctrl, Shift, Alt can be combined when dragging handles.</note> +<mouse><key><ctrl/><left-click/></key> <action>retract the handle</action></mouse> +<note>Retracted handle is zero length; use Shift+drag to drag it back out.</note> +</group> + +<group> +<title>Reversing</title> +<keys><key><shift/>r</key> <action>reverse path direction</action></keys> +</group> + +<group> +<title>Editing shapes</title> +<note>Node tool can also drag the handles of shapes (rectangles, ellipses, stars, spirals). Click on a shape to select it.</note> +<note>See the corresponding shape tools for their editing shortcuts, all of which also work in node tool.</note> +</group> + + +<group> +<title>Cancel</title> +<keys><key><misc f="Esc"/></key> <action>cancel rubberband or move</action></keys> +<note>Press Esc while mouse button is still down to cancel rubberband selection, node move, handle move, or handle move.</note> +</group> + +</section> + +</column> +<column> + + + + +*<section title="Rectangle tool" color="ebf1fd"> +<group> +<title>Drawing</title> +<mouse><key><left-drag/></key> <action>draw a rectangle</action></mouse> +<mouse><key><ctrl/><left-drag/></key> <action>make a square or integer-ratio rectangle</action></mouse> +<note>This restricts rectangle so its height/width ratio is a whole number.</note> +<mouse><key><shift/><left-drag/></key> <action>draw around the starting point</action></mouse> +<note>This creates a rectangle symmetric around the starting point of the mouse drag.</note> +</group> +<group> +<title>Editing</title> +<mouse><key><left-click/></key> <action>click an object to select</action></mouse> +<mouse><key><alt/><left-click/></key> <action>select under</action></mouse> +<mouse><key><shift/><left-click/></key> <action>toggle selection</action></mouse> +<mouse><key><left-drag/></key> <action>drag a handle to resize or round corners</action></mouse> +<note>Initially, the two rounding handles are in the top right corner; two resize handles are in top left and bottom right corners.</note> +<mouse><key><ctrl/><left-drag/></key> <action>lock width, height, or ratio (resize handles)</action></mouse> +<mouse><key><ctrl/><left-drag/></key> <action>lock the corner circular (rounding handles)</action></mouse> +<note>Resize handles change the width and height of the rectangle in its own coordinate system, before any transforms are applied.</note> +<note>When rounding corners, dragging only one rounding handle (with the other at the corner) keeps the corner circular.</note> +<note>You can drag both handles for an elliptic rounded corner, or drag one with Ctrl to make sure the other one is synchronized.</note> +<keys><key><misc f="Esc"/></key> <action>deselect</action></keys> +</group> +</section> + +*<section title="Ellipse tool" color="ffece8"> +<group> +<title>Drawing</title> +<mouse><key><left-drag/></key> <action>draw an ellipse</action></mouse> +<mouse><key><ctrl/><left-drag/></key> <action>make circle or integer-ratio ellipse</action></mouse> +<note>This restricts ellipse so its height/width ratio is a whole number.</note> +<mouse><key><shift/><left-drag/></key> <action>draw around the starting point</action></mouse> +<note>This creates an ellipse symmetric around the starting point of the mouse drag.</note> +</group> +<group> +<title>Editing</title> +<mouse><key><left-click/></key> <action>click an object to select</action></mouse> +<mouse><key><alt/><left-click/></key> <action>select under</action></mouse> +<mouse><key><shift/><left-click/></key> <action>toggle selection</action></mouse> +<mouse><key><left-drag/></key> <action>drag a handle to resize, make arc or segment</action></mouse> +<note>Initially, the two arc/segment handles are in the rightmost point; two resize handles are at the topmost and leftmost points.</note> +<mouse><key><ctrl/><left-drag/></key> <action>lock circle (resize handles)</action></mouse> +<mouse><key><ctrl/><left-drag/></key> <action>snap to angle steps (arc/segment handles)</action></mouse> +<note>Resize handles change the width and height of the ellipse in its own coordinate system, before any transforms are applied.</note> +<note>The default angle step is 15 degrees.</note> +<keys><key><misc f="Esc"/></key> <action>deselect</action></keys> +</group> +</section> + +*<section title="Star tool" color="f8f7d5"> +<group> +<title>Drawing</title> +<mouse><key><left-drag/></key> <action>draw a star</action></mouse> +<mouse><key><ctrl/><left-drag/></key> <action>snap star to angle steps</action></mouse> +<note>The default angle step is 15 degrees.</note> +</group> +<group> +<title>Editing</title> +<mouse><key><left-click/></key> <action>click an object to select</action></mouse> +<mouse><key><alt/><left-click/></key> <action>select under</action></mouse> +<mouse><key><shift/><left-click/></key> <action>toggle selection</action></mouse> +<mouse><key><left-drag/></key> <action>drag a handle to vary the star shape</action></mouse> +<mouse><key><ctrl/><left-drag/></key> <action>keep star rays radial (no skew)</action></mouse> +<mouse><key><shift/><left-drag/></key> <action>round the star</action></mouse> +<mouse><key><shift/><left-click/></key> <action>remove rounding</action></mouse> +<mouse><key><alt/><left-drag/></key> <action>randomize the star</action></mouse> +<mouse><key><alt/><left-click/></key> <action>remove randomization</action></mouse> +<keys><key><misc f="Esc"/></key> <action>deselect</action></keys> +</group> +</section> + +*<section title="Spiral tool" color="f3f3f3"> +<group> +<title>Drawing</title> +<mouse><key><left-drag/></key> <action>draw a spiral</action></mouse> +<mouse><key><ctrl/><left-drag/></key> <action>snap spiral to angle steps</action></mouse> +<note>The default angle step is 15 degrees.</note> +</group> +<group> +<title>Editing</title> +<mouse><key><left-click/></key> <action>click an object to select</action></mouse> +<mouse><key><alt/><left-click/></key> <action>select under</action></mouse> +<mouse><key><shift/><left-click/></key> <action>toggle selection</action></mouse> +<mouse><key><left-drag/></key> <action>roll/unroll from inside (inner handle)</action></mouse> +<note>Dragging the inner handle adjusts the "inner radius" parameter.</note> +<mouse><key><alt/><left-drag/></key> <action>converge/diverge (inner handle)</action></mouse> +<mouse><key><alt/><left-click/></key> <action>reset divergence (inner handle)</action></mouse> +<note>Vertical Alt+drag of the inner handle adjusts the "divergence" parameter, Alt+click resets it to 1.</note> +<mouse><key><shift/><left-click/></key> <action>zero inner radius (inner handle)</action></mouse> +<note>Shift+click on inner handle makes the spiral start from the center.</note> + +<mouse><key><left-drag/></key> <action>roll/unroll from outside (outer handle)</action></mouse> +<note>Dragging the outer handle adjusts the "turns" parameter. Use Shift+Alt+drag to roll/unroll without changing radius.</note> +<mouse><key><shift/><left-drag/></key> <action>scale/rotate (outer handle)</action></mouse> +<note>Use Shift+Alt to rotate only (locks the radius of the spiral).</note> + +<mouse><key><ctrl/><left-drag/></key> <action>snap handles to angle steps</action></mouse> +<note>The default angle step is 15 degrees. This works for both handles.</note> + +<keys><key><misc f="Esc"/></key> <action>deselect</action></keys> +</group> +</section> + + + +</column> + + + + +<column> + +*<section title="Zoom tool" color="e7e9f3"> +<group> +<mouse><key><left-click/></key> <action>zoom in</action></mouse> +<mouse><key><shift/><left-click/></key> <action>zoom out</action></mouse> +<mouse><key><left-drag/></key> <action>zoom into the area</action></mouse> +</group> +</section> + +*<section title="Freehand tool" color="e9efc5"> +<group> +<mouse><key><left-drag/></key> <action>draw a freehand line</action></mouse> +<mouse><key><shift/><left-drag/></key> <action>add to selected path</action></mouse> +<note>If a path is selected, Shift+dragging anywhere creates a new subpath instead of a new independent path.</note> +<mouse><key><shift/><left-drag/></key> <action>temporarily disable snapping</action></mouse> +<note>Shift also temporaily disables snapping to grid or guides when you are drawing with grid or guides on.</note> +</group> +</section> + +*<section title="Bezier (Pen) tool" color="e7f5d7"> + +<group> +<title>Create nodes</title> +<mouse><key><left-click/></key> <action>create a sharp node</action></mouse> +<note>If no path is being created, this starts a new path.</note> +<mouse><key><shift/><left-click/></key> <action>add to selected path</action></mouse> +<note>If a path is selected, Shift+clicking anywhere starts a new subpath instead of a new independent path.</note> +<mouse><key><left-drag/></key> <action>create a bezier node with two handles</action></mouse> +<mouse><key><shift/><left-drag/></key> <action>move only one handle</action></mouse> +<!-- FIXME: also disables snapping! another conflict --> +<note>This moves only one handle (instead of both) to create a cusp node.</note> +<mouse><key><ctrl/><left-drag/></key> <action>snap the handle to angle steps</action></mouse> +<note>The default angle step is 15 degrees.</note> +</group> + +<group> +<title>Create segments</title> +<keys><key><ctrl/></key> <action>snap the segment to angle steps</action></keys> +<note>This snaps the new node's angle, relative to the previous node, to angle steps (default 15 degrees).</note> +</group> + +<group> +<title>Finish</title> +<keys><key><misc-wide f="Enter"/></key> <action>finish current line</action></keys> +<mouse><key><right-click/></key> <action>finish current line</action></mouse> +<mouse><key><left-click/><left-click/></key> <action>finish current line</action></mouse> +<note>Enter, right click, or double left click finish the current line, discarding the last unfinished (red) segment.</note> +</group> + +<group> +<title>Keyboard</title> +<keys><key><misc f="Esc"/></key> <action>cancel current line</action></keys> +<keys><key><misc-wide f="Backspace"/></key><key><misc f="Del"/></key> <action>erase last segment of current line</action></keys> +</group> +</section> + +*<section title="Calligraphy" color="e9dfef"> +<group> +<mouse><key><left-drag/></key> <action>draw a calligraphic line</action></mouse> +<mouse><key><left-arrow/></key> <key><right-arrow/></key> <action>adjust pen width</action></mouse> +<mouse><key><up/></key> <key><down/></key> <action>adjust pen angle</action></mouse> +<note>Width and angle can be adjusted while drawing. </note> +<keys><key><misc f="Esc"/></key> <action>deselect</action></keys> +</group> +</section> + +*<section title="Gradient tool" color="e9f3e7"> +<group> +<title>Creating gradients</title> +<mouse><key><left-drag/></key> <action>create gradient</action></mouse> +<note>This creates gradient on selected objects. The Controls bar lets you select linear/radial and fill/stroke for the new gradient.</note> +<mouse><key><left-click/><left-click/></key> <action>create default gradient</action></mouse> +<note>This creates default (horizontal edge-to-edge for linear, centered edge-to-edge-to-edge for radial) gradient on clicked object. </note> +</group> + +<group> +<title>Handles</title> +<keys><key><misc f="Tab"/></key> <action>select next handle</action></keys> +<keys><key><shift/><misc f="Tab"/></key> <action>select previous handle</action></keys> +<mouse><key><arrows/></key> <action>move selected handle by the nudge distance</action></mouse> +<mouse><key><shift/><arrows/></key> <action>move selected handle by 10x nudge distance</action></mouse> +<note>The default nudge distance is 2 px (SVG pixel units, not screen pixels).</note> +<mouse><key><alt/><arrows/></key> <action>move selected handle by 1 pixel</action></mouse> +<mouse><key><alt/><shift/><arrows/></key> <action>move selected handle by 10 pixels</action></mouse> +<note>The actual distance for pixel movements depends on zoom level. Zoom in for finer movement.</note> +<keys><key><misc f="Esc"/></key> <action>deselect handle</action></keys> +<mouse><key><left-click/><left-click/></key> <action>open gradient editor</action></mouse> +<note>Double clicking a gradient handle opens the Gradient Editor with that gradient and the clicked handle chosen in the stops list.</note> +</group> + +<group> +<title>Reversing</title> +<keys><key><shift/>r</key> <action>reverse gradient definition</action></keys> +<note>This mirrors the stop positions of the current gradient without moving the gradient handles.</note> +</group> + +<group> +<title>Mouse select</title> +<mouse><key><left-click/></key> <action>click an object to select</action></mouse> +<mouse><key><alt/><left-click/></key> <action>select under</action></mouse> +<mouse><key><shift/><left-click/></key> <action>toggle selection</action></mouse> +</group> + +</section> + + +*<section title="Dropper tool" color="feeffa"> +<group> +<mouse><key><left-click/></key> <action>pick fill color</action></mouse> +<mouse><key><shift/><left-click/></key> <action>pick stroke color</action></mouse> +<mouse><key><left-drag/></key> <action>average fill color</action></mouse> +<mouse><key><shift/><left-drag/></key> <action>average stroke color</action></mouse> +<note>Click applies the color under cursor to the current selection. Dragging a radius calculates the average color of a circular area.</note> +<note>If a gradient handle (in Gradient tool) is selected, it gets the color instead of the entire object.</note> +<mouse><key><alt/><left-click/></key><key><alt/><left-drag/></key> <action>pick inverse color</action></mouse> +<note>If Alt is pressed, picking color (with or without Shift, by click or by drag) picks the inverse of the color.</note> +<keys><key><ctrl/>C</key> <action>copy color</action></keys> +<note>This copies the color under cursor to the system clipboard, as text in RRGGBBAA format (8 hex digits).</note> +</group> +</section> + + +</column> + + + +<column> +*<section title="Text tool" color="eefdf3"> + +<group> +<title>Selecting/creating</title> +<mouse><key><left-click/></key> <action>create/select a text object</action></mouse> +<!--<keys><key>letters, digits, space, ...</key> <action>type text in a text object</action></keys>--> +<note>Clicking in an empty space or on a non-text creates a text object; now you can type your text.</note> +<note>Clicking on a text object selects it; cursor is placed near the click point.</note> +<keys><key><misc f="Esc"/></key> <action>deselect the text object</action></keys> +</group> + +<group> +<title>Text navigation</title> +<mouse><key><arrows/></key> <action>move cursor by one character</action></mouse> +<mouse><key><ctrl/><left-arrow/></key> <key><ctrl/><right-arrow/></key> <action>move cursor by one word</action></mouse> +<mouse><key><ctrl/><up-arrow/></key> <key><ctrl/><down-arrow/></key> <action>move cursor by one paragraph</action></mouse> +<keys><key><misc f="Home"/></key> <key><misc f="End"/></key> <action>go to beginning/end of line</action></keys> +<keys><key><ctrl/><misc f="Home"/></key> <key><ctrl/><misc f="End"/></key> <action>go to beginning/end of text</action></keys> +<note>All these commands cancel current text selection, if any.</note> +</group> + +<group> +<title>Flowed text (internal frame)</title> +<mouse><key><left-drag/></key> <action>create flowed text</action></mouse> +<note>Clicking and dragging in an empty space or on a non-text creates a flowed text object with internal frame.</note> +<mouse><key><left-drag/></key> <action>adjust frame size</action></mouse> +<note>Dragging the handle in the lower right corner of the selected flowed text changes width/height of the frame.</note> +<mouse><key><ctrl/><left-drag/></key> <action>lock width, height, or ratio of frame</action></mouse> +<note>Dragging the corner handle with Ctrl resizes the frame preserving either width, or height, or ratio.</note> +</group> + +<group> +<title>Flowed text (external frame)</title> +<keys><key><alt/>W</key> <action>flow text into frame</action></keys> +<note>With a text object and a shape/path selected, this flows text into the shape/path.</note> +<note>Both remain separate objects, but are linked; editing the shape/path causes the text to reflow.</note> +<keys><key><alt/><shift/>W</key> <action>unflow text from frame</action></keys> +<note>This cuts the flowed text's link to the shape/path, producing a single-line regular text object.</note> +<keys><key><shift/>D</key> <action>select external frame</action></keys> +<note>To find out which object is the frame of this flowed text, select it and press Shift+D. The frame will be selected.</note> +</group> + +<group> +<title>Text on path</title> +<keys><key><shift/>D</key> <action>select path from text</action></keys> +<note>To find out which path this text is put on, select it and press Shift+D. The path will be selected.</note> +</group> + +<group> +<title>Editing text</title> +<note>To type + and - characters, use the main keyboard; keypad + and - are reserved for zoom (unless NumLock is on).</note> +<keys><key><misc-wide f="Enter"/></key> <action>start a new line or paragraph</action></keys> +<note>Enter in regular text creates new line; in flowed text it creates a new paragraph</note> +<keys><key><ctrl/>U</key> <action>toggle Unicode entry</action></keys> +<note>To insert an arbitrary Unicode character, type Ctrl+U, then the hexadecimal code point, then Enter.</note> +<note>For example, Ctrl+U 2 0 1 4 Enter inserts an em-dash.</note> +<note>To stay in Unicode mode after inserting the character, press Space instead of Enter.</note> +<note>Press Esc or another Ctrl+U to cancel Unicode mode without inserting the character.</note> +<keys><key><ctrl/><misc-wide f="Space"/></key> <action>insert no-break space</action></keys> +<note>A no-break space is visible even in a text object without xml:space="preserve".</note> +</group> + +<group> +<title>Selecting text</title> +<mouse><key><left-drag/></key> <action>select text</action></mouse> +<note>Left-dragging over a text object selects a text span.</note> +<mouse><key><shift/><arrows/></key> <action>select text by character</action></mouse> +<mouse><key><ctrl/><shift/><arrows/></key> <action>select text by word</action></mouse> +<keys><key><shift/><misc f="Home"/></key> <key><shift/><misc f="End"/></key> <action>select to beginning/end of line</action></keys> +<keys><key><ctrl/><shift/><misc f="Home"/></key> <key><ctrl/><shift/><misc f="End"/></key> <action>select to beginning/end of text</action></keys> +<mouse><key><left-click/><left-click/></key> <action>select word</action></mouse> +<mouse><key><left-click/><left-click/><left-click/></key> <action>select line</action></mouse> +<keys><key><ctrl/>A</key> <action>select all text</action></keys> +<note>This selects the entire text of the current text object.</note> +</group> + +<group> +<title>Styling selection</title> +<keys><key><ctrl/>B</key> <action>make selection bold</action></keys> +<keys><key><ctrl/>I</key> <action>make selection italic</action></keys> +<note>Also, you can use the Text&Font or Fill&Stroke dialogs to assign any style to text selection.</note> +</group> + +<group> +<title>Letter spacing</title> +<keys><key><alt/>></key> <action>expand line/paragraph by 1 pixel</action></keys> +<keys><key><shift/><alt/>></key> <action>expand line/paragraph by 10 pixels</action></keys> +<keys><key><alt/><</key> <action>contract line/paragraph by 1 pixel</action></keys> +<keys><key><shift/><alt/><</key> <action>contract line/paragraph by 10 pixels</action></keys> +<note>These commands (only when editing text) adjust letter spacing in the current line (regular text) or paragraph (flowed text).</note> +<note>The actual adjustment for pixel movements depends on zoom level. Zoom in for finer adjustment.</note> +</group> + +<group> +<title>Line spacing</title> +<keys><key><ctrl/><alt/>></key> <action>make the text object taller by 1 pixel</action></keys> +<keys><key><shift/><ctrl/><alt/>></key> <action>make the text object taller by 10 pixels</action></keys> +<keys><key><ctrl/><alt/><</key> <action>make the text object shorter by 1 pixel</action></keys> +<keys><key><shift/><ctrl/><alt/><</key> <action>make the text object shorter by 10 pixels</action></keys> +<note>These commands (only when editing text) adjust line spacing in the entire text object (regular or flowed).</note> +<note>The actual adjustment for pixel movements depends on zoom level. Zoom in for finer adjustment.</note> +</group> + +<group> +<title>Kerning and shifting</title> +<mouse><key><alt/><arrows/></key> <action>shift characters by 1 pixel</action></mouse> +<mouse><key><shift/><alt/><arrows/></key> <action>shift characters by 10 pixels</action></mouse> +<note>These commands work when editing a regular text object. Kerning does not work in flowed text.</note> +<note>With no selection, they shift (horizontally or vertically) the characters after the cursor until the end of line.</note> +<note>With selection, they shift the selection relative to the rest of text (by inserting opposite kerns at both ends of selection).</note> +<note>The actual adjustment for pixel movements depends on zoom level. Zoom in for finer adjustment.</note> +</group> + +<group> +<title>Rotating</title> +<keys><key><ctrl/>[</key> <key><ctrl/>]</key> <action>rotate character(s) by 90 degrees</action></keys> +<keys><key><alt/>[</key> <key><alt/>]</key> <action>rotate character(s) by 1 pixel</action></keys> +<note>These commands rotate the next character (without selection) or all characters in the selection (with selection).</note> +<note>Rotation only works in regular text (not flowed text).</note> +<note>The actual angle for pixel rotation depends on zoom level. Zoom in for finer movement.</note> +</group> + +</section> +</column> + +</root> diff --git a/doc/spsvgview.txt b/doc/spsvgview.txt new file mode 100644 index 000000000..f3f7d8892 --- /dev/null +++ b/doc/spsvgview.txt @@ -0,0 +1,15 @@ +Both spsvgview and sodipodi are mostly built frome set of common +libraries (these are static of course, to save people from +versioning pain, but can in theory function as dynamic libs +as well). +The shared dynamic SVG GUI is built from: +* libarikkei, libnr, libnrtype - lowlevel helper code +* libspxml - xml backbone +* libspsvg - svg parsing helpers +* libspdisplay - GUI-independent renderer +* libsodipodi - dynamic SVG document +Sodipodi and spsvgview attach SVG document to different +widgets (SPDesktop and SPSVGView), plus sodipodi adds +extra controller parts (event contexts, selections, dialogs). +The separation is still not 100%, but quite close, and should +be easy to complete, if needed. |
