The present invention generally relates to computer software application user interfaces. More particularly, the present invention relates to customizable user interfaces for exposing customized application functionality sets.
With the advent of the computer age, computer and software users have grown accustomed to user-friendly software applications that help then write, calculate, organize, prepare presentations, send and receive electronic mail, make music, and the like. For example, modern electronic word processing applications allow users to prepare a variety of useful documents. Modem spreadsheet applications allow users to enter, manipulate, and organize data. Modem electronic slide presentation applications allow users to create a variety of slide presentations containing text, pictures, data or other useful objects.
Often users of such applications have limited ability to use all the available functionality of the applications, or often users need the use of specialized functionality not available by such applications. For example, small children may have limited ability to understand and use many of the different functionalities provided by a word processing application, and often the buttons and other controls provided the user interfaces of such applications may be confusing or even meaningless to a child. On the other hand, a business or other institution, such as a hospital, may need customized features not available in “off-the-shelf” versions of such applications. For example, a sales organization may need functionality from a spreadsheet application, such as a button that launches purchase order templates, that is not available in the “off-the-shelf” version. A hospital may need functionality from a word processing application, such as a drug interaction chart, that is not available in the “off-the-shelf” version of the word processing application.
It is with respect to these and other considerations that the present invention has been made.
Embodiments of the present invention solve the above and other problems by providing a customizable user interface for exposing customized application functionality sets. According to one embodiment of the present invention, a variety of customized user interface “skins” are provided for selectively overlaying a standard application user interface for hiding unwanted functionality and/or for exposing certain desired or non-standard functionality. While a standard application user interface is overlaid with a customized user interface skin, only the functionality exposed by the customized user interface skin will execute functionality of the associated application.
According to another embodiment, a given customized user interface skin may provide sample content such as games, educational information, templates or any other content useful by target users of the customized user interface skin.
According to another embodiment of the invention, a user interface skin development wizard is provided. The wizard may be used to create customized user interface skins. The wizard also may be used to add or delete customized functionalities to a user interface skin, or the wizard may be used to make selectable content available through the selection of customized controls added to a given user interface skin.
These and other features and advantages, which characterize the present invention, will be apparent from a reading of the following detailed description and a review of the associated drawings. It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory only and are not restrictive of the invention as claimed.
As briefly described above, embodiments of the present invention are directed to customizable and customized user interfaces for exposing customized application functionality sets and content. In the following detailed description, references are made to the accompanying drawings that form a part hereof, and in which are shown by way of illustrations specific embodiments or examples. These embodiments may be combined, other embodiments may be utilized, and structural changes may be made without departing from the spirit or scope of the present invention. The following detailed description is therefore not to be taken in a limiting sense and the scope of the present invention is defined by the appended claims and their equivalents.
Referring now to the drawings, in which like numerals represent like elements through the several figures, aspects of the present invention and the exemplary operating environment will be described.
Generally, program modules include routines, programs, components, data structures, and other types of structures that perform particular tasks or implement particular abstract data types. Moreover, those skilled in the art will appreciate that the invention may be practiced with other computer system configurations, including hand-held devices, multiprocessor systems, microprocessor-based or programmable consumer electronics, minicomputers, mainframe computers, and the like. The invention may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, program modules may be located in both local and remote memory storage devices.
Turning now to
The mass storage device 14 is connected to the CPU 4 through a mass storage controller (not shown) connected to the bus 12. The mass storage device 14 and its associated computer-readable media, provide non-volatile storage for the personal computer 2. Although the description of computer-readable media contained herein refers to a mass storage device, such as a hard disk or CD-ROM drive, it should be appreciated by those skilled in the art that computer-readable media can be any available media that can be accessed by the personal computer 2.
By way of example, and not limitation, computer-readable media may comprise computer storage media and communication media. Computer storage media includes volatile and non-volatile, removable and non-removable media implemented in any method or technology for storage of information such as computer-readable instructions, data structures, program modules or other data. Computer storage media includes, but is not limited to, RAM, ROM, EPROM, EEPROM, flash memory or other solid state memory technology, CD-ROM, DVD, or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store the desired information and which can be accessed by the computer.
According to various embodiments of the invention, the personal computer 2 may operate in a networked environment using logical connections to remote computers through a TCP/IP network 18, such as the Internet. The personal computer 2 may connect to the TCP/IP network 18 through a network interface unit 20 connected to the bus 12. It should be appreciated that the network interface unit 20 may also be utilized to connect to other types of networks and remote computer systems. The personal computer 2 may also include an input/output controller 22 for receiving and processing input from a number of devices, including a keyboard or mouse (not shown). Similarly, an input/output controller 22 may provide output to a display screen, a printer, or other type of output device.
As mentioned briefly above, a number of program modules and data files may be stored in the mass storage device 14 and RAM 8 of the personal computer 2, including an operating system 16 suitable for controlling the operation of a networked personal computer, such as the WINDOWS operating systems from Microsoft Corporation of Redmond, Wash. The mass storage device 14 and RAM 8 may also store one or more application programs. In particular, the mass storage device 14 and RAM 8 may store an application program 105 for providing a variety of functionalities to a user. For instance, the application program 105 may comprise many types of programs such as a word processing application, a spreadsheet application, a desktop publishing application, and the like. According to an embodiment of the present invention, the application program 205 comprises a multiple functionality software application suite for providing functionality from a number of different software applications. Some of the individual program modules that may comprise the multiple functionality application suite 205 include a word processing application 125, a slide presentation application 135, a spreadsheet application 140 and a database application 145. An example of such a multiple functionality application suite 205 is OFFICE manufactured by Microsoft Corporation. Other software applications illustrated in
As mentioned above, the application functionality set exposed by the available functionality controls available from the standard user interface 200 may not be useful to certain target users, such as small children. Indeed, many of the functionalities available in the standard functionality set of the user interface 200 may be meaningless to a young child. For example, a young child may wish to type a basic document, but may have no understanding, nor need for such functionalities as font type settings, grammar checkers, and the like. Moreover, in order to entice a young child to use the functionality of the associated application, it may be desirable to provide visual functionality controls that are pleasing to the eye of the child. On the other hand, the standard functionality set provided by the user interface 200 may lack certain customized functionalities required by a business or other institution. For example, as described above, a hospital organization may desire functionality controls in the tool bars of the word processing application user interface 200 for exposing pre-formatted documents, such as drug interaction charts, emergency procedures, hospital personnel scheduling, and the like.
As should be understood by those skilled in the art, a number of methods may be utilized for providing a customized user interface skin 300 for overlaying the standard user interface 200. For example, the associated software application, for example, a word processing application, may be modified by downloading a software code add-in that will modify the coding of the word processing application to allow for selectively overlaying the standard user interface with the customized user interface skin 300. Such an add-in may be loaded onto a user's computer according to a variety of different means, including a memory device, such as a diskette or CD-ROM, or the add-in may be downloaded from a distributed computing source, such as an Internet-based server. According to an embodiment of the present invention, applying a software code add-in to the associated application for enabling the customized user interface skin 300 may cause the inclusion of a control in the standard functionality control set of the standard user interface 200 for selectively overlaying the standard user interface 200 with the customized user interface skin 300. Likewise, the customized user interface 300 may include a functionality control for switching back to the standard user interface 200 as desired.
As briefly described above, when the customized user interface skin 300 overlays the standard user interface 200, the functionality available from the associated software application, for example, the word processing application, is still available, but is temporarily hidden from view and hidden from use while the customized user interface skin 300 overlays the standard user interface 200. That is, while the customized user interface skin 300 is overlaying the standard user interface 200, only the functionality set exposed by the customized user interface skin 300 is available for use by a user of the associated software application.
As should be understood, a number of different customized user interface skins may be prepared and made available to target users. For example, a user interface skin for kids may be provided, a user interface skin for sales organizations may be provided, a user interface skin for hospitals may be provided, a user interface skin for schools may be provided, a user interface skin for the home may be provided, a user interface skin for senior citizens may be provided, and the like. In each case, a customized set of functionality controls is exposed according to the target users of the given user interface skin. For example, a customized set of functionality controls for senior citizens may include enlarged buttons and controls for ease of reading. As should be understood, the target users or user groups listed herein are for purposes of example only and are not limiting of the number of different types of users or user groups for which one or more customized user interface skins may be provided according to the present invention. Indeed, a customized user interface skin may be generated with a variety of different customized functionality sets according to the needs of any given user or user group.
According to another embodiment of the present invention, a user interface skin development wizard is provided and may be added to the coding of a given software application for allowing a user to create customized user interface skins to provide specific functionality controls and to provide selected content for a desired user interface skin. Similarly, the wizard may be used for further customizing user interface skins. For example, the development wizard may be utilized to further customize an already customized user interface skin to provide additional functionality or content not already available for a given customized user interface skin. As mentioned above, the wizard may be a coding add-in to a given software application, such as a word processing application, spreadsheet application, and the like. On the other hand, the wizard may be a stand-alone software application for creating and/or customizing user interface skins. In either case the coding of the wizard includes sufficient computer-executable instructions for creating and/or customizing user interface skins as described herein.
In use, the development wizard may ask questions to a user in order to help the user in developing or customizing a user interface skin. For example, the wizard may ask an age range for target users of the customized user interface skin. Based on a provided age range, the wizard may suggest functionality controls that should be exposed to the target users. If a customized user interface skin is being developed for a business, the wizard may ask the type of business, for example, sales, manufacturing, service, etc. In response to selection of a particular type of business, the wizard may provide a variety of types of functionalities that may be available, for example, buttons for launching purchase order templates, buttons for lunching tax calculation programs in a spreadsheet application, and the like. Alternatively, the development wizard may be used to expose a variety of functionality controls to further customize or create a user interface skin that is different from any “off-the-shelf” user interface functionality set or from any previously customized user interface skin.
Referring still to
As described herein, a customizable user interface for exposing customized application functionality sets is provided. By overlaying a standard user interface with a customized user interface skin, only a customized or desired functionality sets are exposed to and usable by a target user. If desired, the standard user interface may be selectively returned for use. It will be apparent to those skilled in the art that various modifications or variations may be made in the present invention without departing from the scope or spirit of the invention. Other embodiments of the invention will be apparent to those skilled in the art from consideration of the specification and practice of the invention disclosed herein.