An Apple patent (number 20120206471) for systems, methods and computer-readable media for managing layers of graphical object data has appeared at the U.S. Patent & Trademark Office. It hints that Apple may be working on a Photoshop competitor.
Systems, methods, and computer-readable media for managing layers of graphical object data are provided. For example, a graphical display system may be configured to implicitly manage various graphical object layers. In some embodiments, any new graphical object of a first type of graphical object may be generated in a current top layer of a stack when the current top layer is associated with the first type of graphical object. However, when the current top layer of the stack is not associated with the first type of graphical object, any new graphical object of the first type of graphical object may be generated in a new top layer of the stack. Moreover, any new graphical object of a second type of graphical object may similarly be generated in a new top layer of the stack.
Here's Apple's background and summary of the invention: "Some electronic devices include a graphical display system for generating and presenting graphical objects, such as free-form drawing strokes, images, strings of text, and drawing shapes, on a display. A user of such devices may interact with the graphical display system via a user interface to create different graphical objects in different layers, which may overlap and be stacked in various orders when presented for display. However, the ways in which currently available electronic devices allow a user to manage various layers of graphical object data may be confusing or overwhelming.
"Rather than explicitly creating and managing multiple graphical object layers (e.g., via a layers list that may be presented to and manipulated by a user), a graphical display system of an electronic device may be configured to utilize an implicit layer scheme that may be less confusing and less overwhelming to a casual user. Such an implicit layer management scheme may provide an interface that may not confuse a user with a layers list or that may not put a user in a situation where he or she may try to create a first type of graphical object content when a layer that is incompatible with the first type of graphical object content has been activated.
"Therefore, a graphical display system may be configured to follow one or more rules or principles when defining, selecting, and/or managing various graphical object layers, such that the simplicity of a basic drawing space application may be combined with the flexibility and non-destructive manipulation capabilities of a more advanced layering application.
"For example, in some embodiments, a graphical display system may be configured to generate any new graphical object in the top-most layer of a layer stack presented for display to a user. Additionally or alternatively, the system may be configured to determine whether to incorporate a new graphical object into a new layer or into a pre-existing layer based on the particular type of the new graphical object and/or based on the particular type of graphical object that may be provided by the current top-most layer. That is, different types of graphical objects may be handled differently by the layer management processes of a graphical display system. d
"For example, any new non-drawing stroke graphical object may be created in a new layer and that new layer may be made the top-most layer in the layer stack. Moreover, unless the current top-most layer is a drawing stroke layer, any new drawing stroke graphical object may be created in a new layer and that new layer may be made the top-most layer. Therefore, in some embodiments, only if the current top-most layer is a drawing stroke layer, may a graphical display system be configured to create any new drawing stroke graphical object in that pre-existing current top-most layer.
"As another example of how a graphical display system may be configured such that the simplicity of a basic drawing space application may be combined with the flexibility and non-destructive manipulation capabilities of a more advanced layering application, certain types of graphical object layers may be automatically or optionally provided with certain tools, while other types of graphical object layers may not be provided with those tools. For example, each layered image graphical object may be provided with one or more control points that may be manipulated for resizing and/or moving the image graphical object layer in various ways along a workspace.
"As another example, each layered image graphical object may be provided with a toolbar that may allow a user to manipulate the graphical object layer in various other ways (e.g., by moving the layer up or down in the stack of layers, by adding another graphical object into the layer, and/or by modifying one or more properties of the graphical object of the layer).
"In some embodiments, there is provided a method for managing graphical object data. The method may include determining the type of a new graphical object to be generated, and then generating the new graphical object in response to the determination. For example, in response to determining that the new graphical object is a second type of graphical object, the method may include generating the new graphical object in a new layer and positioning the new layer at the top of a stack.
"However, in response to determining that the new graphical object is a first type of graphical object, the method may include determining if the top layer in the stack is associated with the first type of graphical object. Then, in response to determining that the top layer in the stack is associated with the first type of graphical object, the method may include generating the new graphical object in the top layer in the stack. However, in response to determining that the top layer in the stack is not associated with the first type of graphical object, the method may include generating the new graphical object in a new layer and positioning the new layer at the top of the stack.
"For example, the first type of graphical object may include a drawing stroke graphical object and the second type of graphical object may include an image graphical object. In some embodiments, the method may determine that the top layer in the stack is associated with the first type of graphical object by determining that the top layer in the stack was initially generated to include an initial graphical object of the first type of graphical object. Alternatively, the method may determine that the top layer in the stack is associated with the first type of graphical object by determining that the top layer in the stack includes an existing graphical object of the first type of graphical object.
"In yet other embodiments, the method may determine that the top layer in the stack is associated with the first type of graphical object by determining that the top layer in the stack includes at least one existing graphical object and by then determining that each one of the existing graphical objects is of the first type of graphical object. The method may also include presenting the generated new graphical object in its layer on a display. In such embodiments, the method may also include removing at least one previously presented layer tool from the display. Alternatively, in response to determining that the new graphical object is the second type of graphical object, the method may also include presenting on the display at least one new layer tool that is associated with the layer of the new graphical object.
"In other embodiments, there is provided another method for managing graphical object data. The method may include presenting multiple graphical object layers in a stack on a display and receiving a selection of a first graphical object layer of the multiple graphical object layers.
"The method may also include determining if the first graphical object layer is associated with a first type of graphical object, and then enabling the first graphical object layer based on the determination. In some embodiments, the method may also include activating the first graphical object layer before the enabling, and the activating may include removing at least one previously presented layer tool from the display or visually distinguishing the first graphical object layer from the other graphical object layers on the display.
"For example, in some embodiments, the first graphical object layer may include at least one graphical object of the first type of graphical object, and, in response to determining that the first graphical object layer is associated with the first type of graphical object, the enabling may include enabling the editing of the at least one graphical object of the first type of graphical object. Alternatively, the enabling may include enabling the editing of the at least one graphical object of the first type of graphical object only in response to determining that the first graphical object layer is associated with the first type of graphical object and that the first graphical object layer is the top layer in the stack. In yet other embodiments, the first graphical object layer may include at least one graphical object, and, in response to determining that the first graphical object layer is not associated with the first type of graphical object, the enabling may include presenting on the display at least one layer tool that is associated with the first graphical object layer.
"This presenting may include at least one of enabling the first graphical object layer to be actively moved along the stack, enabling the first graphical object layer to be actively moved along the display, and enabling a new graphical object to be created in the first graphical object layer. Alternatively, the first graphical object layer may include an initial boundary, and the enabling may include enabling a new graphical object in the first graphical object layer to be created within the initial boundary or beyond the initial boundary.
"In yet other embodiments, there is provided a method for managing graphical object data that may include presenting multiple graphical object layers in a stack on a display. The method may also include receiving a selection of a first graphical object layer of the multiple graphical object layers, and the first graphical object layer may include a first graphical object.
"The method may also include creating a new graphical object in the selected first graphical object layer and then manipulating the first graphical object layer. The manipulating may include manipulating the first graphical object and the new graphical object. In some embodiments, the first graphical object may be an image graphical object and the new graphical object may be a drawing stroke graphical object.
"For example, creating the new graphical object may include re-defining a portion of the first graphical object layer that may have been previously defined by the first graphical object. In other embodiments, creating the new graphical object may include expanding a boundary of the first graphical object layer. Manipulating the first graphical object layer may also include moving the first graphical object layer along the stack, which may include moving the first graphical object and the new graphical object with the first graphical object layer along the stack.
"Alternatively, manipulating the first graphical object layer may also include moving the first graphical object layer along the display, which may include moving the first graphical object and the new graphical object with the first graphical object layer along the display. As yet another alternative, manipulating the first graphical object layer may also include resizing the first graphical object layer, which may include resizing the first graphical object and the new graphical object with the first graphical object layer.
"In still yet other embodiments, there is provided a graphical display system that may include a graphical object generating module. The graphical object generating module may receive input information defining a new graphical object to be generated, and may then determine if the new graphical object to be generated is a first type of graphical object based on the received input information.
"The graphical object generating module may also generate a new top layer in a stack and may generate the new graphical object in the new top layer when the generating module determines that the new graphical object is not of the first type. The graphical object generating module may also determine if the current top layer in the stack is associated with the first type of graphical object when the generating module determines that the new graphical object is of the first type.
"Then, the graphical object generating module may generate the new graphical object in the current top layer when the generating module determines that the current top layer is associated with the first type of graphical object. Alternatively, the graphical object generating module may generate a new top layer in the stack and may generate the new graphical object in the new top layer when the generating module determines that the current top layer is not associated with the first type of graphical object. The graphical display system may also include a graphical processing module that may render the generated new graphical object in its layer on a display.
"In still yet other embodiments, there is provided computer-readable media for controlling an electronic device, that may include computer-readable code recorded thereon for generating any new graphical object of a first type of graphical object in a current top layer of a stack when the current top layer is associated with the first type of graphical object, generating any new graphical object of the first type of graphical object in a new top layer of the stack when the current top layer of the stack is not associated with the first type of graphical object, and generating any new graphical object of a second type of graphical object in a new top layer of the stack."
The inventors are Matthew Jacob Sarnoff and Conrad R. Carlen.