kangax
ca11620451
Replace map with for loop for perf. reasons (as this method is likely to be called thousands of times).
2011-02-09 01:03:04 -05:00
kangax
ba4486e5be
Use Array.prototype.slice to convert nodelist to an array (slice is usually faster; it makes sense in this context where nodelists (i.e. shapes) could consist of thousands of elements).
2011-02-09 00:14:12 -05:00
kangax
550bb5da3d
Remove debugger leftover from gradient.js.
2011-02-06 23:25:19 -05:00
kangax
fef2fd4666
Experiment with multiline text (incomplete; need to properly determine height of the bounding box).
2011-02-06 04:09:40 -05:00
kangax
263206a7a0
Remove remaining pieces of Prototype.js
2011-02-06 04:06:40 -05:00
kangax
da6b00fc0e
Introduce fabric.Element#stateful and fabric.Element#renderOnAddition options, as a way to improve performance. Note that setting "renderOnAddition" to false could give a pretty significant performance boost when adding a lot of objects to canvas at once, since fabric.Element#add would not re-render canvas on each addition. Once added, the canvas should be re-rendered manually, via renderAll method.
2011-02-06 02:58:32 -05:00
kangax
bb4aad1de5
Modify cufon and text class to support textDecoration (underline/overline), fontStyle (italic), and textShadow (any valid CSS value).
2011-02-01 19:57:01 -05:00
kangax
bf8bb679f7
Remove an assignment that was used for debugging.
2011-01-23 03:42:17 -05:00
kangax
0dae843114
Revamp object corner detection logic (now, finally, corners are detected properly).
2011-01-23 03:30:22 -05:00
kangax
6e8810d791
Gradient color stops can now be parsed from style attribute of <stop> elements (which are children of <gradient> elements). Fix gradient rendering logic, where rendering point would originate from center of the shape, instead of a proper top/left corner. Add 2 more example gradients to the demo page.
2011-01-20 01:42:00 -05:00
kangax
580c0680f0
First stab at parsing + applying css rules to SVG elements. Needs unit tests!
2011-01-19 02:30:35 -05:00
kangax
b35ebd0bb2
Reorganize SVG gradients parsing in such way so that during parsing, objects (to apply those gradients to) were available; we need this to be able to apply percent-based values properly (e.g. x2="100%" should be translated to an object's width, y2="50%" -- to object's height / 2, etc.).
2011-01-09 02:09:28 -05:00
kangax
a40e9cd610
Initial implementation of gradients. Work in progress (but demo page now has working "gradientify" button). Still need to add tests, and make sure gradient-based fills on SVG elements are parsed/set properly.
2011-01-09 01:38:54 -05:00
kangax
80148361f3
Add support for parsing <image> SVG elements and creating fabric.Image instances out of them. Backwards-compatibility note: fabric.parseElements changed signature from (elements, options) to (elements, callback, options) and is now an "asynchronous" method -- doesn't return a value, but instead passes it to a callback function (second argument).
2011-01-07 19:53:19 -05:00
kangax
2eea8d4468
Fix style attribute parsing + tests. Add one more shape to the demo (which utilizes style attribute).
2011-01-06 17:13:07 -05:00
kangax
b550020024
Elements that are descendants of <defs> elements are no longer rendered (as per spec).
2011-01-06 15:20:56 -05:00
kangax
d5a82f3fd9
Make sure straight lines are rendered.
2010-12-25 21:48:48 -05:00
kangax
661ea4de04
"text" property of text objects should be a "state property" (used in undo/redo management).
2010-12-25 21:48:42 -05:00
kangax
cc9d469b81
fabric.Element#remove should clear active object if it's active object that's being removed.
2010-12-25 21:45:30 -05:00
kangax
33278ae20b
Reorganize fabric.Element in such way so that centering and aligning guidelines could work together.
...
`fabric.Element#onObjectMove` callback is gone, replaced by "object:moved" event (which allows subscription to the event by multiple parties).
Similarly, `fabric.Element#onMouseUp` is replaced with "mouse:up" event, and `fabric.Element#afterRender` with "after:render" one.
The drawback of these events, as of now, is that it's not possible to determine which canvas instance fired which event --
in case of multiple canvas instances in a document, this could get hairy. Will probably fix it by introducing some kind of `Observable` mixin,
which would add "observe" and "fire" methods to `fabric.Element` itself.
2010-10-31 22:42:20 -04:00
kangax
45795824ac
First stab at centering guidelines and snapping to a center (vertical/horizontal).
2010-10-30 21:47:15 -04:00
kangax
f497327131
Fabric now runs fully under ES5 strict mode (except certain 3rd party dependencies, like cufon.js and json2.js).
2010-10-21 22:54:00 -04:00
kangax
948d3998c8
A couple more doc fixes and build distribution + minified.
2010-10-19 16:31:39 -04:00
kangax
f052a067ef
More documentation.
2010-10-19 16:27:24 -04:00
kangax
33e929053e
More documentation.
2010-10-15 12:55:53 -04:00
kangax
2f168d05a9
Add few sample fonts and cufon.js (which is a dependency for fabric.Text).
2010-10-15 00:56:54 -04:00
kangax
639aa12e2a
Another chunk of documentation (which is a bitch, by the way).
2010-10-14 22:16:24 -04:00
kangax
415205d3f2
Document bunch of API (still incomplete, but getting there).
2010-10-14 17:42:39 -04:00
kangax
e70830f7d6
Introduce fabric.log and fabric.warn methods, as simple wrappers around console.log and console.warn (instead of declaring those methods right on console). This makes it easier to mock them when testing, and is generally safer due to less tinkering with host objects.
2010-10-11 14:45:06 -04:00
kangax
b35b559c6a
String.prototype.trim now strips '\xA0' characters in engines which fail to match that character via \s. Fix a couple of unit tests.
2010-09-14 18:57:55 -04:00
kangax
769c0c1eb7
Function.prototype.bind now calls object it's being invoked on indirectly (better spec compliance), thanks Garrett Smith;
...
Unit test `fabric.util.makeElementUnselectable` and make test names in util module more descriptive.
2010-09-14 12:53:29 -04:00
kangax
d8937fca9f
Only render circles and ellipses according to left/top when they are part of a group.
2010-09-09 17:55:43 -04:00
kangax
e9fd7c6166
Fix bug in Polyline and Polygon points attribute parsing (thanks to unit tests).
2010-09-09 17:10:21 -04:00
kangax
8ed28fa260
Typo in Function.prototype.bind. Fix incorrect positioning when drawing circles and ellipses.
2010-09-08 23:07:52 -04:00
kangax
13db51994e
Normalize points (according to containing box) when creating Polygon and Polyline objects from elements.
2010-09-08 16:39:51 -04:00
kangax
652712601e
Canvas.Polygon.prototype._toOrigin is not used and is not needed, so remove it;
...
`parsePointsAttribute` can now parse values like "a b c d", not only "a,b c,d".
2010-09-08 16:35:06 -04:00
kangax
d00a37d593
More effecient Function.prototype.bind and unit tests for bind, getById, and toArray.
2010-09-06 12:33:57 -04:00
kangax
371d38c0de
Fix typo.
2010-09-01 17:58:42 -04:00
kangax
6ba986da49
Add unit tests for fabric.util.object.extend and fabric.util.object.clone.
2010-09-01 17:56:59 -04:00
kangax
eba95c6ee7
Loading data from json (via loadFromJSON rather than loadFromDatalessJSON) should preserve z-index order of objects
...
(but ideally, we need to get rid of duplication in `loadFromJSON` and `loadFromDatalessJSON`).
2010-08-30 19:11:14 -04:00
kangax
13d87dd060
Extend canvas element through excanvas' initElement in fabric.Element.supports.
2010-08-27 13:19:36 -04:00
kangax
2d7d61d82a
Do not set background color value to "transparent", as that results in IE8 painting black. Use "rgba(0,0,0,0)" instead.
2010-08-27 12:29:06 -04:00
kangax
7d2c7a35f2
Various IE fixes (most of the demo pages now function).
2010-08-27 12:27:49 -04:00
kangax
b04d187a04
Make free drawing path round and make sure something it's drawn immediately, on mousedown, not just on mousemove.
2010-08-10 23:26:41 -04:00
kangax
5f18c43e91
More free-drawing tweaks. Paths can now be created with different stroke width and color. Add these options to demo.
2010-08-10 19:25:14 -04:00
kangax
9d018caf40
First draft of support for free drawing.
2010-08-10 18:29:33 -04:00
kangax
81cf81b34d
Add support for locking of movement (horizontal or vertical), rotation and scaling of objects.
2010-08-04 23:23:16 -04:00
kangax
36a50ab3e8
Rendering fixes.
2010-08-02 14:50:07 -04:00
kangax
ef73b46f7c
Fix simple shapes (triangle, circle, etc.) being drawn with corners while in selection. Minor perf. improvements.
2010-08-02 14:13:07 -04:00
kangax
37abb1b8d8
Load demo images locally (to prevent SOP errors when serializing an image).
2010-08-02 11:00:38 -04:00
kangax
7e7a7ff719
Math.floor --> ~~ for slight perf. increase (only do this for positive numbers).
2010-07-31 14:06:10 -04:00
kangax
9a9605fecd
Alias Math.* methods for slight perf. increase.
...
Remove `fastestClearingMethod` test, as webkit has rendering bugs with `canvas.width = canvas.width` type of clearing.
Rename some properties/methods in `fabric.Element` from `_oXxxxx` & `_aXxxxx` to `_xxxxx`.
Add test for `fabric.Element::onFpsUpdate`.
2010-07-31 13:55:10 -04:00
kangax
89e61ed6d0
Add onFpsUpdate callback to fabric.Element. Display FPS in demo.
2010-07-30 19:39:12 -04:00
kangax
3adc592778
Make loadFromDatalessJSON set design background. Make sure its callback is invoked even if there are no objects in json.
2010-07-30 09:50:23 -04:00
kangax
a2bb25043c
toJSON now returns object instead of a string (fixes bug with JSON.stringify returning incorrect — double — serialization of an object).
2010-07-29 13:50:09 -04:00
kangax
2c8540f3b4
Forgot to pass callbacks to fxCenterObjectH and fxCenterObjectV.
2010-07-28 16:35:01 -04:00
kangax
536d532d41
Various compatibility fixes. Add fabric.util.falseFunction.
2010-07-27 17:58:23 -04:00
kangax
313cffa57f
Remove try/catch from around event handlers (for perf. reasons). Remove APE.anim references from fxCenterObjectH and fxCenterObjectV.
2010-07-27 14:07:59 -04:00
kangax
0583d7718d
Some more aliasing. Build + minify.
2010-07-26 19:24:16 -04:00
kangax
ad679a6f87
Create local aliases of some of the "long" methods.
2010-07-26 19:20:19 -04:00
kangax
04ec1688e9
Remove some unused "stub" code.
2010-07-26 18:49:51 -04:00
kangax
a535b004e6
Fix few Prototype dependencies.
2010-07-26 18:00:02 -04:00
kangax
e5fa742aff
Alias some methods in fabric.Element for perf. reasons. Few improvements to demo.
2010-07-26 14:58:49 -04:00
kangax
9f77d3a0a5
Add google closure compiler and explain how to minify fabric.js with it. Fix few omissions in jsdoc comments.
2010-07-26 00:48:26 -04:00
Juriy Zaytsev
5f04e2d495
Add fabric.Triangle class (untested for now). Start beefing up demo.
2010-07-24 01:03:28 -04:00
Juriy Zaytsev
a0221539e7
Make sure line color can be set via "fill" property.
2010-07-23 23:42:06 -04:00
Juriy Zaytsev
492eda82a6
Fix loading order of objects in loadFromDatalessJSON. Fix few unit tests.
2010-07-13 16:17:33 -04:00
Juriy Zaytsev
2340a98526
Rename canvas_*.class.js files to just *.class.js
2010-07-09 21:50:13 -04:00
Juriy Zaytsev
2004756f65
Add copyright comment. Update minified version.
2010-07-09 21:25:28 -04:00
Juriy Zaytsev
2e72a4d8c5
Rename Canvas.* to fabric.* (lowercased name makes more sense since Canvas is not a constructor).
2010-07-09 19:43:50 -04:00
Juriy Zaytsev
4b5ac284e8
Fix remaining failing tests.
2010-07-09 18:58:33 -04:00
Juriy Zaytsev
f96efe8e3d
Replace APE animation with Canvas.base.animate in Canvas.Element::fxStraighten.
2010-07-09 14:26:49 -04:00
Juriy Zaytsev
90d8545644
Add Canvas.base.animate (still needs tests!).
2010-07-09 14:22:35 -04:00
Juriy Zaytsev
7242ea93de
Change Prototype unit testing framework to QUnit; change all tests accordingly.
2010-07-09 10:21:40 -04:00
Juriy Zaytsev
be20251d85
Remove few more prototype-isms, start transitioning to QUnit (it's not ideal, but should do for now).
2010-06-26 22:57:02 -04:00
Juriy Zaytsev
8ee515e647
Add Canvas.base.request and finally make demo page work. Remove remnants of Prototype.js from fabric.js.
2010-06-24 03:37:02 -04:00
Juriy Zaytsev
9e1bf5b322
Replace Event.stopObserving with Canvas.base.removeEventListener.
2010-06-24 02:16:52 -04:00
Juriy Zaytsev
61fbfae2d8
Start experimenting with scout.js (on-demand code fetching based on feature test). Remove some redundant code from Canvas.Element. Add demo folder to /test.
2010-06-17 13:15:51 -04:00
Juriy Zaytsev
05a6aa4d42
Prototype.js and APE.js are no longer dependencies (shrinking overall size of fabric.js by ~150KB). Add json2.js and a simple base library (still needs tests).
2010-06-17 10:00:47 -04:00
Juriy Zaytsev
fa4224649c
Building dist file is now done via sprockets.
2010-06-11 19:37:06 -04:00
Juriy Zaytsev
fcb2877557
Replace $w with split(' ') (to remove dependency on global, non-descriptive variable and Prototype in general). Add few missing console.warn statements when double initialization is attempted.
2010-06-11 10:29:12 -04:00
Juriy Zaytsev
0394fb94ad
Small tweaks: normalize whitespace and brackets, make initialization of "classes" consistent.
2010-06-10 13:57:59 -04:00
Juriy Zaytsev
ca0df1bd15
"Collapse" few var statements.
2010-06-10 11:49:13 -04:00
Juriy Zaytsev
36416e65a3
Split 2D.js into canvas_point.class.js and canvas_intersection.class.js
2010-06-10 11:37:51 -04:00
Juriy Zaytsev
ea4e1e3a9c
Add W3C SVG 1.2 Tiny test suite
2010-06-10 11:14:53 -04:00
Juriy Zaytsev
1893b691c5
Delete bezier.js
2010-06-09 23:58:41 -04:00
Juriy Zaytsev
3df6dadf08
Fix inconsistent whitespace in 2D.js
2010-06-09 23:32:12 -04:00
Juriy Zaytsev
770e47b115
Add a couple more dependencies to /lib. Remove unneeded code from 2D.js and unminify it.
2010-06-09 23:30:25 -04:00
Juriy Zaytsev
c519c147aa
Initial import of source files.
2010-06-09 18:34:55 -04:00