The embodiment of the present invention relates to tiles provided on a computer display, and more particularly, to a system and method for resizing the tiles.
Conventional applications provide desired content to users on a portion of the display in an area that may be referred to as a tile. The amount of room taken up by the application's user interface may vary. In general, it is important for the application's tile to have enough room to show the necessary information and controls.
Some applications and Web sites choose the size of their tile. One example would be pop-up ads, which are provided on the display when the user enters a particular Web site or as otherwise triggered. The size of the pop-up ads are designated by the application or Web site. One drawback of this type of system is that the user is not able to adjust the size of the tile that is provided.
Some applications choose an initial size for the tile automatically and then allow the user to resize the tile. This type of system is used for various types of applications, such as the popular solitaire card game. When this type of application is first opened, the initial size of the tile is chosen automatically, and then the user is allowed to resize it. However, these types of applications never try to resize the tile again, regardless of what other applications are opened or what other spacing becomes available on the display.
Certain known applications will also grow or shrink when the user clicks in them. One example would be in the “Add To Favorites” menu that grows when the user selects “More”. However, these types of applications do not resize automatically, and therefore provide only a manual resize type of operation.
The embodiment of the present invention is related to providing a system and method that overcome the foregoing and other disadvantages. More specifically, the embodiment of the present invention is related to a system and method that provides for both automatic and manual resizing of tiles.
A system and method for resizing tiles on a computer display is provided. In accordance with one aspect of the invention, a user interface is able to control its own tile size until the user decides to change it, after which the user remains in control of the size. It will be appreciated that it is important for an application to be able to take enough room in its user interface to show all the necessary information and controls. In the particular example of a Sidebar, which is an always visible piece of user interface that is shared by many applications, it is also important that the user stays in control of how the available space is allocated. If applications were able to take as much room as they wanted for their tiles and users couldn't adjust their size, users would not be able to control the allocation of space in the Sidebar. This would encourage tile developers to build tiles that grew very large and took over the Sidebar in order to get more space for their applications. On the other hand, if applications were not able to control their size at all, then users would be forced to manually control the size of all of the tiles. It would not be possible to build a tile that grew and shrunk as needed, meaning that tiles might take too much or too little space for the data that they needed to show. By allowing both the application to choose its own size and allowing users to override that size, the embodiment of the present invention makes it possible to build tiles that use an appropriate amount of space, wherein users are able to stop poorly designed tiles from taking up too much space. This is particularly useful in an embodiment such as a Sidebar, in which there is limited space and in which the tiles are not allowed to overlap (unlike certain other types of windows), thus making the sizing of tiles in the Sidebar particularly important.
In accordance with another aspect of the invention, a manual control is provided by which a user can manually resize a tile. In one embodiment, if the user doesn't like the size of the tile, the user can resize the tile by dragging the bottom edge until the desired size is achieved. Once the user sets the size in this way, the tile is placed in a manual sizing mode. In this mode, the application no longer has control over the size of the tile, and may only mode is only entered if the size of the tile was actually changed by the user. In other words, if a tile is already at a maximum size and the user tries to make it bigger, no change will occur and the manual sizing mode will not be entered. Once the tile is placed in the manual sizing mode, the user may also take certain actions to place the tile back into the automatic sizing mode. In one embodiment, the user may double-click on a resize bar to set the tile back into the automatic sizing mode.
In accordance with another aspect of the invention, a size limit may be set for a tile. In one embodiment, this may prevent a user from resizing a tile to a uselessly large size. An application may specify a tile's maximum size so that the user cannot resize it to be larger than is useful. In this embodiment, the tile simply stops resizing if the user tries to make it bigger than the maximum size. In general, the size limits may be optional and may be specified in the manifest. The size limits may be expressed in terms of pixels, percentage of the screen size, or other measurement units.
In accordance with another aspect of the invention, maximum size limits may also be provided to prevent tiles from automatically resizing themselves beyond a desired size. In other words, tiles are limited to a reasonable size, in order to prevent them from growing too large and taking over the entire sidebar.
In accordance with another aspect of the invention, automatic and manual sizing modes may be switched between depending on a user's response. Initially, the tile is allowed to resize itself as needed. If the tile wishes to resize itself past the large tile size threshold, the user is provided with a notification asking them to approve the new size. In one embodiment, the maximum size threshold is provided in terms of pixels rather than a percentage of the screen because the amount of information that can be shown defines a reasonable tile. Once the tile attempts to resize itself beyond the maximum limit, a notification is provided that points to the header of the tile, and which asks the user whether the tile should be allowed to become the new large size, or whether it should stay at its previous smaller size. If the user indicates that the tile should be allowed to become the larger size, then the tile resizes itself and stays in automatic sizing mode. The tile may then be allowed to grow and shrink as much as it wants without the notification being reissued. If the user answers no to the notification and thus indicates that the tile should not be allowed to grow to the new large size, then the tile is set back to its previous size, and the tile is set to manual sizing mode, in which further automatic resizing attempts are restricted.
In accordance with another aspect of the invention, the tiles are prevented from changing size too frequently, which could be distracting or annoying to a user. In one embodiment, the tile is allowed to increase its size whenever it wants, but is prevented from shrinking within a certain time interval (e.g., 60 seconds) from the last grow. Once the tile content changes such that the tile would want to change size, the proposed new size is measured and compared to the existing size. If the proposed new size is larger than the existing size, the tile is allowed to grow immediately and also keeps track of the current time. If the proposed new size is smaller than the existing size, then a determination is made as to how long it has been since the last recorded grow. If the elapsed time since the last recorded grow is smaller than the time threshold (e.g., 60 seconds), then the change in tile size is queued until the time threshold is reached, at which point the tile is allowed to change size. If at the time that the tile wishes to change size the time threshold has already been reached, then the tile is allowed to change size immediately. It will be appreciated that with this scheme, the tile is intended to always be large enough to show the full content, and at times when the content is quickly increasing and decreasing in size, the tile may temporarily be larger than it needs to be.
The foregoing aspects and many of the attendant advantages of this invention will become more readily appreciated as the same become better understood by reference to the following detailed description, when taken in conjunction with the accompanying drawings, wherein:
The embodiment of the present invention is directed to a system and method for resizing tiles on a computer display. As will be described in more detail below, in accordance with the embodiment of the present invention, the tiles are automatically sized until a user takes control, after which the user may manually set the size of the tiles. By allowing both the application to choose its own size and allowing users to override that size, properly designed tiles can be provided that use the right amount of space, and users are able to stop poorly designed tiles from taking too much space.
With reference to
A number of program modules may be stored on the hard disk 39, magnetic disk 29, optical disk 31, ROM 24 or RAM 25, including an operating system 35, one or more application programs 36, other program modules 37 and program data 38. A user may enter commands and information into the personal computer 20 through input devices such as a keyboard 40 and pointing device 42. Other input devices (not shown) may include a microphone, joystick, game pad, satellite dish, scanner, or the like. These and other input devices are often connected to the processing unit 21 through a serial port interface 46 that is coupled to the system bus 23, but may also be connected by other interfaces, such as a parallel port, game port or a universal serial bus (USB). A display in the form of a monitor 47 is also connected to the system bus 23 via an interface, such as a video card or adapter 48. One or more speakers 57 may also be connected to the system bus 23 via an interface, such as an audio adapter 56. In addition to the display and speakers, personal computers typically include other peripheral output devices (not shown), such as printers.
The personal computer 20 may operate in a networked environment using logical connections to one or more personal computers, such as a remote computer 49. The remote computer 49 may be another 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 the personal computer 20. The logical connections depicted in
When used in a LAN networking environment, the personal computer 20 is connected to the local area network 51 through a network interface or adapter 53. When used in a WAN networking environment, the personal computer 20 typically includes a such as the Internet. The modem 54, which may be internal or external, is connected to the system bus 23 via the serial port interface 46. In a networked environment, program modules depicted relative to the personal computer 20 or portions thereof may be stored in the remote memory storage device. It will be appreciated that the network connections shown are exemplary, and other means of establishing a communications link between the computers may be used.
If at decision block 220 the determination is that the tile is in an automatic sizing mode, then the routine continues to a block 240. At block 240, the automatic resizing process is undertaken, as will be described in more detail below with respect to
If at decision block 420 it is determined that the tile size has changed from its previous setting, then the routine continues to a block 440. At block 440, the tile is set in manual mode, such that further automatic resizing is restricted. In other words, once a user has determined that they would like to manually set the size of a tile, then the application is prevented from further attempting to automatically resize the tile, and the user remains in control of the sizing. In one embodiment, an option may also be provided for returning the tile to the automatic sizing mode. For example, an option may be provided by which the user can double-click on the resize bar to set the tile back to the automatic sizing mode (which is consistent with known toolbar techniques).
At decision block 930, a determination is made as to whether the proposed new tile size is larger than the current tile size. If the proposed new tile size is larger than the current tile size, then the routine continues to a decision block 940, which will be described in more detail below. If the proposed new tile size is not larger than the current tile size, then the routine continues to a decision block 935. At decision block 935, a determination is made as to whether the time since the last grow is larger than a specified time threshold. For example, in one embodiment, the specified time threshold may be 60 seconds. If the time since the last grow is larger than the threshold, then the routine continues to a block 945, where the tile is allowed to become the new size. If the time since the last grow is not larger than the threshold, then the routine continues to a block 937, where the size change is queued until the time threshold is reached, after which the tile is allowed to become the new size. By utilizing a required time threshold between certain size changes, a tile is prevented from changing size too frequently, which could be distracting or annoying to the user. As described above, the tile is essentially allowed to increase its size whenever it wants, but is prevented from shrinking until the specified time threshold has been reached since the last grow.
At decision block 940, a determination is made as to whether the new size that the tile would be resized to is greater than a maximum threshold size. If the new size is not greater than the maximum threshold, then the routine continues to the block 945, where the tile is allowed to become the new size. If the new size is greater than the maximum threshold, then the routine continues to a point A which is continued in
As shown in
At decision block 970, a determination is made as to whether the user has clicked on the option to allow the tile to become the new size. If the user has not clicked on the option to allow the tile to become the new size (e.g., the user clicks on “NO”), then the routine continues to a block 975, where the tile is set back to its previous size and is placed in manual sizing mode, and the variable AllowedToBeBig is set to false. If the user has clicked on the option to allow the tile to become the new size, then the routine continues to a block 980, where the tile is allowed to become the new size and stays in automatic sizing mode, and wherein the variable AllowedToBeBig is set to true.
It will be appreciated that the embodiment of the present invention allows a well designed application to take enough room for its tile to show its necessary information and controls. As noted above, if tile sizes could not be automatically controlled, then users would be forced to manually control the size of all of the tiles. Alternatively, if the tiles were automatically able to take as much room as they wanted, tiles could grow very large in order to get more area for their applications, even when such was not really needed. By allowing both the tile to choose its own size and allowing users to override that size, well designed tiles can be provided that use the right amount of space, while users are able to stop poorly designed tiles from taking too much space. In addition, in a sidebar type environment, where a common area of user interface is shared by many applications, the user is able to stay in control over how the space is being allocated between the tiles.
While the preferred embodiment of the invention has been illustrated and described, it will be appreciated that various changes can be made therein without departing from the spirit and scope of the invention.