Object selection

In an example embodiment, a system and method is illustrated that includes receiving a first cursor actuation signal from a cursor controlling device where the first cursor actuation signal received at a first cursor position in a graphical user interface. Further, the system and method includes determining an old hierarchy level, determining a new hierarchy level based on the first cursor position and the old hierarchy level, and selecting a target object based on the new hierarchy level and the first cursor position.

TECHNICAL FIELD

The present application relates generally to the technical field of rendering images on a display and, in one specific example, the manipulation of images.

BACKGROUND

Cursors are used to indicate a position. For example a mouse cursor may be used to indicate a position that may respond to input from the mouse. A text cursor may indicate a position that may respond to input from a keyboard. A cursor on a display screen can be used to input commands into a computer. The cursor has an associated location on a screen, and a user can use a cursor controlling device to change this location on the screen and input commands.

A page layout generally includes multiple objects. These objects may include texts, images, other objects, or a combination of the above. Objects may be grouped into object groups and operated on as a unit. In some instances, a user may wish to operate on an object within an object group. To do so, the user may need to isolate from the object group and select the object.

DETAILED DESCRIPTION

In various example embodiments, methods and systems to select an object in a graphical user interface, such as a page layout, are disclosed. In the following description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of an example embodiment of the present invention. It may be evident, however, to one skilled in the art that the present invention will be practiced without these specific details.

In various example embodiments, systems and methods are shown that allow a user to select an object in an object hierarchy of a layout. The object hierarchy may comprise one or more objects where each object is associated with a level in the object hierarchy. The user may select the object in the object hierarchy by moving a cursor to a position of an object to be selected and initiating a cursor actuation signal such as a double-click. However, more than one object of the object hierarchy may be positioned at the cursor position where the user initiated the cursor actuation signal. For example a group object may have one or more member objects within it and the group object and one or more member objects may be positioned at the cursor position. In one embodiment, an initial object, at an initial level of the object hierarchy, may be selected in response to receiving the cursor actuation signal. If the initially selected object is not the object desired by the user, the user can initiate another cursor actuation signal at the same location and an object at the same position and at a higher level of the object hierarchy may be selected. This process of selecting objects at higher and higher levels of the object hierarchy in response to cursor actuation signals may be repeated until a user's desired object is selected. In other embodiments, instead of going up the object hierarchy (selecting objects with higher and higher levels), objects of lower levels of the object hierarchy may be selected. In some embodiments, a combination of going up and going down the object hierarchy may be implemented.

A page layout or page may be any representation of a graphical element composed of one or more other graphical elements. For example, a page or page layout may comprise one or more graphical elements or object that are positions in certain areas of the page. A page layout may include various objects (sometimes referred to as “page objects” or “page items”). Objects may be any selectable item in a page layout or page. As a result, objects may also be operated on as a unit (e.g., cut and pasted, copied, moved, rotated, scaled, resized, color adjusted, etc.) For example, objects may include frames, images/graphics, text frames, texts, custom objects, etc. A page layout may be created using a design application or page layout software such as the Adobe® InDesign® from Adobe Systems Incorporated of San Jose, Calif. The design application may execute instructions to include a tool palette. The tool palette may include multiple types of tools including, for example, spray paint tool, select tool, shape tool, text box tool, erase tool, etc. Although some embodiments discuss object hierarchies in page layouts, object hierarchies in other formats may also be similarly implemented. For example, object hierarchies in web pages, graphical images, screens, or other layouts in graphical user interfaces may be similarly implemented.

A frame is a basic container object in a page layout which may or may not contain content. When a frame contains an image item, the frame is sometimes called an “image frame” or a “graphic frame.” When a frame contains text, the frame is sometimes called a “text frame.” A frame object may also contain one or more objects.

A group object (sometimes referred to as a “group” or “object group”) is an object that is an association of more than one item that can be selectable as a unit. The group object may also be operated on as a unit. In some embodiments a group object may be an association of one or more objects as well as one or more other group objects. In these circumstances, the one or more group objects within a group object may be referred to as “member object,” “sub-group objects,” or “sub-groups.”

Objects in an object hierarchy may also be described in terms of a tree. For example, a group object may contain other objects or members, the members contained in the group object are may be referred to as the group object's children or child object. The group object may also be within another object, as a result, this object is called the group object's parent object.

A cursor is any indicator used to show a position on an interface (e.g., shown on a computer monitor or other display device) and is responsive to input from a cursor controlling device (e.g., text input device or pointing device).

FIG. 1is a block diagram illustrating a user interface displaying an example page layout, according to various embodiments. InFIG. 1, page layout100contains a number of objects. For example, page layout100contains a text frame102that represents the title of the particular page layout100. Page layout100also contains group objects104and106. In page layout100, group object104has been shown in dotted lines to illustrate that group object104is the currently selected object. Group object104is shown containing two members, sub-group object108and text frame120. Sub-group108is further shown containing two members of its own, image frame112containing an image and text frame116representing a caption associated with image frame112. Similarly, group object106is shown containing two members, sub-group object110and text frame122. Sub-group110is further shown containing two members of its own, image frame114containing an image and text frame118representing a caption associated with image frame114.

An object hierarchy with multiple levels may be formed by the objects of a page layout. For example, an object may contain one or more other objects (in such situations, the object containing one or more other objects may be called a “group object,” “group,” or “object group”). The group object containing one or more other objects is on one level, while the objects contained in the group object are on different levels than the group object. In an embodiment illustrated inFIG. 1, text frame102and group objects104and106are all on the same level of the object hierarchy in the page layout100displayed in the graphical user interface. Group object104also contains group object108and text frame120(group object108and text frame120may be considered member objects of group object104). As a result, group object108and text frame120are both one level below the level associated with group object104. Similarly, group object106also contains group object110and text frame122(group object110and text frame122may be considered member objects of group object106). As a result, group object110and text frame122are both one level below the level associated with group object106. In this embodiment, group objects108and110and text frames120and122were also on the same level. Group objects108and110also contain an image frames112and114containing images and text frames116and118representing a caption associated with the image frames112and114. As a result, image frames112and114and text frames116and118may also be one level below the level associated with group objects108and110. Furthermore, the images contained in image frames112and114may also be associated with a level below the level associated with image frames112and114.

FIG. 2is a block diagram illustrating a user interface displaying a selection of an object group within an example page layout, according to various embodiments. InFIG. 2, group object204is selected. Group object204contains sub-group object208and text frame220, where sub-group object208further contains image frame212and text frame216. In order to select an object within object group204, a user may have to use a command accessed via a graphical user interface element such as a tool palette, task bar, toolbar, menu command, a set of buttons, or shortcut keys. For example, a menu may include menu commands, such as, e.g., “NEXT OBJECT” and “PREVIOUS OBJECT” to select other objects within a group object, “NEXT OBJECT ABOVE” or “NEXT OBJECT BELOW” to select an object stacked above or below the object at the location of the object, and “SELECT CONTAINER” or “SELECT CONTENT” to select the group object containing the object or member object within the object. Alternatively, a user may be required to use a graphical user interface element to ungroup member objects in the group204before selecting the desired object within the group204. Use of these commands requires a user to first find the command within the graphical user interface. This may involve finding the graphical user interface element that contains the command and/or navigating through menus and sub-menus to find the desired command. Often, the graphical user interface elements are located at the top or bottom of the user interface, or, in the case of a pop-out menu bar, located at an arbitrary location.

In more complicated page layouts with a large number of objects or objects nested within several object groups, these methods may be cumbersome and inefficient. For example, a user may be required to navigate one or more menus to select “SELECT CONTAINER” and “SELECT CONTENT” several times or ungroup several different group objects in order to select a desired object. In the case where a user ungroups multiple group objects in order to select a desired object, the user may need to regroup the objects after he or she is finished with the desired object in order to return the page layout to its previous state.

FIG. 3is a block diagram illustrating a user interface displaying a selection of ungrouped objects within an example page layout, according to various embodiments. InFIG. 3, group object208and text frame220correspond to the group object204(shown inFIG. 2). The group object208and the text frame220have been ungrouped such that group object208and text frame220are now selected as individual objects and are no longer contained in the group object204. However, if a user wants to select an image frame212or a text frame216, the user may need to ungroup the group object208again. As a result, even in a page layout as simple as the one illustrated inFIG. 1, in order to select and operate on an object within one or more object groups (for example, image frame112within group objects108and104), multiple ungroup commands are needed. Furthermore, after operating on the object, multiple group commands may be required to return the page layout to its previous state.

According to some embodiments the current position of a cursor on a graphical user interface having an object hierarchy with different levels may be monitored. A user may select an object in a layout by moving a cursor to the object to be selected and initiating a cursor actuation signal. However, more than one object, each having at a different level of the object hierarchy, may be positioned at the cursor position where the user initiated the cursor actuation signal. When a cursor actuation signal is received, a level of the object hierarchy is selected based on the cursor position of the cursor and an object is selected based on the cursor position and the selected level of the object hierarchy. In one embodiment, an initial object, at an initial level of the object hierarchy, may be selected in response to receiving the cursor actuation signal. If the initially selected object is not the object desired by the user, the user can initiate another cursor actuation signal at the same location and an object at the same position and at a new higher level of the object hierarchy may be selected. This process of selecting objects at higher and higher levels of the object hierarchy in response to cursor actuation signals may be repeated until a user's desired object is selected.

FIG. 4is a block diagram of a system to select an object, according to various embodiments. The system460may include a cursor interface464, a display controller472, a selection module466, a storage device468, and a layout module470. A storage device468such as a database or other memory device may be used to store page layouts. These page layouts may be accessed, edited, and displayed. The layout module470may access the page layout and enable a user to edit the page layout. In some embodiments, the layout module470may also be used to associate objects within the page layout with levels. For example, the layout module470may store an object with an associated level value or level reference data within a page layout. In another embodiment, the layout module470may maintain an object level table that stores references to objects in the page layout and their associated levels. In still another embodiment, objects within a page layout are stored in a tree data structure in which a child object is at a level higher than its parent object, and conversely, a parent object is lower than its child object. A display controller472may be used to display the page layout and the graphical user interface on a display device474.

A cursor interface464may be configured to monitor a current position of a cursor on a graphical user interface. For example, the cursor interface464may receive input from a cursor controlling device462such as a mouse, touchpad, trackball, tablet and digital pen, touch screen, or any other device able to control a cursor on a graphical user interface. Using the cursor controlling device462, a user may move a cursor around on a page layout displayed in a graphical user interface and over objects within the page layout. The layout module470and the cursor interface464may be used to determine the location or position of the cursor with respect to the page layout and the objects within the page layout. In one embodiment, the cursor may not be visible, for example, a touch-screen interface may not have a visible cursor, however, a cursor is still used to indicate a position on a touch-screen and reacts to user interaction with the touch-screen.

The cursor interface464may also be configured to receive a cursor actuation signal from a cursor controlling device462. In one embodiment, the cursor actuation signal may be a “double-click” signal from a mouse or trackball. In other embodiments, the cursor actuation signal may be a “double-tap” signal from a touchpad or tablet and digital pen, or a multi-touch gesture. In still other embodiments, the cursor actuation signal may be another customized signal or selection signal. In response to the receiving the cursor actuation signal, the selection module466may select a level of the different levels within the object hierarchy. In some embodiments the level represents the level of the target object to be selected (also referred to as the “new level,” “new hierarchy level,” or “selected level”). After the level is selected, the selection module466may then select the target object.

FIG. 5is a flow diagram illustrating a method550to select an object, in accordance with one example embodiment. The method may be implemented by the system460. At operation552, a cursor interface464may be used to monitor a current position of a cursor on a page layout displayed in a graphical user interface. The page layout may include several objects that form an object hierarchy with different levels. Each object in the page layout may be associated with a level of the object hierarchy. At operation554, the cursor interface464may receive a cursor actuation signal, for example, from a cursor controlling device462such as a mouse. In one embodiment the cursor interface464receives the actuation signal as a result of a user moving the cursor to a position in the layout or graphical user interface corresponding to a desired object and causing a cursor controlling device462such as a mouse to send a cursor actuation signal. In one embodiment, the user may “double-click” the mouse at the desired object.

At operation556, the selection module466may be used to determine an old hierarchy level. The old hierarchy level may correspond to an initial level of the object hierarchy or, if another object had been previously selected, the level associated with the previously selected object. In one embodiment, the old hierarchy level may be determined in response to receiving the cursor actuation signal. In other embodiments, however, the old hierarchy level may be determined before the cursor actuation signal is received. In still another embodiment, the selection module466may maintain a record of one or more previously selected objects and old hierarchy levels.

At operation558, a selection module466may be used to determine a new hierarchy level within the object hierarchy based on the cursor position at the time the cursor actuation signal is received. In one embodiment, the new hierarchy level may also be determined based on the old hierarchy level. In some embodiments the new hierarchy level represents the level of the target object to be selected. At operation560, the selection module466may also be used to select a target object based on the new hierarchy level and the cursor position. Further embodiments and details will be discussed below.

FIG. 6is a block diagram illustrating a user interface displaying a selection of an object group within an example page layout, according to various embodiments. InFIG. 6, group object604is shown as selected (see dotted lines). Group object604contains two members, sub-group object608and text frame620, where sub-group object608contains two other members, image frame612and text frame616. As a result, group object604may be on one level of the object hierarchy, sub-group object608and text frame620may be on another level of the object hierarchy, and image frame612and text frame616may be on still another level of the object hierarchy.

In various embodiments, the levels of the object hierarchy and levels associated with each object may be tracked and monitored. As discussed previously, each object may be stored with an associated level value or level reference data within a page layout, a table may be maintained to store references to objects in the page layout and their associated levels, or objects within a page layout are stored in a tree data structure. However, any number of other methods to keep track of the levels may be used and it is to be appreciated that the specification may use specific level ordering schemes, other methods of keeping track and monitoring the levels associated with objects in the object hierarchy may be implemented. For the sake of clarity and so as not to obscure claimed subject matter, the following discussion will focus on one specific embodiment in which a numbering system may be used. In this numbering system, the initial page layout is set to a default or initial number, for example the number “0,” that corresponds to an initial level, for example “level 0.” All objects placed on the page layout may be assigned a level in relation to its position in the object hierarchy. For example, a group object that does not belong in any other group object may be at level 1, where as objects within that group object may have a higher level number. InFIG. 6, for example, the group object604may be on “level 1” of the object hierarchy, sub-group object608and text frame620may be on “level 2” of the object hierarchy, and image frame612and text frame616may be on “level 3” of the object hierarchy. In one embodiment, the currently selected object and its associated level may also be tracked and updated as each new object is selected.

As previously discussed, a user may move the cursor using a cursor controlling device462to a desired object; inFIG. 6, this is shown by cursor650(or pointer). At this point the cursor650is at or inside currently selected group object604, sub-group object608, and image frame612. While the cursor is at the desired object, the user may cause a cursor controlling device462to send a cursor actuation signal to a cursor interface464. In response to receiving a cursor actuation signal, the selection module466may be used to select a new hierarchy level within the object hierarchy and, based on the new hierarchy level and the cursor position at the time the cursor actuation signal was received, select a target object. For example, when the system receives the cursor actuation signal, it may determine that the object the user desires is at a higher level in the object hierarchy than the level of the currently selected group object604based on the position of the cursor at the time of the cursor actuation signal being inside of the currently selected group object604and inside at least one other member object. In the embodiment shown inFIG. 6, the currently selected object, group object604, is associated with a first level, or “level 1,” of the object hierarchy, as a result, the selection module may determine that the new hierarchy level is the second level, or “level 2,” of the object hierarchy. The selection module466may then select sub-group object608based on the current position of the cursor being at or on sub-group object608and sub-group object608being associated with the new hierarchy level, or “level 2,” of the object hierarchy.

FIG. 7shows the result of the selection module466selecting sub-group object608in accordance with the above embodiment.FIG. 7is a block diagram illustrating a user interface displaying a selection of an object within an example page layout, according to various embodiments. InFIG. 7, sub-group object608is shown as selected (see dotted lines), where sub-group object608further contains members612and616. Also shown is text frame620that remained unchanged and cursor650still at its current position.

Referring back toFIG. 6, in one embodiment, the selection module466may determine that the current position of the cursor650is at an inner area of the currently selected group object604at the time the cursor actuation signal is received. This may indicate a user's desire to select an object that inside the currently selected object or at a higher level than that of the currently selected object, group object604. As a result, the selection module466may determine that the new hierarchy level is a level higher than the old hierarchy level associated with the currently selected object, group object604(in the embodiment shown inFIG. 6, this means the new hierarchy level is level 2).

In another embodiment, the selection module466may determine that the current position of the cursor is at an outer area of the currently selected object at the time the cursor actuation signal is received. This may indicate a user's desire to select an object that surrounding or outside the currently selected object or at a lower level than that of the currently selected object. As a result, the selection module466may determine that the new hierarchy level is a level down from the old hierarchy level associated with the currently selected object.

An inner or outer area of an object may be defined by any means. For example, an inner area may be defined by an area within a certain radius from the center of the object or an area at least a predefined distance away from any boundary of the object. Similarly, an outer area may be defined as the area at least a certain radius away from the center of an object or an area within a predefined distance away from a boundary of the object. In one embodiment, the inner and outer areas of the object are not displayed in a graphical user interface. However, in other embodiments, the inner and outer areas may be displayed to a user.

In one embodiment, a user may wish to select another object at an even higher level, for example image frame612inFIG. 7.FIG. 8andFIG. 9illustrate this situation.FIG. 8is a block diagram illustrating a user interface displaying a selection of an object group within an example page layout, according to various embodiments. InFIG. 8, group object808is shown as selected (see dotted lines). Group object808contains two members, image frame812and text frame816. In the embodiment illustrated inFIG. 8, the currently selected object, group object808, is associated with a second level, or “level 2,” of the object hierarchy. If a user wishes to select image frame812, the user may move the cursor850using a cursor controlling device462to the image frame812and cause a cursor controlling device462to send a cursor actuation signal to a cursor interface464.

In response to receiving a cursor actuation signal, the selection module466may be used to select a new hierarchy level and, based on the new hierarchy level and the current position of the cursor, select a target object. For example, when the system receives the cursor actuation signal, it may determine that the object the user desires is at an even higher level in the object hierarchy than the old hierarchy level associated with the currently selected object. As a result, the selection module466may set the new hierarchy level as a third level, or “level 3,” of the object hierarchy. Since the current position of the cursor being at or on image frame812and image frame812is associated with a third level, or “level 3,” of the object hierarchy, the selection module466may select image frame812.

FIG. 9shows the result of the selection module466selecting image frame812in accordance with the above embodiment.FIG. 9is a block diagram illustrating a user interface displaying a selection of an object within an example page layout, according to various embodiments. InFIG. 9, image frame812is shown as selected (see dotted lines) and shown inside sub-group object808along with text frame816. Also shown is cursor850still at its current position.

As discussed earlier, in one embodiment, the selection module466may determine that the current position of the cursor is at an outer area of the currently selected object at the time the cursor actuation signal is received. This may indicate a user's desire to select an object that is surrounding or outside the currently selected object or at a lower level than the old hierarchy level associated with the currently selected object. As a result, the selection module466may determine that the new hierarchy level is a decrement of the old hierarchy level associated with the currently selected object.FIG. 10andFIG. 11illustrate this situation.

FIG. 10is a block diagram illustrating a user interface displaying a selection of an object within an example page layout, according to various embodiments. InFIG. 10, image frame1012is shown as selected (see dotted lines) and shown inside group object1008along with text frame1016. In the embodiment shown inFIG. 10, image frame1012and text frame1016are associated with a higher level than the level associated with group object1008, for example, image frame1012and text frame1016may be associated with a third level, or “level 3,” of the object hierarchy while group object1008may be associated with a second level, or “level 2,” of the object hierarchy. A user may move the cursor1050to an outer area of the currently selected object, image frame1012, and cause a cursor controlling device462to send a cursor actuation signal to a cursor interface464.

In response to receiving a cursor actuation signal, the selection module466may be used to determine a new hierarchy level within the object hierarchy and, based on the new hierarchy level and the current position of the cursor, select a target object. For example, when the system receives the cursor actuation signal, it may determine that the object the user desires is at a lower level in the object hierarchy than the level of the currently selected object based on the cursor actuation signal being received when the current position of the cursor is at the outer area of the object. In the embodiment ofFIG. 10, this may mean that the selection module466determines the new hierarchy level to be a second level, or “level 2,” of the object hierarchy. Since the current position of the cursor is at or on sub-group1008and sub-group1008is associated with the second level, or “level 2,” of the object hierarchy, the selection module466may select subgroup1008. This result is shown inFIG. 11.FIG. 11is a block diagram illustrating a user interface displaying a selection of an object group within an example page layout, according to various embodiments. InFIG. 11, sub-group1008is shown as selected (see dotted lines) and image frame1012and text frame1016are contained inside sub-group object1008.

In another embodiment, the selection module466may determine that the current cursor position at the time the cursor actuation signal is received is outside the boundaries of the currently selected object and associated with another object. This may indicate a user's desire to select an object that is outside the currently selected object or associated with the same level than that of the currently selected object. As a result, the selection module466may determine that the new hierarchy level is equal to the old hierarchy level associated with the currently selected object.FIG. 12andFIG. 13illustrate this situation.

FIG. 12is a block diagram illustrating a user interface displaying a selection of an object within an example page layout, according to various embodiments. InFIG. 12, image frame1212is shown as selected (see dotted lines) and shown inside sub-group object1208along with text frame1216. In the embodiment shown inFIG. 12, image frame1212and text frame1216are associated with the same level while sub-group object1208is associated with a lower level than the levels associated with image frame1212and text frame1216. A user may move the cursor1250to an area outside of the currently selected object, image frame1212. More specifically, the user may move cursor1250to a position associated with another object, text frame1216. The user may then cause a cursor controlling device462to send a cursor actuation signal to a cursor interface464.

In response to receiving a cursor actuation signal, the selection module466may be used to determine a new hierarchy level within the object hierarchy and, based on the new hierarchy level and the current position of the cursor, select a target object. When the system receives the cursor actuation signal, it may determine, based on the current position of the cursor, that the new hierarchy level is the level associated with the currently selected object, image frame1212. Since the current position of the cursor is at or on text frame1216and text frame1216is associated with the same level as image frame1212, the selection module466may select text frame1216. This result is shown inFIG. 13.FIG. 13is a block diagram illustrating a user interface displaying a selection of an object within an example page layout, according to various embodiments. InFIG. 13, text frame1216is shown as selected (see dotted lines) and sub-group object1208is shown containing image frame1212and text frame1216.

In other embodiments, the system may enable a user to select a content object more directly. A content object is an object made of media content. Some examples of a content object are images, videos, audio files, etc. Content objects may even be a frame containing an image. In one embodiment, a layout module470may present a layout comprising a one or more group objects which may in turn comprise one or more content objects. The selection module466may determine that the current position of the cursor is over an object and the object is a content object. This may indicate a user's desire to select the content object. The display controller472may be used to display an indicator over the content object. The indicator may be an image over the center of the content object, a special cursor indicator, or some other special indicator. The user may then cause a cursor controlling device462to send an actuation of the indicator. As a result of receiving the actuation of the indicator, the selection module466may select the content object. In a related embodiment, the selection module466may also be used to determine that the selected level is the level associated with the content object. In another embodiment, an indicator is displayed when the cursor is over the content object for a predetermined period of time.FIG. 14illustrates this situation.

FIG. 14is a block diagram illustrating a user interface displaying an example page layout, according to various embodiments. In the embodiment ofFIG. 14, page layout1400contains a text frame1402and group objects1404and1406. Each group object1404and1406contains two members (sub-group objects1408and1410and text frames1420and1422). Further, sub-groups1408and1410are also shown containing two members each (image frames1412and1414containing images and text frames1416and1418representing a caption associated with the image frames1412and1414).

A user may position the cursor1450over a content object, such as an image, for a predetermined period of time. In response to determining that the cursor1450is over a content object for a predetermined period of time, the display controller may be used to display an indicator1452over the content object. The indicator1452may enable the user to select and access the content object more directly. For example, the user may cause a cursor controlling device462to send an actuation of the indicator. In various embodiments, this actuation of the indicator may be in the form of a single mouse click on the indicator, a double-click on the indicator, a tap on a touchpad or touch screen, or some other gesture that symbolizes the actuation of the indicator. As a result of receiving the actuation of the indicator, the selection module466may select the content object. For example, in the embodiment illustrated byFIG. 14, the image contained in image frame1412may be selected. In a related embodiment, the selection module466may also be used to determine that the selected level is the level associated with the content object.FIG. 14illustrates this situation.

In some embodiments, a user does not need to search through the various commands found in various graphical user interface elements or navigate through menus and sub-menus to find a command to help select an object in a page layout. Some embodiments also enable a user to select an object quickly using a cursor actuation signals at the location of the object to be selected. Some embodiments also enable a user to select an object without having to ungroup group objects and regroup objects to return the page layout to its previous state.

The example computer system1500includes a processor1502(e.g., a central processing unit (CPU) a graphics processing unit (GPU) or both), a main memory1504and a static memory1506, which communicate with each other via a bus1508. The computer system1500may further include a video display unit1510(e.g., a liquid crystal display (LCD) or a cathode ray tube (CRT)). The computer system1500may also include an alphanumeric input device1512(e.g., a keyboard), a cursor control device1514(e.g., a mouse), a disk drive unit1516, a signal generation device1518(e.g., a speaker) and a network interface device1520.

The disk drive unit1516includes a machine-readable medium1522on which is stored one or more sets of instructions (e.g., software1524) embodying any one or more of the methodologies or functions described herein. The software1524may also reside, completely or at least partially, within the main memory1504and/or within the processor1502during execution thereof by the computer system1500, the main memory1504and the processor1502also constituting machine-readable media. The software1524may further be transmitted or received over a network1526via the network interface device1520.

Thus, methods and systems to select an object in a graphical user interface have been described. Although the present invention has been described with reference to specific example embodiments, it will be evident that various modifications and changes may be made to these embodiments without departing from the broader spirit and scope of the invention. Accordingly, the specification and drawings are to be regarded in an illustrative rather than a restrictive sense.

The modules discussed in this specification may be implemented in hardware, software, or a combination of hardware and software. Furthermore, the modules may or may not reside all on the same machine and may be arranged in configurations not shown inFIG. 4.