Commit graph

625 commits

Author SHA1 Message Date
Jürg Lehni
cef30f9dd1 Switch to #pathData for JSON serialization of Path and CompoundPath. 2013-02-28 19:41:13 -08:00
Jürg Lehni
65a9795a8a Rename #from/#toJson() to #import/#exportJson() and move them to Project / Item.
To reflect naming of #import/#exportSvg().
2013-02-25 16:17:33 -08:00
Jürg Lehni
326d8db4db Do not hittest locked items. 2013-02-24 18:04:20 -08:00
Jürg Lehni
0d98727328 Simplify drawing of seleced bounds by having Item#_boundsSelelected default to true for Raster, PlacedSymbol and TextItem.
One can now turn it off for these using item.bounds.selected = false;
2013-02-24 15:53:37 -08:00
Jürg Lehni
6b7c6b6c4c Implement Item#bounds.selected to control drawing of selected item bounds. 2013-02-24 15:41:31 -08:00
Jürg Lehni
afac35fabf Improve handling of bounds caching.
Cloning was done in the wrong place.
2013-02-24 14:56:51 -08:00
Jürg Lehni
ac8c9cd114 Include ChangeFlag.GEOMETRY in Change.CONTENT.
Closes #173.
2013-02-21 00:09:40 -08:00
Jürg Lehni
119e5acbf9 Move #_setProperties() and #set() from Item to Base, rename it to #_set and use it for Tool too. 2013-02-15 18:28:49 -08:00
Jürg Lehni
d3ccec2256 Use the code from Group#isEmpty() and CompoundPath#isEmpty() for Item#isEmpty(), since any item that does not have children overrides it. 2013-02-15 18:01:23 -08:00
Jürg Lehni
eebcbda9d3 Document 2nd argument in Raster#initialize() as well, and rename arguments. 2013-02-15 08:15:24 -08:00
Jürg Lehni
a688301106 Document Raster#initialize(). 2013-02-15 08:12:58 -08:00
Jürg Lehni
bd5f0691e6 Do not serialize styles on Groups and Layers, since they just unify their children's own styles. 2013-02-14 21:54:52 -08:00
Jürg Lehni
4cd069b1af Clean up code and add comment about consumed canvas again. 2013-02-14 19:42:20 -08:00
Jürg Lehni
53b36111dd Merge pull request #150 from yscik/rasterize-opacity
Group opacity disregarded in rasterize
2013-02-14 19:40:45 -08:00
Jürg Lehni
334fe99503 Revert recent changes to Item#rasterize() so pull request #150 can be merged. 2013-02-14 19:40:30 -08:00
Jürg Lehni
47a3490007 Take item matrix into account in Item#rasterize().
Closes #144.
2013-02-14 19:25:04 -08:00
Jürg Lehni
366ba2897b Do not blit rasters into separate canvas when they have opacity set.
Closes #166.
2013-02-14 12:28:11 -08:00
Jürg Lehni
e9fef8a53c Fix a couple of newly introduced bugs through CanvasProvider change. 2013-02-12 16:23:30 -08:00
Jürg Lehni
ea1e7fccb9 clearRect() needs + 1 for size. 2013-02-12 16:07:24 -08:00
Jürg Lehni
ca3cc7f46d Define CanvasProvider.getContext() next to getCanvas(), and support both types in release(). 2013-02-12 16:06:24 -08:00
Jürg Lehni
9600fdb512 Fix a recently introduce but in Raster#getCanvas(). 2013-02-12 15:54:56 -08:00
Jürg Lehni
357b7dbc54 Shorten CanvasProvider method names. 2013-02-12 15:53:27 -08:00
Jürg Lehni
24d467e292 Implement support for native dash strokes, through both setLineDash() and mozDash. 2013-02-12 15:32:21 -08:00
Jürg Lehni
fdd15e675f Add options argument to #toJson() methods, and use to implement optional fractional digit precision control. 2013-02-12 14:57:54 -08:00
Jürg Lehni
053aa15ded Rename Raster's ImageData code from *Data to *ImageData, to avoid clash with future Item#data. 2013-02-12 14:40:55 -08:00
Jürg Lehni
e7bb334c6a Use JSON dictionary support to serialize Symbols and PlacedSymbol references. 2013-02-11 18:59:49 -08:00
Jürg Lehni
00dcd05549 Implement support for dictionary definitions and references in JSON serialization. 2013-02-11 18:59:05 -08:00
Jürg Lehni
224563d5f7 Include more Item attributes for serialization. 2013-02-11 17:13:44 -08:00
Jürg Lehni
489a785171 Override Item.extend() to merge the subclass' _serializeFields with the parent class' _serializeFields.
And have style fields always serialized in non-compact form for Color.
2013-02-11 17:08:23 -08:00
Jürg Lehni
6d39a91c87 Implement simple Project serialization. 2013-02-11 16:43:31 -08:00
Jürg Lehni
e829440803 Have Raster serialize itself.
The source property either contains the link to the external source, or the data url.
2013-02-11 16:43:10 -08:00
Jürg Lehni
e5180e6929 Implement Raster#getElement(), returning either the internal native canvas or image element.
And use it internally in various places.
2013-02-11 16:42:36 -08:00
Jürg Lehni
080a9b220a Handle Raster#onLoad() callback for inlined images.
Code can now switch back and forth between inlined images and external sources.
2013-02-11 16:35:46 -08:00
Jürg Lehni
cf6ba30258 Have Raster#image only return an image, not a canvas element. 2013-02-11 16:34:59 -08:00
Jürg Lehni
0954dc3823 Better deal with security exceptions and missing image data in Raster. 2013-02-11 16:34:31 -08:00
Jürg Lehni
565fb86430 Give any item / object that needs to be exported as a definition / symbol its own unique id.
This will be useful in SVG and JSON exporter.
2013-02-10 09:37:40 -08:00
Jürg Lehni
cd9fc39f54 Rename Matrix#setIdentity() to #reset() and document it. 2013-02-09 11:45:33 -08:00
Jürg Lehni
15c8652747 Add support for Raster to SvgExport. 2013-02-09 09:44:25 -08:00
Jürg Lehni
dc35fdbd02 Move named inner functions out of nested scopes, to prepare for 'use strict;' transition. 2013-02-08 18:23:33 -08:00
Jürg Lehni
02ca95eb46 Avoid accidental global leakage. 2013-02-08 16:12:57 -08:00
Jürg Lehni
6c9c16ad3d Update copyright information comments, and year. 2013-01-28 18:03:27 -08:00
Jürg Lehni
8bab10cb5f Define Item#sendToBack() and #bringToFront(). 2013-01-20 17:08:49 -08:00
Jürg Lehni
e4d98f7865 Add internal _cloning parameter to all insertion methods. 2013-01-20 16:14:30 -08:00
Jürg Lehni
18572276c5 Fix a bug with new _drawCount code.
Make sure items are considered selected right away if they are part of the DOM, even before they are getting drawn for the first time.
2013-01-20 15:56:58 -08:00
Jürg Lehni
50ee598bca Introduce Project#_drawCount mechanism as a better and more efficient way to filter out selected items that are not currently part of the DOM. 2013-01-20 14:01:43 -08:00
Jürg Lehni
e22b3292ed Define a fallback for #drawSelected(), for classes that don't have it yet. 2013-01-20 14:01:43 -08:00
Jürg Lehni
7756e90ff9 Make sure cloned items do not receive the same name when placed inside the same parent, use numbered versions instead. 2013-01-20 14:01:43 -08:00
Jürg Lehni
5a2be6d545 No need for chainable functions on Item types. 2012-12-31 21:42:14 +01:00
Jürg Lehni
5da4e89672 Return 'this' in more places to facilitate chained calls inside the library. 2012-12-31 20:07:28 +01:00
Jürg Lehni
8bed8cb15d Define mechanism for flexible reading of named arguments through Base.readNamed() and Base.hasNamed(), and use it to implement property object literal versions of Path.Constructor code. 2012-12-30 18:24:33 +01:00