kangax
c823799657
Build distribution file.
2011-07-21 20:36:18 -04:00
kangax
76b67aa34c
[BACK_INCOMPAT] More consistent option names in fabric.Text: fontfamily --> fontFamily, fontsize --> fontSize, fontweight --> fontWeight (similarly to other options, like textShadow, textDecoration, fontStyle, etc.)
2011-07-21 20:32:02 -04:00
kangax
7c03c115ac
Fix bug with extend not being defined.
2011-07-21 16:49:43 -04:00
kangax
e3dd685f1b
Add support for "textAlign" in fabric.Text. Could be any of "left", "center", or "right" values. Works with multiline text.
2011-07-21 14:53:48 -04:00
kangax
3bd5d8c1a3
Add grayscale example to customization demo. Add "mouse:move" event to fabric.Canvas and a corresponding demo.
2011-07-18 14:36:17 -04:00
kangax
b99a456989
Build files are now organized in such way that it's possible to build fabric w/o support for text and/or serialization.
2011-07-15 18:16:14 -04:00
kangax
89c030ebdf
Closes #18 . Less confusing method names: removeActiveObject --> discardActiveObject, removeActiveGroup --> discardActiveGroup (since both of those methods don't actually _remove_ objects). [BACK_INCOMPAT]
2011-07-15 11:39:48 -04:00
kangax
c046bbd5f1
Closes #34 — Support multiple sequences of command arguments in SVG paths.
2011-07-09 15:50:44 -04:00
kangax
15aef846e3
Move fx-related methods from canvas.class.js to a separate canvas.fx.js "module".
2011-07-09 12:18:51 -04:00
kangax
48a02e5ecb
Path objects that are part of the group now have 'group' property that references their parent group. Path that are part of the group are now positioned in better accordance with spec.
2011-07-09 11:10:40 -04:00
kangax
e042c1dd10
Bump version to 0.4 since compat-breaking change (events revamp) was introduced.
2011-07-06 16:46:49 -04:00
kangax
85a256a8e7
Make events more consistent.
...
"object:moved" --> "object:moving" (since it's a continuously fired event).
"object:scaled" is gone (since this case can be solved with "object:modified").
"group:modified" is gone (since this case can be solved with "object:modified").
"group:selected" --> "selection:created".
"before:group:destroyed" --> "before:selection:cleared" (only fires when there is active object or group).
"after:group:destroyed" --> "selection:cleared" (only fires when there is active object or group).
2011-07-06 15:12:44 -04:00
kangax
2b3a166d2f
fabric.util.animate is now defined in util/misc.js rather than util/dom_misc.js as it has nothing to do with DOM.
2011-07-06 14:38:56 -04:00
kangax
e3c311dfb5
Add support for elliptical arc commands (a, A) in SVG paths. Thanks @devongovett for initial code (and algorithm). Add 4 different arc test files (can be loaded in kitchensink demo).
2011-07-05 01:28:03 -04:00
kangax
5fc29b1dbb
Add fabric.Object#animate. Tests to come.
2011-07-04 23:28:32 -04:00
kangax
0e3831ed6f
Expose cursor style for hovered objects through fabric.Canvas#HOVER_CURSOR for customization purposes.
2011-07-02 01:33:43 -04:00
kangax
1bed43e3c4
Add unit tests for fabric.Observable. fabric.Canvas#observe can now accept object — canvas.observe({ event1: ..., event2: ... }).
2011-07-02 01:19:32 -04:00
kangax
dcb6ac67a5
"mouse:down" and "mouse:up" events are now being passed clicked target (when one exists). Add example with opacity and no boundaries (transparent boundaries) on an object.
2011-06-30 14:46:30 -04:00
kangax
a64f622e61
Bump version to 0.3. Experiment with using native canvas fillText for fabric.Text. Turns out multiline text is not supported natively. Will experiment more.
2011-06-30 14:37:39 -04:00
kangax
628efcdc70
fabric.Element is renamed to fabric.Canvas, which makes more sense. fabric.Element is kept for compatibility reasons (but is deprecated). Bump version to 0.3.
2011-06-28 19:14:40 -04:00
kangax
c6950d9be8
Build distribution file.
2011-06-28 10:19:23 -04:00
kangax
6845db3670
Rework observable mechanism: All events are now scoped to canvas instances. fabric.util.observeEvent(...) becomes canvas.observe(...) and only observes events of that particular canvas instance. fabric.util.observeEvent becomes fabric.util.observe, fabric.util.stopObservingEvent — fabric.util.stopObserving, and fabric.util.fireEvent — fabric.util.fire. These could still serve as a generic pub-sub mechanism. Add "mouse:down" event (to be consistent with "mouse:up"). Add "Event inspector" demo page.
2011-06-27 18:25:45 -04:00
kangax
e7aafae9e7
Add support for "opacity" attribute.
2011-06-14 17:28:54 -04:00
kangax
27c72bd634
Use set with object in tests (rather than chaining it).
2011-06-14 10:11:25 -04:00
kangax
0a9d835b12
Dynamically generate accessors based on state properties — width, height, fill, opacity, scaleX, scaleY, etc. For example, rect.set('fill', 'red') can now be replaced with rect.setFill('red'), and rect.get('opacity') with rect.getOpacity().
2011-05-31 00:56:01 -04:00
kangax
d7fd8f0af3
fabric.Object#set can now be passed an object of property/value pairs rather than just property and value. E.g.: rect.set({ width: 100, height: 50, fill: 'red' }).
2011-05-29 21:59:48 -04:00
kangax
1d9247ab3a
When cloning canvas (in toDataURL, for example) make sure to clone clipTo (clipping function) property as well.
2011-05-26 09:03:11 -04:00
kangax
c1150c714a
fabric.Element now has forEachObject. Add header to /demos, /tests and /docs pages.
2011-05-22 09:57:37 -04:00
kangax
abaa87fbd0
Add fabric.Text#backgroundColor (can be used for text highlighting). Change default lineheight of text objects from 1 to 1.6.
2011-05-13 14:34:24 -04:00
kangax
fe37bc66a0
fabric.Element#loadImageFromURL no longer displays image that's being loaded. Fix getPointer unit test.
2011-05-11 18:58:51 -04:00
kangax
3ea4a4ad95
Fix majority of failing unit tests.
2011-05-11 18:17:21 -04:00
kangax
1f0b1280d4
Add unit tests for fabric.Object#selectable; make sure "selectable" is part of toJSON/toObject output. Fix failing fabric.Object unit tests.
2011-05-11 17:48:43 -04:00
kangax
79e37bbf30
Add fabric.Object#selectable Boolean property (true by default), which can be used to control object selection.
2011-05-11 15:56:49 -04:00
kangax
7041b64ad6
Update minified file.
2011-05-10 19:02:31 -04:00
kangax
a7f7bdaf80
Make _removeDefaultValues more flexible.
2011-05-10 16:41:51 -04:00
kangax
39184f5ac4
Version 0.2 --> 0.2.1
2011-05-10 16:27:00 -04:00
kangax
14e988aa9f
lockScaling constrain is now broken into lockScalingX and lockScalingY ones. Add lockUniScaling to be able to prevent non-proportional scaling of an object. lockHorizontally is now lockMovementX and lockVertically is now lockMovementY for consistency. Change demo accordingly.
2011-05-05 17:02:46 -04:00
kangax
5c7440cc13
Fix leaking of one element's attribute values onto another (following) element during SVG parsing.
2011-04-29 16:44:49 -04:00
kangax
74dcd851dd
Animation benchmark now allows to dynamically change scale of animated objects, load different shapes, and change canvas size. This allows us to see how all these aspects (e.g. canvas size or shape size) influence canvas rendering performance.
2011-04-23 17:39:56 -04:00
kangax
e61f46b44c
Add "lineHeight" to fabric.Text options. Add slider to control line height of selected text to demo.
2011-04-20 16:36:31 -04:00
kangax
a29aa82518
Add experimental clipping support.
2011-04-11 02:41:55 -04:00
kangax
cc0c5085d7
Add fabric.Circle#getRadiusX, fabric.Circle#getRadiusY methods.
2011-04-09 17:37:35 -04:00
kangax
752eff298d
Few small IE fixes.
2011-03-29 13:27:28 -04:00
kangax
9853b4a18f
Add rudimentary support for stroke style. Fix IE errors on a demo page.
2011-03-28 18:57:40 -04:00
kangax
91205b4bb6
More text enhancements and fixes. Demo page now has italic/underline/overline/line-through and shadow buttons for text manipulations.
2011-03-21 17:24:36 -04:00
kangax
b60edcc379
Much more usable multiline text.
2011-03-21 03:53:23 -04:00
kangax
4046084994
Revamp canvas initialization (now simpler, more maintainable, and makes more sense after removing old cruft). Bump version to 0.2. Back. compat warning: wrapping canvas container now has a "canvas-container" class instead of "canvas_container" (the actual class name can also be changed via fabric.Element#CONTAINER_CLASS); canvas background element is no longer created (as it wasn't really used).
2011-03-17 17:59:52 -04:00
kangax
7770e2a09c
Build distribution.
2011-03-01 19:27:48 -05:00
kangax
d9828321ca
Fix text rendering in IE9. Now fully works! Fix fabric.Element#insertAt not calling setCoords and setupState on added object. This was affecting fabric.Element#loadFromJSON. Thanks vepkenez for bringing it up.
2011-02-17 16:41:16 -05:00
kangax
dc83c95e7d
Rebuild distribution file.
2011-02-13 15:30:44 -05:00
kangax
ef425d18c5
Fix some of the parser.js unit tests by making resolveGradients more lenient.
2011-02-11 01:44:08 -05:00
kangax
7e6b615601
Fix simple shapes test. Make sure objects' coords are set even when fabric.Element#stateful is false.
2011-02-09 18:40:38 -05:00
kangax
df76f5d688
Change the way options are set for an object (don't use options property — which makes for quite expensive iteration during initialization — and instead take advantage of prototypal inheritance).
2011-02-09 18:21:45 -05:00
kangax
2ade9dc0f8
More optimizations: setCoords doesn't need to be invoked on an object before it's added to canvas. This makes most sense when creating path groups, since each of the paths in a path group doesn't really need to have coords. Coords are used to determine object boundaries when moving/scaling/rotating objects, and paths in pathgroup never participate in it (instead, pathgroup does).
2011-02-09 17:30:35 -05:00
kangax
45c9a333a8
Few optimizations in _parsePath implementation.
2011-02-09 16:35:46 -05:00
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
4d86890b68
Few tweaks to raphael vs fabric tests.
2011-02-06 04:28:04 -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
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
19a82b2b50
Add test for elements inside <defs> being ignored.
2011-01-06 15:38:20 -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
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
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
30a8e12c73
Cache Math.PI * 2 when rendering ellipses. Build distribution files.
2010-09-09 17:57:10 -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
2b73b27c09
Add fabric.version (start with 0.1).
2010-09-08 23:13:00 -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
43d11b6914
In demo, notify about inability to serialize canvas to an image when toDataURL is not supported.
2010-08-27 13:25:10 -04:00
kangax
c6f4f3f61d
Build distribution files
2010-08-27 12:30:13 -04:00
kangax
9d7254d86e
Add distribution versions minified via uglify.js
2010-08-27 12:26:12 -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
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
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
ef93d70c52
Update distribution and minified files.
2010-07-27 14:11:38 -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
6593983196
Change copyright to include development start date. Remove old, unused files from /test/lib.
2010-07-26 16:35:58 -04:00
kangax
9cc06090b9
Update distribution and minified files.
2010-07-26 16:33:21 -04:00
kangax
8388559b42
Add alternative minified version of fabric (via google closure compiler) and corresponding gzipped versions (for comparison). Do not set angle of circles in benchmark.
2010-07-26 01:43:25 -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
7e06c09369
Update distribution and minified distribution files.
2010-07-13 16:19:08 -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
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
a36a5b2915
Add build files, both — just concatened and minified with YUIC
2010-06-11 01:32:18 -04:00