[go: up one dir, main page]

HK1137230A - Widget authorizing and editing environment - Google Patents

Widget authorizing and editing environment Download PDF

Info

Publication number
HK1137230A
HK1137230A HK10100745.6A HK10100745A HK1137230A HK 1137230 A HK1137230 A HK 1137230A HK 10100745 A HK10100745 A HK 10100745A HK 1137230 A HK1137230 A HK 1137230A
Authority
HK
Hong Kong
Prior art keywords
user interface
interface element
control
displaying
unified interest
Prior art date
Application number
HK10100745.6A
Other languages
Chinese (zh)
Other versions
HK1137230B (en
Inventor
伊姆兰‧A.‧查德里
约翰‧劳驰
安德鲁‧M.‧格里格农
格莱格里‧N.‧克里斯泰
Original Assignee
苹果公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 苹果公司 filed Critical 苹果公司
Publication of HK1137230A publication Critical patent/HK1137230A/en
Publication of HK1137230B publication Critical patent/HK1137230B/en

Links

Description

Control authoring and editing environment
The application is a divisional application of the invention application with the application date of 24.6.2005, the application number of 200580016349.3 and the name of 'unified interest level for user interface'.
Cross Reference to Related Applications
Priority of U.S. patent application No. 10/877,968 entitled "united Interest Layer For User Interface", filed on 25.6.2004, the disclosure of which is incorporated herein by reference as a continuing application For part of this application, and priority of U.S. patent application No. 10236 entitled "united Interest Layer For User Interface", filed on 23.6.2005, the disclosure of which is also incorporated herein by reference.
This application further claims priority from U.S. provisional patent application No. 60/642,025 (attorney docket No. 9920), entitled "Unified interlayer layer Widgets," filed on 7/1/2005, the disclosure of which is incorporated herein by reference.
The subject matter of this invention relates generally to the following commonly owned but pending patent applications, which are incorporated herein by reference in their entirety:
U.S. provisional patent application No. xx/xxx, entitled "Procedurally Expressing graphical objects for Web Pages", filed on 25.6.2004;
U.S. patent application Ser. No. yy/yyy, filed on 6/22/2004, entitled "User Interface for Assisting in the organization of an Asset";
U.S. patent application No. 10/826,762 entitled "High-Level Program interfaces for graphical Operations" filed on 16.4.2004;
U.S. patent application No. 10/866,360 entitled "system and method for processing graphics operations with graphics processing unit", filed 6/11/2004;
U.S. patent application No. 10/826,596 entitled Improved Gaussian Blur filed on day 4, 16, 2004;
U.S. patent application No. 10/826,744 entitled "system For organizing graphics operations" filed on 16.4.2004;
U.S. patent application Ser. No. aa/aaa, aaa entitled "user-interface design" filed 24/6/2004;
U.S. patent application No. bb/bbb, entitled "gaussian blue adaptive usable for GPU", filed 24/6/2004;
U.S. patent application No. 10/825,694 entitled "system for optimizing graphicsoperons", filed 4/16/2004;
U.S. patent application No. 10/826,773 entitled "system for reducing the number of programs from the company to the renderer image" filed on day 16, 2004; and
U.S. patent application number cc/ccc, entitled "fast adaptation functions for image processing filters," filed 24.6.2004.
Technical Field
The present invention relates generally to graphical user interfaces, and more particularly to a user-activatable, configurable unified layer containing items of user interest.
Background
A feature of modern graphical user interfaces is that they allow a large number of items to be displayed on the screen at the same time. On the user interface provided by leading personal computer operating systems, such as Apple MacOS X and Microsoft Windows XP, multiple Windows can be displayed, overlaid, resized, moved, configured, and reformatted according to the needs of the user. Toolbars, menus, and other UI elements provide a mechanism to access and activate some windows even if they are hidden behind others.
While many users appreciate the ability of such user interfaces to present large amounts of information simultaneously on the screen, the "information overload" they cause can also be overwhelming. Users often find it difficult to navigate to a particular UI element or window among a large number of on-screen elements, or even find a desired element. The problem becomes more complicated when the user interface allows the user to place the on-screen elements in any desired layout, including overlapping, minimizing, maximizing, etc. This flexibility is useful for some users, but can lead to confusion for other users. Too many items appearing on the screen at the same time may cause information overload and may become a prohibitive factor for efficient use of the computer device.
Some user interfaces dedicate certain areas of the screen to holding certain common user interface elements (such as menu bars or icons for activating common programs or files). However, such area sizes are typically limited so as not to take up too much valuable screen space that might otherwise be dedicated to the main workspace of the display screen. While small elements such as digital clock elements or toolbars may be well suited for display in such dedicated screen areas, it is not appropriate for other types of elements to appear in such small screen areas; they must be activated or magnified before they can be used or viewed. This results in a further level of confusion because the items need to be activated or deactivated. Further, items may overlap or otherwise increase the number of on-screen elements that must be handled and managed by the user.
These problems have led many users to fail to take full potential of their computers and may further lead to frustration or confusion, especially among novice users.
What is needed is a mechanism for providing easy access to commonly used user interface elements without introducing additional confusion or confusion. What is further needed is a mechanism for providing such access in a user-configurable manner to allow a user to arbitrarily activate and deactivate UI elements with minimal confusion. What is further needed is a mechanism that allows a user to easily activate and deactivate certain user interface elements regardless of the number of windows currently open on the user's screen, and without requiring the user to search for a particular user interface element in a set of open windows.
What is further needed is a mechanism for solving the above problems in a convenient and easy to use manner that may be easily employed by users and that is suitable for the framework of existing graphical user interfaces.
Disclosure of Invention
According to the technique of the present invention, an operation screen (also referred to as a unified interest layer) that can be activated by a user is provided. The dashboard may contain any number of user interface elements, referred to herein as "widgets," for quick access by the user. In response to a user's command, the operation screen is called and a control is displayed on the screen. In one aspect of the invention, the user may activate the operator screen at any time, causing the operator screen to temporarily replace or overlay the existing user interface display on the user screen.
Once the dashboard is activated, the user can manipulate some or all of the controls and can configure the dashboard by adding, deleting, moving, or configuring individual controls as desired. When the user wishes to return to the normal user interface, the user issues a command to have the operation screen released. Once the operator screen is dismissed, the previous user interface state is restored, allowing the user to continue to perform normal interactions with the operating system.
In one aspect, the operator screen temporarily replaces an existing user interface display when the operator screen is activated. In another aspect, the operator screen portion obscures an existing user interface display but allows a portion of the existing display to be visible to alert the user of its presence. In another aspect, existing user interface displays disappear, blur, and/or darken when the operator screen is activated.
In one aspect, a transitional effect is displayed during activation and/or deactivation of the operator screen to help the user understand what is happening as the operator screen appears and disappears.
In one aspect, the user can select from any number of controls to place on the dashboard in any desired layout. Whenever the dashboard is activated, the controls appear where the user previously placed them.
The controls may be of any type that can communicate with a remote server to provide information (e.g., weather forecast) to the user, or they may provide frequently required functionality (e.g., a calculator), or they may serve as an information repository (e.g., a notepad or calendar). Some controls may provide a combination of these types of functionality. In one aspect, an Application Program Interface (API) is provided to allow third party developers to create and sell other controls that can provide different types of functionality.
Drawings
The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate several embodiments of the invention and together with the description, serve to explain the principles of the invention.
FIG. 1 is a block diagram depicting the overall architecture for implementing the present invention, according to one embodiment.
FIG. 2 is a flow chart depicting a method for activating and using an operator screen according to one embodiment of the present invention.
FIG. 3 is a block diagram illustrating a software architecture for implementing the present invention according to one embodiment.
FIG. 4 is a screen shot depicting the desktop user interface prior to the operation screen activation.
FIG. 5 is a screen shot illustrating an initial state of an operator screen, according to one embodiment.
FIG. 6 is a screen shot illustrating a configuration bar of an action screen, according to one embodiment.
FIG. 7 is a screen shot illustrating a user selection of a control from a configuration bar, according to one embodiment.
FIG. 8 is a screen shot illustrating an operations screen including a calculator control, according to one embodiment.
FIG. 9 is a screen shot illustrating an operations screen including a calculator control and a music player control, according to one embodiment.
FIG. 10 is a screen shot illustrating activation of a music player application upon invocation of a music player control, according to one embodiment.
FIG. 11 is a screen shot illustrating an operations screen including a calculator control, a music player control, and an address book control, according to one embodiment.
FIG. 12 is a screen shot illustrating operation of a correspondence book control, according to one embodiment.
FIG. 13 is a screen shot illustrating an operation screen having a plurality of controls including a notepad control, according to one embodiment.
FIG. 14 is a screen shot illustrating an operations screen with a configuration bar closed, according to one embodiment.
FIG. 15 is a screen shot of an action screen illustrating a control having been moved, according to one embodiment.
16A-16C are screen shots illustrating a transition animation for dismissing an action screen, according to one embodiment.
17A-17D are screen shots illustrating a transition animation for activating an action screen, according to one embodiment.
FIG. 18 is an example of a calendar control according to one embodiment.
FIG. 19 is an example of a stock quote control, according to one embodiment.
FIG. 20 is an example of a weather control according to one embodiment.
FIG. 21 is an example of a traffic mesh (webcam) control, according to one embodiment.
FIG. 22 is an example of a music player control according to one embodiment.
FIG. 23 is an example of a package tracking control according to one embodiment.
FIG. 24 is an example of a correspondence book control according to one embodiment.
FIG. 25 is an example of a clock calendar control according to one embodiment.
FIG. 26 is a screen shot illustrating an operations screen with a configuration bar closed, according to one embodiment.
FIG. 27 is a screen shot illustrating an operations screen in which a configuration bar has been opened to display a favorites (favorite) control, according to one embodiment.
FIG. 28 is a screen shot illustrating an operation screen in which a configuration bar has been opened to allow access to other controls, according to one embodiment.
FIG. 29 is a screen shot depicting an action screen including a scroll icon for closing and configuring a control, according to one embodiment.
FIG. 30 is a screen shot depicting an action screen in which some tabs in a configuration bar have changed in appearance, according to one embodiment.
FIG. 31 is a screen shot illustrating an operations screen where some tabs in a configuration bar have changed in appearance, and where the operations screen includes scroll icons for closing and configuring controls, according to one embodiment.
FIG. 32 is a screen shot illustrating an operations screen showing preference control of two controls, according to one embodiment.
FIG. 33 is an example of a calculator control according to one embodiment.
34A and 34B are examples of dictionary/thesaurus controls according to one embodiment.
FIG. 35 depicts a screen shot with the configuration bar inactive.
FIG. 36 depicts a screen shot of configuration bar activation.
FIG. 37 depicts a screen shot in which the configuration bar is active and the indicator shows how many other control pages are present in the configuration bar.
FIG. 38 depicts a screen shot in which the configuration bar is active and two controls are displayed including a close box.
FIG. 39 depicts a terms of use agreement.
FIG. 40 depicts a flight tracking control.
FIG. 41 depicts a stock quote control.
Fig. 42A and 42B depict a movie list control.
FIGS. 43A-43D depict a control for managing a DVD rental queue.
FIG. 44 depicts a translation control.
45A-45C depict a metric conversion control.
46A-46F depict a weather control.
Fig. 47A-47C depict a telephone directory control.
Those skilled in the art will recognize that these figures are merely examples of the operation of the present invention according to one embodiment and that other user interface layouts and modes of operation may be used without departing from the essential characteristics of the present invention.
Detailed Description
The present invention will now be described more fully hereinafter with reference to the accompanying drawings, in which several embodiments of the invention are shown. This invention may be embodied in many different forms and should not be construed as limited to the embodiments set forth herein. Rather, these embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the invention to those skilled in the art.
Hardware architecture
In one embodiment, the present invention is implemented as part of the operating system of a personal computer. One example of where the invention may be implemented is in a Macintosh personal computer running a MacOS X operating system. Referring now to FIG. 1, an example of a structure for implementing a system 100 of the present invention is shown. The personal computer 102 includes a processor 103, a memory 105, input devices 114 such as a keyboard and mouse, and output devices 115 such as a display screen. A graphics module 113, such as a graphics card, may be provided to generate output for the output device 115. The interaction of user 101 with system 100 provides input via device 114 and browsing output via device 115. The computer 102 also includes a local storage device 106, such as a hard disk drive, and may also include a network connection 108 for accessing a remote server 107. These components are well known hardware components that are commonly used to run software applications. In one embodiment, software embodying the present invention is provided in a computer readable medium, such as local memory 106.
In another embodiment, the invention is implemented as a connection that can be installed and run on the personal computer 102 and that operates the operating system of the personal computer 102 to perform the functions described herein. In another embodiment, the invention is implemented in a software application running on a personal computer.
For purposes of illustration, in the following description, the invention will be described as a functional component of an operating system; however, those skilled in the art will recognize that the method of the present invention may be implemented in other contexts, including those described above.
Method of operation
Referring now to FIG. 2, a flow diagram depicts a method for activating and using an operator screen in accordance with one embodiment of the present invention. In one embodiment, the user can activate the functionality of the present invention at any time, for example, by clicking on a designated function key or combination of keys, or by clicking on an icon, or by selecting a command from an on-screen menu, or by moving an on-screen pointer over a designated corner of the screen. In response to such an action 202 being performed by the user, the current state of the user interface is saved 203, the user interface temporarily becomes inactive (and/or fades 204), an animation is played 205 to bring in the dashboard, and the dashboard of the present invention is displayed 206. If so, the previous state of the operation screen is reproduced to display the operation screen in the same configuration that the user last viewed.
In one embodiment, the dashboard overlays an existing desktop user interface; to emphasize that the operator screen is only temporarily inactive, the user interface may be dimmed, brightened, blurred, morphed, or otherwise altered. The existing desktop may still be visible when behind the operator screen. In one embodiment, the existing desktop is not visible when the dashboard is activated. In another embodiment, when the dashboard is activated, the desktop may be zoomed out to a small portion of the screen and may be reactivated by clicking on this small portion. In another embodiment, the desktop is zoomed out and displayed in a manner similar to the controls described herein; the desktop can be reactivated by clicking on the control.
The dashboard (also referred to herein as a "unified interest layer") includes a plurality of elements, referred to herein as "controls". These controls typically include software-assisted programs for performing useful, often desired, functions. Examples of controls include, but are not limited to: calendars, calculators, correspondence books, package trackers, weather modules, and the like. In one embodiment, certain controls may interact with a remote information source, such as a server, for providing information; for example, the weather module may retrieve live weather data from a remote server. The control may be interactive such that the user performs common input operations (such as clicking a mouse or typing from a keyboard) to take advantage of the functionality of the control.
The user operates and/or configures the desired control 207. In one embodiment, the user is able to move the control on the screen, and if allowed, resize the control. Some controls may vary in size, and some controls may have a fixed size; the control producer may specify whether the control may change size. Some controls may automatically adjust their size based on the amount and type of data displayed. In one embodiment, the controls may overlap one another; in another embodiment, the controls do not overlap with each other; if the user attempts to move one control to the position occupied by another control, one of the controls may automatically move out of the occupied space. In one embodiment, when the dashboard is dismissed, the position, configuration, and size of the control are saved so that the same state is restored the next time the dashboard is invoked.
When the user wishes to dismiss the action screen 208 and return to a normal user interface, he or she will invoke the dismiss command. In various embodiments, the user clicks on a function key or combination of keys (which may be some of the keys or combinations thereof used to activate the dashboard or different to those to which they are assigned), or clicks on a close box or other icon, or clicks on the blank space around the dashboard (in other words, the space between the controls), or moves the on-screen pointer to a predetermined corner of the screen. In one embodiment, the operator screen is automatically deactivated without any action by the user, after a predetermined period of time has elapsed, or upon some other trigger time. When the operation screen is released, a transition animation 209 is played.
In one embodiment, when the dashboard is dismissed, the current configuration of the control is saved so that the saved dashboard configuration can be reproduced the next time the dashboard is activated. In one embodiment, an animation is played to dismiss the action screen or reintroduce the user interface. The user interface is restored 210 to the previous state so that the user can continue normal interaction with the software application and operating system of the computer.
In one embodiment, the operator screen is configurable. The user may select any number of controls to be displayed, for example, by dragging a control from a configuration bar (or other user interface element) to a location on the dashboard. In one embodiment, the configuration bar may include different types of controls and may be categorized and/or hierarchically organized. In one embodiment, the control is downloaded and installed (if not installed on the user's machine) from a server in response to a user dragging the control to the configuration bar. In one embodiment, some controls require payment, so the user must provide a credit card or provide another payment method before installing the control on the user's machine. In one embodiment, the controls are already installed on the user's machine, but are only made visible when they are dragged from the configuration bar to the dashboard. Those skilled in the art will recognize that the configuration bar is merely an example of one type of user interface for configuring an operator screen and that other configuration mechanisms may be used without departing from the essential features of the present invention.
As described above, various types of animations are used to emphasize and clarify the transitions associated with the present invention. For example, activation of the dashboard may be indicated by a "fly-in" animation in which controls are moved inward from the edge of the screen to corresponding locations on the dashboard. At the same time, the user interface may be dimmed, blurred, morphed, or otherwise changed to indicate that it is temporarily inactive. The dismissal of the dashboard may be represented by a "fly-out" animation in which the control moves toward the edge of the screen and then flies out of the screen. At the same time, the user interface is restored to normal. In one embodiment, when the user drags the control from the configuration bar to the desktop, an animation, such as a ripple effect, may be displayed to emphasize that the control has been dropped to a selected location on the desktop. The ripple effect temporarily distorts the background to give the effect of the control being placed in the water. In one embodiment, this effect is implemented in accordance with the animation and distortion methods described in detail in the related cross-referenced patent application. In one embodiment, such animations may be configured by a user.
In one embodiment, more than one operator screen may be used. For example, a user may configure one panel to contain controls related to work and another to contain controls related to personal things. Different triggering events (e.g., different combination keys) may be used to trigger the various screens; alternatively, the user may select an operation screen from the pop-up menu that he or she wishes to activate. The system of the present invention stores status information for each of the operation screens. Different operator screens may contain one or more of the same controls; the state information for a control may be saved separately for each panel in which the control appears, or may be saved jointly across all panels in which the control appears. In addition, different operator screens are available to different users of computer 102 so that each user can only access the operator screen he or she created. The user can specify an operation screen available to other users, if necessary. The user can also specify, for all or part of the operation screens he or she creates, whether other users are allowed to change the operation screen.
In one embodiment, some or all of the controls are associated with content that is referred to below, i.e., with a fully functional application that provides an extended functionality version of the respective control. These controls include buttons, or icons, or other elements for quickly running the associated application. When the user clicks the button, the operation screen is released, the normal desktop user interface is recovered, and the related application is automatically started. For example, as will be described in greater detail below, the music player control may include a button for launching a full function music player application that contains other features in addition to those already present in the control.
In one embodiment, a button may be provided for accessing a web site, web page, or web-based application having functionality or information related to the control. When the user clicks the button, the operation screen is released, the normal desktop user interface is reactivated, the web browser is started, and the web page (or the like) related to the control is automatically run. For example, a stock quote control may include a button for accessing a web site that includes more detailed information about the portfolio or a particular stock. In another embodiment, access to the associated full function application, web site, web page, or web-based application may be by means other than buttons in a control. Such a function may be initiated, for example, by an on-screen icon or menu, or by a key press or combination of keys.
In one embodiment, a full function application or related web address provides context for the control being run. For example, if the user has highlighted a word in the document before activating the dictionary control, the highlighted word is automatically populated into the text area of the dictionary control. In one embodiment, the word search is automatically activated and the results thereof are automatically displayed so that the display mode can be defined without any other user interaction as long as the dictionary control is activated. Similarly, if an email message is opened on the user's screen when the newsletter control is launched, the newsletter is automatically opened to a page associated with the sender's contact information for the email message. In one embodiment, such pre-population or automatic opening is not performed in certain situations, such as if the control is always open as another page or record. In one embodiment, the user is able to configure the operation of the control, including whether to pre-fill or auto-open, and under what circumstances these actions will occur. Those skilled in the art will recognize that there are many other situations where a control may use contextual information from a currently running application or web site.
In one embodiment, some or all of the controls have scroll elements; these are user interface elements that appear when the on-screen pointer is moved over the control. When the on-screen pointer moves and no longer sits on the control, the scrolling element disappears. In one embodiment, a scrolling element will not appear if the pointer remains on the control for at least a predetermined period of time, such as half a second. One example of a scroll element is a volume ring (not shown) used in music player applications.
FIGS. 4-17D and FIGS. 26-32 depict examples of operation of the operator screen in response to various user commands; the figures illustrate various methods and capabilities of the present invention.
FIG. 4 depicts the desktop user interface 400 prior to the operation screen activation. Desktop user interface 400 (referred to herein as a "desktop") is a conventional user interface, as may be provided by an operating system such as MacOS X. Desktop 400 has a background image, menu bar 401, and other standard features. Desktop 400 may also include windows, icons, and other elements (not shown), as is well known in the art.
User activation of the operator screen may be by selecting an item from a menu, or by clicking an icon, or by pressing a function key or combination of keys, or by other means for invoking a command. FIG. 5 depicts an initial state of the operator screen according to one embodiment. In the example of fig. 5, first, a configuration icon 501 is displayed. Alternatively, the operator screen may include one or more default controls upon activation of the operator screen. Alternatively, if the dashboard has been previously activated and configured, the controls are displayed in accordance with the previous configuration. As shown in fig. 5, the operating screen itself need not be visible as individual layers; but its individual components (such as controls, icons 501 and other features) are visible. In one embodiment, these components are shown as transparent layers that allow the table top 400 to be viewed therethrough. In one embodiment, when the dashboard 400 and its components are dimmed (or blurred, or otherwise visually altered) when the dashboard is activated to emphasize that the desktop 400 is only temporarily inactive. The user can easily reactivate the desktop 400 and deactivate the operation screen by simply clicking on the screen area where no operation screen elements are displayed. In one embodiment, the action screen is dismissed by clicking on this "white space" according to a method described in more detail below. In another embodiment, other commands, combination keys, icons, or other user inputs are used to deactivate the operator screen. In another embodiment, desktop 400 is not visible when the dashboard is active.
In one embodiment, the user may move the icon 501 to any location on the screen by dragging, and the location of the icon 501 is unchanged from one call to the next on the operation screen.
As shown in fig. 6, the user clicks on icon 501 to activate configuration bar 601. The configuration bar 601 provides access to various controls that may be placed on the dashboard. In one embodiment, one text label is shown on each available control. In another embodiment, one icon is displayed on each available control. If multiple controls are available, they may be hierarchically configured by type, alphabetically, or other sorting methodology. For example, multiple types may be displayed; clicking on a category may display a drop down menu listing a number of controls in the category. In one embodiment, a purchase command 602 is also available, allowing the user to select a control from an online store or web site. Those skilled in the art will recognize that the particular configuration and appearance of the configuration bar 601 in fig. 6 is merely exemplary, and that many other configurations are possible. The user may deconfigure the bar 601 by clicking on a deconfigure 603. Referring briefly now to FIG. 31, an end button 3101 can also provide for the release of configuration bar 601.
In one embodiment, the user can move the configuration bar 601 to any position on the screen by dragging, and the position of the configuration bar 601 is unchanged from one call to the next of the operation screen. Also, in one embodiment, the state of the configuration bar 601 (open or closed) is unchanged from one call to the next call of the dashboard.
The user can drag a control from the configuration bar 601 onto the surface of the dashboard (in other words, anywhere on the screen) using standard drag and drop functionality for moving an on-screen target. FIG. 7 is a diagram illustrating user selection of a calculator control from a configuration bar, according to one embodiment. The calculator tab 701 is highlighted to indicate that it is selected by the user. Fig. 8 depicts the action screen after the calculator control 801 has been placed on the screen. In one embodiment, an animation, such as a ripple animation, is displayed when the user places control 801 in a desired position by dropping a mouse button (or equivalent input device). The user can move the control 801 to any desired position after it is placed, or remove the control 801 from the screen, for example, by dragging the control 801 off the screen, or dragging the control 801 back to the configuration bar 601, or by invoking a remove command. When the dashboard is dismissed, the position, state, and configuration of controls 801 are saved so that these features are restored the next time the dashboard is activated.
In one embodiment, multiple instances of some controls may be activated by dragging the control from the configuration bar 601 onto the dashboard surface more than twice. In another embodiment, each control may only activate one instance. In another embodiment, some controls may have multiple instances, while others do not.
Once the calculator control 801 is placed on the operating screen, the user may interact with the calculator control 801 by entering numbers through a mouse or other pointing device, or through a keyboard. Conventional operation of calculator applications is also available.
FIG. 9 depicts a screen after a user drags both a calculator control 801 and a music player control 901 to an action screen, according to one embodiment. The music player control 901 is dropped by clicking and dragging the "iTunes" tab 903 in the configuration bar 601. In this embodiment, the music player control 901 provides a partial functionality associated with a full function music player application. In one embodiment, the music player control 901 includes a button 902 for a full function music player application. Thus, the user can easily run an application that provides enhanced functionality related to the control.
In one embodiment, the user clicks on the button 902 for activating the full music player application to deactivate the action screen, restore the normal desktop 400, and run the full music player application. All of these steps occur automatically without requiring additional user intervention. Fig. 10 depicts the screen after the user has activated the full music player application 1001 by clicking on the button 902 in the music player control 901, according to one embodiment. The operation screen has been deactivated and the elements of the desktop 400, including the menu bar 401, are activated again.
In FIG. 11, the user has reactivated the dashboard (thereby restoring controls 801 and 901 to the previous state and position of the controls), and has placed the newsletter control 1101 by dragging the newsletter control 1101 from the tab 1102. Further, in one embodiment, when the control 1101 is dragged and dropped to a position over the dashboard, a ripple animation is displayed.
The user may interact with the newsletter control 1101 just as he or she would normally interact with the newsletter application. For example, as shown in FIG. 12, the user may enter the first few letters of a person's name in field 1201; once the entered information is sufficient to identify a person, the person's address card is displayed.
FIG. 13 depicts the dashboard after a number of controls have been placed, including a notepad control 1301, a calculator control 801, a music player control 901, and a correspondence book control 1101. In one embodiment, double-clicking notepad control 1301 can cause it to enter an editing mode, where text can be entered or edited. When not in edit mode, control 1301 can be moved in the operating screen. In other embodiments, other types of user actions (e.g., pressing a modify key) may be used to distinguish between text editing operations and control dragging operations.
The user may deconfigure the bar 601 by clicking on a deconfigure 603. FIG. 14 depicts the operator screen after the configuration bar 601 has been closed, according to one embodiment. A configuration icon 501 is displayed that allows the user to reactivate the configuration bar 601 when desired.
The user can move the control in the screen according to his needs. When the dashboard is dismissed, the locations of the controls are saved so that when the dashboard is activated, the controls are rendered in the same locations as when they left off. Fig. 15 depicts the operation screen after the controls 801, 901, 1101, 1301 have been moved to the new position.
As described above, in one embodiment, when the action screen is released, a transition animation is played. 16A-16C are screen shots depicting a "fly-out" transitional animation in which controls 801, 901, 1101, 1301 present a fly-out screen edge when the dashboard is dismissed. As they fly off the edge of the screen, the controls 801, 901, 1101, 1301 increase in size and fade out to enhance movement and transitional presentation. At the same time, desktop 400 and its functional components (such as menu bar 401) are restored to their normal, non-diminished appearance.
As described above, in one embodiment, the transition animation is played each time the dashboard is activated. 17A-17D are screen shots depicting a "fly-in" transitional animation in which controls 801, 901, 1101, 1301 fly in from the edge of the screen when the dashboard is activated. When they first appear at the edge of the screen, controls 801, 901, 1101, 1301 fade in and grow; as they fly in, their size decreases and become more apparent in appearance to enhance movement and transitional performance. At the same time, desktop 400 and its functional components (such as menu bar 401) gradually fade into the background.
In one embodiment, the system of the present invention comprises; the user is alerted to the performance when the control needs to be brought to their attention or has new information to display to the user even when the dashboard is not currently active. For example, an icon on a "Dock," or a taskbar, or other user interface element, typically associated with a desktop user interface, may blink or bounce or otherwise indicate an alarm state. Distinctive sounds may also be played. Alternatively, a dialog box may be presented, or a text alert may be displayed. In whatever form, the alarm may be of a general type or may represent a particular control that issues the alarm, and may even have additional information indicating the nature of the alarm. The user may then activate the dashboard (i.e., may activate the command via the dashboard as described above, or may click on an icon or button associated with the alert) to view the controls that issued the alert. Alternatively, in this case, the operation screen may be automatically activated, or a dialog box may appear to allow the user to indicate whether the operation screen is activated.
For example, the package tracking control can issue an alert when a package has been delivered. The alert may be generalized or may indicate that the package tracking control is the source of the alert and may even provide delivery information. The user disarms the alarm or activates the dashboard to view and interact with the control to obtain more information. As another example, a traffic cell control may alert when a traffic accident occurs on a road covered by a cell.
In one embodiment, the configuration bar 601 has multiple possible states. Referring now to fig. 26, an example of an operation screen is shown in which the configuration bar is closed to display a configuration icon 501. Currently displayed with the two clock controls 2500A, 2500B are two paste controls 1301.
Clicking on the configuration icon 501 causes the configuration bar 601 to be displayed in the first state, as shown in FIG. 27. The first state includes tabs 2701 of various controls designated as "favorites"; in one embodiment, these are a subset of all controls currently installed on the user's machine. Thus, in this state, the user only presents those controls that are commonly used. As will be seen, the user can configure these views to include any subset of the installed controls. In one embodiment, the configuration bar 601 in this state includes a "More" label or icon. The user clicks on the tab or icon to expand the configuration bar 601 to the second state, as shown in FIG. 28. The dismiss icon 603 dismiss the configuration bar 601 and restores the configuration icon 501 as shown in fig. 26. In one embodiment, the on-screen location of icon 603 matches the on-screen location of icon 501 so that configuration bar 601 can be easily opened and closed without the user having to move the pointer around.
The user drags tab 2701 to the dashboard surface to drop the control onto the dashboard. As described above, in one embodiment, a distinctive animation, such as a ripple effect, is shown to enhance the concept of a control being placed on a specified location.
Referring now to FIG. 28, an example of a configuration bar 601 in a second expanded state is shown providing access to other controls and favorite controls presented in the first state. In this state, the configuration bar 601 has two portions 2802, 2803. Portion 2802 includes tab 2701 to stow controls; it includes the same subset of those controls that are included in the first state of configuration bar 601 as shown in FIG. 27. Portion 2803 includes tabs 2701 for those other controls not included in the collection of favorites controls. Dragging tab 2701 from section 2802 to section 2803 may delete the corresponding control from the favorites subset. Dragging tab 2701 from section 2803 to section 2802 may add the corresponding control to the favorites subset. Dragging tab 2701 onto the dashboard surface, whether from portion 2802 or 2803, can place the corresponding control at the specified location. Whether tab 2701 is dragged to trash icon 2801 from portion 2802 or 2803, tab 2701 may be removed from configuration bar 601; in one embodiment, this may also cause the corresponding control to be removed from the dashboard (if currently open). In one embodiment, dragging tab 2701 into junk icon 2801 may also cause the corresponding control to be deleted from the user's machine or to be unavailable. In one embodiment, a dialog box may be introduced to the user to confirm that he or she wishes to delete the control. In one embodiment, the user may also drag the control into junk icon 2801 to close, dismiss, and/or uninstall the control. More gadget tabs 2602 provide access to a website, online store, or other resource for obtaining and installing other controls; in one embodiment, functionality similar to purchase command 602 is provided, as described above in connection with FIG. 6.
In one embodiment, the state of the configuration bar 601 is unchanged from one call of the dashboard to the next.
Referring now to FIG. 30, an example of an operation screen is shown in which the appearance of some of the labels 2701A in the configuration bar 601 is changed, while the appearance of the other icons 2701B, 2701C is not changed, according to one embodiment. In one embodiment, when a control is opened, the tab 2701 in the configuration bar 601 to which it corresponds changes in appearance; for example, it changes to gray or is displayed in another color. In another embodiment, the tab 2701 is grayed out (or otherwise changed) only if the widget is a single-instance widget (as described above); for multi-instance controls, tab 2701 remains unchanged when the control is opened. Such a method provides an indication to the user which tabs 2701 may be used to activate a control (because they are not currently open, or because they are multi-instance controls), and which tabs 2701 are not currently activated (because they correspond to single-instance controls that have been opened). In the example of fig. 30, as single instance controls, the address book 1101, calculator 801, calendar 1801, music player 901, and stock quote 1901 are opened; their corresponding label 2701A becomes hazy. As multi-instance controls, open paste 1301 and clock 2500; so their corresponding labels 2701B have not changed. Tabs 2701C also have not changed because they correspond to controls that are not currently open.
In another embodiment, the tab 2701 corresponding to the open multi-instance control has a different appearance than the tab 2701 corresponding to the control that is not currently open.
In another embodiment, when a control is opened, its tab 2701 is removed from the configuration bar 601. When the control is closed, its tab 2701 is restored into the configuration bar 601. In another embodiment, its tab 2701 is removed from the configuration bar 601 when the single-instance control is opened, but its tab 2701 remains in the configuration bar 601 when the multi-instance control is opened. When the control of the singleton instance is closed, its tab 2701 is restored in the configuration bar 601. Removal and/or resumption of tab 2701 may be accompanied by animation to enhance the transition from configuration bar 601 to the surface of the dashboard, and vice versa. For example, when a control is closed, the control may appear to be inhaled into the configuration bar 601 as if the corresponding tab 2701 is restored.
If the control is deleted or removed (e.g., by dragging it or its tab into junk icon 2801), then its tab 2701 is removed from configuration bar 601.
In one embodiment, the user may close the control by clicking on a close icon, or by dragging the control back into the configuration bar 601. Referring now to FIG. 29, a screen shot is shown depicting an operation screen including a close icon 2901 for closing control 2500B. In one embodiment, icon 2901 is a scroll icon; it appears when the user places the pointer over control 2500B and it disappears when the pointer is no longer placed over control 2500B. In one embodiment, scroll icon 2901 will not appear if the pointer remains over control 2500B for at least a predetermined period of time, such as half a second. In one embodiment, when a control is closed, an animation is played to enhance the concept that the control is being closed. For example, the control is immediately deformed in such a way that it sucks in the close icon 2901, or enters the configuration bar 601, before it disappears from the screen. Other types of animations or effects may also be used, such as a fade, wipe, or shrink effect. In one embodiment, the user may configure which effects are desired or not.
Control 2500B also includes a preference icon 2902 for accessing control 2500B preference controls. In one embodiment, icon 2902 is a scroll icon; it appears when the user places the pointer over control 2500B, and it disappears when the pointer is no longer placed over control 2500B (although it is still visible when the pointer is moved away from icon 2902). In one embodiment, icon 2902 will only appear if the pointer remains over control 2500B for at least a predetermined period of time, such as half a second. Clicking on icon 2902 may display a preference control. In one embodiment, the input preferences are opened using a conventional dialog box (not shown) as is well known in the art. In another embodiment, clicking on icon 2902 can cause control 2500B to appear to have a page turn effect, displaying its reverse side, which includes preference controls.
Referring now to FIG. 32, an example of an operation screen is shown in which two controls 2500A and 1301A are paged and a preference control 3201 is displayed. In this example, preference control 3201 includes a menu for selecting a position (for clock control 2500A), as well as a page color selector and a font selector (for paste control 1301A). One skilled in the art will recognize that any type of control, menu, region, or other element may be included in preference control 3201. The user may disengage preference control 3201 by clicking on end (Done) button 3203 or clicking on close box 3202. In one embodiment, the close box 3202 is a scroll icon such that it is visible when the pointer is placed over the control 1301A (although it is still visible when the pointer is moved over the close box 3202). In one embodiment, when preference control 3201 is deactivated, the page turning animation is played again and the normal appearance of the control is restored (reflecting any changes made via preference control 3201).
Referring now to FIG. 31, another example of an operation screen is shown in which the appearance of some tabs 2701A in configuration bar 601 is changed without changing other tabs 2701B and 2701C, according to one embodiment. As single instance controls, open the address book 1101, calculator 801, calendar 1801, music player 901, and stock quote control 1901; so their corresponding labels 2701A turn grey. As multi-instance controls, open pastes 1301A and 1301B; so their corresponding labels 2701B have not changed. Labels 2701C, which include world clock labels, also do not change because they correspond to controls that are not currently open. In fig. 31, a pointer (not shown) is placed over the paste control 1301B to display a close box 2901 and preference icons 2902, as described above in relation to fig. 29.
In the example of FIG. 31, configuration bar 601 includes an end button 3101, which releases configuration bar 601 and restores configuration icon 501. Thus, end button 3101 performs the same actions as described for dismiss icon 603.
In one embodiment, the flip control displays additional information, fields, or controls in addition to (or instead of) the preference fields and controls. Those skilled in the art will recognize that the reverse side of the control includes any type of auxiliary information, area, or control, but is not limited to a mechanism to access preference controls.
Control installation
In one embodiment, the controls are pre-installed on the user's computer so that they are merely dragged to the operator screen to activate them. In another embodiment, the controls are not pre-installed, but are installed in response to the user's act of dragging them to the dashboard. In another embodiment, the control is dragged to the desktop, so that the control code can be downloaded from a remote server and installed on the user's machine. In another embodiment, installing controls in this manner may also automatically install full-function applications including related functionality at the same time (although the user may give an option to reject such installation); for example, installing a music player control may simultaneously install a full function music player application. For such operations in some embodiments, authentication and payment are prerequisites.
For example, referring briefly to FIG. 28, in one embodiment, a user clicks on the more gadget tab 2602 to access an online control store or web site where controls for purchase or free download are available, selects a control for installation on his or her machine, and makes payment via a credit card (if needed). The online store or web site is removed, the selected control is downloaded and installed, the operator screen is automatically reactivated, and the selected control appears in the configuration bar 601 ready to be dragged onto the operator screen surface. Alternatively, a new control may be automatically placed on the dashboard surface. Thus, the present invention provides an easy, seamless way to install controls.
In one embodiment, an online store or free distribution site is provided for activating the control 303. Available controls 303 may be browsed, previewed, selected, and installed from a site or from configuration options in an operator screen. In one embodiment, the user may pay for control 303 using a credit card or any other conventional means for purchasing online. The widget 303 is transferred and installed on the user's computer according to conventional methods. In one embodiment, controls 303 may be installed according to the technique devised in U.S. patent application Ser. No. yy/yyy/yyy entitled "User Interface for Assisting in the Installation of an asset" filed on 22/6/2004, which is incorporated herein by reference in its entirety.
In one embodiment, controls such as 801 are implemented using enhanced HTML techniques, which are described more fully below and in related cross-applications. However, one skilled in the art will recognize that controls such as 801 may be implemented using any graphical technique.
In one embodiment, control 303 is encrypted as a flat file that is fully or partially extensible in memory. The contents of the control 303 may be indexed so that a particular resource may be accessed when needed. The controls 303 may be encrypted according to any conventional encryption technique.
In one embodiment, client 302 completes the resource loading control of WebView. When the corresponding resources are needed, the client 302 converts the protocol to a specific process. In one embodiment, the NSURL protocol of Foundation is used to access data from encrypted sources.
Software architecture
Referring now to FIG. 3, an example of a software architecture 300 for implementing the present invention is shown, according to one embodiment. In one embodiment, the present invention is subject to operations associated with the operating system 109 as described above.
In one embodiment, software architecture 300 includes dashboard server 301, dashboard client(s) 302, and control(s) 303. The dashboard configuration information 304 is used by the server 301 and/or the plurality of clients 302 to specify configuration options for the display control 303. All the operation screen configuration information including the access layer and the like (if applicable) is stored in the operation screen configuration information 304. As described above, such information may include operation screen configuration information for two or more operation screens configured by the same user or different users.
In one embodiment, the controls 303 are displayed using HTML and related Web technologies. The operation screen server 301 manages and runs the processes of the operation screen client 302. Each dashboard client 302 loads controls 303, which in one embodiment are an HTML web page and associated resources needed to display the page. In one embodiment, client 302 is launched for display of each control 303. In one embodiment, client 302 displays controls 303 without the need for a conventional window box, menu bar, or other typical components associated with an on-screen window; this provides a neat, direct display of the entire operating screen, thereby avoiding confusion and confusion. Client 302 displays control 303 by providing the web page to "WebView". The size of each WebView is defined as the metadata associated with the corresponding control 303. Server 301 is a windowing server for providing data for providing a layer that may be overlaid on the normal desktop of the user interface. The controls 303 are provided to a separate layer which is then dragged on top of the normal desktop, thereby partially or completely obscuring the desktop while the operator screen is activated.
Operation panel server 301
The op-screen server 301 is a lightweight process that may be stand-alone or embedded in other processes. Server 301 may be located on computer 102 or on remote server 107. The server 301 provides the following functions:
a non-control UI. In one embodiment, server 301 handles user interface functions that do not directly relate to controls. This includes, for example: activation, deactivation, dashboard background, background animation, etc.
And (5) managing the window. In one embodiment, the server 301 acts as a lightweight window server for the operation screen client 302 process. A window is created in the server 301 process and then loaded into the op-screen client 302. The operation performed on the window is through the operation screen server 301. Such operations include, for example, resizing, moving, location and size access, and the like. The advantage of having window manipulation by the server 301 is: server 301 may react to changes to control 303 and update the overall environment. For example, server 301 may cause displayed controls 303 to jump over each other, stick to screen edges, align grids, and so forth.
And (6) fast registering. In one embodiment, the dashboard client 302 is run and then provided to the window from the dashboard server 301. Because it may take some time, the dashboard server 302 provides an initial image to the window display while the client 302 is running, providing visual feedback and immediately presenting the activation animation. As the dashboard clients 302 load and provide, they receive windows and extract their content.
And (5) event management. In one embodiment, server 301 acts as an event server as well as a window server. Events arrive from the operating system window server to the dashboard server 301 and are routed into the appropriate dashboard client 302. This indirect addressing allows for a variety of features, including: server-side dragging (even if the dashboard client 302 is installed), event filtering, insertion of events generated by the server, and the like. The operation screen client 302 communicates with the server 301 to describe the control area so that the server can accurately start the server-side drag.
The control 303 is loaded. In one embodiment, server 301 is responsible for loading control 303. The list of controls 303 is maintained until the time of boot loading. In one embodiment, the dashboard client 302 corresponding to the special control 303 is not launched until the dashboard is first activated.
Arbitration of the control 303. In one embodiment, server 301 is an arbiter that operates screen client 302. It controls the process and transfers information to and from each control 303. If control 303 fails, then dashboard server 301 automatically reruns the process. It also prevents the control 303 from failing repeatedly during startup. In one embodiment, all communications to control 303 first pass through dashboard server 301.
CoreImage integration. In one embodiment, server 301 uses coremage technology, as described in the related U.S. patent application referenced above. Filters are applied to the background window of the server to provide spotlight and moire effects.
Control 303 preferences management. In one embodiment, server 301 stores preferences associated with control 303 in configuration information 304 according to a conventional file system approach and sells these preferences to control 303.
Operation screen client 302
In one embodiment, client 302 is a lightweight process that uses objects defined, for example, as part of the following development environment: such as a Cocoa Application framework (also known as an Application Kit, or Appkit), such as the Mac OS X Page Release Notes Application framework described in "http:// leveler. Applecom/documentation/ReleaseNuotes/Cocos/Appkit. html". The client 302 is implemented with a simplified browser screen that omits conventional interface features such as menu bars, window frames, and the like. In one embodiment, client 302 provides the following functionality to implement the present invention:
and controlling WebView. Client 302 creates WebView and appends the HTML of control 303 to WebView. Client 302 acts as a proxy for user interface requests made by WebView. In one embodiment, client 302 overrides the default state of many appkits in view of communications and event handling to server 301. WebView is the general control for browsing and operating HTML and XHTML; for example, they are in "http://developer.apple.com/documentation/Cocos/Reference /WwbKit/Objc classic/index.htmlInWeb Kit Reference for Obiective-CAs described therein.
And 3, JavaScript extension. In one embodiment, the client 302 inserts the client target during the JavaScript runtime of WebView. This allows for the expansion of a variety of controls 303, including but not limited to: copy/cut/paste; obtain/set preferences; notification when preferences change; open linked applications (e.g., control 303 may include a button or other trigger to run the corresponding application); stopping; move/resize, etc.
The insert is managed. Some controls 303 use native code as part of their implementation. In one embodiment, the client 302 includes interface capabilities with such native code and/or with locally or remotely available databases and data stores. In one embodiment, widget 303 also has the ability to create a client AppKit NSView. The control developer may use the client view to launch other types of animations, such as OpenGL views, plug-ins such as Flash, and the like.
In one embodiment, the insertion is performed as follows. The Obj-C bundle is loaded from the resource folder associated with control 303. This bundle has two aspects in the main classification:
-(id)initWith initWithWebView:(WebView*)WebView;
- (void) windowscript object available: (WebScriptObject) windows ScriptObject (which allows for the insertion of an add-in to a JavaScript extension prior to the loading of a netpage.)
When the operation screen client is started, initWithWebView is called, and when page loading is completed, WebViewLoaded is called. The developer of the plug-in can use the scripting API of WebKit to extend the JavaScript of the special widget 303.
Control 303 format
In one embodiment, each control 303 is implemented as an HTML file. The HTML files may reference other local and remote resources such as style sheets, other HTML files, JavaScript files, images, and the like. The control 303 may be implemented using, for example, a flat bundle file format or a packaged HTML file format.
A flat bundle (bundle). The flat bundle format has the following directory structure:
widget (directory/bundle)
Plist (file) info
Html (document)
Png (file) My
Lwroj (optional list)
-localisable strings (file)
Plist describes a control 303. It also provides an identifier for widget 303 and points to the main HTML file and default PNG file. The default PNG file is used for temporary display when dynamic elements are loaded from the server 301. Plist structure example is as follows:
key word Type (B) Description/value
CFBundleIdentifier CFString com.apple.widget<widgetname>
CFBundleName CFString Name of control
MainHTML CFString Name of main HTML resource
Width CFNumber Default width of control
Height CFNumber Default height of control
DefaultImage CFString Default resource name of PNG
Plugin (optional) CFString Resource name of native plug-in
Html may also reference any other local resource. In one embodiment, the resources are specified relative to the location of the HTML file.
Pl. p, my can have any name based on the "DefaultImage" key in info. If there is no cached representation, the image is provided by the server 301.
Eproj and other locatable directories are strings used for locatable.
Control 303 position
In one embodiment, the controls 303 may be stored in a local storage 106, such as a hard disk drive. The controls 303 for each machine are stored, for example:
·/Library/Widgets/
·/Applications/Widgets/
the controls 303 are available to each user, particularly if more than one person is using the same computer 102. Each user control 303 is stored, for example:
·~/Widgets
·~/Library/Widgets/
those skilled in the art will recognize that these configurations are merely exemplary and that any other file format or directory structure may be used.
Development of controls 303
In one embodiment, controls 303 may be developed using WebKit, which is described, for example, in Web Kit Reference for object-C in "http:// leveller. app. com/documentation/Cocos/Reference/WwbKit/obj _ class/index. html". Other functions may also be provided, such as dragging to and from a web page, detecting control areas, stopping insertion when the operating screen is hidden, and timer starting. In one embodiment, such other functionality is provided through the use of an enhanced Canvas structure, such as the U.S. provisional patent application xx/xxx, xxx entitled "Producerally Expressing graphical objects for Web Pages," filed on 25.6.2004, the disclosure of which is incorporated herein by reference. In addition, Web extensions, which are well known in the art, can be used to provide other functions such as drag and drop functionality, detection of control areas, and the like.
For more detailed controls than WebKit/HTML provides, a < canvas > tag is provided. The CoreGraphics context can be accessed from the < changes > tag and then the JavaScript can be brought into the context and valid HTML page. A detailed description of this embodiment can be found in the related application.
Access of remote Server 107
In one embodiment, some or all of the controls 303 communicate with the remote server 107 to perform their functions. For example, a weather control requests current weather data from remote server 107, while a package tracking control requests current data regarding the location of a package from remote server 107. Such communication may be performed in accordance with well-known techniques for requesting and receiving information over a network such as the internet. The widget 303 or client 302 forms a data request and sends the request according to HTTP or some other network protocol; the server 107 responds to the request with information; and the control 303 uses this information to form an output that is displayed to the user. In one embodiment, these operations are performed in response to JavaScript code in the control. The server 107 may be a resource that is generally useful to the public, or it may be a proprietary source of information that provides a portal to users. Authorization and/or user authentication may be required, where appropriate, before the server 107 sends the requested information. If desired, the information may be transmitted over a secure channel and/or encrypted prior to transmission, in accordance with techniques well known in the art.
Examples of controls 303
The following is a list of examples of controls 303 provided using the techniques of the present invention. Those skilled in the art will recognize that many other types of controls 303 may be provided.
Buddy List
Calculator
Diary
Dictionary
Online music store and music player
Film showing events
News feed
Tracking of packages
·Rolodex
Sports scores
Pasting
Stock quotes
Mesh of
Weather of
Universal time-piece
Conversion of currencies
Online auction browser and tools
Lottery ticket
Small inbox for receiving e-mail
Intellectual tests
Telephone book (e.g., yellow pages)
Examples of these types of controls 303 are depicted in fig. 18 through 25. Those skilled in the art will recognize that the particular arrangement, appearance, and arrangement of each control 303 is merely exemplary. In particular, some or all of these controls 303 may include buttons for accessing a full-featured application having extended functionality, as described above in connection with FIGS. 9 and 10.
FIG. 18 depicts an example of a calendar control 1801 including a current date 1802, a calendar display 1803 displaying the current month, and an appointment 1803A, according to one embodiment. In one embodiment, data for the calendar is stored locally in the computer 102; in another embodiment, control 1801 retrieves calendar data from remote server 107.
FIG. 19 depicts a stock quote control 1901 that includes a plurality of stock quotes 1902, an icon 1903 for a selected stock, and an edit button 1904 for changing the stock included in the control 1901, according to one embodiment. In one embodiment, control 1901 retrieves stock quote data from remote server 107.
FIG. 20 depicts an example of a weather control 2001 that includes a current temperature state 2002, a current time 2003, and a forecast 2004, according to one embodiment. Control 2001 may be configured to display weather information for one or more regions of interest to the user. In one embodiment, control 2001 retrieves weather data from remote server 107.
Fig. 21 depicts an example of a traffic mesh control 2100 that includes a current picture 2102 (or live video feed) specifying a location, and an identifier 2101 of the location, according to one embodiment. Control 2100 can be configured to display images of one or more locations of interest to the user. In one embodiment, control 2100 retrieves pictures and/or videos from remote server 107.
Fig. 22 depicts a music player control 901 that includes a now playing indicator 909, a counter 2201, controls for pause, play, rewind, and fast forward 2201, and buttons 902 for questioning a full function music player application, as described above with respect to fig. 9 and 10, according to one embodiment. In one embodiment, control 901 retrieves music data from remote server 107.
FIG. 23 depicts an example of a package tracking control 2300 including a list of delivery services 2303, one of which is currently selected, according to one embodiment. Package tracking information 2301 for the selected delivery service is displayed including the name of each item being delivered, the current status, the tracking number, and the date the item was last updated. Detailed tracking information 2302 for the selected item is shown in 2301. The user can configure the control 2300 to add traces, format results, and the like. In one embodiment, control 2300 retrieves package tracking data from remote server 107.
FIG. 24 depicts an example of a correspondence book control 1101 according to one embodiment. The control 1101 includes the following personal information: name 2402, photo 2401, and contact information 2403. Arrow 2404 allows the user to locate other records in the correspondence book. Search area 1201 allows a user to first search from a name or search for a name that includes a search term. In one embodiment, the data of the communication book is stored locally in the computer 02; in one embodiment, the control 1101 retrieves the correspondence book data from the remote server 107.
FIG. 25 depicts an example of a clock control 2500 that includes a current time display 2501 (which may be of any type, digital and/or analog) and a location 2502 corresponding to the current time display 2501, according to one embodiment. The user may configure control 2500 to change the time, location, and/or format of the display.
In one embodiment, clock control 2500 changes its appearance according to time of day. For example, a light color appearance may be displayed during the day and a dark appearance may be displayed at night. Referring again to fig. 26, clock control 2500A has a light color appearance because the local time in san francisco is 11:28 am, while clock control 2500B has a dark appearance because the local time in london is 7:28 pm. In one embodiment, other different visual characteristics are used to represent day and night. In one embodiment, the local time from 6:00 am to 6:00 pm is denoted as daytime and the local time from 6:00 pm to 6:00 am is denoted as night. In another embodiment, the actual sunrise and sunset times are used to control the appearance of clock control 2500 (based on the location of the selected clock control 2500, and further based on sunrise/sunset information retrieved from a stored table or from a resource such as a web site). In another embodiment, a continuously gradual manner is used to display times approaching sunset or sunrise at a level between the dark and light colored appearances; such time may also be displayed in a pink hue to further enhance the time period of sunset or sunrise.
FIG. 33 depicts an example of calculator controls 801 including a numeric display 3301, a keypad 3304, operator keys 3302, a store key 3305, and an equal sign key 3303, according to one embodiment. The keys 3302, 3303, 3304, and 3305 generally operate in a manner similar to conventional calculators and calculator accessories, except as noted herein. Display 3301 displays the results of the computation in a manner similar to conventional calculators and calculator accessories, except as noted herein.
In one embodiment, display 3301 lights up or otherwise changes its appearance to indicate that calculator control 801 is activated. For example, when the user first clicks somewhere in control 801, display 3301 may light up and remain lit until the user dismisses control 801 or clicks somewhere other than control 801. When display 3301 is illuminated, control 801 is activated and user input may be received through an on-screen pointer or through a keyboard or other input device.
In one embodiment, operator key 3302 is illuminated and held until the next key is pressed to alert the user what operation is being performed. For example, in FIG. 33, the divide operator key 3302 is illuminated, indicating that the user has clicked that key, and alerting the user that the current operation is a divide operation. In one embodiment, operator key 3302 remains illuminated until another operator key 3302 is pressed, or until a clear key is pressed, or until the equal sign key 3303 is pressed; in another embodiment, operator key 3302 remains illuminated until any other key is pressed.
Referring now to FIGS. 34A-34B, a dictionary/thesaurus control 3400 is illustrated, in accordance with one embodiment. The user can enter a word in the text entry field 3403 and can select a dictionary or thesaurus function by clicking on the next tab 3401 or 3402, respectively, to view the explanation 3406 or synonym 3408. If the interpretation 3406 or synonym 3408 is not within the limits of the control 3400, then the control 3400 may automatically resize or an arrow 3407 may be displayed for accessing the remaining information. A book-edge index 3405 may also be presented, allowing the user to quickly access other words that appear in the same dictionary page as the input word. In one embodiment, a reverse lookup dictionary (not shown) is also provided (user input interpretation or partial interpretation thereof, and response by control 303 to one or more words of matching input). In one embodiment, the dictionary/thesaurus data is stored locally in the computer 102; in another embodiment, the dictionary/thesaurus controls may retrieve their data from the remote server 107.
In one embodiment, an operator screen is also available to the user at the remote location. The configuration information of the user operation screen is stored in the remote server according to the user command or automatically. The user may then log in from a remote computer or other device and be presented with a web page that replicates the user's dashboard, as viewed from his or her own computer. The control 303 may be provided by an HTML page for each extended function as described above. The user may interact with control 303 in the same manner that he or she interacts with his or her own computer.
Interchangeable configuration strip
In one embodiment, an alternative design such as the configuration bar 601 shown in FIG. 36 is presented. In one embodiment, whenever the configuration bar 601 is invoked, an animation is played to make the configuration bar 601 appear to rise from the bottom of the screen. Similarly, when the configuration bar 601 is dismissed, an animation is played to make the configuration bar 601 appear to fall back to the bottom of the screen. Arrow 3601 provides access to other controls not currently displayed on the screen.
FIG. 37 is similar to FIG. 36, but FIG. 37 includes a "1 of 2" indicator 3701 for notifying the user that two page controls are available and that the currently displayed page is the first of the two pages. In one embodiment, the indicator 3701 is displayed only when the user flips one of the arrows 3601 to position to another page of the control. In another embodiment, the indicator 3701 is displayed at any time when it is available.
In one embodiment, as shown in fig. 36 and 37, when the configuration bar 601 is activated, a "more controls" button 3602 appears. Button 3602 provides direct access to functionality for downloading (and/or accessing) other controls, for example, from a control server.
In one embodiment, a screen such as that shown in FIG. 35 is displayed when the user interest layer is activated and the configuration bar 601 is closed (inactive). A configuration icon 501 containing X provides access to the configuration bar; clicking on it causes the configuration bar 601 to appear.
In one embodiment, the "off" button 2901 in the control appears only when the configuration bar 601 is activated. One example is shown in fig. 38. In another embodiment, the "close" button 2901 on the control is always visible, or visible when the user flips the control. In one embodiment, the "close" button 2901 on the control appears only when the control is flipped. In another embodiment, the user may configure whether the "off" button 2901 is always present or is present only at a certain time.
Clause of use
In one embodiment, a terms of use protocol 3901 is displayed upon the first activation of the control (or user interest layer) functionality, as shown in fig. 39. The user may click on accept 3904, reject 3903, or print 3902. If the user accepts the terms of use, the control functionality described herein is activated. If the user refuses to accept the terms of use, it is difficult for the user to obtain control functionality. If the user clicks on print 3902, the terms of use protocol is printed out.
In one embodiment, the terms of use protocol 3901 is only displayed upon initial activation of a control functionality or a uniform interest layer functionality; it is not displayed at the time of the latter activation operation. In another embodiment, the protocol 3901 is displayed if another user activates a control function or a unified interest level function. In yet another embodiment, the terms of use protocol 3901 is displayed after the widget functionality or the unified interest layer functionality is reinstalled or upgraded.
Other controls
In one embodiment, the present invention provides some or all of the following controls, either individually or in any combination. In one embodiment, the invention provides a combination of some or all of the controls and some or all of the other functionality described herein and/or in the above-referenced related patent applications.
For most of the controls described below, the system of the present invention obtains information from online data sources over a network in response to queries generated by user input. The online data source provides information for generating a control display. In one embodiment, those controls that obtain information over a network include visual indicators to let the user know whether the displayed data is live. In one embodiment, such a control also displays the date and time of the most recent data update.
Fig. 40 depicts a flight tracking control 4000. The user may enter any information that he or she knows, including any combination between flight number, arrival city, departure city, airline, date and time. The control communicates with the online flight data source to obtain entry information, flight status, etc. In one embodiment, the controls display some or all of the routes 4001, flights 4002, takeoff cities 4008, takeoff times (scheduled) (not shown in fig. 40), takeoff times (actual) 4003, takeoff times (expected) (not shown in fig. 40), takeoff airport code 4004, arrival cities 4009, arrival times (expected) 4006, arrival airport code 4005, takeoff entrances (not shown in fig. 40), arrival exits 4007, on time/late/early status 4010, models (not shown in fig. 40), speeds 4011, and altitudes 4012. In one embodiment, a map 4013 is displayed that includes an arc 4014 that approximates the travel path and is located between a starting point and an ending point. An indicator 4015 is displayed on arc 4014, representing the approximate current position of the aircraft. In one embodiment, the display 4013 is based on actual position data of the aircraft; in another embodiment, it is an interpolation based on start point, end point and flight duration.
Fig. 41 depicts a stock quote control 4100. The user may enter the securities of the stock (or other securities), or the control may extract the user's shares from an online data source, a local storage file, or other source. Alternatively, the user may enter a personal order symbol. The controls display order symbol(s) 4101, current stock price(s) 4102, changes since the previous day 4103, and the like. In one embodiment, the control displays a graphic 4104 that displays a stock index for a stock or security. In one embodiment, the graphic may be displayed in a variety of different formats and time scales. In one embodiment, an edit button 4105 is provided that allows access to input/output elements for changing characteristics or other indicators of displayed securities or stock quotes. In one embodiment, a last updated indicator 4106 is included. In one embodiment, the user may click a button (not shown) to initiate a buy or sell operation on the displayed stock, or to look up more information about the stock.
42A-42B depict a movie list control. As shown in fig. 42A, the user selects from a list of movie names 4201 or from a list of movie theaters 4202, and can view a show time 4203, a program popularity 4204, and the like. A button 4209 is provided to select between title and theater. A button 4205 is provided to select a date of interest to the user (today, tomorrow, or a certain day). An information button 4206 is provided to obtain more information about the selected movie including, for example, a synopsis, a photograph, a preview, a website link, etc. A ticket purchase button 4207 is provided to purchase a ticket corresponding to the selected show time. A preview button 4208 is provided to access a video preview of the movie.
In one embodiment, the theater shown is based on a target location (e.g., a ZIP code entered by a user, or a control location learned based on previously entered or derived user data). Movie theaters within a predetermined or user-specified target location range are shown.
The user can click on the information button 4206 to view the feed 4211, the movie poster display 4210, and other information 4212, as depicted in fig. 42B. The user may click the return button 4213 to return to the previous display. The user can click on the ticket purchase button 4207 or the preview button 4208 to purchase a ticket or view a video preview.
FIGS. 43A-43D depict a control 4300 for managing a DVD rental queue. As shown in FIG. 43A, a user can browse various types of movies by clicking on type 4301 to the left of control 4300. The user may type text in the search area 4302 to search for a movie name. The user may click on the recommendation 4303 and view the personalized recommendation based on the previous lease or other information provided by the user. The user may click on queue 4304 to view the current rental queue.
When a movie 4305 is selected in the list 4309, a quality level 4306 (one to five stars) appears. The user clicks on the info button 4307 to see more information about the movie, or may click on the add movie 4308 to add the selected movie to the user's queue.
FIG. 43B shows control 4300 after the user has clicked the info button 4307. A description 43010 of the selected movie is displayed along with a movie poster display 43020, a program popularity 43030, a quality rating 4306, and so on. The previous and next buttons 4301, 4311 allow the user to jump directly to other movies in the queue or list. The user may click on the back button 4213 to return to the previous screen, or may click on the add movie 4308 to add the movie to the user queue.
Fig. 43C and 43D show control 4300 after the user clicks on queue button 4304. The controls show the DVD currently in the queue 4312, and the DVD currently out 4313 (i.e., in possession of or en route to the user). Utilization 4314, delivery date 4315, and ETA 4316 are shown. The total number of movies 4317 in the rental queue is shown.
Fig. 44 depicts a translation control 4400. The user can select "from" and "to" languages (via pop-up menus 4401, 4402), and can enter text in the upper box 4403. The translated text appears in the lower box 4404. In one embodiment, the text is translated as it is typed, so the user does not need to click an "enter" or other button to activate the translation. In one embodiment, the control waits for a certain length (e.g., one second) of typing pause before performing the translation. In one embodiment, control 4400 communicates the entered text to an online translation resource; in another embodiment, the translation is performed locally using software installed on the user's computer. In one embodiment, a reverse translation may also be performed so that the user can view the results of translating the entered text into another language and vice versa; in this manner, the user can verify the overall quality of the translation.
45A-45C depict a metric conversion control 4500. The user can select the type of transition (e.g., length, volume, area, speed, temperature, weight, etc.) from pop-up menu 4501, and can select the "from/to" unit of transition from the two additional pop-up menus 4502, 4503. The user can enter numbers in both zones 4504, 4505 and present converted values in the other zone. In one embodiment, the value is converted as the number is entered, so the user does not need to click an "enter" or other button to initiate the conversion. In one embodiment, the control waits for a particular length (e.g., one second) of typing pause before performing the transition.
In one embodiment, a distinctive graphic 4506 is displayed in the control (e.g., along the top edge of the control) to indicate the type of transition being performed. For example, a scale graphic 4506A (fig. 45A) is displayed for length conversion, a speedometer graphic 4506B (fig. 45B) is displayed for speed conversion, and a thermometer graphic 4506C (fig. 45C) is displayed for temperature conversion. Those skilled in the art will recognize that these graphics 4506 can be of any type, and that the figures are exemplary only. In one embodiment, these graphics 4506 are animated.
Fig. 46A-46F depict a weather control 4600. In one embodiment, weather control 4600 shows information for a given location 4606; the provision of the location 4606 may be obtained by extraction by a user or from other information such as a ZIP code or address. In one embodiment, weather controls 4600 show the current temperature 4601, the maximum daytime temperature 4602 and the minimum temperature 4603, and the forecast 4604. Graphic elements 4605 depict the current status and the forecast status. For example, the sun, cloud, rain, or a combination thereof may be displayed to represent the state. In one embodiment, these graphical elements 4605 may be combined as needed to accurately represent weather conditions. In one embodiment, some or all of the graphic elements 4605 are animated; for example, to indicate how much wind there is, the cloud may be shown to move gently in the wind.
In one embodiment, weather control 4600 may be expanded or collapsed in response to flipping or in response to a user clicking a button for expansion or collapse. For example, fig. 46A shows a weather control in an expanded state, and fig. 46B shows a weather control in a folded state, in which a forecast 4604 is not shown.
In one embodiment, the graphical element 4605 shows the moon when at night (fig. 46D), and the graphical element 4605 shows the sun when on the day of the day (assuming the state is sunny). Control 4600 determines whether to be daytime or nighttime using the local machine's internet clock or obtaining current time information over the network. In one embodiment, when the moon is displayed, the current correct phase of the moon is depicted. FIG. 46C illustrates a plurality of control states 4615 representing a plurality of phases of the moon.
Other examples are shown in fig. 46E, where a graphical element 4605 depicts rain, and in fig. 46F, a graphical element 4605 depicts lightning. Some or all of these graphics may be animated if desired. Sound effects may also be provided, for example, when a user flips over a control or clicks on a control.
Fig. 47A-47C depict phone directory control 4700 with yellow pages functionality. The user may type in a business name or type (or portion thereof) in a field 4701 as shown in fig. 47B and display a list 4702 in a control as shown in fig. 47A. FIG. 47C illustrates another example where the query entered by the user is a name rather than a type.
In one embodiment, the lookup is based on the target location (e.g., a ZIP code entered by the user, or learned based on previously entered or derived user data). A list 4702 within a predetermined or user-specified target location range is shown. In one embodiment, the list 4702 is displayed as the user types (automatically updated with each key press), so the user does not need to click an "enter" or other button to activate a query operation. In one embodiment, control 4700 waits for a particular length (e.g., one second) of typing pause before querying and displaying list 4702. In one embodiment, each listing 4702 includes a business name, a phone number, a distance from a target location, and an address. The user may click on the list 4702 to view more information, including, for example, maps, previews, etc. In one embodiment, for example, a user may add any displayed listing 4702 to a personalized address book by clicking on a button (not shown) adjacent to listing 4702.
In one embodiment, some or all of the controls described above, and/or some or all of the controls described in the related applications referenced above, include animation or other motion-based elements. For example, the clock control may include a moving pointer and other elements.
In the description above, for the purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the present invention. It will be apparent, however, to one skilled in the art that the invention may be practiced without these specific details. In other instances, structures and devices are shown in block diagram form in order to avoid obscuring the invention.
In particular, those skilled in the art will recognize that the invention may be practiced using other configurations and graphics environments, and using graphics tools and products other than those described above. In particular, the client/server approach is merely an example of a structure for providing the dashboard functionality of the present invention; those skilled in the art will recognize that other, non-client/server approaches may also be used.
Reference in the specification to "one embodiment" or "an embodiment" means that a particular feature, structure, or characteristic described in connection with the embodiment includes at least one embodiment of the invention. The appearances of the phrase "in one embodiment" in various places in the specification are not necessarily all referring to the same embodiment.
Some portions of the detailed descriptions are presented in terms of algorithms and symbolic representations of operations on data bits within a computer memory. These algorithmic descriptions and representations are the means used by those skilled in the data processing arts to convey the substance of their work to others skilled in the art. An algorithm is here, and generally, conceived to be a self-consistent sequence of steps leading to a desired result. The steps are those requiring physical manipulations of physical quantities. Usually, though not necessarily, these quantities take the form of electrical or magnetic signals capable of being stored, transferred, combined, compared, and otherwise manipulated. It has proven convenient at times, principally for reasons of common usage, to refer to these signals as bits, values, elements, symbols, characters, terms, numbers, or the like.
It should be borne in mind, however, that all of these and similar terms are to be associated with the appropriate physical quantities and are merely convenient labels applied to these quantities. Unless specifically stated otherwise as apparent from the discussion, it is appreciated that throughout the description, discussions utilizing terms such as "processing" or "computing" or "calculating" or "determining" or "displaying" or the like, refer to the action and processes of a computer system, or similar electronic computing device, that manipulates and transforms data represented as physical (electronic) quantities within the computer system's registers and memories into other data similarly represented as physical quantities within the computer system memories or registers or other such information storage, transmission or display devices.
The present invention also relates to apparatus for performing the operations herein. The apparatus may be specially constructed for the required purposes, or it may comprise a general-purpose computer selectively activated or reconfigured by a computer program stored in the computer. Such a computer program is stored in a computer readable storage medium, such as, but is not limited to, any type of disk including floppy disks, optical disks, CD-ROMs, and magnetic-optical disks, read-only memories (ROMs), Random Access Memories (RAMs), EPROMs, EEPROMs, magnetic or optical cards. Or any type of media suitable for storing electronic instructions, and each coupled to a computer bus.
The algorithms and modules referred to herein are not inherently related to the particular computer or other apparatus. Various general-purpose systems may be used with programs in accordance with the teachings herein, or it may prove convenient to construct more specialized apparatus to perform the method steps. The required structure for a variety of systems will appear from the description below. In addition, the present invention is not described with reference to a particular programming language. It will be appreciated that a variety of programming languages may be used to implement the teachings of the invention as described herein. Furthermore, the method is simple. It will be apparent to one skilled in the relevant art that the modules, features, trees, methodologies, and other aspects of the invention can be implemented in software, hardware, firmware, or any combination of the three. Of course, whether implemented as software, the components of the present invention may be implemented as a stand-alone program, as part of a larger program, as a plurality of separate programs, as a statically or dynamically linked library, as a kernel loadable module, as a device driver, and/or in any other manner known now or in the future to those of skill in the computer program art. In addition, the present invention is in no way limited to implementation in any specific operating system or environment.
It will be appreciated by those skilled in the relevant art that the embodiments described above are merely exemplary, and that various changes can be made without departing from the true spirit and scope of the invention. It is therefore intended to cover in the appended claims all such changes and modifications that are within the true spirit and scope of this invention.

Claims (67)

1. A method of creating a user interface element from a template, the user interface element to be used in a computer system, the method comprising:
displaying one or more templates for the user interface element;
receiving a first creative input selecting a template from the one or more templates as a basis for the user interface element;
displaying a predetermined set of attributes for the user interface element;
receiving a second creative input selecting one or more predetermined attributes from the set of predetermined attributes; and
performing at least one of storing the user interface element incorporating the one or more predetermined attributes and displaying the user interface element incorporating the one or more predetermined attributes.
2. The method of claim 1, wherein the predetermined attribute is selected from the group consisting of theme, color, shape, faceability, and extensibility.
3. The method of claim 1, wherein receiving a second creative input comprises receiving a creative input selecting a theme, and wherein the user interface element incorporates at least one attribute associated with the selected theme.
4. The method of claim 1, wherein the user interface element comprises a control for use in a unified interest layer.
5. The method of claim 1, wherein the user interface element comprises a control for use in a unified interest layer that detects a first trigger event for activating the unified interest layer and, in response to the first trigger event, temporarily deactivates the user interface and displays the unified interest layer comprising a plurality of layer elements.
6. The method of claim 1, wherein displaying the user interface element comprises: displaying the user interface element in parallel with displaying at least a subset of the attributes.
7. The method of claim 1, further comprising installing the user interface element in a unified interest layer.
8. The method of claim 1, further comprising displaying a plurality of templates for the user interface element.
9. The method of claim 1, wherein the user interface element comprises one selected from the group consisting of:
a calendar element;
a calculator element;
a music player element;
an address book element;
a notepad element;
stock quote elements;
a weather element;
a traffic element;
a package tracking element;
a contact management element; and
a clock element.
10. A method of editing a user interface element to be used in a computer system, the method comprising:
displaying a set of objects contained in the user interface element;
receiving a creative input to edit at least one object in the set of objects, wherein the creative input comprises dragging and dropping the at least one object in the set of objects within the user interface element; and
performing at least one of storing the user interface element incorporated into the creative input and displaying the user interface element incorporated into the creative input.
11. The method of claim 10, wherein receiving creative input comprises receiving creative input selecting a theme, and wherein the user interface element incorporates at least one attribute associated with the selected theme.
12. The method of claim 10, wherein the set of editable objects comprises at least one selected from a button and a control.
13. The method of claim 10, further comprising:
displaying a set of additional objects that can be added to the user interface element;
receiving creative input to add at least one additional object of the set of additional objects;
displaying the user interface element incorporating the creative input.
14. The method of claim 10, wherein the user interface element contains a control for use in a unified interest layer.
15. The method of claim 10, wherein the user interface element comprises a control for use in a unified interest layer that detects a first trigger event for activating the unified interest layer and, in response to the first trigger event, temporarily deactivates the user interface and displays the unified interest layer comprising a plurality of layer elements.
16. The method of claim 10, further comprising installing the user interface element in a unified interest layer.
17. The method of claim 10, further comprising assigning the user interface element for installation in a unified interest layer.
18. The method of claim 10, wherein the user interface element comprises one selected from the group consisting of:
a calendar element;
a calculator element;
a music player element;
an address book element;
a notepad element;
stock quote elements;
a weather element;
a traffic element;
a package tracking element;
a contact management element; and
a clock element.
19. A system for creating a user interface element from a template, the user interface element to be used in a computer system, the system for creating a user interface element from a template comprising:
a display device for displaying one or more templates for the user interface element and for displaying a predetermined set of attributes for the user interface element; and
an input device, coupled to the display, for receiving a first creative input selecting a template from the one or more templates as a basis for the user interface element and for receiving a second creative input selecting one or more predetermined attributes from the predetermined set of attributes; and
wherein the display device displays the user interface element incorporating the one or more predetermined attributes.
20. The system of claim 19, wherein the input device receives a creative input selecting a theme, and wherein the user interface element incorporates at least one attribute associated with the selected theme.
21. The system of claim 19, wherein the user interface element comprises a control for use in a unified interest layer.
22. The system of claim 19, wherein the user interface element comprises a control for use in a unified interest layer that detects a first trigger event for activating the unified interest layer and, in response to the first trigger event, temporarily deactivates the user interface and displays the unified interest layer comprising a plurality of layer elements.
23. The system of claim 19, wherein the user interface element comprises one selected from the group consisting of:
a calendar element;
a calculator element;
a music player element;
an address book element;
a notepad element;
stock quote elements;
a weather element;
a traffic element;
a package tracking element;
a contact management element; and
a clock element.
24. A system for generating a user interface for a control authoring application, the system comprising:
a computer readable memory having computer program instructions tangibly embodied therein, the computer program instructions generating a user interface for the control authoring application, the user interface comprising:
a template selection area to display one or more templates for the user interface element;
a property region displaying a predetermined set of properties for the user interface element; and
a preview area displaying the user interface element, the preview area visually distinguished from the attribute area and displayed in parallel with the attribute area.
25. The system of claim 24, the computer program instructions further comprising:
an executable process that responds to a creative input in the property area that updates the user interface element displayed in the preview area.
26. The system of claim 24, wherein the user interface element comprises one selected from the group consisting of:
a calendar element;
a calculator element;
a music player element;
an address book element;
a notepad element;
stock quote elements;
a weather element;
a traffic element;
a package tracking element;
a contact management element; and
a clock element.
27. The system of claim 24, wherein the user interface element comprises a control for use in a unified interest layer.
28. The system of claim 24, wherein the user interface element comprises a control for use in a unified interest layer that detects a first trigger event for activating the unified interest layer and, in response to the first trigger event, temporarily deactivates the user interface and displays the unified interest layer comprising a plurality of layer elements.
29. A system for editing a user interface element to be used in a computer system, the system comprising:
a display device for displaying a set of objects contained in the user interface element; and
an input device, coupled to the display device, for receiving creative input for editing at least one object in the set of objects, wherein the creative input includes dragging and dropping the at least one object in the set of objects within the user interface element;
wherein the display device displays the user interface element incorporating the creative input.
30. The system of claim 29, wherein the input device receives a creative input selecting a theme, and wherein the user interface element incorporates at least one attribute associated with the selected theme.
31. The system of claim 29, wherein the user interface element comprises a control for use in a unified interest layer.
32. The system of claim 29, wherein the user interface element comprises a control for use in a unified interest layer that detects a first trigger event for activating the unified interest layer and, in response to the first trigger event, temporarily deactivates the user interface and displays the unified interest layer comprising a plurality of layer elements.
33. The system of claim 29, wherein the user interface element comprises one selected from the group consisting of:
a calendar element;
a calculator element;
a music player element;
an address book element;
a notepad element;
stock quote elements;
a weather element;
a traffic element;
a package tracking element;
a contact management element; and
a clock element.
34. A system for generating a user interface for a control authoring application, the system comprising:
a computer readable memory having computer program instructions tangibly embodied therein, the computer program instructions generating a user interface for the control authoring application, the user interface comprising:
a user interface element display area for displaying user interface elements;
a content area visually distinct from and displayed in parallel with the user interface element display area for editing at least one object contained in the user interface element; and
a library region visually distinct from and displayed in parallel with the user interface element region and the content region for adding at least one additional object to the user interface element.
35. The system of claim 34, wherein the user interface element comprises one selected from the group consisting of:
a calendar element;
a calculator element;
a music player element;
an address book element;
a notepad element;
stock quote elements;
a weather element;
a traffic element;
a package tracking element;
a contact management element; and
a clock element.
36. The system of claim 34, wherein the user interface element comprises a control for use in a unified interest layer.
37. The system of claim 34, wherein the user interface element comprises a control for use in a unified interest layer that detects a first trigger event for activating the unified interest layer and, in response to the first trigger event, temporarily deactivates the user interface and displays the unified interest layer comprising a plurality of layer elements.
38. An authoring tool for authoring user interface elements from templates, the user interface elements to be used in a computer system, the authoring tool comprising:
a display area for displaying one or more templates for the user interface element and for displaying a predetermined set of attributes for the user interface element;
an input device for receiving a first creative input selecting a template from the one or more templates as a basis for the user interface element and for receiving a second creative input selecting one or more predetermined attributes from the predetermined set of attributes; and
a processor to perform at least one of storing the user interface element incorporating the one or more predetermined attributes and displaying the user interface element incorporating the one or more predetermined attributes.
39. A control for use in a computer system, the control comprising:
a computer readable memory having computer program instructions tangibly embodied therein, the computer program instructions comprising instructions for:
displaying one or more templates for the control;
receiving a first creative input selecting a template from the one or more templates as a basis for the control;
displaying a predetermined set of properties for the control;
receiving a second creative input selecting one or more predetermined attributes from the set of predetermined attributes; and
wherein the control is displayed on a user interface, and wherein the displayed control incorporates the one or more predetermined properties.
40. An apparatus for creating a user interface element from a template, the user interface element to be used in a computer system, the apparatus comprising:
means for displaying one or more templates for the user interface element;
means for receiving a first creative input selecting a template from the one or more templates as a basis for the user interface element;
means for displaying a predetermined set of attributes for the user interface element;
means for receiving a second creative input selecting one or more predetermined attributes from the set of predetermined attributes; and
means for performing at least one action of storing the user interface element incorporating the one or more predetermined attributes and displaying the user interface element incorporating the one or more predetermined attributes.
41. The apparatus of claim 40, wherein the predetermined attribute is selected from the group consisting of theme, color, shape, faceability, and expandability.
42. The apparatus of claim 40, wherein the means for receiving a second creative input comprises means for receiving a creative input that selects a theme, and wherein the user interface element incorporates at least one attribute associated with the selected theme.
43. The apparatus of claim 40, wherein the user interface element comprises a control for use in a unified interest layer.
44. The apparatus of claim 40, wherein the user interface element comprises a control for use in a unified interest layer that detects a first trigger event for activating the unified interest layer and, in response to the first trigger event, temporarily deactivates the user interface and displays the unified interest layer comprising a plurality of layer elements.
45. The apparatus of claim 40, wherein the means for displaying the user interface element comprises: means for displaying the user interface element in parallel with at least a subset of the display attributes.
46. The apparatus of claim 40, further comprising means for installing the user interface element in a unified layer of interest.
47. The apparatus of claim 40, further comprising means for displaying a plurality of templates for the user interface element.
48. The apparatus of claim 40, wherein the user interface element comprises one selected from the group consisting of:
a calendar element;
a calculator element;
a music player element;
an address book element;
a notepad element;
stock quote elements;
a weather element;
a traffic element;
a package tracking element;
a contact management element; and
a clock element.
49. An apparatus for editing a user interface element to be used in a computer system, the apparatus comprising:
means for displaying a set of objects contained in the user interface element;
a component that receives creative input to edit at least one object in the set of objects, wherein the creative input comprises dragging and dropping the at least one object in the set of objects within the user interface element; and
means for executing at least one action of storing the user interface element incorporated into the creative input and displaying the user interface element incorporated into the creative input.
50. The apparatus of claim 49, wherein the means for receiving creative input comprises means for receiving creative input selecting a theme, and wherein the user interface element incorporates at least one attribute associated with the selected theme.
51. The apparatus of claim 49, wherein the set of editable objects comprises at least one selected from a button and a control.
52. The apparatus of claim 49, further comprising:
means for displaying a set of additional objects that can be added to the user interface element;
means for receiving creative input adding at least one additional object of the set of additional objects; and
displaying a component that incorporates the user interface element of the creative input.
53. The apparatus of claim 49, wherein the user interface element comprises a control for use in a unified interest layer.
54. The apparatus of claim 49, wherein the user interface element comprises a control for use in a unified interest layer that detects a first trigger event for activating the unified interest layer and, in response to the first trigger event, temporarily deactivates the user interface and displays the unified interest layer comprising a plurality of layer elements.
55. The apparatus of claim 49, further comprising means for installing the user interface element in a unified layer of interest.
56. The apparatus of claim 49, further comprising means for assigning the user interface element for installation in a unified layer of interest.
57. The apparatus of claim 49, wherein the user interface element comprises one selected from the group consisting of:
a calendar element;
a calculator element;
a music player element;
an address book element;
a notepad element;
stock quote elements;
a weather element;
a traffic element;
a package tracking element;
a contact management element; and
a clock element.
58. A system for generating a user interface for a control authoring application, the system comprising:
means for displaying a template selection area that displays one or more templates for the user interface element;
means for displaying a property region that displays a predetermined set of properties for the user interface element; and
means for displaying a preview area that displays the user interface element, the preview area being visually distinct from and displayed in parallel with the attribute area.
59. The system of claim 58, further comprising:
an executable component responsive to a creative input in the property area that updates the user interface element displayed in the preview area.
60. The system of claim 58, wherein the user interface element comprises one selected from the group consisting of:
a calendar element;
a calculator element;
a music player element;
an address book element;
a notepad element;
stock quote elements;
a weather element;
a traffic element;
a package tracking element;
a contact management element; and
a clock element.
61. The system of claim 58, wherein the user interface element comprises a control for use in a unified interest layer.
62. The system of claim 58, wherein the user interface element comprises a control for use in a unified interest layer that detects a first trigger event for activating the unified interest layer and, in response to the first trigger event, temporarily deactivates the user interface and displays the unified interest layer comprising a plurality of layer elements.
63. A system for generating a user interface for a control authoring application, the system comprising:
means for displaying a user interface element display area for displaying a user interface element;
means for displaying a content area, visually distinct from and displayed in parallel with a user interface element display area, for editing at least one object contained in the user interface element; and
means for displaying a library region that is visually distinct from and displayed in parallel with a user interface element region and a content region for adding at least one additional object to the user interface element.
64. The system of claim 63, wherein the user interface element comprises one selected from the group consisting of:
a calendar element;
a calculator element;
a music player element;
an address book element;
a notepad element;
stock quote elements;
a weather element;
a traffic element;
a package tracking element;
a contact management element; and
a clock element.
65. The system of claim 63, wherein the user interface element comprises a control for use in a unified interest layer.
66. The system of claim 63, wherein the user interface element comprises a control for use in a unified interest layer that detects a first trigger event for activating the unified interest layer and, in response to the first trigger event, temporarily deactivates the user interface and displays the unified interest layer comprising a plurality of layer elements.
67. A control for use in a computer system, the control comprising:
means for displaying one or more templates for the control;
means for receiving a first creative input selecting a template from the one or more templates as a basis for the control;
means for displaying a predetermined set of properties for the control;
means for receiving a second creative input selecting one or more predetermined attributes from the set of predetermined attributes; and
wherein the control is displayed on a user interface, and wherein the displayed control incorporates the one or more predetermined properties.
HK10100745.6A 2004-06-25 2010-01-22 Widget authorizing and editing environment HK1137230B (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/877,968 2004-06-25
US60/642,025 2005-01-07
US11/166,802 2005-06-23

Publications (2)

Publication Number Publication Date
HK1137230A true HK1137230A (en) 2010-07-23
HK1137230B HK1137230B (en) 2018-06-08

Family

ID=

Similar Documents

Publication Publication Date Title
CN1997957B (en) Unified interest layer for user interface
US7761800B2 (en) Unified interest layer for user interface
US7546543B2 (en) Widget authoring and editing environment
US20090260022A1 (en) Widget Authoring and Editing Environment
US20060277469A1 (en) Preview and installation of user interface elements in a display environment
HK1137230A (en) Widget authorizing and editing environment
HK1147328A (en) Unified interest layer for user interface
HK1147327A (en) Unified interest layer for user interface
HK1137232B (en) User interface element with auxiliary function
HK1137235A (en) Layer for accessing user interface element
HK1137233A (en) Configuration bar for launching layer for accessing user interface element
HK1137231B (en) Remote access to layer and user interface elements
HK1137235B (en) Layer for accessing user interface element
HK1137233B (en) Configuration bar for launching layer for accessing user interface element
HK1145720A (en) Web view layer for accessing user interface elements
HK1145719A (en) Remote access to layer and user interface elements
HK1098556B (en) Unified interest layer for user interface
HK1098556A (en) Unified interest layer for user interface