# Patent

## Title
Touch pull-in gesture

## Abstract

Embodiments of a touch pull-in gesture are described. In various embodiments, a touch input is detected that starts at an edge of a touch-screen and progresses as an expanding contact region from the edge of the touch-screen toward approximately a center region of the touch-screen while the touch input remains in contact with the touch-screen. The expanding contact region is determined as a touch pull-in gesture to initiate a display of a user interface component.

## Background
BACKGROUND
Portable computer devices are increasingly more common and mobile, such as laptop computers, tablet PCs, ultra-mobile PCs, as well as other mobile data, messaging, and/or communication devices. When a user holds a small, portable device such as a tablet PC or ultra-mobile PC that has an integrated touch-screen, a common interaction technique is to hold the device with one hand and interact with the touch-screen with fingers of the other hand. For example, the user can tap-touch targets, user interface elements, or menu items on the touch-screen with a finger. While portable computer devices have become more mobile and convenient, the size of device integrated displays has decreased to accommodate the mobility and convenience of the devices. Additionally, there is an ever increasing need to display more data and content, such as various application user interfaces on the device integrated displays. As a result, pull-down menus, headers, scrollbars, and other similar display features take up display space that could otherwise be utilized to display the data and other content. A technique utilized to conserve the display space is to hide menus, scrollbars, and other similar user interface features just off-screen and out of the display space. However, it can be difficult for a user to then manipulate various controls and selections to locate and utilize the hidden user interface features.
SUMMARY
This summary is provided to introduce simplified concepts of a touch pull-in gesture. The simplified concepts are further described below in the Detailed Description. This summary is not intended to identify essential features of the claimed subject matter, nor is it intended for use in determining the scope of the claimed subject matter.
Embodiments of a touch pull-in gesture are described. In various embodiments, a touch input is detected that starts at an edge of a touch-screen and progresses as an expanding contact region from the edge of the touch-screen toward approximately a center region of the touch-screen while the touch input remains in contact with the touch-screen. The expanding contact region is determined as a touch pull-in gesture to initiate a display of a user interface component. The touch pull-in gesture can be recognized as a combination of the touch input at the edge of the touch-screen and a motion gesture across the touch-screen. The touch pull-in gesture gives the appearance of dragging the user interface component onto the touch-screen for display, such as a drop-down menu, a scrollbar, or other user interface component that is displayed proximate a location of the touch pull-in gesture on the touch-screen.



BRIEF DESCRIPTION OF THE DRAWINGS
Embodiments of touch pull-in gesture are described with reference to the following drawings. The same numbers are used throughout the drawings to reference like features and components:
FIG. 1 illustrates an example of a portable device that can implement various embodiments of a touch pull-in gesture.
FIG. 2 illustrates an example system in which embodiments of a touch pull-in gesture can be implemented.
FIG. 3 illustrates example method(s) for a touch pull-in gesture in accordance with one or more embodiments.
FIG. 4 illustrates various components of an example device that can implement embodiments of a touch pull-in gesture.



DETAILED DESCRIPTION
Embodiments of a touch pull-in gesture provide techniques for a user of a portable device to motion a pull-in gesture which gives the appearance of dragging a user interface component onto a touch-screen of the device for display. For example, a user can initiate a touch input with a finger just off an edge of the touch-screen and then motion a pull-in gesture across the touch-screen. When the motion of the touch pull-in gesture is initiated by the user, a progression of the motion as the touch input remains in contact with the touch-screen creates a contact region on the touch-screen that progressively expands and is detected. The progressive expansion of the contact region on the touch-screen is then determined or recognized as the touch pull-in gesture that initiates a display of a user interface component proximate a location of the touch pull-in gesture on the touch-screen. A user interface component can include any type of hidden menu, slide menu, drop-down menu, scrollbar, and/or any other type of user interface displayable element.
While features and concepts of the described systems and methods for a touch pull-in gesture can be implemented in any number of different environments, systems, and/or various configurations, embodiments of a touch pull-in gesture are described in the context of the following example systems and environments.
FIG. 1 illustrates an example 100 of a portable device 102 that can implement various embodiments of a touch pull-in gesture. Portable device 102 is an example of any of the various types of portable devices described with reference to FIG. 2 and can also be implemented with any number and combination of differing components as described with reference to the example device shown in FIG. 4. Portable device 102 includes an integrated touch-screen 104 to display user interfaces, user interface elements and features, user-selectable controls, various displayable objects, and the like. Portable device 102 also includes at least a touch-screen driver 106 and an interface application 108 to initiate display of a user interface 110 and the various user interface elements, features, and controls.
In an embodiment of a touch pull-in gesture, a user of portable device 102 can initiate a touch input 112 with a finger just off an edge of the touch-screen 104 and then motion a pull-in gesture 114 in a direction 116 across the touch-screen. The motion of the touch pull-in gesture 114 is illustrated in the direction 116 as the hand moves from position 118, to position 120, and to position 122 (shown successively in the three views). When the motion of the touch pull-in gesture 114 is initiated by the user, a contact region 124 progressively expands, such as illustrated when the hand moves from the edge of the touch-screen at position 118 to position 120, and then from position 120 to position 122. The progressive expansion of the contact region 124 is then determined or recognized as the touch pull-in gesture 114.
The touch-screen driver 106 is implemented to detect the touch input 112 that starts at an edge of the touch-screen 104 and progresses as the expanding contact region 124 from the edge of the touch-screen toward approximately a center region 126 of the touch-screen while the touch input 112 remains in contact with the touch-screen. The touch-screen driver 106 can determine, or otherwise recognize that the expanding contact region 124 represents the touch pull-in gesture 114 and communicate gesture data that corresponds to the gesture to the interface application 108. The interface application 108 can receive the gesture data and then initiate a display of a user interface component. The expanding contact region 124 can be detected by the touch-screen driver 106 as a progression of motion as the touch input 112 remains in contact with the touch-screen. The touch pull-in gesture 114 is then recognized as a combination of the touch input 112 at the edge of the touch-screen and the motion gesture across the touch-screen which gives the appearance of dragging a user interface component onto the touch-screen for display.
In various implementations, the interface application 108 can initiate a display of a vertical scrollbar 128 as a user interface component when the touch pull-in gesture 114 starts at a side edge 130 of the touch-screen 104. Alternatively or in addition, the interface application 108 can initiate a display of a drop-down menu (not shown) as a user interface component when the touch pull-in gesture 114 starts at a top edge 132 of the touch-screen 104. Alternatively or in addition, the interface application 108 can initiate a display of a horizontal scrollbar (not shown), or other user interface component, when the touch pull-in gesture 114 starts at a bottom edge 134 of the touch-screen 104.
In the various implementations, the interface application 108 can initiate a display of the user interface component proximate a location of the touch pull-in gesture on the touch-screen. The vertical scrollbar, drop-down menu, and horizontal scrollbar are merely examples for discussion purposes. In various implementations, any type of user interface component can be initiated for display at a location proximate a touch pull-in gesture on the touch-screen. A user interface component can include any type of hidden menu, slide menu, drop-down menu, scrollbar, image, graphic, text, user-selectable control, menu selection, map element, and/or any other type of user interface displayable feature or item.
The direction in which the contact region 124 expands (e.g., direction 116 in this example) correlates to the direction of the touch pull-in gesture 114. In an implementation, the touch-screen driver 106 can detect the touch pull-in gesture 114 from discernable variables, such as a direction variable {right-to-left}; start region position variables {left1, top1, right1, bottom1}; end region position variables {left2, top2, right2, bottom2}; and a motion rate variable {x number of pixels per second}.
It should be noted that the representation of the touch input 112, the indication of direction 116, and the representations of the contact region 124 are merely illustrative for discussion purposes. When embodiments of a touch pull-in gesture are implemented, the various representations and indications may or may not appear on the touch-screen and/or on a user interface.
FIG. 2 illustrates an example system 200 in which various embodiments of a touch pull-in gesture can be implemented. Example system 200 includes a portable device 202 (e.g., a wired and/or wireless device) that can be any one or combination of a mobile personal computer 204, a personal digital assistant (PDA), a mobile phone 206 (e.g., cellular, VoIP, WiFi, etc.) that is implemented for data, messaging, and/or voice communications, a portable computer device 208 (e.g., a laptop computer, a laptop computer with a touch-screen, etc.), a media device 210 (e.g., a personal media player, portable media player, etc.), a gaming device, an appliance device, an electronic device, and/or any other type of portable device that can receive, display, and/or communicate data in any form of audio, video, and/or image data.
Each of the various portable devices can include an integrated display and/or an integrated touch-screen, as well as selectable input controls via which a user can input data and/or selections. For example, mobile personal computer 204 includes an integrated touch-screen 212 on which a user interface 214 can be displayed that includes displayable objects and/or user interface elements 216, such as any type of image, graphic, text, selectable button, user-selectable control, menu selection, map element, and/or any other type of user interface displayable feature or item.
Any of the various portable devices described herein can be implemented with one or more sensors, processors, communication components, data inputs, memory components, storage media, processing and control circuits, and/or a content rendering system. Any of the portable devices can also be implemented for communication via communication networks that can include any type of a data network, voice network, broadcast network, an IP-based network, and/or a wireless network that facilitates data, messaging, and/or voice communications. A portable device can also be implemented with any number and combination of differing components as described with reference to the example device shown in FIG. 4. A portable device may also be associated with a user (i.e., a person) and/or an entity that operates the device such that a portable device describes logical devices that include users, software, and/or a combination of devices.
In this example, portable device 202 includes one or more processors 218 (e.g., any of microprocessors, controllers, and the like), a communication interface 220 for data, messaging, and/or voice communications, and data inputs 222 to receive media content 224. Media content (e.g., to include recorded media content) can include any type of audio, video, and/or image data received from any media content or data source, such as messages, television media content, music, video clips, data feeds, interactive games, network-based applications, and any other content. Portable device 202 is implemented with a device manager 226 that includes any one or combination of a control application, software application, signal processing and control module, code that is native to the particular device, and/or a hardware abstraction layer for the particular device.
Portable device 202 includes various media applications 228 that may incorporate components such as interface applications 230 that can be processed or otherwise executed by the processors 218. The media applications 228 can include a music and/or video player, a Web browser, an email application, and the like. Portable device 202 includes a rendering system 232 to render user interfaces from the interface applications 230 to generate a display on any of the portable devices. The rendering system 232 is also implemented to receive and render any form of audio, video, and/or image data received from any media content and/or data source.
Portable device 202 also includes a touch-screen driver 234 and a gestures database 236 that includes various determinable representations of gestures, inputs, and/or motions that an interface application 230 is configured to determine or recognize, such as a touch pull-in gesture. Implementations of an interface application 230 and the touch-screen driver 234 are described with reference to the interface application 108 and touch-screen driver 106 shown in FIG. 1, and with reference to embodiments of a touch pull-in gesture as described herein.
Example method 300 is described with reference to FIG. 3 in accordance with one or more embodiments of a touch pull-in gesture. Generally, any of the functions, methods, procedures, components, and modules described herein can be implemented using hardware, software, firmware, fixed logic circuitry, manual processing, or any combination thereof. A software implementation of a function, method, procedure, component, or module represents program code that performs specified tasks when executed on a computing-based processor. The example methods may be described in the general context of computer-executable instructions, which can include software, applications, routines, programs, objects, components, data structures, procedures, modules, functions, and the like.
The methods may also be practiced in a distributed computing environment where functions are performed by remote processing devices that are linked through a communication network. In a distributed computing environment, computer-executable instructions may be located in both local and remote computer storage media, including memory storage devices. Further, the features described herein are platform-independent such that the techniques may be implemented on a variety of computing platforms having a variety of processors.
FIG. 3 illustrates example method(s) 300 of a touch pull-in gesture. The order in which the method is described is not intended to be construed as a limitation, and any number of the described method blocks can be combined in any order to implement the method, or an alternate method.
At block 302, a touch input is detected that starts at an edge of a touch-screen and progresses as an expanding contact region. For example, the touch-screen driver 106 at portable device 102 detects the touch input 112 that starts at an edge 130 of the touch-screen 104 and progresses as the expanding contact region 124 from the edge of the touch-screen toward approximately a center region 126 of the touch-screen while the touch input 112 remains in contact with the touch-screen. The touch-screen driver 106 detects the expanding contact region 124 as a progression of motion as the touch input 112 remains in contact with the touch-screen, and the touch pull-in gesture 114 is then recognized as a combination of the touch input 112 at the edge of the touch-screen and the motion gesture.
At block 304, the expanding contact region is determined as a touch pull-in gesture to initiate a display of a user interface component. For example, the touch-screen driver 106 at portable device 102 determines, or otherwise recognizes, the expanding contact region 124 as the touch pull-in gesture 114. At block 306, gesture data that corresponds to the touch pull-in gesture is communicated to an interface application. For example, the touch-screen driver 106 at portable device 102 communicates or otherwise broadcasts gesture data that corresponds to the touch pull-in gesture 114 to the interface application 108. The gesture data can be communicated in the form of a system broadcast message that includes various information about the gesture, such as the location where the gesture is initiated, the speed or rate of the gesture, and/or the touch pressure (e.g., if the system supports a touch pressure measurement or value).
At block 308, a display of the user interface component is initiated proximate a location of the touch pull-in gesture on the touch-screen. For example, the interface application 108 at portable device 102 initiates a display of the user interface component proximate the location of the touch pull-in gesture 114 on the touch-screen 104 which gives the appearance of dragging the user interface component onto the touch-screen for display. Various optional examples of a user interface component that is initiated for display at block 308 are described with reference to blocks 310-320.
At block 310, a determination is made as to whether the touch pull-in gesture starts at a top edge of the touch-screen. If the touch pull-in gesture starts at the top edge 132 of the touch-screen 104 (i.e., “yes” from block 310), then at block 312, a drop-down menu is initiated for display as the user interface component. If the touch pull-in gesture does not start at the top edge of the touch-screen (i.e., “no” from block 310), then at block 314, a determination is made as to whether the touch pull-in gesture starts at a side edge of the touch-screen.
If the touch pull-in gesture starts at the side edge 130 of the touch-screen 104 (i.e., “yes” from block 314), then at block 316, a vertical scrollbar 128 is initiated for display as the user interface component. If the touch pull-in gesture does not start at the side edge of the touch-screen (i.e., “no” from block 314), then at block 318, a determination is made as to whether the touch pull-in gesture starts at a bottom edge of the touch-screen.
If the touch pull-in gesture starts at the bottom edge 134 of the touch-screen 104 (i.e., “yes” from block 318), then at block 320, a horizontal scrollbar is initiated for display as the user interface component. If the touch pull-in gesture does not start at the bottom edge of the touch-screen (i.e., “no” from block 318), then the method can continue at block 302 to detect a touch input. The method can also continue at block 302 from blocks 312, 316, and/or 320 to detect a touch input. The display of a drop-down menu (at block 312), a vertical scrollbar (at block 316), or a horizontal scrollbar (at block 320) are merely examples of various user interface components. In other implementations, any type of user interface component can be initiated for display at a location proximate a touch pull-in gesture on the touch-screen.
FIG. 4 illustrates various components of an example device 400 that can be implemented as any type of portable and/or computer device as described with reference to FIGS. 1 and 2 to implement embodiments of a touch pull-in gesture. Device 400 includes communication devices 402 that enable wired and/or wireless communication of device data 404 (e.g., received data, data that is being received, data scheduled for broadcast, data packets of the data, etc.). The device data 404 or other device content can include configuration settings of the device, media content stored on the device, and/or information associated with a user of the device. Media content stored on device 400 can include any type of audio, video, and/or image data. Device 400 includes one or more data inputs 406 via which any type of data, media content, and/or inputs can be received, such as user-selectable inputs, messages, music, television media content, recorded video content, and any other type of audio, video, and/or image data received from any content and/or data source.
Device 400 also includes communication interfaces 408 that can be implemented as any one or more of a serial and/or parallel interface, a wireless interface, any type of network interface, a modem, and as any other type of communication interface. The communication interfaces 408 provide a connection and/or communication links between device 400 and a communication network by which other electronic, computing, and communication devices communicate data with device 400.
Device 400 includes one or more processors 410 (e.g., any of microprocessors, controllers, and the like) which process various computer-executable instructions to control the operation of device 400 and to implement embodiments of a touch pull-in gesture. Alternatively or in addition, device 400 can be implemented with any one or combination of hardware, firmware, or fixed logic circuitry that is implemented in connection with processing and control circuits which are generally identified at 412. Although not shown, device 400 can include a system bus or data transfer system that couples the various components within the device. A system bus can include any one or combination of different bus structures, such as a memory bus or memory controller, a peripheral bus, a universal serial bus, and/or a processor or local bus that utilizes any of a variety of bus architectures.
Device 400 also includes computer-readable media 414, such as one or more memory components, examples of which include random access memory (RAM), non-volatile memory (e.g., any one or more of a read-only memory (ROM), flash memory, EPROM, EEPROM, etc.), and a disk storage device. A disk storage device may be implemented as any type of magnetic or optical storage device, such as a hard disk drive, a recordable and/or rewriteable compact disc (CD), any type of a digital versatile disc (DVD), and the like. Device 400 can also include a mass storage media device 416.
Computer-readable media 414 provides data storage mechanisms to store the device data 404, as well as various device applications 418 and any other types of information and/or data related to operational aspects of device 400. For example, an operating system 420 can be maintained as a computer application with the computer-readable media 414 and executed on processors 410. The device applications 418 can include a device manager (e.g., a control application, software application, signal processing and control module, code that is native to a particular device, a hardware abstraction layer for a particular device, etc.). The device applications 418 also include any system components or modules to implement embodiments of a touch pull-in gesture. In this example, the device applications 418 include an interface application 422 and a touch-screen driver 424 that are shown as software modules and/or computer applications. Alternatively or in addition, the interface application 422 and the touch-screen driver 424 can be implemented as hardware, software, firmware, or any combination thereof.
Device 400 also includes an audio and/or video input-output system 426 that provides audio data to an audio system 428 and/or provides video data to a display system 430. The audio system 428 and/or the display system 430 can include any devices that process, display, and/or otherwise render audio, video, and image data. Video signals and audio signals can be communicated from device 400 to an audio device and/or to a display device via an RF (radio frequency) link, S-video link, composite video link, component video link, DVI (digital video interface), analog audio connection, or other similar communication link. In an embodiment, the audio system 428 and/or the display system 430 are implemented as external components to device 400. Alternatively, the audio system 428 and/or the display system 430 are implemented as integrated components of example device 400.
Although embodiments of a touch pull-in gesture have been described in language specific to features and/or methods, it is to be understood that the subject of the appended claims is not necessarily limited to the specific features or methods described. Rather, the specific features and methods are disclosed as example implementations of a touch pull-in gesture.

## Claims

1. A method implemented by a portable computer device, the method comprising:
detecting a touch input that from a position at least partially off of a touch-screen, crosses over an edge of the touch-screen, and progresses as an expanding contact region from the edge of the touch-screen toward approximately a center region of the touch-screen while the touch input remains in contact with the touch-screen;
determining the expanding contact region as a touch pull-in gesture to initiate a display of a user interface component based on a direction variable, a start region position variable, and a motion rate variable for which data is ascertained from the detected touch input; and
initiating a display of the user interface component at a location of the touch pull-in gesture where detected as the touch input on the touch-screen, the touch pull-in gesture giving the appearance that the user interface component is dragged onto the touch-screen in a direction of the touch-pull in gesture.

2. A method as recited in claim 1, wherein the touch pull-in gesture is recognized as a combination of the touch input at the edge of the touch-screen and a motion gesture across the touch-screen.

3. A method as recited in claim 1, further comprising initiating a display of a drop-down menu as the user interface component when the touch pull-in gesture crosses over a top edge of the touch-screen.

4. A method as recited in claim 1, further comprising initiating a display of a vertical scrollbar as the user interface component when the touch pull-in gesture crosses over a side edge of the touch-screen.

5. A method as recited in claim 1, further comprising initiating a display of a hidden menu as the user interface component at the location of the touch pull-in gesture on the touch-screen.

6. A method as recited in claim 5, wherein the touch pull-in gesture gives the appearance of dragging the hidden menu onto the touch-screen for display in the direction of the touch pull-in gesture.

7. A method as recited in claim 1, wherein the expanding contact region is detected as a progression of motion as the touch input remains in contact with the touch-screen.

8. A method as recited in claim 1, further comprising:
displaying a drop-down menu as the user interface component when the touch pull-in gesture crosses over a top edge of the touch-screen;
displaying a vertical scroll bar as the user interface component when the touch pull-in gesture crosses over a side edge of the touch-screen; and
displaying a horizontal scroll bar as the user interface component when the touch pull-in gesture crosses over a bottom edge of the touch-screen.

9. A portable computer device, comprising:
at least a memory and a processor configured to implement a touch pull-in gesture that gives the appearance of dragging a user interface component onto a touch-screen for display, the user interface component appearing to be dragged onto the touch-screen in a direction that the touch pull-in gesture is performed;
a touch-screen driver configured to detect a touch input that crosses onto a side edge of the touch-screen from a position outside of the touch-screen and progresses as an expanding contact region from the side edge of the touch-screen toward approximately a center region of the touch-screen while the touch input remains in contact with the touch-screen; and
an interface application configured to receive gesture data that corresponds to the touch pull-in gesture from the touch-screen driver and determine the expanding contact region as the touch pull-in gesture to initiate a display of the user interface component at a location of the touch pull-in gesture on the touch-screen, wherein the gesture data received by the interface application is used to determine the expanded contact region as the touch pull-in gesture and includes data representative of at least a direction variable, a start region position variable, and a motion rate variable.

10. A portable computer device as recited in claim 9, wherein the touch pull-in gesture is recognized as a combination of the touch input at the side edge of the touch-screen and a motion gesture across the touch-screen.

11. A portable computer device as recited in claim 9, wherein the touch-screen driver is further configured to detect the expanding contact region as a progression of motion as the touch input remains in contact with the touch-screen.

12. A portable computer device as recited in claim 9, wherein the interface application is further configured to initiate a display of a drop-down menu as the user interface component when the touch pull-in gesture crosses onto the side edge of the touch-screen.

13. A portable computer device as recited in claim 9, wherein the interface application is further configured to initiate a display of a vertical scrollbar as the user interface component when the touch pull-in gesture crosses onto the side edge of the touch-screen.

14. A portable computer device as recited in claim 9, wherein the interface application is further configured to initiate a display of a hidden menu as the user interface component when the touch pull-in gesture is determined.

15. Computer-readable memory devices having stored thereon instructions that are executable by a portable computer device to perform rising:
detecting a touch input that starts at least partially off of a touch-screen, crosses over an edge of the touch-screen, and progresses as an expanding contact region from the edge of the touch-screen and across the touch-screen while the touch input remains in contact with the touch-screen;
determining the expanding contact region as a touch pull-in gesture using a combination of a direction variable, a start region position variable, and a motion rate variable and for which data is ascertained from the detected touch input; and
initiating a display of a user interface component at a location of the touch pull-in gesture where detected as the touch input on the touch-screen, the touch pull-in gesture giving the appearance that the user interface component is dragged onto the touch screen, the user interface component appearing to be dragged from the edge of the touch-screen over which the touch input crosses and toward a center of the touch-screen.

16. Computer-readable memory devices as recited in claim 15, wherein the operations further comprise recognizing the touch pull-in gesture as a combination of the touch input at the edge of the touch-screen and a motion gesture across the touch-screen.

17. Computer-readable memory devices as recited in claim 15, wherein the operations further comprise initiating a display of a drop-down menu as the user interface component when the touch pull-in gesture crosses over a top edge of the touch-screen.

18. Computer-readable memory devices as recited in claim 15, wherein the operations further comprise initiating a display of a vertical scrollbar as the user interface component when the touch pull-in gesture crosses over a side edge of the touch-screen.

19. Computer-readable memory devices as recited in claim 15, wherein the operations further comprise initiating a display of a hidden menu as the user interface component that gives the appearance of dragging the hidden menu onto the touch-screen for display.

20. Computer-readable memory devices as recited in claim 15, wherein the operations further comprise detecting the expanding contact region as a progression of motion as the touch input remains in contact with the touch-screen.