Icons have been used for many years in computer systems to display information to users. Icons are images that are used to represent items such as files, folders, shortcuts, applications, documents, tasks, and commands throughout a computer operating system such as MICROSOFT WINDOWS®, a product of the Microsoft Corporation of Redmond, Wash. Icons are currently used in toolbars, dialog boxes, menus, and numerous other locations in file management systems such as Windows Explorer, also a product of the Microsoft Corporation. Icons are usually stored as static bitmaps, but dynamic icon handlers may also be written to generate icons dynamically.
Currently, two types of icons are used to represent items. These two types include traditional icons and thumbnail icons. Whereas traditional icons are typically shared across files and are determined per type, thumbnails are generally determined per item and are not shared across files (in the case of media files, all tracks from the same album might share the same album art icon, in which case the icon is not a true thumbnail). A traditional icon is composed of two components including an icon image and a status overlay. The icon image forms the basis of the traditional icon. The status overlay is used to convey status information about the item. It is used, for example, to display the shortcut overlay.
A thumbnail icon is a particular type of icon displaying an image generated based on the contents of the underlying item. For example, an icon for an image file that actually looks like the image itself is a thumbnail of the image file. Thumbnail icons may also include an overlay. Thumbnail icons may be dynamically generated by code run on a user computer, although the generated image may be cached.
Although existing operating systems offer thumbnails, these thumbnails are not well integrated into existing file management systems such as Windows Explorer. As a result, the thumbnail feature is not as useful as it could be. A user has to go to a special “thumbnails view” to see thumbnail icons today, even for objects having thumbnail icons that would be visually effective at a smaller size, such as photographs. When in the thumbnails view of existing systems, icons for objects without thumbnails appear small and inadequate. The user typically cannot see extra information about each file in thumbnails view as the user can in other views such as tile view or details view. Accordingly, the user is often forced to choose between viewing thumbnails and viewing other important information.
Because the thumbnails feature is remote and not extensively utilized, little incentive exists for Independent Software Vendors (ISVs) to write thumbnail generators, When ISVs do write the thumbnail generators, they are unlikely to invest in making the thumbnail generators powerful. As a result, many existing application produce thumbnails of poor quality. Generally, since thumbnails are pictures, it is difficult to determine what type of item underlies a thumbnail icon. Furthermore, while traditional icons appear instantly, thumbnail icons are typically noticeably slow to appear because they were not generated in advance.
With traditional icons, overlays are often used as a primary or only indication of information about an item underlying an icon. However, overlays do not reliably appear. If multiple states need to be shown, overlays will only show the highest priority state and will ignore others since no more than one overlay may be shown at a time. Overlays are difficult to recognize at small icon sizes, such as the sizes generally used in list or details mode. Overlays have additional drawbacks including the ability to be readily imitated and used in an unauthorized manner. A further limitation is the inaccessibility of overlays to the visually-impaired. A user navigating with the keyboard and using a narrator hears a name and type of each file as the file is selected, but is not given any information about a state that the overlay represents. Additionally, overlays are used inconsistently to convey information about the state of a file.
Features described herein are directed to a method for displaying an icon representing an underlying file on a user interface. The method may include providing a user with a size selection mechanism for selecting an icon size from a range of sizes. The method may further include searching a set of stored resources related to the underlying file and generating the icon in a user selected size based upon the stored resources.
In another aspect, a method is provided for enhancing display of icons on a user interface. The method may provide a user selection component for allowing a user to select an icon size for an icon representing a file. The method may additionally include selecting an icon type including one of a traditional icon and a thumbnail icon based on at least one of the size selection and the represented file. The method may additionally include generating the selected icon having the selected size and icon type.
In yet an additional aspect, a system is provided for enhancing icon display. The system may include a user icon scaling module for allowing a user to select an icon size for an icon representing an underlying file. The system may additionally include a resource selection module for selecting an image resource for generating the icon based on the size selection.
In yet a further aspect, a system is provided for enhancing icon display. The system may include a user icon scaling module for allowing a user to select an icon size for an icon representing an underlying file. The system may additionally include a type selection module for selecting a type of icon including at least one of a traditional icon and a thumbnail icon, the type selection based on at least one of the size selection and the underlying file.
Other aspects may provide various mechanisms for selecting a type overlay for displaying in conjunction with the thumbnail icon, including selection based on a file type, a corresponding application program, input received through an application programming interface (API), and/or the contents of the data file to which the icon corresponds, among other mechanisms.
The features described in detail below are described with reference to the attached drawings figures, wherein:
I. System Overview
Features described herein include a method and system for enabling scaling of icons C to enhance a user experience. Icon scaling enables users to resize the icons in file management systems, such as Microsoft Windows Explorer, to any size in a range from a small size appropriate for looking at a long list of items to a very large size appropriate for looking at a small number of thumbnails within a single view. As an icon is resized, the appearance and layout of the icon may change to best accommodate its new size.
Icons may be authored using a predetermined set of sizes, such as 16×16 pixels and 32×32 pixels. When a user chooses to view an icon at a size that is not one of the predetermined sizes, the scaling module 200 may interpolate to determine what image to show the user. When the size of an icon is changed, variables including the type of icon, the image resource, label placement, and/or overlay configuration may be affected as set forth herein.
II. Exemplary Operating Environment
The features herein are described in the general context of computer-executable instructions, such as program modules, being executed by a computer. Generally, program modules include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types. The features 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 features may also be practiced in distributed computing environments, where tasks may be 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 storage media including memory storage devices.
With reference to
Computer 110 may include a variety of computer readable media. By way of example, and not limitation, computer readable media may comprise computer storage media and communication media. The system memory 130 includes computer storage media in the form of volatile and/or nonvolatile memory such as read only memory (ROM) 131 and random access memory (RAM) 132. A basic input/output system 133 (BIOS), containing the basic routines that help to transfer information between elements within computer 110, 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,
The computer 110 may also include other removable/nonremovable, volatile/nonvolatile computer storage media. By way of example only,
The drives and their associated computer storage media discussed above and illustrated in
The computer 110 may operate in a networked environment using logical connections to one or more remote computers, such as a remote computer 180. The remote computer 180 may be a personal computer, and typically includes many or all of the elements described above relative to the computer 110, although only a memory storage device 181 has been illustrated in
When used in a LAN networking environment, the computer 110 may be connected to the LAN 171 through a network interface or adapter 170. When used in a WAN networking environment, the computer 110 may include a modem 172 or other means for establishing communications over the WAN 173, such as the Internet. The modem 172, which may be internal or external, may be connected to the system bus 121 via the user input interface 160, or other appropriate mechanism. In a networked environment, program modules depicted relative to the computer 110, or portions thereof, may be stored in the remote memory storage device. By way of example, and not limitation,
Although many other internal components of the computer 110 are not shown, those of ordinary skill in the art will appreciate that such components and the interconnection are well known.
III. Sample Icons
IV. Overlays
As set forth above, the different icon sizes may also include different overlay sizes. As set forth above with respect to
Two kinds of overlays include status overlays and type overlays. The overlays shown above with respect to FIGS. 3A-G are type overlays that indicate a type. The type overlay may be used for thumbnail icons to convey what type of object the thumbnail image portrays. The type overlays appear in a lower right-hand corner of the image. Status overlays serve as a visual cue to help a user quickly identify some piece of relevant information about an item being viewed. Status overlays may appear in a lower left hand corner of an image.
One use of a status overlay includes alerting the user of a transitional or temporary state of a file upon which a user may wish to act. An example would be putting a “new” overlay on a file that has just recently been created. Another possible use for a status overlay is indicating relevant context sensitive information upon which a user may wish to act. An example would be putting an “error” overlay on a file in the download manager that could not complete downloading. In general, information that is being conveyed through a status overlay should also be a property that can be used for sorting, grouping, stacking, filtering, and searching.
Table 1 describes size overlays that may be displayed on icons of different sizes.
The overlays may scale independently from the icons. Between each defined icon snap size such as 256×256, 128×128, 64×64, 32×32, and 16×16, the overlays may scale linearly between the two overlay sizes.
V. Icon Types and Layouts
As illustrated in
The placement of the status overlay (B) may depend on the placement of the thumbnail image (A) within the thumbnail icon. The depicted status overlay (B) fits within the boundaries of the thumbnail icon. Horizontally, the status overlay (B) may be centered around the left edge of the thumbnail image (A), but may be moved to the right when necessary, to avoid extending over a left boundary of the thumbnail icon itself.
The placement of the type overlay (C) may depend on the placement of the thumbnail image (A) within the thumbnail icon. Vertically, like the status overlay (B), the bottom edge of the type overlay (C) may lie along the bottom edge of the thumbnail image such that the type overlay (C) fits within the boundaries of the thumbnail icon when the thumbnail image (A) is bottom-aligned. Horizontally, like a mirror of the status overlay (B), the type overlay (C) may be centered around the right edge of the thumbnail image (A), but may be moved to the left when necessary, to avoid extending over the right boundary of the thumbnail icon itself.
For certain predefined icon sizes, such as icons between 16×16 and 47×47 pixels, the label placement module 240 may position the filename beside the icon. For example, for sizes 32×32 to 47, the label placement module 240 may provide additional tile information beside the icon. For sizes 48×48 and larger, the label placement module 240 may place the filename below the icon.
In a default mode, type overlays may be shown on a thumbnail icon if and only if it is within the document library. In some instances, type overlays will not be shown on photographs or video by default. A setting in the view options may be available to enable users to turn on or off the type overlays on documents. A mechanism such as an application program interface (API) may be provided that allows applications to associate a type overlay with each file type they own.
VI. Visual Enhancements
Table 3 describes the photo paper border width at each thumbnail icon size in this example.
The width may be interpolated between the displayed sizes in a similar manner to the overlays shown in Table 2.
The top sprocket may be placed so that its bottom edge aligns with the top edge of the thumbnail image, and the bottom sprocket may be placed so that its top edge aligns with the bottom edge of the thumbnail image. If the thumbnail image has a height large enough to make the thumbnail image with the sprockets higher than X pixels, then the two sprockets may be moved closer to one another. The top sprocket may be moved down and the bottom sprocket may be moved up until the thumbnail image with the applied sprockets is no taller than the height X.
Other effects may include a gradient effect that may be applied to thumbnail image to make it more attractive. Furthermore, a shine effect may be applied to the thumbnail image if the object type has been registered to receive such a treatment. For example, POWERPOINT™ types may be registered to have this treatment applied to them. A thumbnail icon may also include a drop shadow effect or other visual effect.
VII. Using the Scaling Mechanism
As set forth above, and as illustrated in
Additionally, a view menu may have an item labeled “Icon Size,” with the following choices appearing off a submenu: Tiny, Small, Medium, Large, and Huge, or similar selections that correspond to icon sizes such as 16, 32, 48, 128, and 256. For example, the view menu may be a pull-down menu listing selectable options, and the listed menu options may be selected by clicking, right-clicking, etc.
Finally, users may be able to scale icons using a scroll wheel found on many mice. Moving the scroll wheel forward while holding down the CTRL key can increase the size of the icon and moving the scroller wheel backward while holding down the CTRL key can decrease the size of the icon.
In absence of user scaling, the icons may have default sizes. The following Table 5 describes the default sizes of icons in various folder locations.
If the user selection requires that the icon be scaled between snap sizes, the system utilizes a scaling mechanism including a mechanism for converting the icons to an appropriate format, such as DX9 textures. A hardware accelerated scaling mechanism may implement a bilinear filter or other known mechanism to perform the actual icon scaling while maintaining visual fidelity of the image. The scaling may occur in real-time by the icon scaling system 200. The real-time scaling can occur at draw time or optionally at other times.
VIII. Type Selection Process
In step A02, the system compares the icon size and a pre-set size cutoff. If the icon size is above the pre-set size cutoff in step A04, the system seeks a thumbnail icon in step A10. If the icon is not above the size cutoff in step A04, the system selects and shows a traditional item in step A14.
In step A10, the system seeks a thumbnail icon. If a thumbnail icon is not cached in step A112, the system attempts to extract it in step A06. If the thumbnail is not cached in step A12, or if the extraction is successful in step A08, the system selects and shows the thumbnail icon in step A16. If the extraction is unsuccessful in step A08, the system selects and shows the traditional icon in step A14.
Exemplary icon size cutoffs are illustrated in Table 6 below.
IX. Resource Selection and Scaling Process
As set forth above, the system may provide image snap sizes. The sizes might include for example 16, 32, 48, 128, and 256 pixels. For every item Y at any size X the system may choose the image at the best available size for Y. In step B02, the system searches for the appropriate sized image X. If X is a snap size and an image for Y is available at size X in step B04, then the system uses the available image at size X in step B20. If an image for Y is not available in size X, in step B04, then the system determines if the largest size was searched in step B06. If the largest size was not searched in step B06, the system searches the next largest size in step B08. If the next largest image is available in step B10, the system uses the available icon in step B20. If the image is not available in step B10, the system continues the search until the largest image has been searched.
Subsequently, in step B12, if the search for larger images representing Y was unsuccessful, the system determines if the smallest size has been searched. If the smallest size has not been searched, the system continues to search for the next smallest size in step B14. If the image is available in step B16, the system uses it in step B20. If the icon is not available and the smallest size has been searched in step B12, the system uses a generic image in step B18. If and only if no image can be found at any size, the system will show a generic image. Although the process above is described as considering larger images prior to smaller images, the reverse process is also encompassed.
If the user selection requires that the image be scaled between snap sizes, the system utilizes a scaling mechanism including a mechanism for converting the images to an appropriate format, such as DX9 textures. A hardware accelerated scaling mechanism may implement a bilinear, bicubic, or other high quality filter, e.g., a fant filter, to perform the actual image scaling. In addition to scaling the retrieved image, the system also attempts to re-extract at the correct size. The system uses the closest stored image it can find in the interim time. Once the system re-extracts, it displays the correctly sized image and also stores the new correctly sized image into a cache for subsequent retrieval. This extraction, display, store-into-cache sequence also occurs if the cache is empty and first displays the traditional icon.
X. Overlay Selection
As described above, the overlay selection module 220 (
According to another feature, where a file type is ambiguous, the overlay selection module may analyze contents (and/or metadata) of a file to determine which type overlay to use. For example, the file type .mht is an ambiguous extension, because it does not uniquely identify the application used to create it. A .mht file refers to a multimedia HTML file, which can be created and edited by multiple applications (e.g., Microsoft® Word® brand word processor and Microsoft® Excel® brand spreadsheet can each create and edit .mht files). In addition, whichever application initially created the .mht file is usually best suited to subsequently edit the .mht file if necessary. The overlay selection module 220 thus either analyzes the file, or causes the file to be analyzed by another appropriate module, and selects the type overlay based on the results of the analysis. For example, if the analysis of a .mht file reveals that Microsoft® Excel® was used to create the .mht file, or that the .mht file contains spreadsheet data, then a first type overlay might be used. If the analysis of the .mht file reveals that Microsoft® Word® was used to create the .mht file, or that the .mht file contains word processing data, then a second type overlay might be used. Those of skill in the art will appreciate that this is but one example of an ambiguous file type, and others may be analyzed as well.
According to another feature, a type overlay may be animated. In such a case, the overlay selection module either animates the type overlay or causes the type overlay to appear animated (e.g., instructing another software module (not shown) to animate the type overlay).
In step 1107 the overlay selection module 220 determines whether the file type (e.g., the extension) of the underlying file to which the icon corresponds is ambiguous. If so, in step 1109 the system analyzes the file, e.g., by examining its contents or metadata associated with the file. In step 1111 the overlay selection module 220 displays a type overlay based on such analysis.
In step 1113, the overlay selection module 220 determines whether the file is associated with or corresponds to an application program. If so, in step 1115 the overlay selection module 220 determines whether the application specifies a type overlay to be used. If the application does specify a type overlay, the type overlay is displayed in step 1117. If the application does not specify a type overlay, then in step 1119 the overlay selection module may display a variation of the application's icon as the type overlay for the file's icon (e.g., a reduced size version of the application icon) for example, as is shown in
In step 1121 the overlay selection module 220 determines whether the file type is a known file type, e.g., by determining whether the file has a recognized or known extension. If the file is a known file type, in step 1123 the overlay selection module displays a type overlay corresponding to the file type. If the file is an unknown file type, then in step 1125 the overlay selection module may display a default type overlay, which can include the display of no type overlay at all.
Those of skill in the art will appreciate that the method of
Using dynamically assigned type overlays as described herein allows a user to recognize the type of an item even when it is represented by a thumbnail (which might otherwise be ambiguous. The overlay selection module (or the operating system at some other level) may expose an application programming interface (API) to allow developers to specify whether the type overlay should be used on a thumbnail icon and, if so, what type overlay should be used. In addition, a user-definable setting may indicate that type overlays should be turned off (or on) globally for all files.
Furthermore, although the discussion above addresses type overlays, the same approach may be used for overlays that identify any characteristic of an object. For example, overlays may be used to convey other characteristics, such as file size, file age, time of last edit, file ownership, project association, etc. Type overlays may be restricted for use with certain types of files, based on user preferences. For example, a user or operating system may specify a setting to only use type overlays with files that are not native image file types. That is, files of type JPG, GIF, TIF, BMP, etc., are native image file types, and typically one application can open and manage all of the them. Thus, the type overlay can optionally be left off the thumbnail icon of such files. Non-native image file types may include DOC, XLS, PPT, and other documents which do not inherently refer to an image, photo, etc.
Thus, icon scaling enables users to resize icons to any size in a range from a small size to a very large size, depending upon user preference. As an icon is resized, the appearance of the icon and the layout of the icons changes to best accommodate its new size.
Users can, in real-time, scale icons across the continuous range of possible sizes, and the scaling is visually appealing. Thumbnail icons may consistently convey what type of object they represent (e.g. Word Document, PowerPoint deck, video clip, etc.) even for thumbnail extractors written by ISVs. Overlays may be used in a consistent and reliable way as visual cues conveying some information about an item.
While particular features have been illustrated and described in detail herein, it should be understood that various changes and modifications might be made without departing from the scope and intent of the description herein. The features described herein are intended in all respects to be illustrative rather than restrictive. Alternatives will become apparent to those skilled in the art. For example, the scaling processes described above may work equally well when scaling up and scaling down the icon size.
From the foregoing it will be seen that the features described herein well adapted to attain some or all of the ends and objects set forth above. It will also be understood that certain features and sub-combinations may be employed without reference to other features and sub-combinations. For example, the steps in the processes described above may be rearranged and/or omitted as desired. Thus, the spirit and scope of the invention should be construed broadly as set forth in the appended claims.
This application is a continuation-in-part of and claims priority to U.S. application Ser. No. 10/830,224, filed Apr. 23, 2004, and entitled “System and Method for Displaying Stack Icons,” herein incorporated by reference in its entirety for all purposes.
Number | Date | Country | |
---|---|---|---|
Parent | 10831145 | Apr 2004 | US |
Child | 11181900 | Jul 2005 | US |