The present invention generally relates to the provision of help content associated with computer software applications. More particularly, the present invention relates to an integrated client help viewer for Internet-based and local assistance/help content.
With the advent of the computer age, computer and software users have grown accustomed to user-friendly software applications that help them write, calculate, organize, prepare presentations, send and receive electronic mail, make music, and the like. For example, modem 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.
In order to obtain helpful information about the operation of such applications, including the operation of particular aspects or functionality of such applications, many such applications provide a help function that allows a user to query an offline or online help application for assistance or information. For example, according to some applications, a user may select a key, such as the F1 key, or select a help icon or button to launch a help pane or viewer in which a user may enter a question or from which a user may select from a list of frequently asked questions. Because offline help functions typically offer a limited amount of pre-populated help content, some applications are associated with online help functions that allow the user to connect to a server via the Internet to get a more up-to-date or more comprehensive answer to a given question. Unfortunately, often the connection between the local client-side application and the server-side help function is lost, and an error condition results. The user must then dismiss an error alert and return to an offline help function in order to obtain the desired help content. Such switching between the offline and online help functionality does not produce a very satisfactory user experience.
In addition, in many cases, the user interface look and feel and the associated user experience are different between online help functions and offline help functions. Thus, the user experience between online and offline help is inconsistent and potentially confusing. Similarly, the help functions of different applications often have a very different look and feel, and the user experience across different applications is not very consistent. For example, a multiple functionality software suite may provide a word processing application, a spreadsheet application, a slide presentation application, and the like. If each of the different applications has a different help function (and a different help function user interface), the user experience across the different applications may lack consistency and enjoyment.
Accordingly, there is a need for an improved help function that provides a consistent user experience across different applications and that provides a smooth transition between offline and online help content sources. 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 an integrated help content viewer (user interface) that provides a consistent user interface across multiple applications and that smoothly transitions between offline and online help content sources. According to embodiments of the present invention, a single client-side help content viewer is provided that is displayed over or adjacent to a given application user interface (e.g., word processor work space) for allowing a query of offline or online help content associated with a given topic. The help content viewer may be pinned to a user interface associated with a given application so that the help content viewer remains in a position above the user interface even if the help content viewer is no longer the active application.
The scope of the help content viewer is associated initially with the application focused on by the user when the viewer is launched. A plurality of scope indicators is provided to alert the user of the present scope of the viewer (e.g., word processor versus spreadsheet application). The scope of the help content viewer may be selectively changed, or the scope may be changed automatically when a different application is used to invoke the help content viewer. Additionally, the scope may be changed automatically by navigating to help content associated with a different scope from the initial scope.
During use of the help content viewer, the offline/online connection state is provided in the viewer. If the connection state is offline, a user is prompted that online connection may be effected if desired and if presently available. If an online help session is in progress and the online connection is lost, a notification is provided in the help content viewer, but an error condition is not presented. Instead, the help functionality application automatically retrieves and displays help content in the viewer from an offline help content source so that the help session is not interrupted or terminated as a result of the loss of online connection. If the online connection becomes available again, a notification is provided, and help content retrieval from the online source may be automatically or selectively restored. According to one aspect of the invention, during online connection, retrieved help content may be stored locally for display in the help content viewer during subsequent offline help sessions.
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 an integrated help content viewer that provides a consistent user interface across multiple applications and that smoothly transitions between offline and online help content sources. 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
According to embodiments of the present invention, when a user requests help content associated with a given topic, an attempt is first made to retrieve the requested help content from an online source via a connection across a distributed computing network such as the Internet. If a connection with an online help content source may not be achieved, then help content responsive to the requested help topic is provided from an offline store of pre-populated help content maintained on the user's local computer 2.
According to embodiments of the present invention, the language associated with the help content viewer (e.g., English, French, Japanese, etc.) may be changed to suit the needs of different users. If the language is changed from a first language to a second language, help content may be retrieved from offline and online sources associated with the selected language. According to one embodiment, user interface software upgrades, plug-ins, add-ins and the like may be applied to a given application to enable the help content viewer of the present invention to search and display help content according to a selected language.
In order to alert the user as to the present help scope of the launched content viewer 300, a title bar 310 is provided for identifying the present help scope associated with the launched viewer 300. For example, referring to
The search scope text box 305 indicates a present scope of the launched viewer. As described below with respect to
A number of browsing functionality buttons such as the “Back” button 325, the “Forward” button 330, the “Stop” button 335, and the “Refresh” button 340 allow a user to browse through displayed search results in a manner similar to browsing through search results displayed in an Internet browsing application. Similarly, a “Favorites” button 350 and a “History” button 355 allow a user to store and browse favorite search results content, or browse previously searched help content.
As will be described below, according to embodiments of the present invention, the help content viewer 300 may be pinned to a particular application user interface so that the viewer remains in a position on top of the user interface to which the viewer is pinned. A “Pin” button 360 is provided for selectively pinning the help content viewer 300 to a particular application user interface, or for selectively un-pinning the content viewer to a given application user interface.
Along the lower edge of the viewer 300 is included a status bar 315 for showing the present status of a given help content search. If a help content search either from an online or offline content store is complete, an indication of “Done” may be provided. If a search for help content is in progress, a status indication such as “Search in Progress” may be provided. To the right of the status bar 315 is a connection status bar 320 for providing a present offline versus online connection status. For example, a connection status of “Connected” indicates that the client help application 210 is presently connected to an online help content store. On the other hand, a connection status of “Not Connected” indicates that the client-side help application 210 is not connected to an online help content store and that any help content retrieved and displayed during the offline (not connected) state will be retrieved from an offline help content store maintained locally on the user's local computer 2.
According to embodiments of the present invention, a preferred connection status is that of an online connection so that help content retrieved responsive to a selected or entered help request is most up-to-date and more responsive. Referring to
According to one embodiment, retrieved offline search results (either due to a loss of connection or by user choice) may provide useful information about available online help. For example, the results of an offline search may provide links to online information sources along with useful information to instruct the user on how to go online to search the online sources. For example, selection of an online link while the user is in an offline mode may cause a prompt to alert the user that the user must be connected to the online source to receive the requested online information.
Having described the help attributes and operation of the help content viewer 300 with respect to
At block 515, the client help application 210 determines whether it is presently connected to the online Internet-based help function 230 for obtaining help content. If the help application 210 is not presently connected to the online help function 230, a notification may be provided to the user such as the notification 410 illustrated in
At block 525, after connection is established, the client-side help application 210 receives the help request from the user, for example text formatting, and, at block 530, the entered or selected help request is passed to the server-side Internet-based help function 230 by the client-side help application 210 for obtaining help content responsive to the entered or selected help request. At block 535, the client-side help application 210 formats the retrieved help content and displays the help content in the client-side help content viewer 300 as described above.
According to one embodiment of the present invention, when help content is retrieved from the server-side help function 230, the client-side help application 210 dynamically stores the retrieved content in a client-side cache for subsequent offline use. Accordingly, if online connection is subsequently lost or is otherwise interrupted or terminated, the client-side help application 210 may provide enhanced help content by utilizing content stored on the client-side from the online help function 230.
At block 545, if online connection is lost during an online help session, an alert such as alert 410 illustrated in
Referring still to
According to embodiments of the present invention, the client help application 210 and help content viewer 300 may advantageously communicate directly with a plurality of applications comprising a multiple application suite, for example a word processing application, a spreadsheet application, a slide presentation application, a database application, and the like. As briefly described above, the help content viewer 300 is initially scoped according to an application from which the help content viewer 300 is launched. That is, if the viewer 300 is launched from a word processing application for obtaining help content associated with some functionality or topic associated with word processing, then the help content viewer 300 will be scoped for the word processing application. As described above with reference to
According to embodiments of the present invention, the scope of the help content viewer 300 may be manually and selectively changed by a user by selecting the application home button 345 to present a drop-down of alternative application scopes. Referring to
According to an alternative embodiment, the scope of the help content viewer 300 may be changed automatically when a different application invokes the help content viewer 300. For example, if the user is presently utilizing a word processing application, and the user launches a different application, for example a spreadsheet application, followed by selection of a help function key or icon from the second application, the scope of the help content viewer 300 will be automatically changed to a scope associated with the second application from which a help function is invoked. According to this example, the scope of the help content viewer would be changed to a spreadsheet application scope.
According to another embodiment, the scope of the help content viewer may be automatically changed if a user navigates to a help content search result associated with a different scope. For example, if the user is presently browsing search results displayed in the help content viewer 300 associated with a help topic related to a word processing application, but the user navigates to a portion of the help content search results associated with a different scope, for example a spreadsheet application scope, the present scope of the help content viewer 300 may be changed to a scope associated with the help content navigated to by the user, for example spreadsheet application scope.
Referring now to
According to embodiments of the present invention, software applications, for example word processing applications, spreadsheet applications, and the like, from which the help content viewer 300 are launched may control the size and position of the viewer 300. For example, the viewer 300 may be launched in a position overlaying a user interface associated with a given application. Alternatively, the viewer 300 may be sized for fitting adjacent to a work space of a given application user interface. Additionally, the size of the display area of the viewer 300 may be reduced or expanded in order to accommodate varying amounts of displayed help content.
Referring to
As briefly described above, and as illustrated in
If the scope of the viewer 300 is changed to a different application and the viewer 300 is selected to be pinned to a scoped user interface, then the viewer 300 will move to an “always on top” position relative to the new application to which the scope has changed. For example, referring to
According to an embodiment of the present invention, content displayed in the help content viewer 300 may control functionality of an application to which the help content viewer 300 is presently scoped. That is, software coding contained in the displayed content in the viewer 300 may automatically or selectively control functionality of the associated application. For example, if help content displayed in the viewer 300 includes coding for changing the print functionality of an associated word processing application such that a document is printed according to an alternative font, a button may be supplied in the displayed help content to allow the user to selectively print the document according to the alternative font directly from the help content viewer. According to one embodiment, software code in the associated application, for example a word processing application, is exposed to code contained in the help content displayed in the content viewer 300. Accordingly, code contained in the content displayed in the content viewer 300 calls the code exposed by the application and executes the exposed code. According to an alternative embodiment, the content displayed in the help content viewer passes a reference to the associated application code to allow the associated application to download, interpret and execute code contained in the help content so that the associated application runs the referenced code contained in the help content.
As described herein, an integrated help content viewer for managing offline and online help content is provided. 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.