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