Patent ID: 7949948

Claim:
A computer readable medium having a set of computer-executable instructions stored thereon for laying out one or more content objects on a canvas, the set of computer-executable instructions when executed by a computer causes the computer to: define one or more constraints and one or more rules for each of the content objects, wherein the content objects have a plurality of content types, wherein the constraints comprise one or more values defining how the content objects should be laid out on the canvas and one or more values defining how content within each content object should be formatted, and wherein the rules comprise instructions for modifying the constraints when application of the constraints to a content object does not result in content fitting within the content object; use the constraints to lay out the content objects on the canvas; receive content for a selected content object; detect that the content could not be fit to the selected content object; in response to detecting that the content could not be fit to the selected content object, use the rules defined for the one or more content objects to modify the constraints for the selected content object and the one or more content objects in an attempt to fit the content to the selected content object; detect the addition of a new content object to the canvas; in response to detecting the addition of the new content object, using constraints and rules defined for the new content object to lay out the new content object on the canvas, and reapplying the constraints and rules to the one or more content objects to create a first new layout of the one or more content objects on the canvas; detect the addition of new content to the new content object; and in response to detecting the addition of the new content, using constraints and rules defined for the new content object to lay out the new content on the canvas, reapplying the constraints and rules to the one or more content objects, and creating a second new layout of the one or more content objects on the canvas when the new content could not be fit to the new content object.