Commit graph

223 commits

Author SHA1 Message Date
Jürg Lehni
5592bb57e0 Properly export Numerical and PaperScript again. 2013-05-27 15:55:44 -07:00
Jürg Lehni
6ac5463630 Switch to using common string format for paper.version (major.minor.build) 2013-05-27 14:27:05 -07:00
Jürg Lehni
10d5de3ed6 Implement a better way to name and export class constructors.
This change also simplified the way classes are exported to PaperScope objects.
2013-05-27 12:48:58 -07:00
Jürg Lehni
c533dda7b5 Finally found a better and faster alternative for this.base() calls, by setting base on the function object instead.
base can be accessed on named functions very easily, leading to another measurable speed increase. Finally all performance reasons against straps.js are eliminated!
2013-05-27 10:04:05 -07:00
Jürg Lehni
c70b985911 Make sure the Base class is exposed in Node.js 2013-05-12 14:29:21 -07:00
Jürg Lehni
dd96d67fe1 Further refine Node.js integration. 2013-05-09 16:06:45 -07:00
Jürg Lehni
bc090dcf66 Switch from bootstrap.js to the renamed straps.js 2013-05-08 00:13:02 -07:00
Jürg Lehni
8e53829e9c Define Callback#once() 2013-05-06 20:57:08 -07:00
Jürg Lehni
b59a98f7ce Add jQuery style aliases to Callback and use #on() in the examples rather than #attach(). 2013-05-06 20:56:58 -07:00
Jürg Lehni
cebeb11301 Rename Json acronyms in API to JSON. 2013-04-23 07:13:51 -07:00
Jürg Lehni
6800a6d534 Use separate id ranges for different classes. 2013-04-22 19:09:59 -07:00
Jürg Lehni
e1807214f4 Large refactoring of Style handling for notable speed improvements. 2013-04-19 19:31:29 -07:00
Jürg Lehni
9efbc288a1 Merge Path.Rectangle and Path.RoundRectangle. 2013-04-19 12:36:49 -07:00
Jürg Lehni
fbe8a558bd Refactor Format literal to Formatter class that keeps precision stored. 2013-04-09 17:32:19 -07:00
Jürg Lehni
2d3f9c36eb Update JSDoc and fix documentation issues. 2013-04-09 17:07:41 -07:00
Jürg Lehni
5209e97c8d Merge GradientColor into Color.
Work in progress.
2013-04-09 01:21:36 -07:00
Jürg Lehni
218732e320 Implement a row of simple optimizations to increase performance of Item constructors. 2013-04-07 17:36:09 -07:00
Jürg Lehni
f43b322d2a Rename Base#_type property to #_class. 2013-04-06 09:16:08 +02:00
Jürg Lehni
9adfc01c8d Handle both strings and objects in Base.importJson().
And keep returning strings from #exportJson().
2013-04-05 16:58:00 +02:00
Jürg Lehni
9c38a76525 Add support for Item#data serialization. 2013-03-19 17:52:46 -07:00
Jürg Lehni
1d1e6425fa Remove all left-overs of call chaining, except for where it's in use. 2013-03-05 20:39:07 -08:00
Jürg Lehni
7294c5499c Simplify Base.readNamed() methods. 2013-03-03 15:28:55 -08:00
Jürg Lehni
0599aabdb9 Handle reinsertion of items into the same children list.
Fixes failing test.
2013-03-01 23:06:29 -08:00
Jürg Lehni
3f5d0a6925 Merge constructor._name with _type and use CamelCase for Item types. 2013-03-01 17:13:22 -08:00
Jürg Lehni
7405858f32 Simplify code for reading of named arguments, removing the need for filtering arguments by using 'in' checks instead for the presence of properties / setters. 2013-03-01 14:06:04 -08:00
Jürg Lehni
06e33ba412 Improve flexibility of reading rectangles in Path.Constructor.
We can now define the rectangle by any property that it has setters for.
2013-03-01 13:52:11 -08:00
Jürg Lehni
5501f48570 Move Item#toString() functionality to Base#toString().
For objects that define #_id and/or #_name.
2013-03-01 11:47:49 -08:00
Jürg Lehni
9d8cddbe42 Implement new private Format object that handles formatting of number, point, size and rectangle. 2013-02-28 19:14:05 -08:00
Jürg Lehni
e392496f9d Remove Base.toFloat() and replace with direct parseFloat() calls. 2013-02-28 19:14:05 -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
a98e39374d Make PaperScript work again with latest Acorn.js 2013-02-24 15:41:06 -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
24a5016470 Reuse scopes associated with canvases to support multiple scripts per canvas.
As described in #171.
2013-02-15 00:15:44 -08:00
Jürg Lehni
da08e74374 Clean up code from #156. 2013-02-14 12:50:51 -08:00
Jürg Lehni
6729646e7a Merge pull request #156 from ubershmekel/patch-2
Late load of paperjs should still run paperscripts
2013-02-14 12:49:51 -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
51150cb20d Support CanvasProvider.get(width, height) arguments. 2013-02-12 15:57:02 -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
22218e0db0 Simplify Base.serialize(). 2013-02-12 14:16:25 -08:00
Jürg Lehni
80ffd41560 Add optional precision argument to Base.formatFloat(). 2013-02-12 14:16:06 -08:00
Jürg Lehni
ee73b4e15b Add some explaining comments to dictionary code. 2013-02-11 19:35:11 -08:00
Jürg Lehni
15554b8bf2 Simplify adding / referencing of JSON dictionary entries. 2013-02-11 19:31:58 -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
aa6e2fae09 Improve Base#equals(). 2013-02-11 18:24:08 -08:00
Jürg Lehni
6d39a91c87 Implement simple Project serialization. 2013-02-11 16:43: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
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
bd62b4b819 Do not export paper.load() any more.
Use paper.PaperScript.load() instead.
2013-02-08 18:17:37 -08:00
Jürg Lehni
6c9c16ad3d Update copyright information comments, and year. 2013-01-28 18:03:27 -08:00
Yuval Greenfield
a3a211eead Late load of paperjs should still run paperscripts
See this problem html http://stackoverflow.com/questions/14110205/dynamically-loading-a-script-changes-its-behaviour/14114337 and note how jquery handle this at https://github.com/jquery/jquery/blob/master/src/core.js#L768
2013-01-02 01:57:30 +02: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
Jürg Lehni
24b5f870bd Change Base.isObject() to also check for instances of plain Base objects, and rename it to Base.isPlainObject(). 2012-12-30 17:30:13 +01:00
Jürg Lehni
2abefee336 Merge Base.readValue() with Base.read() and rename Base.peekValue() to Base.peek().
When called directly on Base, read() reads values, otherwise the specific type of the subclass it is called on.
2012-12-30 16:07:20 +01:00
Jürg Lehni
4f83e0eee6 Commit first version of serialization / deserialization mechanism.
It appears to work fine already for Paths and Groups.
2012-12-27 12:45:55 +01:00
Jürg Lehni
3ac039bd66 Implement properties object literal initialization for all Item constructors. 2012-12-25 22:12:25 +01:00
Jürg Lehni
8f093f6dd7 Remove all PORT comments, since we won't port back features to Scriptographer. 2012-12-25 16:07:48 +01:00
Jürg Lehni
9fb48d1dd4 Fix a bug Base.equals(), causing endless recursion.
Closes #148.
2012-12-17 21:49:48 +01:00
Jürg Lehni
14e6edb8ee Fix #toString() for event objects. 2012-12-08 19:57:04 -08:00
Jürg Lehni
7fe8e3c918 Handle null nodes. 2012-11-21 12:17:01 -08:00
Jürg Lehni
1e744e3db7 Handle case where no project is created through execution errors. 2012-11-21 10:38:54 -08:00
Jürg Lehni
302f23bc5a Update Acorn.js and use it now by default, thanks to Marijn's fast bugfix:
https://github.com/marijnh/acorn/issues/14
2012-11-18 12:25:37 -08:00
Jürg Lehni
b977e18e3b No need to throw operator exceptions since we're checking for their existence in the parsing. 2012-11-18 10:13:50 -08:00
Jürg Lehni
34819e6a73 Switch to using Mozilla's standardized AST model for PaperScript parsing though Acorn.js or Esprima.js and their support for ranges.
No more AST mingling but direct code modification means we're finally getting accurate error messages! Sticking to Esprima for now since Acorn still has some issues with ranges: https://github.com/marijnh/acorn/issues/14
2012-11-18 10:06:16 -08:00
Jürg Lehni
3fe936addf Expose Palettes through PaperScope#palettes. 2012-11-14 12:05:36 -08:00
Jürg Lehni
c4a66cff0a Support more than one argument in Callback#fire(). 2012-11-14 01:31:34 -08:00
Jürg Lehni
d671a08205 Introduce Base.toFloat() and rename Base.formatNumber() to Base.formatFloat() 2012-11-14 01:31:08 -08:00
Jürg Lehni
e6c59672ac Update camelize() and hyphenate() to simpler versions. 2012-11-10 22:24:50 -08:00
Jürg Lehni
01342fa073 Implement onActivate() onDeactivate() handlers on Tool, and remove onSelect() / onDeselect() which never worked. 2012-11-07 01:02:09 -08:00
Jürg Lehni
4e1db6a1d1 Fix a row of documentation issues. 2012-11-06 13:35:50 -08:00
Jürg Lehni
b354e01f49 Move Base.equals() to Base extension, where it belongs. 2012-11-06 07:19:04 -08:00
Jürg Lehni
1fad063a30 Revert to version without optional digits, for speed reasons.
Since we don't actually use the other version anywhere.
2012-11-06 07:17:14 -08:00
Jürg Lehni
ab633f15ac Add optional digits precision to Base.formatNumber, default to 5. 2012-11-06 07:15:01 -08:00
Jürg Lehni
6ed1d67ada Modernize Bootstrap.js, introduce Base.create() and use it instead of the Constructor.dont hack for object creation without the calling of initialize. 2012-11-03 21:49:37 -07:00
Jürg Lehni
ee65ee1026 Clean up and improve PaperScript code a bit. 2012-11-02 15:58:41 -07:00
Jürg Lehni
bdb74b67e2 Define #isActive() for PaperScopeItems. 2012-10-30 11:43:40 -07:00
Jürg Lehni
4a74cf9e29 Improve Paper code editor to also display errors. 2012-10-23 20:05:01 -07:00
Jürg Lehni
30374ae3b4 Implement proper index independent argument list reading of basic types.
Implemented for Point, Size, Rectangle and Color.
2012-10-18 14:24:15 -07:00
Jürg Lehni
4d1920ee8b Improve Base.read() to support cloning of objects that are already provided in the required type. 2012-10-10 19:26:00 -07:00
Jürg Lehni
b29995f376 Clean up code. 2012-09-30 19:50:42 -07:00
Jonathan Puckey
7247c1a5a2 Fix Node.js support. 2012-09-01 19:27:38 +02:00
Jürg Lehni
6e3cef6eb4 Implement PaperScope#tool accessor.
For better handling of automatic tool creation in PaperScript.
2011-12-27 16:33:17 +01:00
Jürg Lehni
df5c33571f Do not exceed 80 chars per line. 2011-12-27 16:05:02 +01:00
Jürg Lehni
c8f3f3be27 Document Base.hyphenate() 2011-12-10 19:57:18 +01:00
Jürg Lehni
75072bde4f Directly access project.view. 2011-11-18 20:33:27 +01:00
Jürg Lehni
e4586cfeeb Commit beginning of item based mouse events. So far only onMousedown / 'mousedown' is supported. 2011-11-12 23:57:25 +01:00
Jürg Lehni
36846d6e38 Remove code from previous commit again. 2011-11-12 19:52:36 +01:00
Jürg Lehni
d89d7f1ef7 Commit temporary support for attach() and detach() handler on event entries, to be removed again. 2011-11-12 19:51:51 +01:00
Jürg Lehni
8eaddc759e Fix code sequence when attaching and detaching event handlers. 2011-11-12 17:14:49 +01:00
Jürg Lehni
da5a837da2 Merge remote-tracking branch 'origin/master' 2011-11-12 16:56:35 +01:00
Jürg Lehni
719ae2315c Remove global views list, link View to Project and allow projects to only have one view. 2011-11-12 16:56:23 +01:00
Jonathan Puckey
d631288dc7 Fire resize event directly after evaluation, so we don't need to call onResize ourselves from PaperScript. 2011-11-12 16:31:22 +01:00
Jürg Lehni
78d1ce1540 Make new events work properly for key handlers. 2011-11-11 20:12:29 +01:00
Jürg Lehni
e238dea3ac More work to make new events mechanisms work for Tool too. 2011-11-11 19:49:31 +01:00
Jürg Lehni
5fd7753c60 Remove dev comments. 2011-11-11 18:39:12 +01:00
Jürg Lehni
256e48b511 Define Callback code for callback based event handling (#atach() / #detach() #fire()) and start implementing it in View. 2011-11-11 18:29:28 +01:00
Jürg Lehni
fe97b94340 Define PaperScopeItem as a private base class for all classes that have lists and references in the PaperScope (Project, View, Tool), so they can share functionality (#initialize(), #activate(), #remove()), and add support for multiple tools. Closes #27 2011-08-02 10:08:08 +01:00
Jürg Lehni
2d5788540d Hide internal properties even if they are enumerable in Base#toString() 2011-08-02 08:32:55 +01:00
Jürg Lehni
14881b8b19 Let View handle the retrieving of the canvas object. 2011-08-01 16:23:56 +01:00