Systems, methods, and computer-readable media for integrating a fit-to-size scale factor in a sequence of scale factors

Systems, methods, and computer-readable media are provided for integrating a fit-to-size scale factor in a sequence of scale factors. A fit-to-size scale factor can be determined based on original dimensions of information to be displayed and on dimensions of a window in which to display the information. The determined fit-to-size scale factor can be integrated in a listing of scale factors such that when a user steps through the sequence of scale factors, the user can select from the sequence the fit-to-size scale factor with which to display the information. In some cases, a auto-resize mode can be seamlessly enabled such that the information may automatically scale to its fit-to-size scale factor when the window is re-sized.

BACKGROUND

Some electronic devices can be used to display information to a user. For example, some electronic devices can display documents or other content on a display. Displayed information can be provided in one of several sizes, as determined from a scale factor applied to the information. For example, the information can be scaled relative to a pre-defined size established for the information. A user can change the scale of displayed information by selecting one of several scale factors. For example, a user can select plus and minus options for stepping through a sequence of scale factors. Alternatively, the user can enter a specific scale factor using an input interface. In addition to a user-selected scale factor, some electronic devices can include a distinct auto-resize mode in which information can be sized to match the size of a window in which the information is provided. When the auto-resize mode is enabled, resizing a window can cause the electronic device to change the scale factor used to ensure that the displayed information is re-scaled to fit in the re-sized window.

SUMMARY

Systems, methods, and computer-readable media for integrating a fit-to-size scale factor in a sequence of scale factors are provided.

An electronic device can display information in a window. The information can have any suitable size in the window, as determined from a scale factor that a user can change. In addition, a user can change the dimensions of the window. When the dimensions of the window are changed, the scale factor used for the information may remain the same. In a auto-resize mode, however, the scale factor can be selected such that a height or width of displayed information may match a height or width of the window (e.g., the scale factor can be selected as the largest scale factor that ensures that the entirety of the information is displayed in the window). While in a auto-resize mode, when the dimensions of a window are changed, the scale factor used may automatically change to reflect the change in size of the window for maintaining the auto-resize mode.

A user can change a scale factor for displayed information by stepping through a sequence of available scale factor options. To integrate a auto-resize mode in the provided scale factor options, the electronic device can identify a fit-to-size scale factor corresponding to fitting the information in the displayed window, and can incorporate the identified fit-to-size scale factor in a sequence of scale factor options provided to the user. Then, when a user steps through the sequence of scale factor options, the electronic device can seamlessly enable the auto-resize mode when the user-selected scale factor option is the fit-to-size scale factor, and can seamlessly disable the auto-resize mode when the user-selected scale factor option is not the fit-to-size scale factor.

DETAILED DESCRIPTION

Systems, methods, and computer-readable media for integrating a fit-to-size scale factor in a sequence of scale factors are provided and described with reference toFIGS. 1-11.

An electronic device can display information in one or more windows of a display. Alternatively, an electronic device can display information in any other type of resizable canvas or region on a display. For the sake of simplicity, however, the following discussion will describe embodiments in the context of a window in which information is provided. The information can be displayed in any suitable size including, for example, a size determined from a scale factor. The scale factor can be defined as a percentage of the actual size of the information. For example, if the information is an image, the scale factor can include a percentage of the original image size as defined by the image's original dimensions (e.g., measured in pixels or in a distance unit).FIG. 1is an illustrative view of a window in which information may be displayed in accordance with some embodiments of the invention. Display100, provided by electronic device1, can include window110in which information112(e.g., an image) may be displayed. Portions of window110that do not include displayed information112can include window background114.

Display100can also include toolbar120with which a user can control the display of information112. For example, toolbar120can include scale option122in which a currently used scale factor can be displayed, or in which a user can specify a particular scale factor to be used. The user can change the scale factor by selecting down option124and up option126. In response to receiving a selection of one of options124and126, electronic device1can change the scale factor used for displayed information112. For example, the scale factor can change in accordance with a preset sequence of scale factors (e.g., 20%, 30%, 40%, 50%, 60%, 75%, 100%, 110%, 125%, 200%, 300%). In some cases, the sequence of scale factors can vary based on the original size of the information, a size of the window, or other factors.

Toolbar120can include fit-to-size option128by which electronic device1can display information112such that the entirety of height115of displayed information112may match the entirety of height117of window110and/or such that the entirety of width116of displayed information112may match the entirety of width118of window110. In particular, electronic device1can select as a fit-to-size scale factor the largest possible scale factor that may be used such that the entirety of displayed information112may be provided in window110(e.g., the fit-to-size scale factor may be selected as the smaller of the scale factor required to match height115of displayed information112with the entirety of height117of window110and the scale factor required to match width116of displayed information112with the entirety of width118of window110). While a auto-resize mode is enabled, as indicated by the selection of fit-to-size option128, in response to any resizing of height117and/or width118of window110, device1may also automatically change the fit-to-size scale factor for information112so that the entirety of one of height115and width116of displayed information112may match the resized height117and/or resized width118of a re-sized window110.

FIG. 2is an illustrative view of a re-sized window in which information may be displayed in accordance with some embodiments of the invention. Display200of device2can include window210and toolbar220that may have some or all of the features of the corresponding elements of display100ofFIG. 1. In contrast with window110of display100, window210may have been expanded. To ensure that at least one of height215and width216of displayed information212matches at least one of a respective expanded height217and expanded width218of window210, the fit-to-size scale factor used for displayed information212can be automatically increased, for example, as indicated by scale option222. In particular, the scale factor indicated by scale option222is 45%, as opposed to the 40% scale factor used in display100. In addition, display200can indicate to a user that the auto-resize mode is still enabled by showing a selection of fit-to-size option228.

In some cases, a user can change the scale factor for displayed content to a scale factor other than a fit-to-size scale factor. For example, a user can enter a scale factor in a scale option (e.g., scale option222ofFIG. 2), or select an option for moving through a sequence of scale factors (e.g., down option224and up option226ofFIG. 2) such that the resulting displayed information does not match the size of a displayed window.FIG. 3is an illustrative view of a re-sized window in which information may be displayed in accordance with some embodiments of the invention. Display300of device3can include window310and toolbar320, which can include some or all of the features of display200ofFIG. 2. In contrast with information212displayed in window210ofFIG. 2, displayed information312that may be displayed in window310can be provided at a scale factor such that height315of displayed information312does not match height317of window310and such that width316of displayed information312does not match width318of window310. Instead, background314can be visible around the entire boundary of displayed information312. The user can direct electronic device3to provide display300using any suitable approach including, for example, by directing device3to reduce the scale factor of displayed information312on display300.

To further indicate to a user that information312is not scaled to fit window310, fit-to-size option328in toolbar320may not be selected. The scale factor indicated in scale option322may differ from the scale factor in scale option222to reflect the change in size of displayed information312. In particular, the scale factor indicated in scale option322can be 40%, while the scale factor indicated in scale option222ofFIG. 2can be 45%.

When the auto-resize mode is disabled, the scale factor may remain constant when the window is re-sized.FIG. 4is an illustrative view of the re-sized window ofFIG. 3in accordance with some embodiments of the invention. Display400of device4can include window410and toolbar420, which can include some or all of the features of corresponding elements of display300ofFIG. 3. When a user re-sizes window410, the scale factor used for displayed information412can remain constant, as shown in scale option422of toolbar420(e.g., the scale factor is 40% for both option322ofFIG. 3and option422ofFIG. 4). The amount of information412displayed, however, may be less than the amount of information312displayed in window310ofFIG. 3. In particular, height415of displayed information412may be smaller than height315of displayed information312. In addition, width416of displayed information412may be smaller than width316of displayed information312, and the amount of information visible in width416may be less than the amount of the information visible in width316(e.g., because factor may not change when the window size scale changes). In particular, width416can be more than width418of window410, though height415can be less than height417of window410.

In some cases, a user can enter a scale factor by providing a scale factor directly in a scale option (e.g., scale option122). In such cases, even if the provided scale factor matches a current fit-to-size scale factor, the electronic device may not enable the auto-resize mode. Instead, the electronic device can maintain the mode disabled to reflect the user input.

To improve a user's interaction with displayed content, it may be desirable to integrate the auto-resize mode in the sequence of scale factors. In one approach, the electronic device can integrate a fit-to-size scale factor in a pre-defined sequence of scale factors corresponding to selectable scale up and scale down options.FIG. 5is a schematic view of an illustrative sequence of scale factors through which an electronic device can cycle in response to instructions to change a scale factor in accordance with some embodiments of the invention. Sequence500can include individual scale factors510corresponding to a pre-defined sequence of scale factors. For example, sequence500can include scale factors offset by 10%, 15%, 25%, 50%, or combinations of these.

In addition to the pre-defined sequence of scale factors510, sequence500can include fit-to-size scale factor512integrated in sequence500. The electronic device can determine fit-to-size scale factor512based on the original size of the information being displayed, and the size of the window in which the information is displayed. Once the fit-to-size scale factor has been determined, it can be integrated in a proper position in sequence500(e.g., such that sequence500is a consecutively ordered sequence of scale factors). If the window is re-sized or new information (e.g., information having a different original size) is displayed in a window, the fit-to-size scale factor can change.FIG. 6is a schematic view of another illustrative sequence of scale factors through which an electronic device can cycle in response to instructions to change a scale factor in accordance with some embodiments. Sequence600can include the same set of pre-defined scale factors610as sequence500ofFIG. 5, but a different fit-to-size scale factor612may replace the fit-to-size scale factor512of sequence500(e.g., 103% for fit-to-size scale factor612in sequence600may replace 77% for fit-to-size scale factor512in sequence500). The particular position of the fit-to-size scale factor can change in sequence600relative to the position of the corresponding fit-to-size scale factor in sequence500due to the different value for the fit-to-size scale factor (e.g., such that the sequence values may be consecutive).

The electronic device can determine a current fit-to-size scale factor using any suitable approach. In some embodiments, the electronic device can preemptively determine a current fit-to-size scale factor based on a size of original information and a size of a window in which the information is displayed. The determined fit-to-size scale can then be integrated at an appropriate position in a sequence, as shown above in connection withFIGS. 5 and 6. Using this approach, a fit-to-size scale factor may be calculated each time a window is re-sized, and each time different information is displayed in the window.

Alternatively, the electronic device can determine a current fit-to-size scale factor each time a user provides an instruction to change a current scale factor for displayed information (e.g., when a user selects a scale factor up or down option), although the fit-to-size scale factor may not change each time the instruction is provided.FIG. 7is a flowchart of an illustrative process for integrating a fit-to-size scale factor in a sequence of scale factors in accordance with some embodiments of the invention. Process700can begin at step702. At step704, information can be displayed using an initial scale factor. For example, an electronic device can display information in a window of a particular size, and using an initial scale factor. At step706, the electronic device can determine whether an instruction to change the initial scale factor to a next scale factor in a sequence of scale factors has been received. For example, the electronic device can determine whether a selection of an option to scale up or scale down a scale factor was provided. If the electronic device determines that no instruction was received, process700can return to step706and continue to monitor for an instruction to change the current scale factor.

If, at step706, the electronic device instead determines that an instruction to change the current scale factor to a next scale factor in a sequence of scale factors was provided, process700can move to step708. At step708, a current fit-to-size scale factor can be identified. For example, the electronic device can identify the largest scale factor that can be used such that the entire displayed information can fit within the window. At step710, the electronic device can determine whether the identified current fit-to-size scale factor is between the initial scale factor and the next scale factor. For example, the electronic device can compare the identified current fit-to-size scale factor with the initial scale factor and the next scale factor. If the electronic device determines that the current fit-to-size scale factor is between the initial and next scale factors, process700can move to step712. At step712, the information can be displayed using the current fit-to-size scale factor. Process700can then end at step714. If, at step710, the electronic device instead determines that the current fit-to-size scale factor is not between the initial scale factor and the next scale factor in a sequence of scale factors, process700can move to step716. At step716, the information can be displayed using the next scale factor. Process700can then end at step714.

In some cases, a auto-resize mode can be enabled, such that when the window is re-sized, the scale factor used may also change to maintain a fitted display of the information in the re-sized window. When information is displayed using a auto-resize mode, the scale factor can automatically change when a window in which the information is displayed is re-sized. In particular, a auto-resize mode can be seamlessly enabled when the scale factor used for displaying information is the fit-to-size scale factor. To ensure that information is automatically re-scaled in the auto-resize mode, a flag or variable can be set for the information. For example, a “sticky fit” variable or flag can be set for or associated with the information, by which an auto-resize mode can be enabled. Then, when the scale factor reaches its destination value (e.g. after an animation of the scale factor has concluded), the electronic device can detect the sticky fit variable, and enable the auto-resize mode if the scale factor matches the fit-to-size scale factor. Then, when the window in which the information is displayed is re-sized, the electronic device can detect the auto-resize mode, and automatically change the scale factor used for the information to maintain a fit-to-size appearance. The auto-resize mode can be disassociated with information when the scale factor is changed away from a fit-to-size scale factor.

FIG. 8is a flowchart of an illustrative process for detecting an auto-resize mode in accordance with some embodiments of the invention. Process800can begin at step802. At step804, information can be displayed using an initial scale factor. For example, an electronic device can display information in a window of a particular initial size, and using an initial scale factor. At step806, the electronic device can determine whether an instruction to re-size the window has been received. For example, the electronic device can determine whether a selection and dragging of a corner of the window has been detected. If the electronic device determines that no instruction to re-size the window has been received, process800can return to step806. If, at step806, the electronic device instead determines that an instruction to re-size the window has been received, process800can move to step808.

At step808, an electronic device can determine whether an auto-resize mode is enabled. For example, the electronic device can determine whether a Boolean variable corresponding to a auto-resize mode is equal to “Yes.” In some embodiments, before determining whether an auto-resize mode is enabled, an electronic device can first determine whether the initial scale factor corresponds to the fit-to-size scale factor for the information when displayed in the initial window size. If so, the device may proceed with determining whether an auto-resize mode is enabled. Otherwise, process800may proceed to step810without determining the status of the auto-resize mode. If the electronic device determines that the auto-resize mode has not been enabled, process800can move to step810. At step810, the window can be re-sized and information can be displayed in the re-sized window using the initial scale factor. Process800can then end at step812. If, at step808, the electronic device instead determines that an auto-resize mode is enabled, process800can move to step814. At step814, a new fit-to-size scale factor can be identified. For example, the electronic device can identify a new fit-to-size scale factor for the information that corresponds to the re-sized window. At step816, the window can be re-sized and the information can be displayed in the re-sized window using the identified new fit-to-size scale factor. Process800can then end at step812.

In some cases, the electronic device can support an animation of information as it changes from a first scale factor to a second scale factor. The sticky fit variable or flag associated with the information may be necessary to ensure that an auto-resize mode is properly enabled or disabled before and after the animation. For example, information can initially be displayed with a first scale factor, and a user can provide an instruction to display the information using a second scale factor. Before animating the information, the electronic device can disable the auto-resize mode, if enabled. This may be required, because no animation would be possible if the content remains fixed to boundaries of the window. A sticky fit variable can be set based on a manner in which the user provide the instruction to display the information using the scale factor. For example, the variable can be set to “yes” if the second scale factor was implicitly selected (e.g., selected using an up option), and the variable can be set to “no” if the second scale factor was explicitly selected (e.g., the user entered a value for the second scale factor). The electronic device can then smoothly animate the displayed information from the first scale factor the second scale factor, and upon reaching the second scale factor, check the sticky fit variable. If the sticky fit variable is set to “no,” it may be left as “no” and the auto-resize mode may remain disabled. Alternatively, if the sticky fit variable is set to “yes,” the second scale factor can be compared to the current fit-to-size scale factor. If they match, the auto-resize mode can be re-enabled, and the sticky fit variable can be set to “no.” If they do not match, the auto-resize mode can remain disabled, and the sticky fit variable can be set to “no.”

In some cases, the electronic device can integrate a fit-to-size scale factor in a sequence of scale factors associated with a continuous zooming instruction. For example, the electronic device can display information using a fit-to-size scale factor when a user provides an instruction, using a touch gesture or a scroll-wheel gesture, to step through a sequence of scale factors. In some cases, the electronic device can add a detent using the fit-to-size scale factor to indicate to a user that the fit-to-size scale factor is used (e.g., to increase a “target size” for user inputs corresponding to the fit-to-size scale factor). For example, the electronic device can add the fit-to-size scale factor to a sequence of detents associated with the information. The electronic device can, in some cases, automatically enable the auto-resize mode when information is displayed using the fit-to-size scale factor. If the information is displayed using a scale factor other than the fit-to-size scale factor, the electronic device can disable the auto-resize mode. Because the instruction to change the scale factor may be provided dynamically, the electronic device may not pre-define a sequence of scale factors. Instead, the scale factors can be determined in an ad-hoc manner, as the instruction is received.

FIG. 9is a flowchart of an illustrative process for integrating a fit-to-size scale factor in a sequence of scale factors. Process900can begin at step902. At step904, a size of a display window can be identified. For example, an electronic device can identify dimensions of a window in which information is displayed. At step906, an original size of the information to display can be identified. For example, the electronic device can identify dimensions associated with the information to display. At step908, a sequence of scale factors can be identified. For example, the electronic device can identify various pre-defined scales at which information may be displayed, or the device can identify a sequence of scales in an ad-hoc manner. In some cases, the electronic device can step through the sequence of scale factors in response to receiving a corresponding instruction. At step910, a fit-to-scale factor can be determined from the identified size of the display window and the identified original size of the information to display. For example, the electronic device can identify the largest scale factor by which the entirety of the information may be displayed in the window of the identified window size. At step912, the determined fit-to-size scale factor can be integrated in the sequence of scale factors. For example, the fit-to-size scale factor can be integrated in consecutive numerical order in the sequence of scale factors. Process900can then end at step914.

FIG. 10is a flowchart of an illustrative process for iterating through a sequence of scale factors in accordance with some embodiments of the invention. Process1000can begin at step1002. At step1004, information can be displayed in a window using an initial scale factor. At step1006, an instruction to change the initial scale factor to a next scale factor of a sequence of scale factors can be received. For example, an electronic device can receive a selection of a scale up or scale down option. At step1008, the electronic device can determine that the next scale factor includes a fit-to-size scale factor. For example, the electronic device can determine that the next scale factor includes a scale factor by which the information is scaled to fit in the window. At step1010, an auto-resize mode can be associated with the information in response to determining that the next scale factor includes a fit-to-size scale factor. Process1000can then end at step1012.

Any suitable electronic device can be used to display information in a window using a scale factor.FIG. 11is a schematic view of an illustrative electronic device1100for displaying information in a window in accordance with some embodiments of the invention. Electronic device1100may be any portable, mobile, or hand-held electronic device configured to display information in a window using a scale factor to a user wherever the user travels. Alternatively, electronic device1100may not be portable at all, but may instead be generally stationary. Electronic device1100can include, but is not limited to, a music player (e.g., an iPod™ available by Apple Inc. of Cupertino, Calif.), video player, still image player, game player, other media player, music recorder, movie or video camera or recorder, still camera, other media recorder, radio, medical equipment, domestic appliance, transportation vehicle instrument, musical instrument, calculator, cellular telephone (e.g., an iPhone™ available by Apple Inc.), other wireless communication device, personal digital assistant, remote control, pager, computer (e.g., a desktop, laptop, tablet, server, etc.), monitor, television, stereo equipment, set up box, set-top box, boom box, modem, router, printer, and combinations thereof. In some embodiments, electronic device1100may perform a single function (e.g., a device dedicated to displaying information in a window) and, in other embodiments, electronic device1100may perform multiple functions (e.g., a device that displays information in a window, plays music, and receives and transmits telephone calls).

Electronic device1100may include a processor1102, memory1104, power supply1106, input component1108, and display1110. Electronic device1100may also include a bus1112that may provide one or more wired or wireless communication links or paths for transferring data and/or power to, from, or between various other components of device1100. In some embodiments, one or more components of electronic device1100may be combined or omitted. Moreover, electronic device1100may include other components not combined or included inFIG. 11and/or several instances of one or more of the components shown inFIG. 11.

Memory1104may include one or more storage mediums, including for example, a hard-drive, flash memory, non-volatile memory, permanent memory such as read-only memory (“ROM”), semi-permanent memory such as random access memory (“RAM”), any other suitable type of storage component, or any combination thereof. Memory1104may include cache memory, which may be one or more different types of memory used for temporarily storing data for electronic device application programs. Memory1104may store media data (e.g., music and image files), software (e.g., a boot loader program, one or more application programs of an operating system for implementing functions on device1100, etc.), firmware, preference information (e.g., media playback preferences), lifestyle information (e.g., food preferences), exercise information (e.g., information obtained by exercise monitoring equipment), transaction information (e.g., information such as credit card information), wireless connection information (e.g., information that may enable device1100to establish a wireless connection), subscription information (e.g., information that keeps track of podcasts or television shows or other media a user subscribes to), contact information (e.g., telephone numbers and e-mail addresses), calendar information, any other suitable data, or any combination thereof.

Power supply1106may provide power to one or more of the components of device1100. In some embodiments, power supply1106can be coupled to a power grid (e.g., when device1100is not a portable device, such as a desktop computer). In some embodiments, power supply1106can include one or more batteries for providing power (e.g., when device1100is a portable device, such as a cellular telephone). As another example, power supply1106can be configured to generate power from a natural source (e.g., solar power using solar cells).

One or more input components1108may be provided to permit a user to interact or interface with device1100. For example, input component1108can take a variety of forms, including, but not limited to, an electronic device pad, dial, click wheel, scroll wheel, touch screen, one or more buttons (e.g., a keyboard), mouse, joy stick, track ball, microphone, camera, proximity sensor, light detector, and combinations thereof. Each input component1108can be configured to provide one or more dedicated control functions for making selections or issuing commands associated with operating device1100.

Electronic device1100may also include one or more output components that may present information (e.g., visual, audible, and/or tactile information) to a user of device1100. An output component of electronic device1100may take various forms, including, but not limited to, audio speakers, headphones, audio line-outs, visual displays, antennas, infrared ports, rumblers, vibrators, or combinations thereof.

For example, electronic device1100may include display1110as an output component. Display1110may include any suitable type of display or interface for presenting visual content to a user. In some embodiments, display1110may include a display embedded in device1100or coupled to device1100(e.g., a removable display). Display1110may include, for example, a liquid crystal display (“LCD”), a light emitting diode (“LED”) display, an organic light-emitting diode (“OLED”) display, a surface-conduction electron-emitter display (“SED”), a carbon nanotube display, a nanocrystal display, any other suitable type of display, or combination thereof. Alternatively, display1110can include a movable display or a projecting system for providing a display of content on a surface remote from electronic device1100, such as, for example, a video projector, a head-up display, or a three-dimensional (e.g., holographic) display. As another example, display1110may include a digital or mechanical viewfinder, such as a viewfinder of the type found in compact digital cameras, reflex cameras, or any other suitable still or video camera. In some embodiments, display1110may include display driver circuitry, circuitry for driving display drivers, or both. Display1110can be operative to present visual content provided by device1100.

It should be noted that one or more input components and one or more output components may sometimes be referred to collectively herein as an input/output (“I/O”) interface (e.g., input component1108and display1110as I/O interface1111). It should also be noted that input component1108and display1110may sometimes be a single I/O component, such as a touch screen that may receive input information through a user's touch of a display screen and that may also provide visual information to a user via that same display screen.

Electronic device1100may also be provided with an enclosure or housing1101that may at least partially enclose one or more of the components of device1100for protecting them from debris and other degrading forces external to device1100. In some embodiments, one or more of the components may be provided within its own housing (e.g., input component1108may be an independent keyboard or mouse within its own housing that may wirelessly or through a wire communicate with processor1102, which may be provided within its own housing).

Processor1102of device1100may include any processing or control circuitry operative to control the operations and performance of one or more components of electronic device1100. For example, processor1102may be used to run operating system applications, firmware applications, media playback applications, media editing applications, or any other application. In some embodiments, processor1102may receive input signals from input component1108and/or drive output signals through display1110.

It is to be understood that the steps shown in each one of processes700-1000ofFIGS. 7-10, respectively, are merely illustrative and that existing steps may be modified or omitted, additional steps may be added, and the order of certain steps may be altered.

Moreover, the processes described with respect toFIGS. 7-10, as well as any other aspects of the invention, may each be implemented in hardware or a combination of hardware and software. Embodiments of the invention can also be embodied as computer-readable code on a computer-readable medium. The computer-readable medium may be any data storage device that can store data which can thereafter be read by a computer system. Examples of the computer-readable medium include read-only memory (“ROM”), random-access memory (“RAM”), CD-ROMs, DVDs, magnetic tape, and optical data storage devices. The computer-readable medium can also be distributed over network-coupled computer systems so that the computer readable code may be stored and executed in a distributed fashion.

Although many of the embodiments of the present invention are described herein with respect to personal computing devices, it should be understood that the present invention is not limited to personal computing applications, but is generally applicable to other applications.

The above-described embodiments of the invention are presented for purposes of illustration and not of limitation.