Commit graph

713 commits

Author SHA1 Message Date
Kienz
292178474d fabric.Object#visible bugfixes and improvements
Bugfixes if perPixelTargetFind = false => object are found if they are invisible with mouse hover.
Only consider visible objects in findTarget (improvement).
2013-03-20 19:17:39 +01:00
kangax
919f95a0a0 Move collection-related methods to fabric.Collection, shared by fabric.Canvas and fabric.Group. 2013-03-20 10:28:35 +01:00
kangax
8bea909a54 Merge master 2013-03-19 15:52:14 +01:00
kangax
2a5645fcd5 Fix scaling event not firing sometimes. Thanks @rcyrus. 2013-03-19 15:36:25 +01:00
kangax
7f19110967 Update docs on left/top being relative to object center 2013-03-19 13:20:21 +01:00
Kienz
4800b0729b fabric.Group#visible = false did not work
The fabric.Object#visible attribute has no affect to fabric.Goup and its objects.
2013-03-18 14:32:05 +01:00
kangax
e8e32e80de Fix gradient colorStops initialization. Thanks @Kienz 2013-03-18 13:11:31 +01:00
kangax
9bb38c144c Fix toDataURL not honoring format. Thanks ebirbal. 2013-03-18 13:03:54 +01:00
kangax
7123ea357f Fix JSHint warnings 2013-03-16 16:41:36 +01:00
kangax
2622a380bf [BACK_INCOMPAT] fabric.Group#objects -> fabric.Group._objects (making it consistent with canvas._objects). Objects in group always have group reference to a group they're in. bringToFront, sendToBack, etc. now work in relation to group when called on objects within group. 2013-03-16 16:41:19 +01:00
kangax
85fd7ee852 Add support for clipping objects. Closes #64 2013-03-10 21:06:17 +01:00
kangax
012c333bbb Fix gradient initialization 2013-03-10 21:05:24 +01:00
kangax
e886fee63d Add docs for ellipse rx/ry 2013-03-10 21:04:44 +01:00
Juriy Zaytsev
c366e1d184 Merge pull request #470 from Kienz/visiblePropFix
Bugfix fabric.PathGroup if object is not visible
2013-03-09 15:04:58 -08:00
Kienz
5fec23e7c1 JSHint - remove extra comma at the end of the fabric.Color.colorNameMap object 2013-03-09 22:38:42 +01:00
Kienz
df46e3af26 Bugfix fabric.PathGroup if object is not visible
- if object is not visible and of type 'path-group' the object was still drawn
2013-03-09 22:15:31 +01:00
Kienz
e35e1a0191 [BACK_INCOMPAT] Implement fabric.Gradient#toSVG() and radialGradient
- Implement radial gradient and expand linear gradient (stop-opacity should now take into account)
- Gradients should now be included in the SVG output for the following fabric objects: circle, ellipse, line, path, polygon, polyline, rect and triangle (text is not yet implemented)
- Gradients (linear / radial) can be applied to stroke or fill property => change setGradientFill(options) to setGradient(type, options)
- Change toObject() that linear and radial gradients can be serialized
- Expand fabric.Color by 16 basic colors fabric.Color.colorNameMap => gradients with e.g. stop-color="blue" and stop-opacity="0.5 can be converted to RGBA color
- RGBA colors in svg has no affect (convert to RGB color), only stop-opacity has affect to color opacity
- Attached some test svg files http://kienzle.geschaeft.s3.amazonaws.com/projects/fabricjs/gradients/gradients.rarUpdate setGradient and addColorStop interface

Update setGradient and addColorStop interface
- setGradient('fill', {x1: 50, y2: 10, colorStops: {'0.7', 'rgba(0,153,153,0.5)'}});
- addColorStop({'0.4', 'blue'});
2013-03-09 21:00:54 +01:00
kangax
ece75b6065 Remove unused maxY variable 2013-03-09 15:28:30 +01:00
Juriy Zaytsev
79575b9dc7 Merge pull request #467 from xxorax/master
Fix backgroundColor render on nodejs
2013-03-08 15:59:02 -08:00
root
b6a178d8a1 Fix backgroundColor render on nodejs 2013-03-09 00:34:54 +01:00
root
246c45d57c Merge branch 'master' of github.com:xxorax/fabric.js
Conflicts:
	src/node.js
2013-03-09 00:32:11 +01:00
Atis
70d3c702b1 fix infinity check so that Closure Compiler does not choke on it 2013-03-08 19:41:33 +02:00
Martin Panel
dfb1e2a230 Fix backgroundColor render on nodejs 2013-03-07 22:14:30 +01:00
Martin Panel
f84a8628c3 Fix backgroundColor render on nodejs 2013-03-07 22:11:30 +01:00
kangax
e917b144aa Remove unnecessary space in SVG output 2013-03-06 18:55:26 +01:00
kangax
506125bbe6 [BACK_INCOMPAT] fabric.Canvas.toDataURL now accepts options object instead linear arguments. fabric.Canvas.toDataURLWithMultiplier is deprecated; use toDataURL({ multiplier: … }) instead. 2013-03-06 18:47:50 +01:00
kangax
43dd170f5b Add fabric.Object#visible property. Closes #342. Version 1.0.13. 2013-03-06 18:45:18 +01:00
kangax
9f934d4dad Minor style change 2013-03-05 19:33:16 +01:00
kangax
39fc445c07 Add fontStyle to delegated properties 2013-03-05 19:33:16 +01:00
llocust
ff8b09fb35 Update dom_event.js
Sorry.. Copy+Past from .min version...
e->event
2013-03-05 04:54:41 +04:00
llocust
5662472f81 Update dom_event.js
On a mobile (touchbased) platform at an event 'touchend' data are stored in the changedTouches array.
2013-03-05 04:14:43 +04:00
kangax
b260845af9 Fix hasControls value being lost after object is part of a group. Closes #445. 2013-03-02 01:39:32 +01:00
kangax
af5a0ac74f Make group getter respect delegated properties 2013-03-02 01:25:34 +01:00
kangax
638876f3f8 Add support for passing additional state properties into saveState 2013-03-02 01:25:08 +01:00
kangax
293227811f Doc additions 2013-02-27 00:48:27 +01:00
Kienz
ae67d83216 Update setGradient and addColorStop interface
- setGradient('fill', {x1: 50, y2: 10, colorStops: {'0.7', 'rgba(0,153,153,0.5)'}});
- addColorStop({'0.4', 'blue'});
2013-02-25 18:26:20 +01:00
kangax
17a88e93e1 Doc fixes 2013-02-24 12:40:16 +01:00
Kienz
4c4f845bfe [BACK_INCOMPAT] Implement fabric.Gradient#toSVG() and radialGradient
- Implement radial gradient and expand linear gradient (stop-opacity should now take into account)
- Gradients should now be included in the SVG output for the following fabric objects: circle, ellipse, line, path, polygon, polyline, rect and triangle (text is not yet implemented)
- Gradients (linear / radial) can be applied to stroke or fill property => change setGradientFill(options) to setGradient(type, options)
- Change toObject() that linear and radial gradients can be serialized
- Expand fabric.Color by 16 basic colors fabric.Color.colorNameMap => gradients with e.g. stop-color="blue" and stop-opacity="0.5 can be converted to RGBA color
- RGBA colors in svg has no affect (convert to RGB color), only stop-opacity has affect to color opacity
- Attached some test svg files http://kienzle.geschaeft.s3.amazonaws.com/projects/fabricjs/gradients/gradients.rar
2013-02-23 17:02:52 +01:00
kangax
7d9c91de70 res -> response and remove unnecessary semicolon 2013-02-22 17:24:22 +01:00
Juriy Zaytsev
4651d6ecd9 Merge pull request #413 from uruz/feature/fix-failing-test
Fix failing test: fabric.util.loadImage
2013-02-22 08:22:09 -08:00
kangax
be4db2f409 Fix doc. Thanks @rodrigopandini 2013-02-20 23:42:38 +01:00
Juriy Zaytsev
a0c31a2628 Merge pull request #437 from Kienz/svgOutputValidation
Ensure valid SVG output (http://validator.w3.org/)
2013-02-20 04:28:32 -08:00
kangax
9be89b2f2f drawCorners -> drawControls, for consistency. Remove unused hasCorners and use hasControls instead of hideCorners. Version 1.0.12 2013-02-20 13:19:22 +01:00
Kienz
686b926955 Valid svg output (http://validator.w3.org/):
- delete width/height attributes from g (http://www.w3.org/TR/SVG/struct.html#GElement) and path element (http://www.w3.org/TR/SVG/paths.html#PathElement)
- update DOCTYPE for svg version 1.1
2013-02-19 19:48:07 +01:00
kangax
80469a23eb Fix createCanvasElement canvas initialization. IE<9 now works again. 2013-02-19 13:34:50 +01:00
Kienz
ec28167906 Fix for issue #433 - wrong width/height of image objects
If svg with image objects was parsed the width/height props 
of the image were overridden by width/height of the svg file.
2013-02-19 09:19:46 +01:00
kangax
9df85553b9 [BACK_INCOMPAT] Add fabric.util.createAccessors. Add accessors for fabric.Text -specific properties (setTextDecoration, setFontWeight, setFontStyle, etc.). Make text object dimensions change when setting dimension-affecting properties. fabric.Text#setFontsize becomes setFontSize. Version 1.0.11. 2013-02-18 16:22:48 +01:00
kangax
5a91472bdc Remove trailing comma 2013-02-17 13:26:45 +01:00
Kienz
b172a47ebe Fixed svg output for backgroundColorPattern with repeat: 'no-repeat' 2013-02-16 18:55:00 +01:00
kangax
a77cbfe2be Text fixes for node-canvas. Version 1.0.9 2013-02-15 14:11:58 +01:00
Kienz
d9f88d061d fabric.Group objects toSVG() order changed
Changed the sort order in toSVG() from "first..last" to "last..first".
If they rendern on canvas the same order is used https://github.com/kangax/fabric.js/blob/master/src/group.class.js#L243
2013-02-15 13:17:12 +01:00
Kienz
5e81f7ab09 Add backgroundColor to svg output
Add backgroundColorPattern to svg output
Bugfix backgroundImage in sag output - width/height are depend on backgroundImageStretch
Bugfix in setBackgroundColor - rename pattern to repeat
2013-02-14 22:06:01 +01:00
Kienz
2cd3525147 Bugfix for wrong offset if object is cloned. Same bug as issue #416 2013-02-13 19:22:19 +01:00
kangax
160e7e5ded Alias fabric.Observable.fire to trigger, similar to jQuery, Backbone, etc. Closes #401 2013-02-11 13:22:30 +01:00
kangax
97fa81aa77 Fix polygon boundaries. Closes #416 2013-02-11 13:21:33 +01:00
kangax
d9291fbfe5 Add shadow support to brushes 2013-02-06 23:55:15 +01:00
kangax
b55c35f865 Merge master 2013-02-06 23:28:17 +01:00
kangax
a0dcad78a1 Specify that fontSize is in pixels 2013-02-06 22:36:39 +01:00
kangax
776d966bdb Remove polygon offsetting fix which broke some SVG shapes 2013-02-06 21:04:14 +01:00
kangax
4995fd9ed1 Fix free drawing path initialization 2013-02-06 20:41:58 +01:00
kangax
a4340fda45 Doc fixes 2013-02-06 16:20:53 +01:00
kangax
c49cbd33bc Fix bug in loadFromJSON 2013-02-06 16:20:53 +01:00
kangax
e4719d4300 Add support for animating 2nd level object properties 2013-02-06 16:20:53 +01:00
Arthaey
48ab4607b9 Add option to suppress XML preamble in toSVG method. 2013-02-05 22:20:56 -08:00
Alexey Boriskin
137aa0eaa5 Fixed failing test: fabric.util.loadImage 2013-02-05 20:51:01 +04:00
kangax
5ee9b13a92 Add support for shadows (via fabric.Shadow) 2013-02-04 20:49:05 +01:00
kangax
8b04e286a8 Log full errors instead of just its messages 2013-02-04 20:49:05 +01:00
kangax
d645c4e7dc Add ability to specify pattern repeat via options 2013-02-04 20:49:05 +01:00
Kienz
cfb97f3f83 Fix backgroundColor (backgroundPattern) in loadFromJSON / loadFromDatalessJSON 2013-02-04 15:40:18 +01:00
kangax
7fd1a09174 Fix typo in serialization module 2013-02-03 02:17:46 +01:00
kangax
5f8bff50a7 Some free drawing refactoring 2013-02-03 02:15:29 +01:00
kangax
6777c50012 Add support for patterns 2013-02-03 02:15:29 +01:00
kangax
cb0815022d Change pattern brush to work with fabric.Pattern 2013-02-03 02:14:47 +01:00
Kienz
ddaf8ba796 Fix touch events if canvas is inside a scrolled container (see issue #123).
Fix bug if mouse moves over absolute scrolled element while object scaling (see issue #385). Also if mouse is moved over documentElement (fabric.document) while scaling object is fixed (same issue like #385).

Tested with Safari 5.1.7, 6.1, Firefox 18, 3.6.28, Chrome 24/25beta, Opera 12.12 and iPhone iOS 6.1, iPad iOS 6.1 in non-scrolled and scrolled containers.
2013-02-01 18:27:20 +01:00
kangax
69f1b20a8e Add fabric.Object#getBoundingRect. getBoundingRectWidth/getBoundingRectHeight are deprecated. 2013-01-29 18:06:44 +01:00
kangax
42c857c18c Pass event to "object:rotating" callback 2013-01-29 18:06:43 +01:00
Kienz
64bdb13836 Clear contextTop before call renderAll() in _finalizeAndAddPath 2013-01-26 15:08:53 +01:00
kangax
87a1bb31bf Amalgamate canvas creation + VML initialization into one place. Add new method fabric.util.createCanvasElement. Version 1.0.3. 2013-01-25 14:23:13 +01:00
kangax
268dbb2114 Clear top context in toDataURL* methods. Closes #399 2013-01-25 14:20:53 +01:00
Fabian Hickert
18b7e05eb2 Fixed event handling for touch-supported devices. 2013-01-24 11:32:58 +00:00
Juriy Zaytsev
74855f6fd1 Merge pull request #388 from FremyCompany/patch-1
Add 'object:removed' and 'canvas:cleared' events
2013-01-23 14:02:44 -08:00
Kienz
33bacb0cd6 Bugfix for canvas.toDataURL() - canvas.clearContext(canvas.contextTop) in after:render clears context if canvas.toDataURL() is called.
Observe before:render and clear contextTop.
2013-01-21 22:15:28 +01:00
kangax
6da2ed6d65 More canvas refactoring 2013-01-20 20:40:26 +01:00
kangax
70119f7095 Refactor some logic from canvas and object classes into mixins 2013-01-20 20:40:26 +01:00
kangax
8a74303443 Refactor brushes 2013-01-20 17:28:06 +01:00
FremyCompany
7f2e8030c7 Added: 'canvas:cleared' event
When the canvas is cleared, it doesn't fire any 'object:removed' event, on purpose
2013-01-18 17:27:21 +01:00
FremyCompany
fd4a9733d4 Added: 'object:removed' event
Inlined removeFromArray call (because it didn't return whether indexOf returned -1 or not so I couldn't know if 'object:removed' had to be fired or not
2013-01-18 16:16:40 +01:00
Cedric Wienold
958f37d8fb Add createJPEGStream support for fabric canvas
Node Canvas already has support for createJPEGStream. Create a route to
take advantage of that through fabric.js canvas.
2013-01-17 12:48:41 -08:00
kangax
b721667b7b Discard active group when clearing canvas 2013-01-17 19:00:20 +01:00
kangax
7a527437c9 Avoid expensive regex when modifying data url string 2013-01-17 19:00:20 +01:00
kangax
21ee892c28 Merge master 2013-01-15 00:06:54 +01:00
Kienz
2715ef306c Bugfix for controlsAboveOverlay (issue #380)
Only if pointer is over targetCorner lastRenderedObjectWithControlsAboveOverlay is used as targetObject.

See issue #380.
2013-01-14 17:09:50 +01:00
kangax
85c9b34d04 Discard active group when clearing canvas 2013-01-14 12:08:54 +01:00
kangax
ddacd57cc8 Avoid expensive regex when modifying data url string 2013-01-14 12:08:39 +01:00
kangax
d6307d1aeb Add circle brush 2013-01-11 19:38:22 +01:00
kangax
1f206d039e Move gesture-based logic into a separate module 2013-01-10 18:23:23 +01:00
kangax
84270a47b2 Merge remote-tracking branch 'jaffer/master' 2013-01-10 14:31:59 +01:00
kangax
7be14a6a70 First implementation of brushes 2013-01-10 14:27:13 +01:00
kangax
082bee8279 Add fabric.Canvas.prototype.freeDrawingCursor 2013-01-10 14:22:02 +01:00
kangax
157ff19d47 Fix overlayImage not being applied in loadFromJSON under Node 2013-01-10 14:21:21 +01:00
kangax
4a84bf92a7 Clone options object of animate (to avoid conflicts) 2013-01-10 14:20:52 +01:00
kangax
d47ed61d49 Remove unnecessary e 2013-01-10 14:20:36 +01:00
kangax
3194c1903a Do not show corners in groups 2013-01-10 14:20:25 +01:00
kangax
dffe675eb2 Fix toDataURL doc 2013-01-10 14:20:13 +01:00
Jaffer Haider
20a87c6609 Support for pinch gesture to scale and rotate objects using Event.js. 2013-01-08 16:04:38 +05:00
kangax
a870e11a57 Fix fabric.util.loadImage in node 2013-01-04 19:15:18 +01:00
Josh Pearce
d56bf59137 Add image load onerror handler
Make sure, when loading from json, that
a bad image path doesn't fail the desserialization

Signed-off-by: kangax <kangax@gmail.com>
2013-01-04 19:14:24 +01:00
kangax
dc2e5210ae Work around VML's clearRect bug 2013-01-03 01:18:29 +01:00
kangax
c4bec70455 Performance optimizations 2013-01-02 23:25:13 +01:00
kangax
fb915851db Fix lost event in IE7/8. Closes #364. 2012-12-29 20:00:24 +01:00
kangax
2735d543e2 Merge master. Enable hasRotatingPoint by default (now that objects are not rotated via corners) 2012-12-26 11:18:17 +01:00
kangax
c11abb377f Fix tests. Build distribution. Version 0.9.35. 2012-12-23 15:28:08 +01:00
kangax
06e6365068 Fix unnecessary JS error when calling require 2012-12-23 15:19:21 +01:00
kangax
a7a6c38384 Fix incorrect parsing of fontSize which made text not appear when loaded from SVG. Closes #331. 2012-12-23 15:18:46 +01:00
kangax
a37fcc92d4 Fix incorrect rendering of text + path SVG. Closes #355. 2012-12-23 15:17:45 +01:00
kangax
4ae8b9d725 Simplify object straightening logic. Thanks @woutercommandeur. Closes #362. 2012-12-22 20:20:54 +01:00
kangax
299273d7bd [BACK_INCOMPAT] fabric.Object#cornersize -> fabric.Object.cornerSize 2012-12-22 16:37:43 +01:00
kangax
882d7085d8 Fix fabric.Object#cloneAsImage on node. Closes #336. Version 0.9.34 2012-12-20 19:49:51 +01:00
kangax
f0d2235053 Fix group loading in dateless json. Closes #322 2012-12-20 16:23:31 +01:00
Andrey Kravtsov
216b3234aa Changed approach for relative animations.
Issue #356
2012-12-19 19:36:42 +04:00
kangax
e12b6598cd Merge master 2012-12-18 18:12:08 +01:00
kangax
8c14478340 Add support for "text-align: justify". SVG representation is not yet working. 2012-12-18 18:01:30 +01:00
kangax
71dd5a9ec0 Pass original event to all fabric custom events (that are triggered via mouse/touch) 2012-12-18 11:52:18 +01:00
kangax
203ea6b51f Doc fixes 2012-12-18 11:46:51 +01:00
kangax
c8172be31d Final doc additions. Every public method is now documented! 2012-12-16 20:44:26 +01:00
kangax
b5b901e99e Fix isMoving not set to false sometimes. Closes #350. Version 0.9.31. 2012-12-15 17:29:40 +01:00
kangax
7eae38db57 Doc additions. 2012-12-15 17:29:40 +01:00
kangax
6ed3dda6f5 Merge master 2012-12-15 17:16:39 +01:00
kangax
4bcc0bd80f Add uniScaleTransform and centerTransform parameters to canvas, which control how objects are transformed 2012-12-15 17:13:40 +01:00
kangax
fcfe5052f8 Use toFixed to cutoff some of the values. Closes #352. 2012-12-15 17:09:37 +01:00
kangax
f6cbb259f3 Doc additions. 2012-12-15 17:05:23 +01:00
Kienz
aefa280bb3 strokeText bugfix for Firefox < 4 2012-12-14 18:31:01 +01:00
Juriy Zaytsev
564e37eb5f Merge pull request #348 from Kienz/freedrawingFix
Fix another freedrawing bug in Firefox 3.6.1 - 3.6.24
2012-12-13 12:44:50 -08:00
Kienz
39c2b48ade Another freedrawing bug in Firefox 3.6.1 - 3.6.24
In Firefox 3.6.28 it works correct.
canvas 2d context arc() requires optional parameter anticlockwise - bugzilla issue https://bugzilla.mozilla.org/show_bug.cgi?id=617319.
2012-12-13 19:08:34 +01:00
Juriy Zaytsev
b8c573530a Merge pull request #346 from Kienz/freedrawingFix
Freedraw bugfix for Firefox 3.6.x
2012-12-13 06:47:54 -08:00
kangax
eb35434a97 Fix x/y not being set on rectangle sometimes. Closes #344. 2012-12-13 15:46:06 +01:00
kangax
3416d8a090 Documentation additions. 2012-12-13 15:46:06 +01:00
Kienz
d8831feb0e Freedraw bugfix for Firefox 3.6.x
The pointer flies away on starting freedrawing - line is drawing.
Here you can see a screenshot:
<img src="https://s3-eu-west-1.amazonaws.com/kienzle.geschaeft/projects/sketch/fabric_freedraw_problem_firefox_3.6.x.png"/>

jsFiddle:
http://jsfiddle.net/r2ZE7/95/
2012-12-13 11:57:16 +01:00
Kienz
3fa2a01faa Fix freedrawing for Firefox:
TypeError: Not enough arguments to CanvasRenderingContext2D.arc.
[Bei diesem Fehler anhalten]

this.canvas.contextTop.arc(originLeft, originTop, 3);
2012-12-10 15:59:26 +01:00
Juriy Zaytsev
fab0de8b5b Merge pull request #340 from shiloa/master
Change toSVG in image.class.js to properly close <image> tag.
2012-12-10 06:37:11 -08:00
Kienz
4b56e3f8ae Fix for touch devices - only works if page is has no scrolling. I've tested it no iPad with iOS 6.01. 2012-12-10 13:44:26 +01:00
shilo
4fba531e6f close <image> tag XML style to allow access to native SVG document 2012-12-10 14:40:26 +02:00
kangax
a1a54fea0b Merge master 2012-12-09 10:17:12 +01:00
Kienz
1599ab3484 loadFromJSON now handles json as String or Object - same behavior like loadFromDatalessJSON. 2012-12-08 10:40:29 +01:00
kangax
a6a7b72dcd Padding-related fixes and some canvas.class refactoring. 2012-12-07 19:19:04 +01:00
kangax
913a4970bc Merge master 2012-12-07 15:43:57 +01:00
kangax
2b33b7f570 Locking properties (lockMovementX, lockMovementY, lockRotation, etc.) are now respected in groups. Closes #152. 2012-12-07 15:39:47 +01:00
Juriy Zaytsev
e276743176 Merge pull request #335 from TimNZ/master
Allow `fabric.util.loadImage` to support data url in Node.js.
2012-12-06 10:49:29 -08:00
kangax
352dd44b3c Implement smooth free drawing. Free drawing is now a separate module. Thanks @coulix! 2012-12-06 19:47:34 +01:00
kangax
0c1fd43fc1 First stab at dynamic origin of transformation (based on the excellent work of https://github.com/stormbreakerbg). 2012-12-06 19:12:54 +01:00