# Patent

## Title
Command user interface for displaying multiple sections of software functionality controls

## Abstract

To increase command-access efficiency and to optimize a user's available user interface work space, an improved user interface is provided for displaying logical groupings of selectable software functionality controls that are associated with one or more selected top-level functionalities. Upon selection of a top-level functionality tab, selectable functionalities associated with the top-level functionality tab are divided into logical groupings and are presented in a customizable functionality control section below the tab. Upon selection of a different top-level functionality tab, selectable functionalities associated with the subsequently selected top-level functionality tab may either replace the first functionality control section or may be displayed in a separate functionality control section adjacent to the first functionality control section if real estate is available in the user interface.

## Background
CROSS REFERENCE TO RELATED APPLICATIONS
This application is a continuation in part of U.S. patent application Ser. No. 10/955,967, “now U.S. Pat. No. 8,255,828,” filed Sep. 30, 2004, entitled Command User Interface For Displaying Selectable Software Functionality Controls, which claims priority to U.S. patent application Ser. No. 60/601,815, filed Aug. 16, 2004. The above-listed applications are expressly incorporated herein by their reference. To the extent appropriate, a claim of priority is made to each of the above-recited applications.


BACKGROUND
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, modern electronic word processing applications allow users to prepare a variety of useful documents. Modern spreadsheet applications allow users to enter, manipulate, and organize data. Modern electronic slide presentation applications allow users to create a variety of slide presentations containing text, pictures, data or other useful objects.
To assist users to locate and utilize functionality of a given software application, a user interface containing a plurality of generic functionality controls is typically provided along an upper, lower or side edge of a displayed workspace in which the user may enter, copy, manipulate and format text or data. Such functionality controls often include selectable buttons with such names as “file,” “edit,” “view,” “insert,” “format,” and the like. Typically, selection of one of these top-level functionality buttons, for example “format,” causes a drop-down menu to be deployed to expose one or more selectable functionality controls associated with the top-level functionality, for example “font” under a top-level functionality of “format.”
After a user selects a desired functionality control, or if the user moves the mouse cursor to a different location, the drop-down menu typically disappears. If the user determines that functionality of the first drop-down menu was the desired functionality, the user must remember which top-level functionality was selected, reselect that functionality and then find the desired functionality control all over again. Accordingly, in order to use the functionality of a given software application, the user must know the desired functionality is available under one of the selectable buttons, or the user must select different top-level functionalities until the desired specific functionality is located. Such a method of searching for desired functionality is cumbersome and time-consuming, particularly for less experienced users, and when new functionality is added by developers of the software application, the new functionality may never be utilized unless the user is somehow educated as to its existence.
Accordingly, there is a need in the art for an improved functionality command user interface for displaying selectable software functionality controls and for presenting logical groupings of particular functionality controls associated with a selected top-level functionality. It is with respect to these and other considerations that the present invention has been made.
SUMMARY
Embodiments of the present invention solve the above and other problems by providing an improved user interface for displaying selectable software functionality controls and for presenting logical groupings of particular functionality controls associated with a selected top-level functionality. Generally, aspects of the present invention provide for organization of the functionality of a given software application into task-based modes. The modes are associated with tabs in a ribbon-shaped user interface, and the tabs are labeled with descriptive text associated with different functionality modes or tasks. Underneath a row of top-level functionality tabs, functionalities associated with a given top-level functionality tab are presented in logical groupings. Selection of a particular tab populates the user interface with controls for functionalities associated with the selected tab.
According to an embodiment of the invention, methods and systems for providing functionality from a software application via an improved user interface are provided. A plurality of functionalities available from one or more software applications is organized according to one or more tasks that may be performed with the software application. A user interface tab for each of the one or more tasks is provided in the user interface. Upon receiving an indication of a selection of a given user interface tab, one or more selectable functionality controls are displayed in the user interface for selecting one or more functionalities organized under a given task associated with the selected user interface tab.
According to another embodiment, if the user interface contains available display space after the display one or more selectable functionality controls in response to receiving an indication of a selection of a given user interface tab, the available display space may be used to display additional selectable functionality controls associated with an additional user interface tab associated with a different task. According to this embodiment, two or more top-level functionality tabs and the functionality control sections containing logical groupings of particular functionality controls associated with the selected top-level functionality tabs may be displayed in the user interface. That is, selection of a first top-level functionality tab may cause the display in a first portion of the user interface a first set of selectable functionality controls associated the selected first top-level functionality tab, and selection of a second or subsequent top-level functionality tab may cause the display in a second or subsequent portion of the user interface a second or subsequent set of selectable functionality controls associated with the selected second or subsequent top-level functionality tab. Alternatively, the second or subsequent portion of the user interface may be populated with a second or subsequent set of selectable functionality controls associated with the context of an edited object. For example, editing a picture object in a text document may cause the display of a set of functionality controls associated with picture editing in an empty space in the user interface adjacent to a presently displayed set of functionality controls associated with a previously selected top-level functionality tab. In addition, a user may change how space is divided between adjacent portions of the user interface containing different sets of functionality controls. Thus, embodiments enable users to have multiple sets of tools available simultaneously and allow users to optimize the space available in a user interface.
These and other features and advantages 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 explanatory only and are not restrictive of the invention as claimed.
This summary is provided to introduce a selection of concepts in a simplified form that are further described below in the detailed description. This summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended as an aid in determining the scope of the claimed subject matter.



BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 is a block diagram showing the architecture of a personal computer that provides an illustrative operating environment for embodiments of the present invention.
FIG. 2 is an illustration of a computer screen display showing a ribbon-shaped user interface for displaying task-based top-level functionality tabs and for displaying a plurality of functionalities available under a selected top-level functionality tab.
FIG. 3 illustrates a computer screen display showing the user interface illustrated in FIG. 2 whereby a different set of functionalities is presented associated with a different top-level functionality tab.
FIG. 4 illustrates a computer screen display showing the user interface illustrated in FIG. 2 whereby a different set of functionalities is presented associated with a different top-level functionality tab.
FIG. 5 illustrates a computer screen display showing a pop-up user interface for providing detailed functionality associated with a selected subset of functionalities presented in the ribbon-shaped user interface illustrated in FIGS. 2 through 4.
FIG. 6 illustrates a computer screen display showing a pop-up user interface for providing detailed functionality associated with a selected subset of functionalities presented in the ribbon-shaped user interface illustrated in FIGS. 2 through 4.
FIG. 7 illustrates a computer screen display showing a drop-down menu of functionalities associated with a selected functionality presented in the ribbon-shaped user interface illustrated in FIGS. 2 through 4.
FIG. 8 illustrates a computer screen display showing the presentation of a tool tip dialog box for providing helpful information about a selected or focused-on functionality control.
FIG. 9 illustrates a computer screen display showing empty space within a ribbon-shaped user interface displaying a functionality control section of selectable functionalities associated with a selected top-level functionality tab.
FIG. 10 is an illustration of a computer screen display showing a ribbon-shaped user interface displaying two functionality control sections containing a plurality of functionalities available under two selected top-level functionality tabs.
FIG. 11 is an illustration of a computer screen display showing a ribbon-shaped user interface displaying three functionality control sections containing a plurality of functionalities available under three selected top-level functionality tabs.



DETAILED DESCRIPTION
As briefly described above, embodiments of the present invention are directed to an improved user interface for displaying selectable software functionality controls associated with task-based functionality and for presenting logical groupings of particular functionality associated with a selected task-based functionality. As will be described in detail below, when one task-based functionality tab is selected from the user interface of the present invention, selectable functionality controls provided by the associated software application for performing aspects of a task related to the selected task-based functionality tab are presented in a functionality control section within a ribbon-shaped user interface above a workspace in which the user is entering or editing a document or object. The selectable functionality controls presented in the user interface are grouped into logical groupings for more efficient utilization. For example, if a word processing application is used, and the user selects the “Writing” tab, the ribbon-shaped user interface may be populated by functionalities associated with writing tasks such as “Clipboard” tools (e.g., “Cut,” “Copy,” “Paste,” etc.), “Formatting” tools (e.g., “Alignment,” “Font Style,” “Font Size,” etc.), “Writing” tools (e.g., “Find/Replace,” “Insert Symbol,” “AutoCorrect,” etc.), and “View” tools (e.g., “Document Map,” “Thumbnails,” “Ruler,” etc.).
Upon selection of a different task-based functionality tab, the selectable functionality controls associated with the subsequently selected task-based functionality may either replace the selectable functionality controls associated with the previously selected task-based functionality or be displayed in a separate functionality control section adjacent to the first functionality control section in the user interface depending upon various factors such as user preference and/or amount of screen space available due to monitor resolution, screen size, application window size, use of multiple monitors, etc. Alternatively, the second or subsequent portion of the user interface may be populated with a second or subsequent set of selectable functionality controls associated with the context of an edited object. For example, editing a picture object in a text document may cause the display of a set of functionality controls associated with picture editing in an empty space in the user interface adjacent to a presently displayed set of functionality controls associated with a previously selected top-level functionality tab.
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. FIG. 1 and the following discussion are intended to provide a brief, general description of a suitable computing environment in which the invention may be implemented. While the invention will be described in the general context of program modules that execute in conjunction with an application program that runs on an operating system on a personal computer, those skilled in the art will recognize that the invention may also be implemented in combination with other program modules.
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 FIG. 1, an illustrative computer architecture for a personal computer 2 for practicing the various embodiments of the invention will be described. The computer architecture shown in FIG. 1 illustrates a conventional personal computer, including a central processing unit 4 (“CPU”), a system memory 6, including a random access memory 8 (“RAM”) and a read-only memory (“ROM”) 10, and a system bus 12 that couples the memory to the CPU 4. A basic input/output system containing the basic routines that help to transfer information between elements within the computer, such as during startup, is stored in the ROM 10. The personal computer 2 further includes a mass storage device 14 for storing an operating system 16, application programs, such as the application program 205, and data.
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 105 comprises a multiple functionality software application for providing word processing functionality, slide presentation functionality, spreadsheet functionality, database functionality and the like. Some of the individual program modules comprising the multiple functionality application 105 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 105 is OFFICE manufactured by Microsoft Corporation. Other software applications illustrated in FIG. 1 include an electronic mail application 130.
FIG. 2 is an illustration of a computer screen display showing a ribbon-shaped user interface for displaying task-based top-level functionality tabs and for displaying a functionality control section containing a plurality of functionalities available under a selected top-level functionality tab. As briefly described above, the improved user interface of the present invention includes a ribbon-shaped user interface for displaying controls associated with task-based functionality available under a given software application, such as the software application 105 illustrated in FIG. 1. A first section 210 of the user interface 200 includes generic controls for functionality not associated with a particular task, such as word processing versus spreadsheet data analysis. For example, the section 210 includes controls for general file commands such as “file open,” “file save” and “print.” According to one embodiment of the present invention, the controls included in the first section 210 are controls that may be utilized by a variety of software applications comprising a multiple functionality application 105. That is, the controls included in the first section 210 may be controls that are generally found and used across a number of different software applications.
Controls included in the first section 210 may be utilized for all such applications comprising such a multiple functionality application, but other controls presented in the user interface 200 described below, may be tailored to particular tasks which may be performed by particular software applications comprising the multiple functionality application. On the other hand, it should be appreciated that the user interface 200 described herein may be utilized for a single software application such as a word processing application 125, a slide presentation application 135, a spreadsheet application 140, a database application 145, or any other software application which may utilize a user interface for allowing users to apply functionality of the associated application.
Referring still to FIG. 2, adjacent to the first section 210 of the user interface 200 is a task-based tab section. The tab section includes selectable tabs associated with task-based functionality provided by a given software application. For purposes of example, the task-based tabs illustrated in FIG. 2 are associated with tasks that may be performed using a word processing application 125. For example, a “Writing” tab 215 is associated with functionality that may be utilized for performing writing tasks. An “Insert” tab 220 is associated with functionality associated with performing insert operations or tasks. A “Page Layout” tab 230 is associated with functionality provided by the associated application for performing or editing page layout attributes of a given document. A task-based tab may be activated by a user via a plurality of methods including but not limited to selection via a pointing device (e.g. a mouse), shortcut key, voice command, or selection or mouse-over action over an element within a document that has functionalities associated with it.
As should be appreciated, many other task-based tabs or controls may be added to the tab section of the user interface for calling functionality associated with other tasks. For example, task tabs may be added for text effects, document styles, review and comment, and the like. And, as described above, the user interface 200 may be utilized for a variety of different software applications. For example, if the user interface 200 is utilized for a slide presentation application, tabs contained in the tab section may include such tabs as “Create Slides,” “Insert,” “Format,” “Drawing,” “Effects,” and the like associated with a variety of tasks that may be performed by a slide presentation application. Similarly, tabs that may be utilized in the tab section of the user interface 200 for a spreadsheet application 140 may include such tabs as “Data” or “Data Entry,” “Lists,” “Pivot Tables,” “Analysis,” “Formulas,” “Pages and Printing,” and the like associated with tasks that may be performed using a spreadsheet application.
Immediately beneath the generic controls section 210 and the task-based tab section is a selectable functionality control section for displaying selectable functionality controls associated with a selected tab 215, 220, 230 from the task-based tab section. According to embodiments of the present invention, when a particular tab, such as the “Writing” tab 215 is selected, selectable functionality available from the associated software application for performing the selected task, for example a writing task, is displayed in logical groupings. For example, referring to FIG. 2, a first logical grouping 240 is displayed under a heading “Clipboard.” According to embodiments of the present invention, the clipboard section 240 includes selectable functionality controls logically grouped together and associated with clipboard actions underneath the general task of writing. For example, the clipboard section 240 may include such controls as a cut control, a copy control, a paste control, a select all control, etc. Adjacent to the clipboard section 240, a second logical grouping 250 is presented under the heading “Formatting.” Controls presented in the “Formatting” section 250 may include such controls as text justification, text type, font size, line spacing, boldface, italics, underline, etc. Accordingly, functionalities associated with formatting operations are logically grouped together underneath the overall task of “Writing.” A third logical grouping 260 is presented under the heading “Writing Tools.” The writing tools section 260 includes such writing tools as find/replace, autocorrect, etc.
According to one embodiment, as described below with reference to FIGS. 3 and 4, upon selection of a different task-based tab from the tab section, a different functionality control section containing logical groupings of selectable functionality controls is presented in the user interface 200 associated with the selected task-based tab. As illustrated in FIG. 3, the “Insert” task tab 220 is selected, and the selectable functionality controls presented in the user interface 200 are changed from those illustrated in FIG. 2 to include selectable functionality controls associated with the insert task. For example, a first logical grouping 310 of selectable functionality controls is illustrated under a heading “Illustrations.” The illustrations section 310 includes controls for allowing a user to insert into the application workspace a variety of illustrations such as pictures, clip art, word art, charts, diagrams, organization charts, drawings and the like. A second logical grouping 315 of selectable functionality controls is provided under the heading “Text” and provides selectable functionality controls for inserting text-type objects or data into the user's workspace. For example, controls contained in the text section 315 include hyperlink, symbol, text box, date and time, page numbers, headers and footers, etc. A third logical grouping 320 of selectable functionality controls is presented under the heading “Breaks.” This section includes selectable functionality controls for inserting breaks such as page breaks, column breaks, section breaks, etc.
Referring to FIG. 4, the user interface 200 illustrated in FIGS. 2 and 3 is illustrated wherein the “Page Layout” tab 230 is selected. Upon selection of the “Page Layout” tab 230, selectable functionality controls associated with performing page layout tasks are presented to the user in logical groupings 410, 420, 430, 440, 450, 460. For example, a first logical grouping 410 is illustrated under the heading “Show/Hide” and includes selectable functionality controls associated with showing or hiding page layout information such as ruler information, paragraph markings, text boundaries, and the like. A second section 420 is grouped under a heading “Page Setup.” The page setup section 420 includes selectable functionality controls for adjusting or editing a page's orientation, size, margins, column settings, page layout breaks, etc. A third section 430 is presented under a heading “Header & Footer.” This section 430 includes selectable functionality controls for software application functionality related to inserting and editing header and footer information.
Along the right edge of the user interface 200 is included a “Background” section 450 and a “Position” section 460. According to the user interface illustrated in FIG. 4, these selectable functionality control sections are closed or collapsed. That is, the user interface 200, as illustrated in FIG. 4, has insufficient space for displaying individual selectable functionality controls under each of these two sections. Accordingly, these two sections are closed from view. As should be appreciated, depending upon the screen size available for displaying the user interface 200 or depending upon the display settings utilized by a given user of the user interface 200, varying amounts of space will be available for displaying the task-based tabs and associated selectable functionality controls. Accordingly, when insufficient space is available in the user interface 200 for displaying all logical groupings associated with a given task-based tab, a determination may be made at application run time as to any logical groupings that must be collapsed or closed until the associated task-based tab is selected. Similarly, if the user manually reduces the size of the user interface 200, a determination is made as to the available space for displaying selectable functionality control sections, and certain selectable functionality control sections are collapsed as required. As should be appreciated, a determination may be made as to the order of collapsing selectable functionality control sections such that a criteria, such as “most used” or “most recently used” may be used for determining which selectable functionality control sections are displayed and which sections are collapsed as the available space in the user interface is decreased.
According to an alternate embodiment, if the user interface 200 lacks sufficient space to display all logical groupings of functionality controls associated with a given task-based tab, the size of the display of individual logical groupings is reduced to allow space for the display of all associated logical groupings. According to one aspect of this embodiment, different sizes of groupings displays, for example small, medium and large, may be defined. At display time, a determination may be made as to the available space. At a starting point, the largest size for each applicable logical grouping display is presented. As required, the display size is reduced (i.e., large to medium to small) for each logical grouping until each grouping fits in the available space. In addition, for smaller logical grouping display layouts, text labels may be shortened or eliminated, and the layout of individual controls contained in given groupings may be rearranged to allow for more efficient use of space.
According to embodiments of the present invention, selection of a closed or collapsed selectable functionality control section, such as the sections 450, 460 causes a rearrangement of the user interface 200 for presenting the selectable functionality controls associated with the selected section. That is, as should be appreciated, one or more of the other presently fully displayed sections may be collapsed in order to make room for the selectable functionality controls of a previously closed or collapsed section. Alternatively, all selectable functionality controls presently displayed in the user interface 200 may remain displayed as is, and selectable functionality controls contained under a selected closed or collapsed section may be displayed in a drop-down display that is presented vertically below the selected closed or collapsed section or that is displayed horizontally underneath the user interface 200. Alternatively, the selectable functionality controls associated with a selected closed or collapsed section may be displayed in a pop-up menu or text box.
According to embodiments of the present invention, customization of the displayed selectable functionality control sections may be performed. That is, the selectable functionality control sections under a given selected task tab may be reordered according to the particular needs of a given user, and certain sections may be hidden from view if the functionality associated with those sections are never used by a given user. Or, a presently displayed selectable functionality control section may be manually collapsed in order to make space in the user interface 200 for the display of a selectable functionality control section that is presently closed or collapsed due to insufficient space in the user interface 200.
According to embodiments of the present invention, a user may browse through available selectable functionality controls using a mouse-over action. During the mouse-over action, the displayed functionality is dynamically changed relative to a tab or functionality control on which the mouse cursor is focused at a given time. For example, referring to FIGS. 2, 3, 4, if a user clicks and holds the mouse cursor over the “Writing” tab, the selectable functionality controls sections and associated controls are displayed. If the user does not see desired functionality controls, the user may mouse-over to a second tab, for example, the “Insert” tab 220, and the selectable functionality controls groupings associated with the “Insert” tab are dynamically displayed as illustrated in FIG. 3. If the user sees a desired control in one of the selectable functionality controls sections or groupings under the “Insert” tab, for example, the user may select the desired control for application to a selected document or object. After the user selects the desired control or command, the user interface 200 reverts back to the display that was presented to the user before the user started the mouse-over action. That is, a display of the selectable functionality control sections of the finally selected control does not remain displayed in the user interface 200. The user interface 200 returns to the original display prior to the mouse-over action.
As should be appreciated by those skilled in the art, because of space limitations in the sections of the user interface 200 containing logical groupings of selectable functionality controls, not all functionality that may be desired or utilized by a given user of the software application may be accessible by selecting one of the controls presented in a given section. Many additional functionalities may be available that may be associated with, or otherwise related to a given selectable functionality control section under a selected task-based tab. Referring now to FIG. 5, if a user requires the use of additional functionality not presented in a given selectable functionality control section, or if the user desires detailed information regarding the attributes of a document or object according to the application of functionality presented in a given selectable functionality control section, a dialog 540 may be launched to provide additional selectable functionality controls, or to provide detailed information regarding the application of functionality to a document or object.
For example, as illustrated in FIG. 5, selection of the Fonts’ selectable functionality control section 510 causes the deployment of a “Font Details” tab 515 below the section 510. Selection of the “Font Details” tab 515 causes deployment of the “Font” dialog 540 to provide the user detailed information as to the application of particular functionality, for example fonts, to a selected document or object and provides the user additional selectable functionality not presented to the user in the selectable functionality control section 510. As should be appreciated, the “Font Details” tab 515 may be deployed each time the user focuses a mouse cursor in any portion of the section 510 to alert the user that the user may selectively launch the dialogue 540 if desired. Alternatively, other mechanisms may be used for deploying the tab 515 such as selecting the section heading, for example “Fonts” for the section 510, or selecting any area within the section 510 not associated with a particular control, or right clicking the “Fonts” section 510.
Referring to FIG. 6, a second launched dialog 600 is illustrated which is associated with a second logical grouping section 520 of the user interface 200. As described with respect to FIG. 5, a tab 522 is deployed underneath the logical grouping section 520 of selectable functionality controls for launching the dialog 600 for providing a user additional functionality or additional information regarding attributes applied to a selected document or object under the associated selectable logical grouping section 520, for example the “Paragraph” section. As should be appreciated, dialog such as the dialogs 540 and 600 illustrated in FIGS. 5 and 6, may be launched for any logical grouping of selectable functionality controls displayed in the user interface 200 where additional functionality or details may be provided to a desiring user.
Referring now to FIG. 7, a drop-down menu of selectable functionality controls is illustrated beneath a selected control 710 in the main body of the user interface 200. In some cases, insufficient space may be available for all selectable functionality controls to be displayed into a logical grouping in the user interface 200 upon selection of an associated functionality tab 230. According to embodiments of the invention, in such a case, a control such as the “Header & Footer” control 710 may be populated into the user interface 200. Selection of the control 710 causes deployment of the drop-down menu 730 for displaying selectable functionality controls associated with the control 710.
Referring now to FIG. 8, a variety of tool tips may be displayed to the user to provide helpful information or tutorials regarding different functionality of an associated application. For example, as illustrated in FIG. 8, a tool tips pop-up dialog 820 is displayed for providing helpful information regarding the functionality available under a “Columns” section 810. As shown in the pop-up dialog 820, helpful information is provided regarding application of columns formatting and structure to a document. In addition, online training and other helpful information may be provided through the deployed pop-up dialog. As should be understood, helpful tool tips, such as the tool tip 820, may be provided for any functionality grouping displayed in the user interface 200, or tool tips 820 may be provided for individual functionality controls. Deployment of tool tips 820 may be performed in response to a variety of different user actions. For example, placing a mouse cursor on a selected control or grouping of controls followed by selection of a function key, such as the F1 key may deploy the pop-up dialog. For another example, a right-click of a mouse device on a given grouping of functionality controls may deploy the pop-up dialog. Other mechanisms including mouse-over actions or automatic deployment after a set amount of time of focusing a mouse cursor in a given section of the user interface 200 may be utilized for deploying the tool tips pop-up dialog.
As should be appreciated, depending upon the screen size available for displaying the user interface 200 or depending upon the display settings utilized by a given user of the user interface 200, varying amounts of space will be available for displaying the task-based tabs and associated selectable functionality controls. Accordingly, when sufficient space is available in the user interface 200 for displaying logical groupings associated with a given task-based tab and extra real estate is available, a determination may be made as to displaying additional logical groupings associated with a subsequently selected task-based tab.
As described above, with reference to FIG. 4, space limitations in the sections of the user interface 200 containing logical groupings of selectable functionality controls may be such that some logical groupings of functionality controls may be closed or collapsed from view. Alternatively, there may be times when all logical groupings of functionality controls associated with a given task-based tab or editing context may fit within the available display space and additional empty display space may be available for the display of additional user interface components. For example, if a large resolution computer monitor is in use, or if multiple monitors are in use, display space may be sufficient to display all the logical groupings of functionality controls associated with a given task-based tab and the logical groupings of one or more additional task-based tabs such that a row of adjacently positioned portions of the ribbon-shaped user interface may be populated with logical groupings of functionality controls associated with different task-based tabs.
FIG. 9 illustrates a computer screen display showing empty space within a ribbon-shaped user interface displaying a functionality control section of selectable functionality controls associated with a selected top-level functionality tab. According to this embodiment, if the user interface contains available display space after the display one or more selectable functionality controls in response to receiving an indication of a selection of a given user interface tab, the available display space may be used to display additional selectable functionality controls associated with an additional user interface tab associated with a different task. Two or more top-level functionality tabs and the functionality control sections containing logical groupings of particular functionality controls associated with the selected top-level functionality tabs may be displayed in the user interface. That is, selection of a first top-level functionality tab may cause the display in a first portion of the user interface a first set of selectable functionality controls associated the selected first top-level functionality tab, and selection of a second or subsequent top-level functionality tab may cause the display in a second or subsequent portion of the user interface a second or subsequent set of selectable functionality controls associated with the selected second or subsequent top-level functionality tab. Alternatively, the second or subsequent portion of the user interface may be populated with a second or subsequent set of selectable functionality controls associated with the context of an edited object. For example, editing a picture object in a text document may cause the display of a set of functionality controls associated with picture editing in an empty space in the user interface adjacent to a presently displayed set of functionality controls associated with a previously selected top-level functionality tab.
Referring to FIG. 9, upon selection of a task-based tab from the tab section, a first set of selectable functionality controls associated with the selected task-based tab is presented in different logical groupings in the user interface 200. For example, upon selection of the “Home” tab 905, a first set of control groupings having functionality buttons for accessing application functions associated with the “Home” feature of the application are presented in the control section 915. A “Table” tab 910 is illustrated which may be selected for replacing the first control section with a second control section for containing functionality controls associated with a “Table” feature of the application, or for populating an empty space in the user interface 200 with a second control section, as described below. As should be appreciated, the task-based tabs and associated functionality control groupings described herein are for purposes of example and are not limiting of the vast number of application functions that may be represented by task-based tabs and associated groupings of functionality buttons and controls.
As illustrated in FIG. 9, in addition to the displayed selectable functionality control section 915, empty space 920 is also contained in the user interface 200. In one embodiment, empty space 920 may be present in the user interface if there are a small number of selectable functionality controls associated with a selected task-based tab. For example, in FIG. 9, the user interface is populated with functionality control sections containing selectable functionality controls associated with the selected task-based tab “Home” 905. As shown, the selectable functionality controls do not take up the full display space available in the user interface 200, and thus, empty space 920 is present. In another embodiment, empty space 920 may be available if the application is displayed on a large resolution monitor. In yet another embodiment, the application may be displayed on multiple monitors, which may allow for empty space 920 to be present in the user interface 200. As should be appreciated, there may be many reasons for empty space 920 to be present in the user interface 200.
As was previously described and illustrated in FIGS. 3 and 4, upon selection of a second task-based tab from the tab section, a different functionality control section of selectable functionality controls in different logical groupings is presented and replaces the previously displayed selectable functionality controls in the user interface 200 associated with the selected task-based tab. To increase efficiency and to take advantage of the available space of large monitors, multi-monitor setups, and/or to allow users to see more commands and multiple sets of tools on the screen at a time, the available user interface display space may be utilized to display two or more resizable functionality control sections. According to embodiments of the present invention, as described below with reference to FIG. 10, a multi-tab mode may be utilized whereupon the activation of a different top-level functionality tab displays a second functionality control section within the user interface. With this functionality, a user may choose to view the functionality controls of multiple task-based tabs side by side.
FIG. 10 illustrates an example display of a second set of selectable functionality controls in the empty space 920, upon selection of a second task-based tab. As illustrated in FIG. 10, the user interface 200 is populated with selectable functionalities associated with the “Home” tab 905. When a second top-level functionality tab, “Table” 910,” is activated, functionality control groupings associated with the “Table” tab 910 are displayed in the “Table” functionality control section 1020 in the user interface 200 adjacent to the functionality control section 915 containing functionalities associated with the “Home” tab 905. Thus, the empty space 920 is replaced with the functionality controls of the second selected tab, and the user is able to use functionalities associated with two different top-level functionalities without having to toggle between the two tabs.
As should be appreciated, a user may explicitly select and arrange tabs into an arrangement he/she wants by selecting additional tabs until all available empty space 920 is consumed. Once two or more portions of the ribbon-shaped user interface are populated with logical groupings of functionality controls for two or more associated selected tabs, the user may move the portions relative to each other. For example, referring to FIG. 10, a user may desire to move the “Table” tab and associated functionality controls to the left side of the user interface 200 so that the “Home” tab and associated controls are then positioned on the right side. Such manipulation of the portions or sections of the ribbon-shaped user interface may be performed through a number of means for example drag and drop or keyboard or voice command. According to one embodiment, placement of portions of functionality controls by a user may be made permanent so that each time a user launches an instance of the associated application and activates two or more task-based tabs, the associated portions of the user interface containing functionality controls for each of the task-based tabs will be positioned according to the previous arrangement set by the user. As should be appreciated, such positioning arrangements may be changed as often as desired by the user. This functionality enables users to efficiently access the tools he/she needs without having to actively manage the location of his/her tabs.
A number of methods may be used to enable a multi-tab display. According to one embodiment, the user interface 200 may be manually populated with functionality control sections by selecting one or more task-based tabs, as described above. For example, a user may decide he may only need to utilize functions associated with the “Home” tab and the “Table” tab to draft the document he/she is working on that will contain text and table objects. In addition to displaying additional groupings of functionality controls by selection of task-based tabs 905, 910, empty space 920 may be populated with functionality controls associated with an application task or function automatically based on user editing actions. For example, editing a picture object in a text document may cause the display of a set of functionality controls associated with picture editing in the empty space 920 adjacent to a presently displayed set of functionality controls associated with a previously selected top-level functionality tab. For purposes of example, referring to FIG. 10, a user may be typing text into a document utilizing a word processing application, and selectable functionalities associated with the “Home” tab 905 may be displayed within the “Home” functionality control section 915 of the user interface 200. The functionality controls contained in the “Home” section 915 may provide the user those functions needed to edit the text portions of the document. In addition to the text in the document, a table 1025 may be embedded in the document. According to an embodiment, if the user begins editing the table 1025 by clicking on the table, mousing over the table or other means for selecting the table, functionality controls associated with editing the table may be automatically populated into the empty space 920 so that the user does not have to manually select a task-based tab associated with table editing in order to have the desired functionality controls displayed. That is, rather than requiring the user to select the “Table” tab 910, editing the table object 1025 may cause the “Table” tab 910 and the functionality control section 1020 associated with the “Table” tab to be automatically populated in the empty space 920, as illustrated in FIG. 10.
According to another embodiment, the user interface 200 may be populated automatically with relevant task-based tabs associated with document content and/or context without user editing action. For example, referring again to FIG. 10, the mere existence of the table object 1025 in the displayed portion of the document may cause the automatic display of the associated functionality controls in the empty space 920 without user selection of the table object. As the document is scrolled up or down, and as new objects are brought into display, functionality controls for those objects may be displayed in a portion of the user interface under an appropriate task-based tab. For example, if the document illustrated in FIG. 10 is scrolled to a different page that contains text, a table and a picture, functionality controls for both the table object and the picture object may be automatically populated in the user interface if sufficient empty space 920 is available. When the document is scrolled to a page containing only text, the functionality controls for the table and picture objects may be automatically dismissed from display.
If a third-party plug-in application (that is properly registered with an application utilizing the tab interface described herein) is being utilized, and if an object that has been created using the third-party plug-in application is selected, then selectable functionalities associated with the editing of that object may be displayed within a functionality control section within the user interface. For example, a user may import a table he/she created using a third party accounting software application into an edited document. Upon selection of that table, selectable functionalities from the third-party plug-in application associated with the data within the table may be displayed within the user interface as a logical grouping of functionality controls for utilizing functions of the third-party application.
The layouts of each section of logical groupings of functionality controls under respective task-based tabs may be rearranged according to the available space. As should be appreciated and as described previously, the size of the display of individual logical groupings may be reduced to allow space for the display of all associated logical groupings. At display time, a determination may be made as to the available space. Accordingly, the display size may be reduced, text labels may be shortened or eliminated, and the layout of individual controls contained in given groupings may be rearranged to allow for more efficient use of space. On large resolution monitors, multiple tabs may be able to appear side by side at their largest sizes allowing users to optimize the use of their screen in a way that they previously could not. In addition, a user may manually change the size of one or more displayed groupings of controls. For example, referring to FIG. 10, a resizing control may be displayed at the right edge of each displayed control section 915, 1020 for allowing a click and drag operation for resizing each control section as desired. As should be appreciated, a click and drag operation is only one example of the many ways a control section may be resized, as described above. As the size of a given control section is reduced or enlarged, the display of controls and associated content, for example, text labels, may be automatically altered according to the change in space. Alternatively, if user action or based on document context a new functionality control section is added to the empty space 920, as described above, the displayed control sections may be automatically resized to optimize the display of functionality controls based on available display space.
FIG. 11 is an illustration of a computer screen display showing a ribbon-shaped user interface displaying three functionality control sections containing a plurality of functionalities available under three selected top-level functionality tabs. As illustrated in FIG. 11, an example user interface 200 is populated with selectable functionality controls associated with three task-based tabs, “Home” 905, “Insert” 1110 and “Format” 1130. As described above, the three control sections 915, 1120, and 1140 may be deployed manually whereby a user selected associated task-based tabs, or the control sections may be deployed automatically if the context of the document, for example, user selection of an object in the document, warrants the automatic display of a control section of functionality controls associated with the object. In addition, FIG. 11 illustrates both manual and automatic resizing of functionality control sections where the first control section 915 is illustrated in a reduced display configuration relative to the example display of that section in FIG. 10. As described above, that section may have been reduced manually by dragging the right edge of the section or automatically based on available space in the user interface 200 for displaying each of the desired control sections.
As described herein, an improved user interface is provided for exposing task-based top-level functionality tabs for displaying logical groupings of selectable software functionality controls associated with given task-based functionality tabs. 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.

## Claims

1. A method for providing functionality from a software application via an improved user interface, the method comprising:
providing a plurality of functionalities available from the software application;
organizing the plurality of functionalities according to a plurality of tasks that the software application is configured to perform;
providing in the user interface at least one user interface tab for the plurality of tasks;
upon receiving an indication of a selection of a first user interface tab, displaying in the user interface a first functionality control section containing at least one first control organized under a first task associated with the selected first user interface tab;
upon receiving an indication of a subsequent selection of an alternate user interface tab, displaying at least one second control organized under an alternate task associated with the alternate user interface tab concurrently with the displayed at least one first control organized under the first task associated with the first selected user interface tab;
grouping the displayed controls into at least one logical grouping, the at least one logical grouping being associated with a subset of functionalities associated with the selected first user interface tab; and
if the user interface lacks sufficient space for displaying controls of a given logical grouping of controls, collapsing one or more controls from the logical grouping of controls into a single selectable control for accessing the controls grouped under the given logical grouping of controls.

2. The method of claim 1, further comprising, if the display space is available within the user interface, displaying in the user interface a second functionality control section containing at least one second control organized under the alternate task associated with the alternate user interface tab in addition to the displayed first functionality control section.

3. The method of claim 2, wherein displaying in the user interface the second functionality control section comprises displaying the second functionality control section associated with a context of an object being edited in a document.

4. The method of claim 2, further comprising:
upon receiving an indication of a second subsequent selection of a second alternate user interface tab, determining if the display space is available within the user interface to display a third functionality control section containing controls organized under a second alternate task associated with the second alternate selected user interface tab in addition to displayed controls associated with the first user interface tab and the alternate user interface tab; and
if display space is available within the user interface, displaying in the user interface a third functionality control section containing controls associated with the second alternate user interface tab in addition to the displayed controls associated the first user interface tab and the alternate user interface tab.

5. The method of claim 2, further comprising:
moving a position of the first functionality control section relative to a position of the second functionality control section for optimizing use of the controls associated with the first functionality control section and the controls associated with the second functionality control section.

6. The method of claim 2, further comprising changing a display size of at least one of: the first functionality control section and the second functionality control section for fitting the first functionality control section and the second functionality control section in the display space available in the user interface.

7. The method of claim 6, wherein changing the display size of at least one of: the first functionality control section and the second functionality control section for fitting the first functionality control section and the second functionality control section in the display space available in the user interface includes automatically changing the display size of one of: the first functionality control section and the second functionality control section for fitting the first functionality control section and the second functionality control section in the display space available in the user interface after a determination that the display space available in the user interface enables a display of the first functionality control section and the second functionality control section to be one of the following: enlarged and reduced.

8. The method of claim 7, further comprising reducing at least one of the first functionality control section and the second functionality control section by reducing a display size of at least one groupings of functionality controls contained in the first functionality control section and the second functionality control section.

9. The method of claim 6, wherein changing the display size of at least one of: the first functionality control section and the second functionality control section for fitting the first and second functionality control sections in display space available in the user interface includes manually changing a display size of the first or second functionality control sections for fitting the first and second functionality control sections in display space available in the user interface after a determination that display space available in the user interface enables a display of one or both of the first and second functionality control sections to be enlarged or that requires a display of one or both of the first and second functionality control sections must be reduced.

10. The method of claim 1, further comprising:
receiving an indication of an editing action on an object in an edited document;
determining if the display space is available within the user interface to display controls organized under a second task associated with the object in addition to displayed controls associated with the first selected user interface tab; and
if display space is available within the user interface, providing in the user interface at least one second control organized under the second task associated with the object in addition to the displayed controls associated with the first selected user interface tab.

11. The method of claim 1, further comprising:
detecting an object in an edited document;
determining if the display space is available within the user interface to display controls organized under a second task associated with the object in addition to the displayed controls associated with the first selected user interface tab; and
if display space is available within the user interface, providing in the user interface at least one second control organized under the second task associated with the object in addition to the displayed controls associated with the first selected user interface tab.

12. The method of claim 1, further comprising rearranging a layout of individual controls grouped in a given logical grouping of controls for reducing a display size of the logical grouping of controls.

13. A computer system for providing functionality from a software application via an improved user interface, the system comprising:
a processor; and
a memory communicatively coupled to the processor, the memory storing computer-readable instructions that when executed by the processor cause the computing device to:
provide a plurality of functionalities available from the software application;
organize the plurality of functionalities according to a plurality of tasks that the software application is configured to perform;
provide in the user interface a user interface tab for each of the plurality of tasks;
upon receiving an indication of a selection of a first user interface tab, display in the user interface a first functionality control section a first plurality of controls organized under a first task associated with the selected first user interface tab;
receive an indication of an editing action on an object in an edited document; and
if display space is available within the user interface, display in the user interface a second functionality control section containing a second plurality of controls organized under a second task associated with editing the object in addition to the displayed first functionality control section; and
group at least two of the displayed controls into at least one logical grouping, the at least one logical grouping being associated with a subset of functionalities associated with the selected first user interface tab; and
if the user interface lacks sufficient space for displaying controls of a given logical grouping of controls, collapse one or more controls from the logical grouping of controls into a single selectable control for accessing the controls grouped under the given logical grouping of controls.

14. The computer system of claim 13, wherein the instructions when executed by the processor further cause the computing device to:
prior to displaying in the user interface the second functionality control section, determine if the display space is available within the user interface to display the second plurality of controls; and
if display space is available within the user interface, provide in the user interface the second plurality of controls.

15. A computer system for providing functionality from a software application via an improved user interface, the system comprising:
a processor; and
a memory communicatively coupled to the processor, the memory storing computer-readable instructions that when executed by the processor cause the computing device to:
provide a plurality of functionalities available from the software application;
organize the plurality of functionalities according to a plurality of tasks that may be performed with the software application;
provide in the user interface a user interface tab for each of the plurality of tasks;
upon receiving an indication of a selection of a first user interface tab, display in the user interface a first functionality control section containing a first plurality of controls for selecting a first set of functionalities organized under a first task associated with the selected first user interface tab;
group at least two of the displayed controls into at least one logical grouping, the at least one logical grouping being associated with a subset of functionalities associated with the selected first user interface tab; and
if the user interface lacks sufficient space for displaying controls of a given logical grouping of controls, collapse one or more controls from the logical grouping of controls into a single selectable control for accessing the controls grouped under the given logical grouping of controls.

16. The computer system of claim 15, the memory comprising further instructions that when executed by the processor cause the computing device to:
detect an object in an edited document;
determine if the display space is available within the user interface to display a second plurality of controls for a second set of functionalities organized under a second task associated with the object in addition to the first plurality of controls; and
if the display space is available within the user interface, provide in the user interface a second functionality control section including the a second plurality of controls in addition to first plurality of controls.

17. The computer system of claim 16, the memory comprising further instructions that when executed by the processor cause the computing device to: move a position of the first functionality control section relative to a position of the second functionality control section for optimizing use of the controls associated with the first functionality control section and the controls associated with the second functionality control section.

18. The computer system of claim 16, the memory comprising further instructions that when executed by the processor cause the computing device to: automatically change a display size of one of the following: the first control section and the second functionality control section for fitting the first control section and the second functionality control section in the display space available in the user interface.

19. The computer system of claim 18, the memory comprising further instructions that when executed by the processor cause the computing device to: reduce at least one of the first functionality control section and the second functionality control section by reducing a display size of groupings of functionality controls contained in the first functionality control section and the second functionality control section.

20. The computer system of claim 16, the memory comprising further instructions that when executed by the processor cause the computing device to: upon receiving an indication of a subsequent selection of an alternate user interface tab, determine if display space is available within the user interface to display a third plurality of controls for a third set of functionalities organized under an alternate task associated with the alternate user interface tab.

21. The computer system of claim 20, the memory comprising further instructions that when executed by the processor cause the computing device to: if the display space is available within the user interface, display in the user interface the third functionality control section containing the third plurality of controls in addition to the displayed first functionality control section.