There are many state changes and navigations that occur when viewing items on a computer in a particular view of a file system or other organizational environment. Users may sort the set, navigate into various organizational structures like folders and lists, or even simply resize the window/area that contains the view. In most systems today, these state changes and navigations simply occur, with no intermediate visual transitions of any kind.
The use of animations in connection with organizational state changes is provided. Such animations may be useful for helping the user understand the movement between various states.
In accordance with some aspects of the disclosure, an animation may be provided in response to a user request to change the sort order of a set of displayed item representations. This animation may include, for example, one or more of the item representations moving about the display from their initial positions to their new destination positions as dictated by the new sort order.
In accordance with further aspects of the disclosure, an animation may be provided in response to a user request to resize a container representation. This animation may include, for example, one or more of the item representations shown in the container representation moving about the display from their initial positions to their new destination positions as dictated by the new sizing of the container representation.
In accordance with still further aspects of the disclosure, an animation may be provided in response to a user request to navigate into a container. This animation may include, for example, one or more of the item representations shown in the container representation (representing the container to be navigated into) expanding and/or moving about the display from their initial positions and/or sizes to new destination positions and/or sizes.
In accordance with yet further aspects of the disclosure, an animation may be provided in response to a user request to navigate out of a container. This animation may include, for example, one or more of the item representations shown in the container representation (representing the container to be navigated out of) contracting and/or moving about the display from their initial positions and/or sizes to new destination positions and/or sizes.
These and other aspects of the disclosure will be apparent upon consideration of the following detailed description of illustrative embodiments.
The foregoing summary, as well as the following detailed description of illustrative embodiments, is better understood when read in conjunction with the accompanying drawings, which are included by way of example, and not by way of limitation with regard to the claimed invention.
Illustrative Computing Environment
One or more other general purpose or special purpose computing system environments or configurations may be used. Examples of well known computing systems, environments, and/or configurations that may be suitable include, but are not limited to, personal computers (PCs); server computers; hand-held and other portable devices such as personal digital assistants (PDAs), tablet PCs or laptop PCs; multiprocessor systems; microprocessor-based systems; set top boxes; programmable consumer electronics; network PCs; minicomputers; mainframe computers; distributed computing environments that include any of the above systems or devices; and the like.
Aspects of the disclosure herein may be described in the general context of computer-executable instructions, such as program modules, stored on one or more computer-readable media and executable by a computer. Generally, program modules include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types. Embodiments discussed herein may also be operational with 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 computer-readable media including memory storage devices.
With reference to
Computer 100 typically includes a variety of computer-readable media. Computer readable media can be any available media that can be accessed by computer 100 such as volatile, nonvolatile, removable, and non-removable media. By way of example, and not limitation, computer-readable media may include computer-readable media and communication media. Computer-readable media are tangible media, and may include volatile, nonvolatile, 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 random-access memory (RAM), read-only memory (ROM), electrically-erasable programmable ROM (EEPROM), flash memory or other memory technology, compact-disc ROM (CD-ROM), digital video disc (DVD) or other optical disk 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 accessed by computer 100. Communication media typically embodies computer-readable instructions, data structures, program modules or other data in a modulated data signal such as a carrier wave or other transport mechanism and includes any information delivery media. The term “modulated data signal” means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. By way of example, and not limitation, communication media includes wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, radio frequency (RF) (e.g., BLUETOOTH, WiFi, UWB), optical (e.g., infrared) and other wireless media. Any single computer-readable medium, as well as any combination of multiple computer-readable media, are both intended to be included within the scope of the term “computer-readable medium” as described and claimed herein.
System memory 130 includes computer-readable storage media in the form of volatile and/or nonvolatile memory such as ROM 131 and RAM 132. A basic input/output system (BIOS) 133, containing the basic routines that help to transfer information between elements within computer 100, such as during start-up, is typically stored in ROM 131. RAM 132 typically contains data and/or program modules that are immediately accessible to and/or presently being operated on by processing unit 120. By way of example, and not limitation,
Computer 100 may also include other computer storage media. By way of example only,
The drives and their associated computer storage media discussed above and illustrated in
Computer 100 may also include a touch-sensitive device 165, such as a digitizer, to allow a user to provide input using a stylus 166. Touch-sensitive device 165 may either be integrated into monitor 191 or another display device, or be part of a separate device, such as a digitizer pad. Computer 100 may also include other peripheral output devices such as speakers 197 and a printer 196, which may be connected through an output peripheral interface 195.
Computer 100 may operate in a networked environment using logical connections to one or more remote computers, such as a remote computer 180. Remote computer 180 may be a personal computer, a server, a router, a network PC, a peer device or other common network node, and typically includes many or all of the elements described above relative to computer 100, although only a memory storage device 181 has been illustrated in
When used in a LAN networking environment, computer 100 is coupled to LAN 171 through a network interface or adapter 170. When used in a WAN networking environment, computer 100 may include a modem 172 or another device for establishing communications over WAN 173, such as the Internet. Modem 172, which may be internal or external, may be connected to system bus 121 via user input interface 160 or another appropriate mechanism. In a networked environment, program modules depicted relative to computer 100, or portions thereof, may be stored remotely such as in remote storage device 181. By way of example, and not limitation,
As discussed previously, touch-sensitive device 165 may be a device separate from or part of and integrated with computer 100. In addition, any or all of the features, subsystems, and functions discussed in connection with
Illustrative Electronic File System Environment
An electronic file system may be implemented by computer 100 to manage files and other objects stored in the various electronic media to which computer 100 has access. The file system may be part of the other program modules 136 and/or part of operating system 134. The file system may be a traditional file system that stores files in a hierarchical tree structure. In such a case, each node of the tree is considered a folder that contains one or more files. The location of a file is limited by, and conflated with, its organization within the file system. This means that file locations and directory structure are dependent on one another; when a file is moved to another location, the directory structure also changes to accommodate the new location of the file.
Alternatively, the electronic file system may be more advanced, such as a database-driven file system. In more advanced file systems, shortcut references may be used, allowing files and other objects to appear in one or more locations while actually being in only one of the locations or even in another, completely different location.
In either case, the electronic file system may define various types of objects that provide a relatively flexible way of managing files and other objects. For example, objects may be broadly divided into containers and non-container objects. In general, containers are objects that contains other objects in the file system, whereas non-container objects typically do not contain other objects from the perspective of the file system. A simple example of a container is a folder (e.g., C:\My Documents), and a simple example of a non-container object is a file (e.g., Project.doc), such as a word-processing document, a photo, or an audio file. In addition to files, other types of non-container objects include, but are not limited to, calendar items, emails, and contacts.
In addition to folders, other types of containers include, but are not limited to, lists, persisted auto-lists, and stacks. A list is an object that references a set of other objects in a particular order. The objects referenced by a list are not actually stored in the list as they are in a conventional folder. Thus, more than one list may simultaneously reference the same object. A persisted auto-list is similar to a list except that the set of objects referenced by a persisted auto-list are determined by a query that defines one or more criteria. Thus, a persisted auto-list is a list containing a set of objects that meet one or more criteria of the query. A stack is a virtual container representing the set of items that meet a given requirement, in accordance with a given organization. For instance, the user may define an organization that stacks a persisted auto-list or query results by “author” and then presents all results organized by who wrote them; a different stack may be presented for each author.
The user may interact with objects in the electronic file system via a graphical user interface. The graphical user interface may cause various visual features to be displayed on a display such as monitor 191. For example, the graphical user interface may include displayed representations of each object, or of a subset of the objects, stored by the electronic file system. A representation may be any visual representation such as an icon or a picture. The graphical user interface may also respond to user input. The user input may be received via any user input device such as mouse 161, digitizer 165 and stylus 166, and/or keyboard 162. In response to such user input, computer 100 interprets the input and determines an appropriate action, which may include adjusting what is displayed in the graphical user interface. For example, where a representation is selected by the user, computer 100 may cause the graphical user interface to visually indicate on monitor 191 that the representation has been selected.
Animating Electronic File System Item Representations
The following discussion of animations in a graphical user interface may be implemented using a computer, such as illustrative computer 100 of
An animation is the sequential visual presentation of a graphical element (such as an item representation) in a first state and in a second state, as well as in at least a third state in between the first and second states. For example, where an item representation (also referred to in the present description simply as a representation) moves from a start location to a destination, then the representation can be animated by visually presenting the representation not only in the start and destination locations, but also in at least one intermediate location on the animation path between the start and destination locations. In addition, the intermediate location(s) would be visually presented at a time in between the visual presentation of the start and destination locations. The visual presentation of each state may be at sequential non-overlapping times or at sequential overlapping times.
An item representation may be displayed at numerous displayed intermediate locations along the animation path, such as at each sequential incremented pixel location along the animation path. The number of intermediate displayed positions along an animation path may depend upon the length of the animation path, the speed of movement along the animation path, and/or the desired smoothness of displayed movement. For example, an item representation may be displayed at one hundred or more different sequential intermediate positions along its animation path to give the impression of smooth movement along the animation path. Moreover, states are not limited to location. A state of a graphical element such as an item representation can include a color, size, shape, and/or any other visual property of the graphical element.
Changing Sort Orders. When the sort order of a set of item representations is changed in response to a user input command, each of the affected representations animate from their current positions to their new positions in the new sort order. The animation may thus give the user the impression that the representations are re-ordering themselves.
For example,
In response to the user request, an animation path is determined for each of representations A, B, and C. The animation paths may have endpoints that are the current positions of representations A, B, and C and the destination positions of representations A, B, and C. The configuration of the remaining portions of the animation paths may depend on one or more other factors such as user preferences, the user request itself, or even random factors. Once the animation path has been determined (or while the animation path is being determined), representations A, B, and C animate so as to move along their respective animation paths (indicated by the broken arrows) from their initial positions to their new positions dictated by the new order. While moving along their respective animation paths, each of representations A, B, and C will be displayed in at least one position along their respective animation path that is not the initial position and not the destination position.
In this example, the items represented, or embodied, by representations A, B, and C are each contained within the same container. A container representation for the container is not visually presented in
Resizing Container Representations. When a container representation changes size in response to a user input command, the representations in the view will animate to move from their original positions to their final positions in order to fit within the new size of the container representation. More broadly, the item representations may animate to new positions that depend upon the new size of their parent container representation. The animation may give the user the impression that the items are re-organizing themselves to fit within the newly-resized container representation.
For example,
In response to the user request, the animation paths are determined. Also in response to the user request, one or more of representations A, B, C animate by moving along their respective animation paths (indicated by broken arrows) from their initial positions to their new positions as dictated by the new size of the container representation, which is referred to in
The “size” of a container representation or other item representation may be changed by 1) maintaining the overall shape of the representation but increasing its area, 2) maintaining the area of the representation but changing its overall shape, or 3) changing both the area and overall shape of the representation. In the example of
Depending upon the size of the container representation, all of the items contained therein or only a portion of those items are simultaneously displayed as item representations in the container representation. Where the size of a container representation is increased, additional ones of the item representations may be simultaneously displayed in accordance with the reduced available area in which to display such representations. Where the size of a container representation is decreased, less ones of the item representations may be simultaneously displayed in accordance with the additional available area in which to display such representations.
Navigating Into Containers. When a container or the desktop contains another container (a “sub-container”), a user command to navigate from the current container or the desktop to the sub-container results in an animation of representations of items within that container. The animation may give the user the impression that the container is opening up and/or that the items therein are more readily interactive or available to the user.
As in conventional file folders, a container may be in an open or closed state. Each state may be visualized to the user by a different container representation. Navigation into a container causes the container to be opened, and navigation out of a container causes the container to be closed. Traditionally, the files in a folder could be manipulated by a user only when the folder is in an open state. Depending upon the particular electronic file system used herein, however, the user may also be able to manipulate at least some of the items in a container even when the container is in a closed state. By opening the container, the user may have more full access to the items contained therein, and/or the items contained therein may be represented in a different manner that is easier for the user to manipulate and view. For example, representations may be larger and/or more visually detailed when the parent container is in an open state as compared with when the parent container is in a closed state.
A user may issue a request to navigate into the container embodied by container representation 421. For example, the user may select container representation 421 and double-click on it or select a menu command. In response to the user request, animation paths are determined. Also, in response to the user request, representations 401, 402, 403 are animated to transform into different representations 411, 412, 413, respectively. For instance, during the animation, representations 401, 402, 403 may animate by moving along their respective animation paths (indicated by broken arrows) from their initial positions to their new positions as dictated by the location and/or size of open container representation 422. While moving along their respective animation paths, each of representations 401, 402, and 403 will be displayed in at least one position along their respective animation path that is not the initial position and not the destination position. In addition or alternatively, while moving along their respective animation paths or at a different time, each of representations 401, 402, and 403 may transform into representations 411, 412, and 413, respectively. The transformation may be smooth with one or more intermediary transformations being displayed, or the transformation may be sudden, in a single step. For example, where representation 411 is a zoomed-in version of representation 401, the animation may include a gradual zooming-in of representation 401 over multiple zoom levels, or the animation may include a single-step increase in zoom level.
It is noted that the items embodied by representations 411, 412, 413 are the same items as those embodied by representations 401, 402, 403, respectively. While in the present example representations 411, 412, and 413 are zoomed-in versions of representations 401, 402, 403, respectively, they may be completely different representations altogether. For example, representations 401-403 may each be an icon indicating that the respective item is a word-processing file, while representations 411-413 may each be a thumbnail showing at least a portion of the content of the respective file it represents. When zooming in on a representation, the size of the representation may increase, and the amount of detail displayed may also increase with zoom level.
Navigating Out of Containers. A user command to navigate from a sub-container to a parent container or the desktop results in an animation of representations of items within that container. The animation may give the user the impression that the container is closing and/or that the items therein are less readily interactive or available to the user.
In the example shown in
While animation paths for the illustrative embodiments of
Moreover, the speed of movement along an animation path may be constant or variable. Where variable, the speed may depend upon the location along the animation path. For example, the speed of movement of a representation may be slow near the beginning of the animation, then the speed may become faster, and then later the speed may become slower near the end of the animation as the representation arrives at its destination position. Whether constant or variable, the speed of movement of a representation may depend upon the length of the animation path. For instance, the longer the animation path, the faster the representation movement, and the shorter the animation path, the slower the representation movement.
Further, a representation may additionally animate in any of the discussed examples to show a bounce at or near its destination position. The bounce may be performed by, for example, causing the representation to move up and down and/or back and forth one or more times near the destination position.
In addition, the animation for a particular representation may be partially or fully based on random parameters. This means that the identical user input and state of the user interface at the time of the user input may not necessarily result in the identical animation each time it is performed. This may result in a more natural-looking animation. For example, the speed of movement, bounce, zoom speed, zoom amount, and/or the particular animation path taken may be random.
Also, animations may be determined and planned such that representations move along animation paths so as not to collide with each other and/or such that their animation paths do not cross. Even where their animation paths do cross, the movement speeds of the representations may be set such that the representations do not collide while moving along their respective animation paths.
Further, representations may fade out from being visible at some point along an animation path (e.g., near the start location) and reappear at some later point along the animation path (e.g., near the destination). The reappearance may occur more quickly than if the representation followed the animation path visibly along the entire path at its original speed. This may be especially useful where the animation path is particularly long, so as to shorten the animation time. It is desirable to keep the animation time to a reasonable length so as to provide useful information while not getting in the way of the user. For example, it may be desirable to keep animations under one or two seconds in length.
Still further, software may sense whether computer 100 has a threshold amount of resources to efficiently perform animations. For example, if computer 100 has a graphics card, then the capabilities of the graphics card may be sensed. In response to determining the capabilities, the software may decide whether to cause animations to occur at all, or to set a property of the animations, such as whether to provide a simpler type of animation than would be provided if the graphics card and/or remainder of computer 100 had greater capabilities, or such as the speed, shape, fade, and/or bounce properties of the animation.
Moreover, although a grid-type view of representations is shown in the illustrative embodiments herein, any type of view may be used in connection with animations. For example, representations may or may not be restricted to be displayed at predetermined grid locations that are defmed at a lower resolution than the screen resolution.
Thus, an improved graphical user interface has been described herein in which animations may be provided to give the user additional information about state changes in the reorganization of items and/or the reconfiguration of containers. The graphical user interface and/or the animations performed therein may be embodied as computer-executable instructions stored collectively on one or more computer-readable media. Such instructions may be executed by, for example, computer 100. The graphical user interface and animation instructions may be part of, for instance, the electronic file system software and/or operating system software, or such instructions may be embodied as separate software.
The present application claims priority to U.S. Provisional Patent Application Ser. No. 60/715,598, entitled “View Animation for Scaling and Sorting,” filed Sep. 12, 2005.
Number | Date | Country | |
---|---|---|---|
60715598 | Sep 2005 | US |