# Patent

## Title
Methods and systems for dynamically arranging interface objects

## Abstract

A method and computer program product for displaying graphical objects in a display is presented. A first input from a user is received. In response to receiving the first input, a graphical object is displayed in the display. A second input is then received from the user. In response to receiving the second input, the graphical object is fixated in the display. An object that would have otherwise been occluded by the graphical object is then displayed in an area of the display outside the area occupied by the graphical object.

## Background
CROSS-REFERENCE TO RELATED APPLICATION AND PRIORITY CLAIM
The present application is a continuation of U.S. patent application Ser. No. 11/097,507, filed Apr. 1, 2005 and titled, “Method of Displaying Graphical Objects,” which is incorporated by reference herein in its entirety.


BACKGROUND
A graphical user interface (GUI) is a human-computer interface which is used to interact with computer applications. A GUI typically uses windows, icons and menus which can be manipulated by a mouse and/or keyboard to provide certain functions.
A window is a portion of the monitor screen that can display its contents (e.g., a program, icons, a text file or an image) independently of the rest of the display screen. Multiple windows can be open simultaneously. Each window can display a different application, or each can display different files (e.g., text, image or spreadsheet files) that have been opened or created with a single application.
An icon is a small picture or symbol in a GUI that represents a program, a command, a file, a directory or a device (such as a hard disk or floppy). Icons are used both on the desktop and within application programs. Examples include small rectangles (to represent files), file folders (to represent directories), a trash can (to indicate a place to dispose of unwanted files and directories) and buttons on web browsers (for navigating to previous pages, for reloading the current page, etc.).
Commands are issued in the GUI by using a mouse, trackball, touch pad or keyboard to first move a pointer on the screen to, or on top of, the icon, menu item or window of interest in order to select that object. Then, for example, icons and windows can be moved by dragging (moving the mouse with the mouse button held down) and objects or programs can be opened by clicking on their icons.
GUIs may also allow a user to call up a dialog box or panel which is typically a small temporary window in a graphical user interface that appears in order to request information from the user. After the information has been provided, the user can dismiss the dialog box.
GUIs make computer operation more intuitive, and thus easier to learn and use. For example, it is much easier for a new user to move a file from one directory to another by dragging its icon with the mouse than by having to remember and type commands to accomplish the same task.
GUIs generally provide users with immediate, visual feedback about the effect of each action. For example, when a user deletes an icon representing a file, the icon immediately disappears, confirming that the file has been deleted (or at least sent to the trash can). This contrasts with the situation for a Command Line Interface (CLI), in which the user types a delete command (inclusive of the name of the file to be deleted) but receives no automatic feedback indicating that the file has actually been removed.
In addition, GUIs allow users to take full advantage of the powerful multitasking (the ability for multiple programs and/or multiple instances of single programs to run simultaneously) capabilities of modern operating systems by allowing such multiple programs and/or instances to be displayed simultaneously. The result is a large increase in the flexibility of computer use and a consequent rise in user productivity.
The use of Graphical User Interfaces (GUIs) is ubiquitous. GUIs are used for all types of computer related operations and applications, as they provide a user-friendly and easily usable manner for presenting information to and receiving instructions from a user.
SUMMARY
Conventional mechanisms such as those explained above suffer from a variety of deficiencies. One such deficiency is that conventional GUIs, when used to call up a dialog box, panel, drop-down menu or similar type object (collectively referred to herein as a graphical object) typically display the graphical object in a certain part of the display. The graphical object may occlude other objects in the display, thereby preventing the observation and use of the occluded objects.
Embodiments of the invention significantly overcome such deficiencies and provide mechanisms and techniques that display a graphical object and when the graphical object is fixated in the display, displays objects that otherwise would have been occluded by the graphical object in other parts of the display.
In a particular embodiment of a method for displaying graphical objects in a display, the method begins by receiving a first input from a user. In response to receiving the first input a graphical object is displayed. A second input is received from the user. In response to receiving the second input the graphical object is fixated in the display. Objects occluded by the graphical object are displayed in an area of the display outside the area occupied by the graphical object.
In another embodiment of a method for displaying graphical objects in a display, the method begins by receiving a first input from a user. In response to receiving the first input a graphical object is displayed. The graphical object can be used at this time. A second input is received from the user. In response to receiving the second input the graphical object is removed from the display.
Other embodiments include a computer readable medium having computer readable code thereon for providing a method of displaying graphical objects in a display. The medium includes instructions for receiving a first input from a user and instructions for displaying a graphical object in the display in response to the first input. The medium further includes instructions for receiving a second input from the user and instructions for fixating the graphical object in the display in response to the second input. The medium further includes instructions for displaying objects that otherwise would have been occluded by the graphical object in an area of the display outside the area occupied by the graphical object.
Another embodiment includes a computer readable medium having computer readable code thereon for providing a method of displaying graphical objects in a display. The medium includes instructions for receiving a first input from a user and instructions for displaying a graphical object in the display in response to the first input. The graphical object can be used at this time. The medium further includes instructions for receiving a second input from the user and instructions for removing the graphical object in response to receiving the second input.
Still other embodiments include a computerized device, configured to process all the method operations disclosed herein as embodiments of the invention. In such embodiments, the computerized device includes a memory system, a processor, communications interface in an interconnection mechanism connecting these components. The memory system is encoded with a process that provides a method of displaying graphical objects as explained herein that when performed (e.g. when executing) on the processor, operates as explained herein within the computerized device to perform all of the method embodiments and operations explained herein as embodiments of the invention. Thus any computerized device that performs or is programmed to perform the processing explained herein is an embodiment of the invention.
Other arrangements of embodiments of the invention that are disclosed herein include software programs to perform the method embodiment steps and operations summarized above and disclosed in detail below. More particularly, a computer program product is one embodiment that has a computer-readable medium including computer program logic encoded thereon that when performed in a computerized device provides associated operations providing a method of displaying graphical objects as explained herein. The computer program logic, when executed on at least one processor with a computing system, causes the processor to perform the operations (e.g., the methods) indicated herein as embodiments of the invention. Such arrangements of the invention are typically provided as software, code and/or other data structures arranged or encoded on a computer readable medium such as an optical medium (e.g., CD-ROM), floppy or hard disk or other a medium such as firmware or microcode in one or more ROM or RAM or PROM chips or as an Application Specific Integrated Circuit (ASIC) or as downloadable software images in one or more modules, shared libraries, etc. The software or firmware or other such configurations can be installed onto a computerized device to cause one or more processors in the computerized device to perform the techniques explained herein as embodiments of the invention. Software processes that operate in a collection of computerized devices, such as in a group of data communications devices or other entities can also provide the system of the invention. The system of the invention can be distributed between many software processes on several data communications devices, or all processes could run on a small set of dedicated computers, or on one computer alone. It is to be understood that the embodiments of the invention can be embodied strictly as a software program, as software and hardware, or as hardware and/or circuitry alone, such as within a computer device.



BRIEF DESCRIPTION OF THE DRAWINGS
The foregoing and other objects, features and advantages of the invention will be apparent from the following more particular description of preferred embodiments of the invention, as illustrated in the accompanying drawings in which like reference characters refer to the same parts throughout the different views. The drawings are not necessarily to scale, emphasis instead being placed upon illustrating the principles of the invention.
FIG. 1 is a first screen shot showing a display having several objects displayed therein;
FIG. 2 is a second screen shot showing the display of FIG. 1 and further showing the display of a graphical object;
FIG. 3 is a third screen shot showing the graphical object fixated in the display and showing that objects that otherwise would have been occluded by the graphical object are displayed in other areas of the display, in accordance with embodiments of the invention;
FIGS. 4A and 4B are flow diagrams depicting a first method of displaying graphical objects in accordance with embodiments of the invention; and
FIG. 5 is a second flow diagram depicting a second method of displaying graphical objects in accordance with embodiments of the invention.



DETAILED DESCRIPTION
Referring now to FIG. 1, a display 10a is shown. Display 10a shows a plurality of objects including object 12, and a plurality of picture objects 14, 16, 18, 20, 22 and 24. Display 10a also includes object 26 and a pointer 28, which is controlled by a mouse, keyboard or similar type device. Various other icons and objects are also shown.
Referring now to FIG. 2, display 10b is shown. Display 10b is similar to display 10a in that display 10b contains the same objects and icons as display 10a. A difference between the two displays 10a and 10b is that in display 10b the pointer 28 has been moved and has triggered the display of graphical object 30. The pointer has been moved by a first user action such as moving a mouse in order to position the pointer 28 to cause the graphical object 30 to be displayed (also referred to as a mouse over event). Moving a mouse is only one way of causing this action as various other ways, such as by the pressing of a predetermined key on a keyboard, can also cause the display of graphical object 30.
In this particular embodiment, the graphical object 30 has been displayed with a relatively translucent portion, which helps in making the object 24 being occluded by graphical object 30 somewhat visible to the user.
Referring now to FIG. 3, display 10c is shown. In display 10c, pointer 28 shows that a second user action has occurred, such as a mouse click or a keyboard key release. As a result, several things have occurred. Graphical object 30 has been fixated on the screen. As such, graphical object 30 can be used by a user, such as by the user entering text in to the various fields of the graphical object 30. Furthermore, graphical object 30 is no longer occluding any objects. In response to the second user action the system has determined whether any objects are occluded by the graphical object, has determined space in the display that is not occupied by an object (other than the space occupied by the occluded object) and has displayed the formerly occluded object in the space not occupied by another object. While the object 12 formerly displayed a collection of picture objects as a first row of three picture objects (picture objects 14, 16 and 18) and a second row of three picture objects (picture objects 20, 22 and 24) object 12 has been resized to fit within the space not occupied by other objects to display a first row of two picture objects (picture objects 14 and 16) and a second row of picture objects (18 and 20). Not shown is a third row of picture objects 22 and 24, which can be made visible by moving slide bar 32 to a lower position. None of the objects are occluded by graphical object 30.
Referring back to FIG. 2, picture object 24 was occluded by graphical object 30. As a result, the object 24 has been displayed such that it is no longer occluded by graphical object 30. Now, object 12 shows picture objects in a different arrangement such that picture object 24 is no longer occluded by graphical object 30.
The graphical object can be removed from the display by third user action, such as a mouse click on the graphical object or a key release of a predetermined key after a predetermined period of time has elapsed.
Other embodiments include using a key press of a predetermined key (e.g. the TAB key) or a mouse over event wherein a graphical object is displayed while the key is held down or the mouse over event is present. The graphical object can be used by the user via a mouse or other device, and when the key is released or the mouse pointer is moved off the object, the graphical object is removed from the display. Alternately, if the key is pressed and released quickly (before a predetermined amount of time has elapsed) the graphical object is fixated on the display and any objects that would have been otherwise occluded by the graphical object are displayed in another area of the display.
A flow chart of the presently disclosed methods is depicted in FIGS. 4A, 4B and 5. The rectangular elements are herein denoted “processing blocks” and represent computer software instructions or groups of instructions. Alternatively, the processing and decision blocks represent steps performed by functionally equivalent circuits such as a digital signal processor circuit or an application specific integrated circuit (ASIC). The flow diagrams do not depict the syntax of any particular programming language. Rather, the flow diagrams illustrate the functional information one of ordinary skill in the art requires to fabricate circuits or to generate computer software to perform the processing required in accordance with the present invention. It should be noted that many routine program elements, such as initialization of loops and variables and the use of temporary variables are not shown. It will be appreciated by those of ordinary skill in the art that unless otherwise indicated herein, the particular sequence of steps described is illustrative only and can be varied without departing from the spirit of the invention. Thus, unless otherwise stated the steps described below are unordered meaning that, when possible, the steps can be performed in any convenient or desirable order.
Referring now to FIGS. 4A and 4B, a particular embodiment of a method 100 of displaying graphical objects in a display is shown. The method 100 starts with processing block 102 wherein a first input from a user is received. As shown in processing block 104, the receiving of a first input comprises receiving one of a mouse over event and a key press of a predetermined key. A mouse over event is performed when the pointer is moved by operation of a mouse or similar device over a particular object in the display.
In processing block 106 a graphical object is displayed in the display in response to the first input. The graphical object may be a dialog box, a panel, a drop-down menu or similar type graphical object.
Processing block 108 recites that the displaying of a graphical object in the display in response to the first input comprises displaying the graphical object translucently such that objects in the same area of the display as the graphical object are somewhat visible. This is useful for allowing the user to view some of the object occluded by the graphical object.
In processing block 110 a second input from the user is received. As shown in processing block 112, receiving a second input comprises receiving a mouse click or receiving a key release of the predetermined key within a predetermined period of time from the key press of the predetermined key.
In processing block 114, the graphical object is fixated in the display in response to receiving the second input as described in processing block 110. Thus the mouse click or key release after a key press within the predetermined period of time fixes the graphical object within the display. As a result of the fixating of the graphical object within the display, other objects in the display may be occluded by the graphical object.
As recited in processing block 116, objects occluded by the graphical object are displayed in an area of the display outside the area occupied by the graphical object. As a result no objects are occluded by the graphical object. In order to display the occluded objects in other parts of the display, processing block 118, 120 and 122 are performed. In processing block 118 an object occluded by the graphical object are determined. In processing block 120, space in the display that is not occupied by other objects is also determined, and in processing block 122 the object occluded by the graphical object are displayed in the space that is not occupied by another object.
In processing block 124, a third input is received from the user. This third input results in closing or removing the graphical object from the display. As shown in processing block 126 the third input comprises one of a mouse click on the graphical object or a key release of a predetermined key after a predetermined period of time has elapsed from a key press of the predetermined key.
A particular embodiment of another method 150 of displaying graphical objects in a display is shown in FIG. 5. The method 150 starts with processing block 152 wherein a first input from a user is received. As shown in processing block 154, the receiving of a first input comprises receiving one of a mouse over event and a key press of a predetermined key.
In processing block 156 a graphical object is displayed in the display in response to the first input. The graphical object may be a dialog box, a panel, a drop-down menu or similar type graphical object. The object may be used by the user at this time.
Processing block 158 recites that the displaying of a graphical object in the display in response to the first input comprises displaying the graphical object translucently such that objects in the same area of the display as the graphical object are visible.
In processing block 160 the user is permitted to interact with the graphical object. For example, when the first user input is a key press, the user can use a mouse to activate click boxes or to select items in the graphical object. Alternately, if the first user action is a mouse over event, the user can use a keyboard to enter textual data in the graphical object.
In processing block 162 a second input from the user is received. As shown in processing block 164, receiving a second input comprises receiving a key release of the predetermined key or receiving a mouse movement outside the graphical object.
In processing block 166, in response to receiving the second input from the user, the graphical object is closed or removed from the display.
Having described preferred embodiments of the invention it will now become apparent to those of ordinary skill in the art that other embodiments incorporating these concepts may be used. Additionally, the software included as part of the invention may be embodied in a computer program product that includes a computer useable medium. For example, such a computer usable medium can include a readable memory device, such as a hard drive device, a CD-ROM, a DVD-ROM, or a computer diskette, having computer readable program code segments stored thereon. The computer readable medium can also include a communications link, either optical, wired, or wireless, having program code segments carried thereon as digital or analog signals. Accordingly, it is submitted that that the invention should not be limited to the described embodiments but rather should be limited only by the spirit and scope of the appended claims.

## Claims

1. A computer-implemented method, comprising:
providing, by a computing device, a graphical user interface of an application configured to display a graphical object;
displaying the graphical object at a first position in a portion of the graphical user interface;
in response to a first command, displaying a control element of the application in the graphical user interface, the control element displayed so as to at least partially occlude the displayed graphical object;
after displaying the control element, determining if the control element is to remain displayed in the graphical user interface;
in response to determining that the control element is to remain displayed in the graphical user interface: displaying the graphical object at a second position in the portion of the graphical user interface so that the control element does not occlude the graphical object; and
in response to determining that the control element is not to remain in the graphical user interface: removing the control element from the graphical user interface.

2. The method of claim 1, wherein the control element comprises a menu or control panel.

3. The method of claim 2, wherein the first command comprises a key press and determining if the control element is to remain in the graphical user interface comprises determining whether a predetermined amount of time has elapsed while the key is pressed.

4. The method of claim 3, wherein determining comprises:
determining that the control element is to remain in the graphical user interface if the key is released before the predetermined amount of time is elapsed.

5. The method of claim 1, wherein determining if the control element is to remain in the graphical user interface comprises determining whether a second command has been received while the control element is displayed.

6. The method of claim 5, wherein the second command comprises a mouse click.

7. The method of claim 1, wherein the portion of the user interface is not adjusted to display the graphical object at the second position.

8. The method of claim 1, wherein a size of the graphical object is the same when displayed at the first position and when displayed at the second position.

9. A computerized device, comprising:
a processing device configured to provide output to display a graphical interface, the graphical user interface comprising a graphical object displayed at a first position in a portion of the graphical user interface, the processing device further configured to display a control element after displaying the graphical object, the control element so as to at least partially occlude the displayed graphical object, the processing device further configured to determine, after displaying the control element, whether the control element is to remain displayed in the graphical user interface or is to be removed from the graphical user interface and, if the control element is to remain displayed in the graphical user interface, display the graphical object at a second position in the portion of the graphical user interface so that the control element does not occlude the graphical object.

10. The device of claim 9, wherein the control element comprises a menu or control panel.

11. The device of claim 9, wherein the first command comprises a key press and determining if the control element is to remain in the graphical user interface comprises determining whether a predetermined amount of time has elapsed while the key is pressed.

12. The device of claim 11, wherein determining comprises:
determining that the control element is to remain in the graphical user interface if the key is released before the predetermined amount of time is elapsed.

13. The device of claim 9, wherein determining if the control element is to remain in the graphical user interface comprises determining whether a second command has been received while the control element is displayed.

14. The device of claim 13, wherein the second command comprises a mouse click.

15. A computer program product comprising a non-transitory computer readable medium embodying program instructions, the program instructions comprising:
instructions for providing a graphical user interface, the graphical user interface including a graphical object;
instructions for displaying the graphical object at a first position in a portion of the graphical user interface;
instructions for displaying, in response to a first command, a control element in the graphical user interface, the control element displayed so as to at least partially occlude the displayed graphical object;
instructions for determining, after displaying the control element, if the control element is to remain displayed in the graphical user interface;
instructions for displaying, in response to determining that the control element is to remain displayed in the graphical user interface, the graphical object at a second position in the portion of the graphical user interface so that the control element does not occlude the graphical object; and
instructions for removing, in response to determining that the control element is not to remain in the graphical user interface, the control element from the graphical user interface.

16. The computer program product of claim 15, wherein the control element comprises a menu or control panel.

17. The computer program product of claim 16, wherein the first command comprises a key press and determining if the control element is to remain in the graphical user interface comprises determining whether a predetermined amount of time has elapsed while the key is pressed.

18. The computer program product of claim 17, wherein determining comprises:
determining that the control element is to remain in the graphical user interface if the key is released before the predetermined amount of time is elapsed.

19. The computer program product of claim 15, wherein determining if the control element is to remain in the graphical user interface comprises determining whether a second command has been received while the control element is displayed.

20. The computer program product of claim 19, wherein the second command comprises a mouse click.