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
Jürg Lehni
022de4d781
Some documentation fixes for v0.2
2011-08-01 14:25:46 +01:00
Jürg Lehni
ea629fefda
Remove debug log.
2011-08-01 12:03:23 +01:00
Jürg Lehni
14895f412c
Fix PaperScope#install() so classes actually get injected.
2011-08-01 12:02:50 +01:00
Jürg Lehni
8cdc5ea2aa
Change PaperScope#install() to be clever about project, view and tool references and link them through a getter to their current state in PaperScope.
2011-08-01 11:21:22 +01:00
Jürg Lehni
3fc21cd4b6
Always call View#draw() since it won't redraw internally if nothing has changed.
2011-08-01 11:02:00 +01:00
Jürg Lehni
6b6d5909c1
Revert back to PaperScope#setup() and keep #initialize0 simple.
2011-08-01 11:01:27 +01:00
Jürg Lehni
5b963b13e1
Export classes through PaperScope in dev mode too.
2011-08-01 08:53:07 +01:00
Jürg Lehni
c6cf4f9cf0
Only create an empty Project for a PaperScope if a canvas was provided for it.
2011-08-01 08:52:51 +01:00
Jürg Lehni
e1d90c921c
Do not parse PaperScript code in exigent mode. Relaxes requirements of semicolons, etc.
2011-07-31 12:14:37 +01:00
Jürg Lehni
1519a1d220
Improve documentation for PaperScope.
2011-07-27 22:58:45 +01:00
Jürg Lehni
297aef643d
Simplify the way PaperScope objects are created and linked to Canvas elements, in order to facilitate usage through plain JavaScript.
2011-07-27 22:39:58 +01:00
Jürg Lehni
c6525ec4fa
Fix link to global paper variable.
2011-07-27 22:02:42 +01:00
Jürg Lehni
f98c8f29fc
Implement Prepro.js for the browser too, in order to be able to load the library from paper.js source files and preprocess on the fly on the browser side.
2011-07-26 12:27:36 +01:00
Jürg Lehni
8eaeb7fb5e
Remove filepp.pl as preprocessor and switch to our own Prepro.js, a simple preprocesssor for JavaScript that speaks JavaScript, written in JavaScript, allowing preprocessing to either happen at build time or compile time.
2011-07-26 10:09:31 +01:00
Jürg Lehni
43cc8e45b2
Clean up and separate PaperScript documetation from JavaScript related classes. Work in progress.
2011-07-25 00:25:23 +01:00
Jürg Lehni
688c1671ed
Remove all parameters from Tool constructor, to simplify use outside PaperScript.
2011-07-19 23:53:13 +01:00
Jürg Lehni
9f1f4d334e
Introduce PaperScope#setup(canvas), as a simple way to setup a standard project when not using PaperScript.
2011-07-19 23:52:32 +01:00
Jürg Lehni
470360301c
Improve documentation for PaperScope#install()
2011-07-19 23:51:50 +01:00
Jürg Lehni
86b1d82636
Add VERSION and DATE to headers and support for it in build scripts.
2011-07-13 13:27:14 +01:00
Jürg Lehni
62453a4212
Increase version number.
2011-07-11 12:24:05 +02:00
Jürg Lehni
51df37b8ec
Fix recently broken support for text-paperscript mime type.
2011-07-09 17:11:57 +02:00
Jürg Lehni
9abdcb571e
Add support for both text/paperscript and text/x-paperscript mime types.
2011-07-09 16:58:53 +02:00
Jürg Lehni
6694d08d0f
Fix PaperScript code generation to wrap on new-lines, so missing colons will not cause errors.
2011-07-09 09:20:13 +02:00
Jürg Lehni
cc00f40532
Have Base.hyphenate() convert the result to lowercase.
2011-07-08 23:09:51 +02:00
Jürg Lehni
dfbe3135ad
Remove HitResult inheritance from CurveLocation, but have a #location property pointing to it.
2011-07-08 22:25:42 +02:00
Jürg Lehni
2851d8e403
Define Base#toString() as a mean to render Base objects as object literals, and use it for Key.modifier and onFrame() event objects, through Base.merge() conversion.
2011-07-07 14:10:02 +02:00
Jürg Lehni
d1185c5f8b
Implement support for properly validating 'data-paper-NAME' attribute names, along with the current 'NAME'.
2011-07-06 21:19:38 +02:00
Jürg Lehni
79c0ad8cc5
Update copyright notices.
2011-07-01 12:17:45 +02:00
Richard D. Worth
ac39873693
Whitespace. Removed all trailing whitespace from .js files
2011-06-30 06:01:51 -04:00
Jonathan Puckey
5982196c66
PaperScript: add todo for supporting scripts with type: 'text/x-paperscript'.
2011-06-30 10:58:09 +02:00
Jürg Lehni
28921e9a76
Update PaperScript to work with new parse-js and beautify code so that line numbers in error messages remain correct.
2011-06-28 10:52:50 +02:00
Jürg Lehni
fa29686202
Define Base.hyphenate, to hyphenate camelized strings.
2011-06-26 00:47:40 +02:00
Jürg Lehni
7cd749e63d
Change all documentation to new convention of defining @class outside injection scope, fix some comments and a few errors with examples.
2011-06-22 23:56:05 +01:00
Jürg Lehni
1d9bad5d01
Define view.updateFocus(), to loop through all scopes and their views and set the focus on the first active one, and call it whenever the browser is scrolled.
2011-06-21 21:49:36 +01:00
Jürg Lehni
54964907dd
Change Base.merge so that it produces a new hash and merges all passed hashes into it in sequence.
2011-06-20 20:24:33 +01:00
Jürg Lehni
9b9810faf3
Define Base.merge() and use it to merge _defaults in CharacterStyle.
2011-06-20 15:28:50 +01:00
Jürg Lehni
55724b0e29
Move defaults handling fully to Style base class.
2011-06-20 14:10:37 +01:00
Jürg Lehni
b9ebd12d22
Improve documentation of added Base methods.
2011-06-20 13:56:08 +01:00
Jürg Lehni
596cc8f83b
Implement #_needsRedraw() mechanism in PaperScope and Project, to notify Views of redraws required by changes in appearance.
2011-06-19 23:03:18 +01:00
Jürg Lehni
f3f49a34c6
Fix documentation so PaperScope#version shows up too in global scope.
2011-06-15 11:09:35 +01:00
Jürg Lehni
08bbff790d
Improve PaperScope documentation.
2011-06-14 23:05:12 +01:00
Jürg Lehni
d90e0ec07e
Define paper.version.
2011-06-14 23:04:59 +01:00
Jürg Lehni
2ec34512d1
Ignore all documentation that caused warnings about leakage.
2011-06-14 23:02:34 +01:00
Jürg Lehni
ffa79f4fd1
Clean up white spaces in comments.
2011-06-14 22:59:45 +01:00
Jürg Lehni
7c57324b3a
Switch to Bootstrap.js version that is produced by compiling it with CORE_ONLY flag, and adapt Base.js so Base still gets exported.
2011-06-03 21:20:36 +01:00
Jürg Lehni
ad335374cd
Copyrights are included correctly in the paper.js file.
2011-05-31 22:22:07 +01:00
Jonathan Puckey
434268fbd1
Document the properties of PaperScope to be global.
2011-05-31 15:18:37 +02:00
Jürg Lehni
84b1d865c1
Remove unused variable.
2011-05-20 14:08:04 +01:00
Jürg Lehni
b37ba3d858
Add a generic clone() method to all classes through Base which creates a new item using the constructor and passing 'this'.
2011-05-19 18:34:22 +01:00
Jürg Lehni
26269d394a
Rename project/ProjectView -> ui/View.
2011-05-17 13:29:07 +01:00
Jürg Lehni
7b4dd222ac
Completely decouple ProjectView from Project.
2011-05-17 13:25:46 +01:00
Jürg Lehni
7d1d6fa9da
Define Base.initialize() as a general purpose way to initialize a newly created object with values from a provided object and default values from another, in case they are not provided.
2011-05-17 13:12:19 +01:00
Jürg Lehni
cfe968d30e
Rename Document -> Project, DocumentView -> ProjectView, paper.document -> paper.project and paper.documents -> paper.projects, to avoid name clashing with window.document.
2011-05-16 13:33:15 +01:00
Jürg Lehni
9f34042bae
Fix comment.
2011-05-16 11:19:47 +01:00
Jürg Lehni
71bf4fdbca
Two forms of scoping are required when evaluating PaperScripts: with(){} and a function scope, so local vars are not trying to override properties on the scope through with(){} (e.g. var view = ...).
2011-05-16 11:00:33 +01:00
Jürg Lehni
2773ef693a
Add PaperScope#view and #layer as shortcuts to #document.activeView / activeLayer.
2011-05-16 10:59:45 +01:00
Jürg Lehni
98a59a3011
Rename PaperScript#run() to #evaluate() and add it to PaperScope too.
2011-05-16 01:22:06 +01:00
Jürg Lehni
c403dccea3
Expose capability to run PaperScripts from script tags.
2011-05-16 00:57:13 +01:00
Jürg Lehni
30e3359d1d
Split PaperScope#remove() into #clear() and #remove(), so scopes can be reused.
2011-05-16 00:56:47 +01:00
Jürg Lehni
593813660a
Associate PaperScope objects with the script tag that produced them through an assigned unique id.
2011-05-16 00:29:29 +01:00
Jürg Lehni
690a79722f
Add alternative code for setting handler on tool that does not rely on eval(), commented out for now.
2011-05-15 23:56:41 +01:00
Jürg Lehni
535e5fc5fc
Add support for onResize handler.
2011-05-15 23:46:34 +01:00
Jürg Lehni
c1dc823706
Move onFrame handler to DocumentView.
2011-05-15 23:37:40 +01:00
Jürg Lehni
f69b0a404a
Remove unused #document from Tool.
2011-05-15 22:45:15 +01:00
Jürg Lehni
9c97e44207
Have Base.splice() delete the indices of removed items.
2011-05-15 21:37:01 +01:00
Jürg Lehni
36c9286ca9
Add #count to onFrame() event.
2011-05-15 18:08:41 +01:00
Jürg Lehni
06f16d0c2a
Define a unique id for each PaperScript.
2011-05-15 11:32:42 +01:00
Jürg Lehni
064f3e05d3
Simplify paper scope switching code for now, as key handling code depends on paper object to always point to a valid one. This is a workaround, rethinking of how key handling should be distributed across multiple instances within one page is required.
2011-05-14 20:08:14 +01:00
Jürg Lehni
f6f307822a
Fix comment.
2011-05-14 17:23:00 +01:00
Jürg Lehni
01fdeb270b
Move PaperScript.js to core.
2011-05-14 17:22:49 +01:00
Jürg Lehni
8375a97d55
Scope setting / restoring can be simplified since it should never be nested.
2011-05-14 15:59:19 +01:00
Jürg Lehni
518803f492
Add support for switching PaperScope contexts in PaperScript code exeuction and callback handling. This should add proper support for multiple PaperScript instances in one site.
2011-05-14 14:15:31 +03:00
Jürg Lehni
a1efd85ecb
Improve PaperScope definition so it also works when using load.js, and seperate paper.js code into core/Base.js and core/PaperScope.js.
2011-05-14 13:38:45 +03:00