In graphic and computer drawings applications, it is a common need to rearrange graphics and other objects on a display device. Rearranging objects in a graphic application is oftentimes a tedious and imprecise process as it frequently involves manual rearranging of objects into a specific order. In many conventional applications, rearrangement of objects in a graphical space involves moving objects out of a space, re-ordering or moving objects out of the way, and then re-inserting the removed objects to a different space within the graphical application.
Similarly, even where graphics in a space are arranged correctly in some respects, it is a difficult process to rearrange properties of graphical objects in the same space. Conventional applications include manual movement or adjusting specific properties of individual objects, and in some cases involve recreating an object altogether to rearrange or reorder properties of different graphical objects.
Embodiments of a system for displaying and rolling a group of objects are described. In one embodiment, the system includes a user interface for displaying a group of objects as well as a system for rolling the group of objects on the display device. The system is configured to detect a user selection of two or more objects displayed on the display device. The system is further configured to recognize a position from 1 through N for each selected object. The position before 1 is defined as N and the position after N is defined as 1. The system is further configured to receive a command to roll the selected objects, moving each of the objects to their previous or next position depending on the command given. Embodiments of a computer program product and a method are also described.
Throughout the description, similar reference numbers may be used to identify similar elements.
It will be readily understood that the components of the embodiments as generally described herein and illustrated in the appended figures could be arranged and designed in a wide variety of different configurations. Thus, the following more detailed description of various embodiments, as represented in the figures, is not intended to limit the scope of the present disclosure, but is merely representative of various embodiments. While the various aspects of the embodiments are presented in drawings, the drawings are not necessarily drawn to scale unless specifically indicated.
The present invention may be embodied in other specific forms without departing from its spirit or essential characteristics. The described embodiments are to be considered in all respects only as illustrative and not restrictive. The scope of the invention is, therefore, indicated by the appended claims rather than by this detailed description. All changes which come within the meaning and range of equivalency of the claims are to be embraced within their scope.
Reference throughout this specification to features, advantages, or similar language does not imply that all of the features and advantages that may be realized with the present invention should be or are in any single embodiment of the invention. Rather, language referring to the features and advantages is understood to mean that a specific feature, advantage, or characteristic described in connection with an embodiment is included in at least one embodiment of the present invention. Thus, discussions of the features and advantages, and similar language, throughout this specification may, but do not necessarily, refer to the same embodiment.
Furthermore, the described features, advantages, and characteristics of the invention may be combined in any suitable manner in one or more embodiments. One skilled in the relevant art will recognize, in light of the description herein, that the invention can be practiced without one or more of the specific features or advantages of a particular embodiment. In other instances, additional features and advantages may be recognized in certain embodiments that may not be present in all embodiments of the invention.
Reference throughout this specification to “one embodiment,” “an embodiment,” or similar language means that a particular feature, structure, or characteristic described in connection with the indicated embodiment is included in at least one embodiment of the present invention. Thus, the phrases “in one embodiment,” “in an embodiment,” and similar language throughout this specification may, but do not necessarily, all refer to the same embodiment.
While many embodiments are described herein, at least some of the described embodiments are a system for selecting and rolling a group of objects on a display. A user may select a group of objects, such as graphical objects in a space or displayed on a device, and issue a command to roll the group of objects from a current position to a previous or subsequent position. Upon receiving the command, the objects may rotate to a new position, with each object moving to the previous or next position, and the objects at the ends of the group rolling over to the first or last spot depending on the type of command given. Other embodiments are described in more detail herein.
In some embodiments, a user may select a group of objects 110 displayed on the display device 126. The group of objects 110 need not necessarily include all of the objects 112 on the display, and may include a subset of a larger number of objects 112. Once the user issues a roll operation 124, each of the objects 112 of the selected group of objects 110 rotates to the next or previous position 120 of each object, according to the type of roll operation 124 issued.
Each of the objects 112 may include a variety of attributes 114 and other properties associated with each object 112 or object position 120. For example, an object 112 may have an attribute 114 or multiple attributes associated with that individual object 112 or with the object's current position. When a roll operation 124 is issued, the positional attributes 116 associated with a specific position 120 are configured to remain with the position 120 and attach to whichever object 112 currently resides in that specific position 120. Likewise, when a roll operation 124 is issued, the object attributes 118 associated with a specific object 112 remain an attribute of that object 112 regardless of the present or final position 120 of that object 112. These object and positional attributes 114 are described in more detail herein.
The user device 100 may be configured to roll a selected group of objects 110 in any direction. The illustrated embodiments include directions of right and left. A roll command 124 may be given to roll each of the objects 112 to a next or a previous position, corresponding to either right or left in different embodiments. In some embodiments, the next position refers to the position immediately to the right while the previous position refers to the position immediately to the left of a given object 112. Some embodiments may include any number of reference directions, such as up and down, or backward and forward on a three dimensional axis. A user device 100 may be configured to refer to the next or previous positions 120 as up, down, left, right, in, out, diagonal or any other direction depending on the orientation and assigned order of the objects 112. In some embodiments, a user may insert a roll operation 124 and assign a group of objects 110 to roll forward or backward along multiple reference directions or axes.
In the illustrated figure, the positional attribute 116 is either a Y-High or a Y-Low position. Although this example refers to only two Y values, in other embodiments there may be more than two possible Y values (or X values or other positional values or attributes). By way of example, in
Each object 112 is located at a specific position 120 denoted by an “X” along the x-axis 402. In other embodiments, the position 120 may be along a y-axis, z-axis, or any other organizational scheme for ordering a group of objects 110. In addition to being located at a specific position 120, each of the objects 112 has an X/Y offset or coordinate in relation to the position 120. In the illustrated depiction, each X/Y coordinate is centered at an object origin 122 denoted by a circle at each object's center. The order of objects 112 is determined by the location of each object origin 122 according to the roll position 120. For example, if two objects 112 are ordered from left to right, the first roll position will correspond to the left-most object 112.
The X/Y coordinate or attribute 114 of any object 112 may be centered at an object origin 122. In
Each of the objects 112 has an attached set of attributes 114. In the illustrated embodiment, each of the objects 112 has three attributes 114, either associated with the objects 112 as object attributes 118 or associated with the position 120 as positional attributes 116. Additionally, each of the attributes 114 may be set by a user or other input to be either a positional attribute 116 or an object attribute 118. Thus, the designation of certain attributes as either “object attributes” or “positional attributes” determines whether or not certain attributes (i.e., object attributes) roll with an object from one position to the next, or whether or not certain attributes (i.e., positional attributes) remain tied to a position and are applied to any object which occupies that position. The following examples shown in
While other embodiments may have any number of attributes 114, the illustrated embodiment includes an X/Y attribute, color attribute, and a shape attribute. The X/Y position may be a combination of an X and Y offset from the object position 120 or it may be offset only in a single X or Y direction. In some embodiments, the X/Y position may be separated into an X and a Y attribute, with an X attribute being a positional attribute 116 and the Y attribute being an object attribute 118 or vice versa. In other embodiments, the X/Y attribute may be a single attribute, denoted by X and Y coordinates along an x- and y-axis 402, 404. Other embodiments may include other axes, such as a z-axis, rotational axis, polar axis, or other position or orientation capable of being displayed on a display device 126.
Table 1 further illustrates the attributes associated with each object 112.
A user begins by selecting 510 a group of objects 110 displayed on a display device 126. The objects 112 may be selected with a mouse, touch screen application, keyboard, or any other device capable of selecting objects on a display. A user may select an entire group of objects 110 or any subset of objects 112 within that group 110. The objects 112 may be graphical shapes, icons, entries on a list, or any object 112 displayed on a display device 126.
The user device 100 then recognizes 520 an order of positions 120 for the group of objects 110. In at least one embodiment, the objects 112 may be ordered from left to right along an x-axis with their positions 120 corresponding to the origin 122 of each object 112. Other types of orientations may be used in determining the specific order of objects 112 and corresponding positions 120. The order of selected object positions 120 is defined as 1 through N with N being an integer. Each selected position 120 has a previous and a next position, generally being plus or minus one selected position from the current position 120. For example, in a group of objects 110 where each object 112 is selected, the next position of 1 is 1+1, or 2. The next position of 2 is generally 2+1, or 3, and so forth. The next position of N, being the last position in the group of objects, is defined as 1, making a loop of object positions 120. Similarly, each object position 120 has a previous position. The previous position of N is N−1. The previous position of 2 is 2−1, or 1, and so forth. The previous position of 1, being the first position in the group of objects 110, is defined as N, making a loop of object positions 120.
The user device 100 assigns 530 attributes 114 to be associated with each object 112 and/or positions 120. Positional attributes 116 are associated with a specific position 120 and are configured to remain with the position 120 and attach to whichever object 112 corresponds to that specific position 120. Object attributes 118 are associated with a specific object 112 and remain an attribute of that object 112 regardless of the present position 120 of that object 112.
A user issues 540 a command to roll the selected objects 112, either forward or backward along the chosen orientation. In some embodiments, the command 124 may be a next or previous command associated with any number of directions or orientations. For example, a user may issue a command 124 for objects 112 to roll to the right, left, up, down, forward, backward, diagonal, or other direction in a two or three dimensional field. In some embodiments, a command may be given regarding multiple directions, such as an object 112 oriented on an x, y, and z plane. For example, an object may be commanded to roll both right and down along the x- and y-axes, while remaining constant along the z-axis. This command may be given as part of a user interface 128 that allows a user to select a direction as well as a number of positions 120 to roll. In this way, objects 112 may be commanded to roll any direction by any number of positions 120 as directed by a user input.
The user device 100 then moves 550 the objects 112 and object attributes 118 according to the issued roll operation 124. When a roll command 124 is given, the objects 112 roll to the next or previous position 124 in the selected group of objects 112 and corresponding positions 120. Each of the objects 112 may also have a number of object attributes 118 that remain associated with each object 112 as each object 112 moves to a new position 120. Each position 120 may also have positional attributes 116 that attach to whichever object 112 currently occupies that position 120. In some embodiments, a user may be able to designate a list of attributes 114 as either positional attributes 116 to remain in their assigned positions 120 or as object attributes 118 to roll with each assigned object 112. This selection process may also be part of the user interface 128, allowing a user to easily designate which attributes 114 to assign to objects 112 or positions 120.
In the above description, specific details of various embodiments are provided. However, some embodiments may be practiced with less than all of these specific details. In other instances, certain methods, procedures, components, structures, and/or functions are described in no more detail than to enable the various embodiments of the invention, for the sake of brevity and clarity.
Although the operations of the method(s) herein are shown and described in a particular order, the order of the operations of each method may be altered so that certain operations may be performed in an inverse order or so that certain operations may be performed, at least in part, concurrently with other operations. In another embodiment, instructions or sub-operations of distinct operations may be implemented in an intermittent and/or alternating manner.
Although specific embodiments of the invention have been described and illustrated, the invention is not to be limited to the specific forms or arrangements of parts so described and illustrated. The scope of the invention is to be defined by the claims appended hereto and their equivalents.
An embodiment of a system for selecting and rolling objects includes at least one processor coupled directly or indirectly to memory elements through a system bus such as a data, address, and/or control bus. The memory elements can include local memory employed during actual execution of the program code, bulk storage, and cache memories which provide temporary storage of at least some program code in order to reduce the number of times code must be retrieved from bulk storage during execution.
It should also be noted that at least some of the operations for the methods may be implemented using software instructions stored on a computer useable storage medium for execution by a computer. As an example, an embodiment of a computer program product includes a computer useable storage medium to store a computer readable program that, when executed on a computer, causes the computer to perform operations, including an operation to monitor a pointer movement in a web page. The web page displays one or more content feeds. In one embodiment, operations to report the pointer movement in response to the pointer movement comprising an interaction gesture are included in the computer program product. In a further embodiment, operations are included in the computer program product for tabulating a quantity of one or more types of interaction with one or more content feeds displayed by the web page.
Embodiments of the invention can take the form of an entirely hardware embodiment, an entirely software embodiment, or an embodiment containing both hardware and software elements. In one embodiment, the invention is implemented in software, which includes but is not limited to firmware, resident software, microcode, etc.
Furthermore, embodiments of the invention can take the form of a computer program product accessible from a computer-usable or computer-readable medium providing program code for use by or in connection with a computer or any instruction execution system. For the purposes of this description, a computer-usable or computer readable medium can be any apparatus that can contain, store, communicate, propagate, or transport the program for use by or in connection with the instruction execution system, apparatus, or device.
The computer-useable or computer-readable medium can be an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system (or apparatus or device), or a propagation medium. Examples of a computer-readable medium include a semiconductor or solid state memory, magnetic tape, a removable computer diskette, a random access memory (RAM), a read-only memory (ROM), a rigid magnetic disk, and an optical disk. Current examples of optical disks include a compact disk with read only memory (CD-ROM), a compact disk with read/write (CD-R/W), and a digital video disk (DVD).
Input/output or I/O devices (including but not limited to keyboards, displays, pointing devices, etc.) can be coupled to the system either directly or through intervening I/O controllers. Additionally, network adapters also may be coupled to the system to enable the data processing system to become coupled to other data processing systems or remote printers or storage devices through intervening private or public networks. Modems, cable modems, and Ethernet cards are just a few of the currently available types of network adapters.