In the field of computing, there have been many approaches to allow navigation of content in a window or view area. Scrolling windows, pannable surfaces, carousels, and other user interfaces have all been used to allow a user to control what part of a content area is displayed in a window. With a long content area, for example, it can take significant time for a user to manually pan back and forth between the beginning and end of the content area. This begin-to-end panning time can be particularly troublesome with touch-based input control. Furthermore, when an item of content needs to be rearranged in the content area, dragging the item between the beginning and the end can take notable effort and time. For instance, a user might be required to hold the item at the edge of a screen and wait for an auto-scroll operation to pan or scroll the content area to the beginning or end.
Problems of content traversal can also occur with the Start or Home screen of an application-launching interface, where newly installed application tiles or icons are placed at the end of a grid (content area) and a user wishes to navigate to the most recently added applications or move those applications to the beginning of the grid where tiles or icons of favorite applications are often accessed.
Some previous approaches have involved cycling around automatically between the beginning and the end of a content area in a continuous carousel-like fashion. However, this approach can create other problems. For example, a user cannot easily stop at the beginning or end, and the content area can be perceived as overwhelming and infinite. Moreover, the user may have difficult knowing what is the beginning or end or whether an area of content has already been seen.
Techniques related to wrap-around content navigation are discussed below.
The following summary is included only to introduce some concepts discussed in the Detailed Description below. This summary is not comprehensive and is not intended to delineate the scope of the claimed subject matter, which is set forth by the claims presented at the end.
Several of the embodiments discussed below relate to a form of circular panning. To convey the boundaries of a pannable surface, responsive to reaching an edge or boundary of the surface, panning is inhibited, thus allowing the user to perceive that they have panned to an edge. Subsequently, the surface can be over-panned, that is, the reached edge can be panned such that the edge itself is displayed in the view area. If a wrap-around condition is met, an automated wrap-around occurs. Automated wrap-around may involve automatically panning the reached edge out of the view and/or automatically panning the distant edge into the view area, thus giving an appearance of one edge panning out of view as the opposite edge pans into view. If both edges are displayed together in the view during an over-pan, the logical remoteness or break between the edges can be emphasized with visual effects such as having the entering edge pan more slowly than the exiting edge. In one embodiment, over-panning is implemented using a threshold condition. When the threshold condition is met, auto-wrap occurs. When over-panning ends and the threshold is not met, the over-panning is reversed (e.g., a preview of the distant edge disappears and/or the over-panned edge snaps into view). It will be appreciated that implementation details will vary in carrying out the above-described embodiments.
Many of the attendant features will be explained below with reference to the following detailed description considered in connection with the accompanying drawings.
The present description will be better understood from the following detailed description read in light of the accompanying drawings, wherein like reference numerals are used to designate like parts in the accompanying description.
Embodiments described below relate to wrap-around content navigation. Some embodiments may allow for beginning-to-end wrap-around navigation while avoiding inconveniences of previous techniques. The discussion below will begin with an overview of content navigation, followed by detailed description of wrap-around navigation embodiments, including an embodiment where a user may encounter various forms of a “hard” stop when panning up to a beginning or end, but can invoke a wrap-around operation when a pan starts with a beginning or end at or near the hard stop position. With another embodiment, a user determines whether a wrap-around occurs based on the nature of the user input; e.g., if a user-controlled pan ends with (or attains) sufficient inertia a wrap-around occurs. Other embodiments and variations are also described below.
The panning action of the surface 102 may appear to be smooth or continuous (with perhaps some minimal movement delta). The panning action may also vary at the end of a pan. For example, when a pan is ending, the surface 102 may automatically snap to a nearest point such as a marker, a page division, a content feature, etc. Or, the surface 102 may stop abruptly, “bounce” slightly, or gradually glide to a rest. In some cases, the surface 102 may be panned to any arbitrary point of content 104, while in other cases panning stop points may be restricted. In some embodiments, panning may vary in speed according to user input, according to content features or markers that are panned into view, etc.
While examples described herein may show rectangular windows and view areas with rectangular panning surfaces panning from left to right, embodiments described herein may be implemented with different window and surface shapes and with different panning directions. For example, the concepts and embodiments described herein may be used when panning or scrolling horizontally, or even when a surface is larger in all directions than the view area and the surface can be panned in arbitrary directions.
Returning to
Referring to steps 154 and 156, the wrap-around condition may be implemented in numerous ways. In one embodiment, the surface 102 may be slightly over-panned, that is, the user can pan the stop edge past a border of the view area 100 and into the view area 100. In the example of
Referring to step 158, the wrap-around can be performed in numerous ways. The stop edge can pan across and out of the view area 100 as the wrapped-to edge comes into the view area 100. The stop edge can disappear and the surface can be abruptly repositioned to bring the remote edge to the view area 100. Or, the stop edge may pan out of the view area 100 and then the remote edge pans into the view area 100. Other visual approaches may be used to indicate that a wrap-around is occurring.
Referring again to step 152, when the panning does not start with an edge at or near the view area (i.e., no overpanning occurs), then the default panning behavior occurs; panning until an edge is reached. At step 160 the surface pans until an edge is reached or approached, and then panning is inhibited. At step 162, when the stopping edge is reached, an effect may be provided which may help the user perceive that the edge can be overpanned (wrapped). For example, the surface 102 may “bounce” in the view area 100 (possibly displaying a preview of the distant edge), the view area 100 may flash, a sound may be played, etc. Note that inhibiting panning may occur in different ways; an abrupt stop, a forced slowing of panning as the edge approaches the view area, a bouncing stop as mentioned above, and so forth.
At step 184, as the user continues to pan (or provide input to pan) the surface, an over-pan effect is provided to indicate that the user may be able to over-pan. For example, a preview of the distant edge (e.g., edge1106) is shown in the view area. At step 186, the panning is monitored. If a wrap-around condition is met then at step 188 the distant edge is transitioned into the view area (wrapped) and the overpanned edge is transitioned out of the view area. The wrapping may be conceptually thought of as forming a loop with the surface by feeding the remote edge back into the view area to allow continued panning. As mentioned previously, the wrap-around condition can be implemented in different ways.
Continuing to frame O, as the leftward panning continues, the surface and the preview 210 continue panning leftward in the view area. In one embodiment, this gap dynamically grows, possibly as soon as the preview 210 begins to be displayed. That is, the surface and the preview 210 may have different panning rates.
At frame P, as the leftward panning continues, the preview 210 stops emerging (panning leftward) after it reaches a position corresponding to a threshold distance 214 from the right border of the view area 100. The threshold distance 214 may be: a static number such as a number of pixels, a dynamic number such as a ratio of a size of the view area, a number computed according to a size of the surface and/or a size of the view area 100, a size of a grid unit of the surface, a size of an item in the surface, etc. Although the preview 210 may stop, the surface is allowed to continue over-panning leftward, creating a gap between the preview 210 and the end 208.
Subsequently, a wrap-around may be performed, for example, if the surface is panned sufficiently further by the user, if the panning is ended by the user and the surface or preview 210 have been panned a sufficient distance, or a similar condition (e.g., pan inertia) is met. This can be indicated by automatically panning the preview 210 leftward, in effect causing the beginning 212 of the surface to be at the leftward side of the view area 100 such that the surface can then be panned its full length leftward. Conversely, if a wrap-around is not triggered the surface may automatically pan such that the end 208 moves to the rightward border of the view area.
In one embodiment, the stop-point for the peek of the remote edge is the same at the point at which auto-wrapping occurs.
To facilitate displaying a preview or peek of a remote edge of the surface, it may be helpful to capture and store a bitmap or image of the remote edge. This will allow implementation using a user interface control that does not innately provide for displaying two edges of a same surface at the same time. When one edge is overpanned, the bitmap or image of the other edge is displayed. In addition, it may be desirable to disable interaction with content of the surface when over-panning, when auto-wrapping, when revealing a peek of a remote edge, etc. In one embodiment, the peek or preview that is displayed can be a mockup or generic representation of a surface edge and content. A blank surface area may also be used.
Furthermore, as previously mentioned, all of the features and embodiments described above can be readily implemented when panning is triggered by dragging an item. When the item reaches the border of the view area the surface auto-pans until the item is dropped or moved away from the border. Item dragging can also be performed when an item is selected and “held” by a user while the user simultaneously provides input to pan the surface; the surface pans for instance by stroke inputs while the item stays somewhat stationary relative to the view area.
To summarize several of the embodiments discussed above, a form of circular panning may be implemented. To convey the boundaries of a pannable surface, responsive to reaching an edge or boundary of the surface, panning is inhibited, thus allowing the user to perceive that they have panned to an edge. Subsequently, the surface can be over-panned, that is, the reached edge can be panned such that the edge itself is displayed in the view area. If a wrap-around condition is met, an automated wrap-around occurs. Automated wrap-around may involve automatically panning the reached edge out of the view and/or automatically panning the distant edge into the view area, thus giving an appearance of one edge panning out of view as the opposite edge pans into view. If both edges are displayed together in the view during an over-pan, the logical remoteness or break between the edges can be emphasized with visual effects such as having the entering edge pan more slowly than the exiting edge. It will be appreciated that implementation details will vary in carrying out the above-described embodiments.
Embodiments and features discussed above can be realized in the form of information stored in the storage volatile and/or non-volatile computer or device readable media. This is deemed to include at least media such as optical storage (e.g., compact-disk read-only memory (CD-ROM)), magnetic media, flash read-only memory (ROM), or other means of physically digital information in a physical form (not to be interpreted as including energy or signals per se). The stored information can be in the form of machine executable instructions (e.g., compiled executable binary code), source code, bytecode, or any other information that can be used to enable or configure computing devices to perform the various embodiments discussed above. Again, this is also deemed to include at least volatile memory such as random-access memory (RAM) and/or virtual memory storing information such as central processing unit (CPU) instructions during execution of a program carrying out an embodiment, as well as non-volatile media storing information that allows a program or executable to be loaded and executed. The embodiments and features can be performed on any type of computing device, including portable devices, workstations, servers, mobile wireless devices, and so on.