The invention described and claimed herein relates generally to user interfaces for computer systems and more particularly, graphical user interfaces. A graphical user interface or “GUI” facilitates communications between a computer operating system and a computer user. The computer system includes software and hardware, including hardware for a GUI which typically includes both a visual display (commonly a computer monitor) and selector device (commonly a mouse, trackball or keyboard). Through the visual display, the computer system can deliver graphical and textual output to the user.
A conventional GUI is made up of elements presented on the visual display which allow a user to activate an application in a computer operating system. Examples of such elements are the buttons, menus, menu items, scroll bars and the text input fields. Elements give the application the opportunity to display information, such as zones of text or graphical displays. The layout of all the elements of a conventional GUI is generally already setup by the designer of the application, such as in the well-known WINDOWS®operating system made by Microsoft Corporation of Redmond, Wash.
Therefore, limited opportunities are presently available to reconfigure conventional computer applications. These typically include adjusting the position of certain controls like the toolbars. Such interfaces can be regarded as static because they do not allow the possibility of configuration by end-users. Moreover, all these elements are often of a rectangular or square shape, which is neither visually stimulating nor very pleasing to the eye.
The present invention provides a method and system by which users can completely reorganize a GUI to his or her personal taste. For clarity, the term element as used herein is the object which a user can move on the display device or computer screen using his or her selector device. The element is comprised of a core and an adjacent dynamic zone or edge. The core is the central part of the element. It is this core that is managed by the application program that uses the interface. The edge is the dynamic zone that preferably surrounds the core. The edge manager is the software taking care of the management, the calculation and the display of the dynamic edges.
In a preferred embodiment, each element of the user interface in the present invention is surrounded by a dynamic edge instead of being surrounded by a static edge as in conventional systems. The present invention does not limit the shape of the core of the element to be rectangular, but allows the elements to be of any shape and in one or more pieces. The dynamic aspect of the present invention comes from the possibility of sticking or adhering together several cores in a visually coherent unit and doing it in real time.
For example, in one aspect, a user can manipulate his or her mouse and move an element, say element 1 which is green in color, towards element 2 which is red in color. The edges of element 1 merge with the edges of element 2 in real time and are updated at each movement by the edge manager, provided that the cores of the elements are not overlapping. In one aspect, this merging can be reversed and the user needs only to move one of the two elements way from the other element so that they no longer contact each other and the edges of the respective elements return to their initial size, shape and/or color.
Thus, it is an object of the present invention to provide a dynamic graphic user interface. Other and further objects will appear to those skilled in the art from the specification and drawings.
a shows one embodiment of an element.
b is a graphical illustration of the height values of the element from
In the specific embodiments to be described, the invention provides a dynamic graphic user interface in an application program.
Turning now to
For all points which correspond to the edge 14, the height varies from a value of one, if the point is close to the core 12, and tends towards zero value as one moves away from the core 12 as also shown in
As shown schematically in
In a preferred embodiment shown in
In detail, Block 800B retrieves the next element from the previously assembled touching list at step 810 and then, at step 812, asks if that element includes a dynamic border.
If the answer is yes, then the border of that element is merged with the border of element A in step 814 and operation is transferred to step 816. If the answer at step 812 is no, the operation is transferred to step 816 which asks if the current element is the last one in the touching list. If the answer is no, operation is transferred back to step 810 to get the next element in the touching list. If the answer is yes, operation is transferred to step 820.
At step 820, the merged dynamic borders are rendered and then at step 830 the core and dynamic border is displayed. When the user moves an element 10 toward another element 10a, a determination is made if the borders of elements 10 and 10a are going to overlap and this process is done for all additional elements that overlap or touch element 10 as shown in FIG. 8. When two elements merge, the merged portion is calculated using the addition of two height arrays as shown graphically in FIG. 6.
When an edge 14 merges with more than one other edge, the arrays corresponding to the touching edges 14 and 14a are added to obtain the global array for the merged portion which will be the merged dynamic border. The merged edge array is equal to the sum of all the edge arrays of the elements in the merged group.
The melted color aspect of the edges is achieved by using the height values of each edge array to mix the colors of each element doing a weighted average. For two colors, say C1 and C2, and using the height of each edge, say a1 and a2, the melted or final color, Cf, of the global edge is preferably calculated using the equation:
Cf=(C1*a1+C2*a2)/(a1+a2)
Creation of Groups
If the edges 14 and 14a of two or more elements 10 and 10a are merged, it is possible to freeze or “stick together” all the elements as shown in FIG. 1. This arrangement will behave in the same way that a single element 10 behaves and is called a group 20. This group 20 comprises as many cores 12 as there were in all the elements comprising the group 20, and the position of one of the cores 12 is fixed relative to the other cores 12 in the group 20. This group 20 could be merged again with another element 10b. A group 20 behaves like a single element 10, so it is possible to create a new group 20a from a set of elements composed of groups. As shown in
This grouping process can be repeated as long as elements remain to be “stuck” together. This grouping procedure can be represented as a tree structure as shown in
Static/Dynamic Aspect of the Edge
In another preferred embodiment, an edge 14 can be static meaning it cannot be merged with other edges 14a. In this embodiment, the static edge 14 behaves like a standard window and passes on top of the other elements as shown in FIG. 4. In one embodiment, the static edge 14 can be altered to be dynamic edge. For example, if an element 10 with a static edge 14 is on top of another element 10a with a dynamic edge as shown in
While embodiments of the present invention and modifications thereto have been shown and disclosed in the drawings and specification, alternate embodiments of the present invention will be apparent to a person of ordinary skill in the art and this application is intended to include those embodiments within the full breadth and scope of the claims. The present invention is not limited by any parameters described herein and the present invention need not include all of the features disclosed in the single embodiment, but rather one or more features may be included.
This application claims the benefit of U.S. Provisional Application Ser. No. 60/153,993 filed Sep. 15, 1999, the disclosure of which is incorporated herein by reference.
| Number | Name | Date | Kind |
|---|---|---|---|
| 4658093 | Hellman | Apr 1987 | A |
| 4813013 | Dunn | Mar 1989 | A |
| 4949187 | Cohen | Aug 1990 | A |
| 5155591 | Wachob | Oct 1992 | A |
| 5319455 | Hoarty et al. | Jun 1994 | A |
| 5404505 | Levinson et al. | Apr 1995 | A |
| 5404566 | Wehrmeyer | Apr 1995 | A |
| 5557242 | Wetherell | Sep 1996 | A |
| 5557541 | Schulhof et al. | Sep 1996 | A |
| 5568181 | Greenwood et al. | Oct 1996 | A |
| 5625783 | Ezekiel et al. | Apr 1997 | A |
| 5636276 | Brugger | Jun 1997 | A |
| 5642417 | Stringer | Jun 1997 | A |
| 5721950 | Tobagi et al. | Feb 1998 | A |
| 5757908 | Cooper et al. | May 1998 | A |
| 5760774 | Grossman et al. | Jun 1998 | A |
| 5761607 | Gudesen | Jun 1998 | A |
| 5773741 | Eller et al. | Jun 1998 | A |
| 5787399 | Lee et al. | Jul 1998 | A |
| 5808610 | Benson et al. | Sep 1998 | A |
| 5819160 | Foladare et al. | Oct 1998 | A |
| 5826080 | Dworzecki | Oct 1998 | A |
| 5828904 | Batson et al. | Oct 1998 | A |
| 5883955 | Ronning | Mar 1999 | A |
| 5889860 | Eller et al. | Mar 1999 | A |
| 5892825 | Mages et al. | Apr 1999 | A |
| 5898892 | Gulick et al. | Apr 1999 | A |
| 5931901 | Wolfe et al. | Aug 1999 | A |
| 5937164 | Mages et al. | Aug 1999 | A |
| 6006257 | Slezak | Dec 1999 | A |
| 6035329 | Mages et al. | Mar 2000 | A |
| 6037940 | Schroeder et al. | Mar 2000 | A |
| 6202056 | Nuttall | Mar 2001 | B1 |
| 6469723 | Gould et al. | Oct 2002 | B1 |
| 6639614 | Kosslyn et al. | Oct 2003 | B1 |
| 20010019604 | Joyce et al. | Sep 2001 | A1 |
| Number | Date | Country |
|---|---|---|
| 0680214 | Nov 1995 | EP |
| 0798924 | Oct 1997 | EP |
| 0843 449 | May 1998 | EP |
| 2 222 057 | Feb 1990 | GB |
| WO 9712486 | Apr 1997 | WO |
| WO 98 26559 | Jun 1998 | WO |
| WO 98 58315 | Dec 1998 | WO |
| WO 0142900 | Dec 2000 | WO |
| WO 0110124 | Feb 2001 | WO |
| Number | Date | Country | |
|---|---|---|---|
| 60153993 | Sep 1999 | US |