Graphical computer user interfaces (“GUIs”) display data produced by an operating system and application programs within different windows on a display screen. For example, a user may simultaneously have one window open for browsing files stored on a mass storage device, another window open for editing a word processing document, and another window open for browsing the World Wide Web. Modern GUIs allow a virtually unlimited number of windows to be opened in this manner.
It has been shown that computer users open different GUI windows for different activities. Users also size and locate the GUI windows differently for different activities. For example, when a user performs the activity of writing a computer program, they may have two windows open in a split screen format, with one window containing a program editor and another window containing the output of the program being created. When the user is performing a different activity, however, they may utilize an entirely different arrangement of windows. For instance, if the user is sending and reading electronic mail messages, they may have an electronic mail application program open so that it occupies most of the display screen and a scheduling application program open in a small part of the display screen.
Since each activity performed by a user may be associated with different windows arranged in different layouts, GUIs have been created that allow a user to create arrangements of windows associated with a particular activity, and to switch between the arrangements. For instance, utilizing such a GUI, a user may create an arrangement of windows suitable for word processing and another completely separate arrangement of windows suitable for browsing the World Wide Web. Different mechanisms may also be provided by such GUIs that permit a user to switch between the different arrangements of windows. For instance, in one such GUI, an overview showing all of the arrangements of windows may be displayed. The user can then switch to one of the arrangements by making a selection from the overview.
Although these GUIs generally increase productivity by allowing a user to create arrangements of windows and to switch between them, these previous GUIs also suffer from several drawbacks. First, in previous GUIs the context switch between arrangements of windows or between an arrangement of windows and an overview has typically been abrupt. In other GUIs, the transition between arrangements of windows was complex or required the movement of a significant number of windows. In each of these cases, the context switch may be disruptive to the overall user experience and, consequently, to user productivity.
It is with respect to these considerations and others that the disclosure made herein is provided.
Methods and computer-readable media are provided herein for visually managing tasks within a GUI. A task is a collection of user interface windows associated with a particular activity. Through the embodiments presented herein, a user may easily and fluidly switch between tasks and between tasks and an overview of the tasks within a GUI.
According to one embodiment, a user interface is provided in which a focused view of a task is shown in a display area. In the focused view, the windows of the task may be utilized and manipulated by a user. A selectable user interface object corresponding to a second task is also shown within the display area. For instance, the user interface object may be represented as a door, thereby indicating that the user interface object provides a doorway into another task. If the user interface object is selected, the display area is fluidly zoomed into the user interface object and then out of the user interface object to reveal a focused view of the second task within the display area. A fluid transition may be made between any number of tasks in a similar manner.
A user interface object corresponding to an overview of the tasks may also be shown within the display area. When the user interface object corresponding to the overview is selected, the display area is fluidly zoomed into the user interface object and then out of the user interface object to thereby reveal the overview of the tasks in the display area. Alternatively, when the user interface object corresponding to the overview is selected, the display area may be zoomed back from the focused view of the task to the overview. The overview includes a visual representation of each of the tasks. If one of the tasks is selected in the overview, the display area is fluidly zoomed into the selected task to reveal a focused view of the selected task.
According to another embodiment, a user interface is provided that includes a display area having a focus area and a periphery defined therein. The focus area is a subset of the display area and is surrounded by the periphery. A user interface object, such as a window, may be displayed within the focus area. If the user interface object is moved from the focus area to the periphery, the size of the user interface object is progressively reduced as the user interface object is moved from the focus area to the periphery. In this manner, a scaled down representation of a task may be displayed in the periphery. If the user interface object is moved from the periphery back to the focus area, the size of the user interface object is progressively increased as the user interface object is moved from the periphery to the focus area. The user interface object is displayed at its original size when it reaches its final location within the focus area.
In this embodiment, the scaled down representation of a task displayed in the periphery may be selected in order to bring the corresponding task into focus. If a request to focus on a task represented in the periphery is received, the display area is fluidly zoomed into the task to thereby display a focused view of the task in the display area. If a request is received to remove focus from the task, the display area is fluidly zoomed out of the task to thereby display the focus area and the periphery within the display area. In embodiments, the focus area and periphery may be displayed during the focused view of a task.
According to another embodiment, a user interface is provided that includes the display of a three-dimensional representation of an art gallery. The gallery includes visual representations of tasks. The tasks may be displayed within frames on the walls of the gallery, within frames supported by easels located within the gallery, or in another manner. When a request is received to focus on one of the tasks displayed within the gallery, the user interface fluidly zooms into the visual representation of the selected task to thereby display a focused view of the task. Windows within the task may then be manipulated and otherwise utilized within the focused view of the task. When a request is received to remove focus from the selected task, the user interface fluidly zooms out from the visual representation of the task to thereby display the task gallery.
The above-described subject matter may also be implemented as a computer-controlled apparatus, a computer process, a computing system, or as an article of manufacture such as a computer-readable medium. These and various other features will be apparent from a reading of the following Detailed Description and a review of the associated drawings.
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 to be used to limit the scope of the claimed subject matter. Furthermore, the claimed subject matter is not limited to implementations that solve any or all disadvantages noted in any part of this disclosure.
The following detailed description is directed to systems, methods, and computer-readable media for managing tasks within a graphical user interface. While the subject matter described herein is presented in the general context of program modules that execute in conjunction with the execution of an operating system and application programs on a computer system, those skilled in the art will recognize that other implementations may be performed in combination with other types of 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 subject matter described herein 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.
In the following detailed description, references are made to the accompanying drawings that form a part hereof, and which are shown by way of illustration specific embodiments or examples. Referring now to the drawings, in which like numerals represent like elements throughout the several figures, aspects of a computing system and methodology for managing tasks within a graphical user interface will be described.
User interface windows may be opened, organized, and sized within the user interface 100 based upon the particular activity being performed. As utilized herein, the term “task” is utilized to refer to a collection of user interface windows associated with a particular activity. For instance, as shown in
As shown in
The display area 102 also includes a user interface object 108 corresponding to a task overview. As will be described in greater detail below with respect to
In one embodiment presented herein, the user interface 100 allows a user to switch tasks through the selection of one of the user interface objects 106. In particular, selection of one of the user interface objects 106 will cause the display area 102 to bring the task associated with the selected user interface object into focus. For instance, in the example shown in
In order to provide the fluid zooming capabilities described herein, the embodiments presented herein utilize algorithms that allow for fluid and continuous transitions between zoom levels. This process is described in one or more of U.S. Pat. No. 7,075,535, filed Mar. 1, 2004, and entitled “System and Method for Exact Rendering in a Zooming User Interface,” U.S. patent application Ser. No. 11/208,826, filed Aug. 22, 2005, and entitled “System and Method for Upscaling Low-Resolution Images,” Provisional U.S. Patent Application No. 60/619,053, filed Oct. 15, 2004, and entitled “Nonlinear Caching for Virtual Books, Wizards or Slideshows,” Provisional U.S. Patent Application No. 60/619,118, filed on Oct. 15, 2004, and entitled “System and Method for Managing Communication and/or Storage of Image Data,” and U.S. patent application Ser. No. 11/082,556, filed Mar. 17, 2005, and entitled “Method for Encoding and Serving Geospatial Or Other Vector Data as Images,” each of which is expressly incorporated herein by reference in its entirety.
Turning now to
As shown in
According to one implementation, the task representations may be selected by a user to zoom into the associated task. For instance, a user may utilize a mouse, keyboard, or other input device to select the task representation 204A illustrated in
Referring now to
As discussed above, one of the task representations 204 shown in the overview 202 may be selected by a user to zoom into the associated task. In response to such a selection, the display area 102 fluidly zooms into the representation of the task, thereby bringing the selected task into focus. For instance, if a user selected the task representation 204B in the overview 202 shown in
Referring now to
The routine 400 begins at operation 402, where a task is displayed in focus in the display area 102. For instance, in
At operation 406, the display area 102 fluidly zooms into the selected user interface object 106. The routine 400 then continues to operation 408, where the display area 102 fluidly zooms out of the selected user interface object 106 to show a focused view of the task 103 corresponding to the selected user interface object 106. From operation 408, the routine 400 returns to operation 402, described above.
At operation 410, a determination is made as to whether the user interface object 108 corresponding to the task overview 202 has been selected. If not, the routine 400 branches back to operation 402, described above. If the user interface object 108 has been selected, the routine 400 continues to operation 412. At operation 412, the display area 102 fluidly zooms into the user interface object 108. The routine 400 then continues to operation 414, where the display area 102 fluidly zooms out of the user interface object 108 to reveal the task overview 202. As discussed above, in an alternate embodiment, selection of the user interface object 108 causes the display area 102 to zoom back from the currently displayed task 103 to reveal the task overview 202. From operation 414, the routine 400 returns to operation 402, described above.
Referring now to
In the illustrative screen display shown in
According to other implementations, the tasks 103A-103B shown in the periphery 504 may be selected to bring the selected task into focus in the focus area 502. For instance, in the illustrative screen display shown in
According to other implementations, the focus area 502 and the periphery 504 may be displayed during the zooming process and while a task is in focus. In this manner, the tasks shown in the periphery 504 are always available for selection. Additionally, individual windows within a particular task may be moved to the periphery 504 to associate the windows with other tasks. When moved, the windows are scaled in the manner described above.
Turning now to
At operation 608, a determination is made as to whether a user has requested that one of the tasks 103 shown in the periphery 504 be brought into focus, such as through the selection of the desired task 103. If not, the routine 600 branches to operation 612 described below. If a request has been received to focus on a task, the routine 600 continues from operation 608 to operation 610. At operation 610, the display area 500 is fluidly zoomed into the selected task, thereby bringing the selected task into focus. From operation 610, the routine 600 continues to operation 612.
At operation 612, a determination is made as to whether a request has been received to remove focus from a task. If not, the routine 600 returns to operation 602, described above. If a request has been received to remove the focus from a task, the routine 600 continues to operation 614, where the display area 500 is fluidly zoomed out of the task in focus. The routine 600 then continues from operation 614 to operation 602, described above.
Referring now to
According to one implementation, the tasks 103A-103C may be selected. In response to such a selection, the display area 700 fluidly zooms in on the selected task, thereby bringing the selected task into focus within the display area 700. For instance, in the illustrative screen diagrams shown in
Turning now to
At operation 808, a determination is made as to whether a request has been received to remove focus from a task. If not, the routine 800 branches to operation 802, described above. If a request has been received to focus on a task, the routine 800 continues from operation 808 to operation 810, where the display area 700 fluidly zooms out of the focused task to reveal the task gallery. From operation 810, the routine 800 returns to operation 802, described above.
Referring now to
The mass storage device 910 is connected to the CPU 902 through a mass storage controller (not shown) connected to the bus 904. The mass storage device 910 and its associated computer-readable media provide non-volatile storage for the computer 900. 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 computer 900.
By way of example, and not limitation, computer-readable media may include 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. For example, computer-readable media includes, but is not limited to, RAM, ROM, EPROM, EEPROM, flash memory or other solid state memory technology, CD-ROM, digital versatile disks (“DVD”), HD-DVD, BLU-RAY, 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 900.
According to various embodiments, the computer 900 may operate in a networked environment using logical connections to remote computers through a network 918, such as the Internet. The computer 900 may connect to the network 918 through a network interface unit 906 connected to the bus 904. It should be appreciated that the network interface unit 906 may also be utilized to connect to other types of networks and remote computer systems. The computer 900 may also include an input/output controller 912 for receiving and processing input from a number of other devices, including a keyboard, mouse, or electronic stylus (not shown in
As mentioned briefly above, a number of program modules and data files may be stored in the mass storage device 910 and RAM 914 of the computer 900, including an operating system 920 suitable for controlling the operation of a networked desktop or laptop computer, such as the WINDOWS XP operating system from MICROSOFT CORPORATION of Redmond, Wash., or the WINDOWS VISTA operating system, also from MICROSOFT CORPORATION. The mass storage device 910 and RAM 914 may also store one or more program modules. In particular, the mass storage device 910 and the RAM 914 may store an application program 922. It should be appreciated that the user interfaces described herein may be provided by the operating system 920 or by an application program 922 executing on the operating system 920. Tasks may also include windows generated by the operating system 920 or by application programs 922 executing on the computer 900. Other program modules may also be stored in the mass storage device 910 and utilized by the computer 900.
Based on the foregoing, it should be appreciated that systems, methods, and computer-readable media for visually managing tasks are provided herein. Although the subject matter presented herein has been described in language specific to computer structural features, methodological acts, and computer readable media, it is to be understood that the invention defined in the appended claims is not necessarily limited to the specific features, acts, or media described herein. Rather, the specific features, acts and mediums are disclosed as example forms of implementing the claims.
The subject matter described above is provided by way of illustration only and should not be construed as limiting. Various modifications and changes may be made to the subject matter described herein without following the example embodiments and applications illustrated and described, and without departing from the true spirit and scope of the present invention, which is set forth in the following claims.