From 7e404703c8bbe128f90991d23db00bffbc898766 Mon Sep 17 00:00:00 2001 From: Jonathan Puckey Date: Thu, 17 Feb 2011 00:34:01 +0100 Subject: [PATCH] Add Group#getBounds(). --- src/item/Group.js | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/item/Group.js b/src/item/Group.js index e08a72a3..6375ecd5 100644 --- a/src/item/Group.js +++ b/src/item/Group.js @@ -17,6 +17,24 @@ Group = Item.extend({ } }, + getBounds: function() { + if(this.children.length) { + var rect = this.children[0].bounds; + var x1 = rect.x; + var y1 = rect.y; + var x2 = rect.x + rect.width; + var y2 = rect.y + rect.height; + for(var i = 1, l = this.children.length; i < l; i++) { + var rect2 = this.children[i].bounds; + x1 = Math.min(rect2.x, x1); + y1 = Math.min(rect2.y, y1); + x2 = Math.max(rect2.x + rect2.width, x1 + x2 - x1); + y2 = Math.max(rect2.y + rect2.height, y1 + y2 - y1); + } + } + return new Rectangle(x1, y1, x2 - x1, y2 - y1); + }, + /** * Specifies whether the group item is to be clipped. * When setting to true, the first child in the group is automatically