Abstract:
Systems and methods for providing an enhanced visual appearance to a graphical user interface are described. Control elements portrayed by the graphical user interface on a display are associated with at least two states. When transitioning between states, an animated transition effect can be provided to provide further user or designer customization of the interface appearance.

Description:
RELATED APPLICATIONS 
     This application is a continuation-in-part of U.S. patent application Ser. No. 08/243,327 entitled &#34;A System and Method for Customizing Appearance and Behavior of Graphical User Interfaces&#34; and a continuation-in-part of U.S. patent application Ser. No. 08/243,268 entitled &#34;Switching Between Appearance/Behavior Themes in Graphical User Interfaces,&#34; and a continuation-in-part of U.S. patent application Ser. No. 08/242,963 entitled &#34;Pattern and Color Abstraction in a Graphical User Interface, &#34; each of which was filed on May 16, 1994 and each of which is incorporated here by reference. 
    
    
     BACKGROUND 
     The present invention relates generally to graphical user interfaces for computer systems. More particularly, the present invention relates to systems and methods for interfacing applications and operating systems which provide for animated control elements in graphical user interfaces. 
     The evolution of the computer industry is unparalleled in its rate of growth and complexity. Personal computers, for example, which began as little more than feeble calculators with limited memory, tape-driven input and monochrome displays are now able to tackle almost any data processing task. While this meteoric increase in power was almost sufficient to satisfy the demand of application programmers and end users alike, the corresponding increase in complexity created an ease-of-use problem which the industry was somewhat slower in solving. Thus, designers were faced with a new challenge: to harness this computing power in a form usable by even those with relatively little computer training to smooth the transition of other industries into a computer-based information paradigm. 
     As a result, in the early to mid-1980&#39;s many new I/O philosophies, such as &#34;user friendly,&#34; &#34;WYSIWYG&#34; and &#34;menu driven&#34; came to the forefront of the industry. These concepts are particularly applicable to microcomputers, also known as personal computers, which are intended to appeal to a broad audience of computer users, including those who previously feared and mistrusted computers. An important aspect of computers which employ these concepts was, and continues to be, the interface which allows the user to input commands and data and receive results, which is commonly referred to as a graphical user interface (GUI). 
     One type of GUI display is based on a visual metaphor which uses a monitor screen as a work surface called a &#34;desktop&#34; where documents are presented in relocatable regions termed &#34;windows&#34;. The user interacts with the computer by, for example, moving objects on the desktop, choosing commands from menus, and manipulating window control elements, such as checkboxes and scroll bars. An exemplary desktop screen is reproduced as FIG. 1. 
     Windows are one example of desktop objects which can be virtually any size, shape, or color. Some standard types of windows are commonly predefined for the interface including, for example, a document window and a dialog box. One example of a standard for a document window is illustrated in FIG. 2. Each document window which conforms to this standard has a title bar with a title drawn in a system-defined font and color. Active document windows can also have control elements as illustrated in FIG. 2, for example, a close box, a zoom box, a size box, and scroll bars. Other control elements, not shown in FIG. 2, include buttons, menu items and checkboxes. Those skilled in the art will recognize that myriad other control elements are known and in use. 
     Control elements are on screen objects that a user can manipulate with, for example, a mouse to cause an immediate action or modify settings to cause a future action. For example, a button control element can provided for the graphical user interface to receive user input as to a selected function to be performed by the system. FIG. 3 illustrates a window entitled &#34;Find&#34; having three button control elements whose titles describe the function to be performed when these control elements are activated. A user can activate a button control element in a variety of ways, for example by positioning a cursor (not shown in FIG. 3) over the control element and providing an activating input, e.g., depressing a mouse button. 
     As shown in FIG. 3, control elements are typically displayed in a static default or normal state. However, when a button control element is actuated the graphical user interface redraws the control element in a second static state which visually informs the user that the system has recognized the user&#39;s input and is performing the desired function. For example, some conventional graphical user interfaces redraw button control elements in a depressed state to indicate activation. 
     The success of these types of conventional interfaces is evident from the number of companies which have emulated the desktop environment. Even successful concepts, however, must continually be improved in order to keep pace with the rapid growth in this industry. The advent of multimedia, especially CD-ROM devices, has provided vast quantities of secondary storage which have been used to provide video capabilities, e.g., live animation and video clips, as regular components of applications. With these new resources at their disposal, application designers, and others, desire additional control over the appearance of the display, including the desktop environment and, in particular, objects and control elements on the desktop. 
     SUMMARY 
     According to exemplary embodiments of the present invention, an improved visual appearance can be provided to GUIs by providing transitional visual effects between static states for control elements. For example, an animated effect can be created by repeatedly redrawing the control element using stored transitional images after a control element has been actuated by a user. These transitional effects allow designers to create, and users to customize, a more interesting system interface. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     The foregoing, and other, objects, features and advantages of the present invention will be more readily understood by those skilled in the art upon reading the following detailed description in conjunction with the drawings in which: 
     FIG. 1 shows a conventional desktop screen; 
     FIG. 2 shows a conventional document window; 
     FIG. 3 illustrates an exemplary window having button control elements; 
     FIG. 4(a) illustrates an exemplary computer system which can be used in conjunction with the present invention; 
     FIG. 4(b) is a block diagram illustrating various exemplary functional units of the computer system of FIG. 4(a); 
     FIG. 5 illustrates an exemplary desktop window and a set of transition images which can be used to provide an animated transition effect for a control element according to an exemplary embodiment of the present invention; 
     FIG. 6 illustrates another exemplary desktop window and a set of transition images which can be used to provide an animated transition effect for a control element according to another exemplary embodiment of the present invention; 
     FIG. 7 is a state diagram used to illustrate transitions of a control element according to an exemplary embodiment of the present invention; 
     FIG. 8 is an exemplary matrix used to describe control element transitions according to an exemplary embodiment of the present invention; 
     FIG. 9(a) is a flowchart used to describe an exemplary process for providing transitions between control element display states according to an exemplary embodiment of the present invention; 
     FIG. 9(b) is a continuation of the flowchart of FIG. 9(a); 
     FIG. 10 illustrates another exemplary desktop window and a set of transition images which can be used to provide an animated transition effect for a control element according to another exemplary embodiment of the present invention; and 
     FIG. 11 illustrates another exemplary desktop window and a set of transition images which can be used to provide an animated transition effect for a control element according to another exemplary embodiment of the present invention. 
    
    
     DETAILED DESCRIPTION 
     The present invention is described herein by way of exemplary, illustrative embodiments, some of which use the Macintosh® computer system and visual displays created thereby as a reference for explaining the present invention. Those desiring additional information with respect to the Macintosh® system are referred to Inside Macintosh, Vols. 1-6. Of course, those skilled in the art will readily appreciate that systems and methods according to the present invention can be applied to any type of display system having a user interface. Further, certain exemplary control elements are used to describe concepts according to the present invention, it will be understood that the present invention is applicable to any type of control element. 
     Graphical user interfaces according to the present invention can, for example, be used in conjunction with a computer such as that illustrated in FIG. 4. Therein, a personal computer is illustrated as having a box 16 which contains, among other elements, circuit boards associated with the computer&#39;s functions including memory devices and one or more processors, a keyboard 18, a pointing device 20 and a monitor 22 having a display space 24. Of course the personal computer illustrated in FIG. 4(a) is purely exemplary of one type of computer system in which graphical user interfaces according to the present invention may be implemented. For example, although the display space 24 of the system depicted in FIG. 4(a) consists of that provided by monitor 22, those skilled in the art will recognize that additional display devices could be arranged proximate monitor 22 to create a display space bridging several monitors. The circuit boards included in box 16 can include boards which accommodate functional units such as those illustrated by the block diagram of FIG. 4(b). Therein RAM 300, ROM 320, processor 340, and I/O 360 are all interconnected via system bus 380. 
     According to exemplary embodiments of the present invention, animated transitions between control element display states are provided. FIG. 5 provides an example of this concept based on the earlier described button control element of FIG. 3. Therein, the same window entitled &#34;Find&#34; is displayed by a graphical user interface on a display 30. To the right of the &#34;Find&#34; window 31 in FIG. 5 is a rectangle which contains exemplary display states for the &#34;Find&#34; button control element in the &#34;Find&#34; window of FIG. 5. For example, a first static display state 32 is shown which corresponds to the default or &#34;normal&#34; display state of the &#34;Find&#34; button before a user activates the button. After the user activates the &#34;Find&#34; button, e.g., by positioning a cursor over this button and depressing a mouse button, the user interface enters a routine for providing a transition effect on the display 30. In the example shown in FIG. 5, the transition effect is an animated sequence which gives the visual impression of flipping the &#34;Find&#34; button around an axis extending through the center of the button lengthwise to replace the default display state 32 with the second display state 34. In the example of FIG. 5, the default display state 32 has a different background and lettering color than the second display state 34. 
     The transition effect is created by retrieving a sequence of transition images from a memory device (not shown) of computer system 16 and repeatedly redrawing the &#34;Find&#34; button using each of these images. These transition images can, for example, be stored as bit-mapped images in the memory device. In FIG. 5, the transition images 36, 38, 40, 42 and 44 have been depicted in display order from top to bottom in the rectangle. Note that transition images 36 and 38 depict the &#34;Find&#34; button using the same background and lettering colors as the default state 32 while transition images 42 and 44 depict the &#34;Find&#34; button using the same background and lettering colors as the second static display state 34. 
     Another example of animated control element transition is shown in FIG. 6. In this example, the control element is a menu item entitled &#34;About this Computer&#34;. Like the example of FIG. 5, the animated transition effect is a revolution of the menu item about a central axis to reveal the menu item drawn in a different background and lettering color. Unlike the example of FIG. 5, however, the transition shown in FIG. 6 occurs in response to the user&#39;s moving the cursor over the control element rather than in response to an activation of the control element. This illustrates that the present invention is applicable to any state change of control elements in which a corresponding visual change is desirable. Also note that the number of transition images provided between static display states can be variable depending upon the animated effect desired, e.g., five in FIG. 5 and six in FIG. 6. 
     State tables can be also be used to store information identifying the static display state images and the transitional effects between states that are associated with particular triggering actions. Although exemplary embodiments of the present invention focus on animated transitions, each transition may contain one or more of, for example, an animation sequence, a sound or a routine to implement a custom transition, e.g., an algorithmic display or any other type of transitional effect. An exemplary state diagram table is shown as FIG. 7 which provides an example of possible states and common state transitions for a checkbox control element of a window. This state diagram can then be reduced to a state table as shown in FIG. 8. 
     As seen in FIGS. 7 and 8, this exemplary checkbox control element has nine possible states which can be displayed. These states include three highlighted display states for each of the control element&#39;s three values. For example, when a user, clicks on an unchecked checkbox (state Q1) using a mouse button, this action moves the control to its pressed state (state Q4). After the mouse button is released, the control returns back to its original state (state Q1) and the application is notified of the button which has been pressed. The application then switches the value of the control to its new value, which might be checked (state Q2). FIG. 8 is a matrix of all of the possible transitions between states Q1 and Q9. Transition effects are indicated for some of these transitions by the notations T1-T18 found in some of the matrix locations. For example, transition effect T1 occurs when an empty checkbox (state Q1) becomes checked (state Q2). This effect could be, for example, a repeated redrawing of the checkbox wherein sequentially greater portions of the &#34;X&#34; in the second static display state appear to provide an animated drawing effect of the &#34;X&#34;. Note that not all of the state transitions are required to have transition effects as underscored by the empty matrix locations in FIG. 8. 
     A discussion of an exemplary technique by which the foregoing concepts can be combined to provide transitional effects will now be described using the flow chart of FIGS. 9(a) and 9(b). FIG. 9(a) depicts an exemplary process whereby transitional effects are created between static states of a checkbox in response to interactions between a user and a graphical interface according to an exemplary embodiment of the present invention. First, the checkbox is displayed in its normal state at block 90. This state corresponds to state Q1 in FIGS. 7 and 8. Next, the system periodically ascertains whether or not a mouse button is pressed by a user when the cursor is positioned over the checkbox at block 92. Until this occurs, the normal checkbox continues to be displayed. It will be appreciated that the flow chart of FIG. 9(a) and 9(b) is a simplification of the state diagram of FIG. 7 which provides for other state transitions from the normal checkbox state Q1 than the transition to Q4 mentioned here. After a user has performed the actions identified in block 92 for selecting a checkbox, then the flow proceeds to block 94 where the transition images are loaded for the particular transitional effect to be displayed by the graphical user interface when a user selects a checkbox. Those skilled in the art will appreciate that transitional images can, for example, be stored in memory (e.g., as bit mapped images) or created dynamically depending upon the nature of the control element. In this example, the selected checkbox will reach a static state which is highlighted in a manner that provides a visual appearance that the checkbox has been raised from its normal state. Thus, the transition images could be used to generate frames which, when displayed, give the checkbox the appearance of moving upward relative to the other elements on the graphical user interface. 
     At the same time, transition sounds (if any) can be loaded at block 96 and subsequently the transition images and transition sounds can be played together in frames at block 98 to achieve the desired transitional effect. Once this transitional effect has culminated, the checkbox will then be displayed in its next static state (i.e., state Q4 in FIGS. 7 and 8) at block 100. 
     Until the user releases the mouse button, the graphical user interface continues to display the checkbox in its highlighted state at block 100. However, after the user releases the mouse button, thereby indicating a desire that the selected checkbox be checked, the flow then proceeds to block 104. Referring to FIGS. 7 and 8, it can be seen that the transition between a highlighted checkbox and a checkbox in its checked state (Q2) first requires a transition back to the normal checkbox state (Q1). Thus, the system will refer to the state table of FIG. 8 and load the transitional images and/or sounds associated with transition T6 at block 104. These loaded transition images and sounds are then used by the system to generate the next set of transition frames which are played at block 106 to create the transitional effect T6, for example, giving the visual impression that the checkbox is lowered into the normal checkbox state. Referring now to FIG. 9(b), once the transition frames used to generate the transitional effect T6 have ended, the graphical user interface then displays the checkbox in its normal state at block 108. Since this is only an intermediate state between the highlighted state Q4 and the checked state Q2, the flow then proceeds to block 110 where the next set of transition images and/or sounds is loaded to prepare for the implementation of transitional effect T1. The transitional frames for effect T1 are played at block 112 leading to the display of the checked checkbox by the graphical user interface at block 114. The foregoing provides one example of the interaction between the system, the graphical user interface and the state tables/diagrams, all of which cooperate to provide transitional effects for control elements between static states thereof according to exemplary embodiments of the present invention. Many other types of animated transition effects between states of control elements are also possible by way of the present invention. For example, FIG. 10 depicts a &#34;System Folder Info&#34; window having a close box control element 900. When activated to close the window, close box control element 900 may be redrawn at the same position of the display using a sequence of transition images stored in memory, such as the four images shown in rectangle 920. This sequence of transition images might give a user a visual impression that the checkbox was exploding and disappearing just prior to the &#34;System Folder Info&#34; window being closed. 
     Another example is shown in FIG. 11 which portrays a window entitled &#34;Mouse&#34; having a plurality of indicator buttons 1000. Although difficult to discern in the gray scale depiction of FIG. 11, the sixth indicator button 1000 from the left is currently selected as shown by a filled-in (e.g., with a different color in the displayed version) center portion of the indicator button. When a user wishes to change the speed of the mouse tracking, the user positions the cursor over the appropriate indicator button 1000 and, for example, depresses and then releases one of the mouse buttons. According to this exemplary embodiment, an animated change from the default static state 1020 to the &#34;on&#34; static state 1040 is provided by redrawing the selected indicator button using, for example, the five transition images 1060 when the mouse button is released. This provides the visual appearance to the user that the center portion of the selected indicator button gradually fills in until it reaches the static state 1040. 
     The above-described exemplary embodiments are intended to be illustrative in all respects, rather than restrictive, of the present invention. Thus the present invention is capable of many variations in detailed implementation that can be derived from the description contained herein by a person skilled in the art. All such variations and modifications are considered to be within the scope and spirit of the present invention as defined by the following claims.