DYNAMICALLY CHANGE BETWEEN INPUT MODES BASED ON USER INPUT

A system and machine-implemented method for automatically changing between input modes based on user input includes receiving user input in association with a user interface element, the user input comprising an input type and an input gesture. A determination is made whether the input type is a first input type or a second input type. In a case where the input type is the first input type, a determination is made that the input gesture is a first predetermined gesture, and the user interface is switched from a second input mode to a first input mode. In a case where the input type is the second input type, a determination is made that the input gesture is a second predetermined gesture, and the user interface is switched from the first mode to the second mode.

BACKGROUND

The present disclosure generally relates to user input and, in particular, to automatically changing between input modes based on user input.

User interfaces (UIs) can be optimized for signals of a particular input (e.g., mouse, touchscreen, stylus, etc.). For example, a tabstrip of a web browser UI may be optimized for the use of mouse input. Alternatively, the tabstrip may be optimized for the use of touch input.

SUMMARY

The disclosed subject matter relates to a computer-implemented method for automatically changing between input modes based on user input. The method comprises receiving user input in association with a user interface element, the user input comprising an input type and an input gesture, and determining whether the input type is a first input type or a second input type. The method further comprises, in a case where the input type is the first input type, determining that the input gesture is a first predetermined gesture, and switching, in response to determining that the input gesture is the first predetermined gesture, the user interface from a second input mode to a first input mode. In addition, the method comprises, in a case where the input type is the second input type, determining that the input gesture is a second predetermined gesture, and switching, in response to determining that the input gesture is the second predetermined gesture, the user interface from the first mode to the second mode.

The disclosed subject matter further relates to a system for automatically changing between input modes for a user interface. The system comprises one or more processors, and a machine-readable medium comprising instructions stored therein, which when executed by the processors, cause the processors to perform operations comprising receiving user input in association with a user interface element of the user interface, the user input comprising an input type and an input gesture, and determining whether the input type is a first input type or a second input type. The operations further comprise, in a case where the input type is the first input type, determining that the input gesture is a first predetermined gesture, and switching, in response to determining that the input gesture is the first predetermined gesture, the user interface from a second input mode to a first input mode. In addition, the operations comprise, in a case where the input type is the second input type, determining that the input gesture is a second predetermined gesture, and switching, in response to determining that the input gesture is the second predetermined gesture, the user interface from the first mode to the second mode.

The disclosed subject matter also relates to a machine-readable medium comprising instructions stored therein, which when executed by a system, cause the system to perform operations comprising receiving user input in association with a user interface element, the user input comprising an input type and an input gesture. The operations further comprise determining that the input type is a first input type, and determining, in response to determining that the input type is the first input type, that the input gesture is a predetermined gesture. In addition, the operations comprise switching, in response to determining that the input gesture is the predetermined gesture, the user interface from a second input mode to a first input mode.

DETAILED DESCRIPTION

As noted above, user interfaces (UIs) are generally optimized for signals of a particular input (e.g., mouse, touchscreen, stylus, etc.). For example, a tabbed interface of a web browser UI may be optimized for using a mouse as an input device. Since a mouse provides more precise movement than alternate inputs such as a touchscreen, the tabbed interface in the web browser may shrink tabs corresponding to web pages that are not currently being viewed. Thus, if a user switches to a different input, such as a touchscreen, during the same session, the user may experience inconveniences in navigating on the web browser UI optimized for mouse use. While providing a settings function for toggling between different UIs may address this issue, having to manually change the settings may interrupt the user's workflow/fluidity. Thus, it may be desirable to implement a system that automatically changes between input modes of a UI based on certain user inputs.

The subject disclosure provides for automatically changing between input modes based on user input. User input is received in association with a user interface element (e.g., a tabbed interface of a web browser or other application). The user input includes an input type (e.g., mouse input or touch input) and an input gesture. In example aspects, the user interface element is configured to display in a first input mode for a first input type (e.g., for a tabbed interface, a shrink mode for mouse input) and in a second input mode for a second input type (e.g., a stack mode for touch input).

A determination is made whether the input type is the first input type or the second input type. In a case where the input type is the first input type (e.g., mouse input), a determination is made that the input gesture is a first predetermined gesture, and, in response to determining that the input gesture is the first predetermined gesture (e.g., mouse movement into and out of the tabbed interface, or a mouseclick selecting one tab from the one or more tabs of the tabbed interface), the user interface switches from the second input mode to the first input mode. In a case where the input type is the second input type (e.g., touch input), a determination is made that the input gesture is a second predetermined gesture (e.g., a touch input selecting one tab from the one or more tabs of the tabbed interface), and, in response to determining that the input gesture is the second predetermined gesture, the user interface switches from the first mode to the second mode.

FIG. 1illustrates an example network environment which can provide for automatically changing between input modes based on user input. A network environment100includes a number of electronic devices102-106communicably connected to a server110by a network108. Each of electronic devices102-106can include a touchscreen, which can be built into the device itself or can be electronically connected to the device (e.g., as a peripheral device). Server110includes a processing device112and a data store114. Processing device112executes computer instructions stored in data store114, for example, to provide content (e.g., a website or other display content) to any of electronic devices102-106.

Electronic devices102-106can be mobile devices (e.g., smartphones, tablet computers, PDAs, and laptop computers), portable media players, desktop computers or other appropriate computing devices. In the example ofFIG. 1, electronic device102is depicted as a smartphone, electronic device104is depicted as a desktop computer, and electronic device106is depicted as a tablet computer.

In some example aspects, any of the electronic devices102-106may obtain application data (e.g., web page data), and content (e.g., images, video, text, links) corresponding to the application data can be displayed on a touchscreen of the electronic device (e.g.,102-106). In some example aspects, the content can be transmitted from server110via the network108to the electronic devices102-106. In other example aspects, the content can be stored in a storage component (e.g., hard disk, RAM, ROM, etc.) of the respective electronic devices102-106.

Any of electronic devices102-106can receive user input in association with a user interface element (e.g., a tabbed interface of a web browser or other application). The user input includes an input type (e.g., mouse or touch input) and an input gesture. In example aspects, the user interface element is configured to display in a first input mode for a first input type and in a second input mode for a second input type. The electronic device (e.g., any of102-106) determines whether the input type is the first input type or the second input type. In a case where the input type is the first input type, the electronic device can determine that the input gesture is a first predetermined gesture, and switch, in response to determining that the input gesture is the first predetermined gesture, the user interface from the second input mode to the first input mode. In a case where the input type is the second input type, the electronic device can determine that the input gesture is a second predetermined gesture, and switch, in response to determining that the input gesture is the second predetermined gesture, the user interface from the first mode to the second mode.

Server110may be any system or device having a processor, a memory, and communications capability for providing content to the electronic devices. In some example aspects, server110can be a single computing device such as a computer server. In other embodiments, server110can represent more than one computing device working together to perform the actions of a server computer (e.g., cloud computing).

Network108can include, for example, any one or more of a cellular network, a satellite network, a personal area network (PAN), a local area network (LAN), a wide area network (WAN), a broadband network (BBN), the Internet, and the like. Further, the network108can include, but is not limited to, any one or more of the following network topologies, including a bus network, a star network, a ring network, a mesh network, a star-bus network, tree or hierarchical network, and the like.

FIG. 2illustrates an example of a tabbed interface displayed in a shrink mode, which is configured for a first input type. Application200includes a tabbed interface202. Application200can correspond to any application which uses a tabbed interface including, but not limited to, a web browser or other web application, a text editor, a word processor, a software development kit or a preference pane.

Tabbed interface202allows multiple documents to be contained within a single window (e.g., within application200), using tabs as a navigational widget for switching between different documents. In the example of FIG.2., tabbed interface202includes tabs204a-2041, where each of tabs204a-2041is associated with a different document (e.g., different web pages for a web browser). In example aspects, tabbed interface202is a tabstrip in which tabs204a-2041are displayed in a strip fashion. However, tabbed interface202is not limited to a tabstrip and other arrangements for tabs204a-2041can be used.

In tabbed interface202, tabs204a-2041are displayed in a shrink mode. As used herein, “shrink mode” corresponds to its plain and ordinary meaning, including but not limited to a display mode for a tabbed interface in which tabs are continuously shrunk as new tabs are added. In example aspects, tabs displayed in the shrink mode correspond to a first input type, such as mouse, trackball, pen or stylus input. For example, since input via a mouse, trackball, pen or stylus can be more precise than touch input or trackpad input, the continuous shrinking of tabs may be manageable for a user. Display of tabs in the shrink mode can be compared to display of tabs in the stack mode, which is described in greater detail with reference toFIG. 3.

As seen in the example ofFIG. 2, tabs204a-2041are generally equal in size. For example, the tabbed portion of tab204ais approximately the same size as the tabbed portions for each of tabs204b-2041. If a user adds a new tab using new tab interface206, all of tabs204a-2041are shrunk. A new tab is added with a tabbed portion approximately equal in size to those for tabs204a-2041, and the new tab can become the active tab.

FIG. 3illustrates an example of a tabbed interface displayed in a stack mode, which is configured for a second input type. Application300includes a tabbed interface302. Application300can correspond to any application which uses a tabbed interface including, but not limited to, a web browser or other web application, a text editor, a word processor, a software development kit or a preference pane.

Tabbed interface302allows multiple documents to be contained within a single window (e.g., within application300), using tabs as a navigational widget for switching between different documents. In the example of FIG.3., tabbed interface302includes tabs304a-304l, where each of tabs304a-304lis associated with a different document (e.g., different web pages for a web browser). In example aspects, tabbed interface302is a tabstrip in which tabs304a-304lare displayed in a strip fashion. However, tabbed interface302is not limited to a tabstrip and other arrangements for tabs304a-304lcan be used.

In tabbed interface302, tabs304a-304lare displayed in a stack mode. As used herein, “stack mode” corresponds to its plain and ordinary meaning, including but not limited to a display mode for a tabbed interface in which tabs are continuously shrunk until reaching a preset size, and after reaching the preset size, one or more stacked regions of tabs are formed. In example aspects, tabs displayed in the stack mode correspond to a second input type, such as touch or trackpad input. For example, since input via touch or a trackpad may not be as precise as input via a mouse, trackball, pen or stylus, the use of stacked regions may be more manageable for a user.

In the example ofFIG. 3, a first stacked region is formed for tabs304a-304d, and a second stacked region is formed for tabs304i-304l. In addition, tabs304e-304hare not part of a stacked region and have tabbed portions which are approximately equal in size to each other. Further, if a user adds a new tab using new tab interface306, the new tab becomes the active tab, and tabs304a-304lcan be arranged to include one or more stacked regions.

FIGS. 4A-4Billustrate an example of a tabbed interface switching from a stack mode to a shrink mode in response to a gesture of the first input type. The subject disclosure provides for switching between first and second input modes (e.g., the shrink mode for mouse, and the stack mode for touch input). In the example ofFIGS. 4A-4B, tabbed interface402of application400switches from a stack mode to a shrink mode in response to a selection (e.g., mouseclick) of a tab within tabbed region402.

For example, a user can move a cursor408(e.g., via mouse input) within tabbed interface402, and can further select a tab within a stacked region. In the example ofFIGS. 4A-4B, a first stacked region is formed for tabs304a-304dand a second stacked region is formed for tabs304i-304l. Further, the user selects tab404iby moving cursor408to tab404iand clicking on tab404i.

In response to detecting the selection of tab404i, tabbed interface402switches from the stack mode shown inFIG. 4Ato the shrink mode shown inFIG. 4B.FIG. 4Bfurther illustrates that in the shrink mode, the active tab is tab404i, corresponding to the tab selected by the user via cursor408inFIG. 4A.

In example aspects, tabbed interface402switches from the stack mode to the shrink mode only in the case where cursor408selects a tab within a stacked region (e.g., within tabs304a-304dor within304i-304l). Alternatively, it is possible for tabbed interface402to switch from the stack mode to the shrink mode when any tab (e.g., any of tabs304a-304l) is selected.

It should be noted that the selection of a tab within tabbed interface402is not limited to mouse input via cursor408. In example aspects, the selection of a tab within tabbed interface402via mouse, trackball, pen or stylus can cause tabbed interface402to switch from the stack mode to the shrink mode.

FIGS. 5A-5Billustrate another example of a tabbed interface switching from a stack mode to a shrink mode in response to a gesture of the first input type. The subject disclosure provides for switching between first and second input modes (e.g., the shrink mode for mouse, and the stack mode for touch input). In the example ofFIGS. 5A-5B, tabbed interface502of application500switches from a stack mode to a shrink mode in response to movement (e.g., mouse movement) into and out of tabbed interface502.

As seen by the dotted line inFIG. 5A, a user moves a cursor508(e.g., via mouse input) within tabbed interface502and subsequently out of tabbed interface502. In response to this movement into and out of tabbed interface502, tabbed interface502switches from the stack mode shown inFIG. 5Ato the shrink mode shown inFIG. 5B.FIG. 5Bfurther illustrates that in the shrink mode, the active tab is tab504e, corresponding to the tab which was previously active inFIG. 5A, prior to switching from the stack mode to the shrink mode.

It should be noted that the movement into and subsequently out of tabbed interface502is not limited mouse input via cursor508. In example aspects, such movement within tabbed interface502via mouse, trackball, pen or stylus can cause tabbed interface502to switch from the stack mode to the shrink mode.

FIGS. 6A-6Billustrate an example of a tabbed interface switching from a shrink mode to a stack mode in response to a gesture of the second input type.FIGS. 6A-6Billustrate an example of a tabbed interface switching from a shrink mode to a stack mode in response to a gesture of a second input type. The subject disclosure provides for switching between first and second input modes (e.g., the stack mode for touch input, and the shrink mode for mouse input). In the example ofFIGS. 6A-6B, tabbed interface602of application600switches from a shrink mode to a stack mode in response to a selection (e.g., touch input) of a tab within tabbed region602.

For example, a user can use his/her finger608within tabbed interface602, and can further select a tab in tab interface602via touch input. In response to detecting the selection of tab604e, tabbed interface602switches from the shrink mode shown inFIG. 6Ato the stack mode shown inFIG. 6B.FIG. 6Bfurther illustrates that in the stack mode, the active tab is tab604e, corresponding to the tab selected by the user via finger408inFIG. 6A.

It should be noted that the selection of a tab within tabbed interface602is not limited touch input (e.g., via finger608). In example aspects, the selection of a tab within tabbed interface602via touch or trackpad input can cause tabbed interface602to switch from the shrink mode to the stack mode.

FIG. 7illustrates an example process by which input modes are automatically changed based on user input. Following start block702, user input is received in association with a user interface element at step704. The user input comprises an input type and an input gesture. In example aspects, the user interface element is configured to display in a first input mode for a first input type and in a second input mode for a second input type. The user interface element can be a tabbed interface comprising one or more tabs.

At step706, a determination is made whether the input type is the first input type or the second input type. The first input type can correspond to mouse input, trackball input, pen input or stylus input. The second input type can correspond to touch input or trackpad input.

At step708, in a case where the input type is the first input type, a determination is made that the input gesture is a first predetermined gesture, and in response to determining that the input gesture is the first predetermined gesture, the user interface is switched from the second input mode to the first input mode.

In the example where the user interface element is the tabbed interface, the first predetermined gesture can be movement into and out of the tabbed interface. Alternatively, or in addition, the first predetermined gesture can be selection of one tab from the one or more tabs of the tabbed interface.

The first input mode can be a shrink mode, such that when new tabs are added to the tabbed interface, tabs of the tabbed interface are continuously shrunk. In addition, the second input mode can be a stack mode, such that when new tabs are added to the tabbed interface, tabs are continuously shrunk until reaching a preset size, and tabs are stacked after reaching the preset size.

At step710, in a case where the input type is the second input type, a determination is made that the input gesture is a second predetermined gesture, and in response to determining that the input gesture is the second predetermined gesture, the user interface is switched from the first mode to the second mode. In the example where the user interface element is the tabbed interface, the second predetermined gesture can be selection of one tab from the one or more tabs of the tabbed interface. The process then ends at end block712.

Although the foregoing examples describe switching of input modes as they relate to tabbed interfaces, the subject technology is not limited to tabbed interfaces. Rather, the subject technology can be employed for other user interface elements, such that the user interface elements adapt to one of multiple potential input types (e.g., mouse, trackball, pen, stylus, touch and/or trackpad input).

For example, a user interface element can switch from a touch-optimized mode to a mouse-optimized mode upon detection of a first predetermined gesture entered via mouse input. In another example, the user interface element can switch from a mouse-optimized mode to a touch-optimized mode upon detection of a second predetermined gesture (e.g., which can be similar or different than the first predetermined gesture) entered via touch input.

FIG. 8conceptually illustrates an example electronic system with which some implementations of the subject technology can be implemented. Electronic system800can be a computer, phone, PDA, or any other sort of electronic device. Such an electronic system includes various types of computer readable media and interfaces for various other types of computer readable media. Electronic system800includes a bus808, processing unit(s)812, a system memory804, a read-only memory (ROM)810, a permanent storage device802, an input device interface814, an output device interface806, and a network interface816.

Bus808collectively represents all system, peripheral, and chipset buses that communicatively connect the numerous internal devices of electronic system800. For instance, bus808communicatively connects processing unit(s)812with ROM810, system memory804, and permanent storage device802.

ROM810stores static data and instructions that are needed by processing unit(s)812and other modules of the electronic system. Permanent storage device802, on the other hand, is a read-and-write memory device. This device is a non-volatile memory unit that stores instructions and data even when electronic system800is off. Some implementations of the subject disclosure use a mass-storage device (for example, a magnetic or optical disk and its corresponding disk drive) as permanent storage device802.

Other implementations use a removable storage device (for example, a floppy disk, flash drive, and its corresponding disk drive) as permanent storage device802. Like permanent storage device802, system memory804is a read-and-write memory device. However, unlike storage device802, system memory804is a volatile read-and-write memory, such a random access memory. System memory804stores some of the instructions and data that the processor needs at runtime. In some implementations, the processes of the subject disclosure are stored in system memory804, permanent storage device802, or ROM810. For example, the various memory units include instructions for changing between input modes in accordance with some implementations. From these various memory units, processing unit(s)812retrieves instructions to execute and data to process in order to execute the processes of some implementations.

Bus808also connects to input and output device interfaces814and806. Input device interface814enables the user to communicate information and select commands to the electronic system. Input devices used with input device interface814include, for example, alphanumeric keyboards and pointing devices (also called “cursor control devices”). Output device interfaces806enables, for example, the display of images generated by the electronic system800. Output devices used with output device interface806include, for example, printers and display devices, for example, cathode ray tubes (CRT) or liquid crystal displays (LCD). Some implementations include devices, for example, a touchscreen that functions as both input and output devices.

Finally, as shown inFIG. 8, bus808also couples electronic system800to a network (not shown) through a network interface816. In this manner, the computer can be a part of a network of computers (for example, a local area network (“LAN”), a wide area network (“WAN”), or an Intranet, or a network of networks, for example, the Internet. Any or all components of electronic system800can be used in conjunction with the subject disclosure.