Various software components (e.g., drawing programs, paint programs, handwriting recognition systems) allow users to enter input in a freeform or freehand manner. These components typically allow input via pointing or tracking devices, including both variable-surface-area devices (e.g., mouse, trackball, pointing stick) and fixed-surface-area devices (e.g., touchpads). However, moving a pointer across a large screen requires many movements across the fixed-surface-area device, which is typically small. Also, the button on the device must typically be held down while the pointer is moved, which is difficult to do with one hand. Thus, the conventional fixed-surface-area device is cumbersome to use for freeform input.
Many aspects of the disclosure can be better understood with reference to the following drawings. The components in the drawings are not necessarily to scale, emphasis instead being placed upon clearly illustrating the principles of the present disclosure.
Display 130 is larger than touchpad 110, and comprises multiple adjacent areas. For ease of illustration,
In some embodiments, the transitions between states/input areas correspond to taps on the edges of touchpad 110. In other embodiments, the transitions between touchpad states correspond to key presses or to button clicks. In still other embodiments, the positioning of the input area is not limited to pre-defined portions. For example, a user may set the input area by double clicking in the center of touchpad 110, then draw a “box” around the desired input area, then double click in the middle again. This drawing of the box may be implemented by the touchpad driver alone or in conjunction with the display driver and/or window manager. Each of these user actions indicates a particular input area. Furthermore, at any point in time, the input area has a fixed size, which is either pre-defined or defined by the user when he sets the input area.
In one example embodiment, touchpad 110 begins in an initial state in which translation logic 490 maps positions on touchpad 110 to the top-left portion (140-1) of display 130. Translation logic 490 moves to a second state upon a double tap at the right edge (145-R) of touchpad 110, where in the second state translation logic 490 maps the positions of object 105 on touchpad 110 to the top-right portion (140-2) of display 130. Similarly, translation logic 490 maps the positions of object 105 on touchpad 110 to the bottom-left portion (140-3) of display 130 while in a third state, and maps to the bottom-right portion (140-4) while in a fourth state.
In some embodiments, this initial state is set through user configuration and/or an application configuration. In other embodiments, a user action such as a specific button click or key press sets the initial state to the center of that portion of display 130 which corresponds to the current position of pointer 125. In other words, adjacent input areas 140 are dynamically constructed by translation logic 490, centered on the current position of pointer 125.
Translation logic 490 operates so that in a given state, the correspondence between touchpad 110 and a particular display area 140 is absolute. That is, a particular relative position 150 on touchpad 110 always maps to an absolute position 155 within the display area 140 associated with the state, where this absolute position is always the same in a given state. If object 105 loses contact with touchpad 110 (e.g., the user lifts his finger) and moves to another position, the mapping performed by translation logic 490 is dependent on the new position and on the touchpad state, but not on the position of pointer 125. This mapping behavior is referred to herein as a “freeform mode” of translation logic 490, since it may be particularly useful for users who are drawing or writing freehand.
In contrast to the freeform mode provided by translation logic 490, a conventional touchpad does consider the position of the pointer when mapping. Moving from the top center of the conventional touchpad to the bottom center does not always result in a pointer that moves from the top center of the screen to the bottom center of the screen. Instead, the pointer moves down (from relative top to relative bottom) from the initial pointer position, wherever that is.
In some embodiments, translation logic 490 also supports this conventional touchpad behavior with a second (“conventional”) mode. In these embodiments, translation logic 490 switches between modes in response to a user action (e.g., a specific key press or button click). In some embodiments, a single user action puts translation logic 490 into freeform mode and also centers the initial input area around the current position of pointer 125 (as described above). In some embodiments, a single user action puts translation logic 490 into freeform mode, centers the initial input area around the current position of pointer 125, and enables the click lock option (described above).
References are made herein to the movement of pointer 125 on display 130 as a result of movement of object 105 across touchpad 110. However, a person of ordinary skill in the art should understand that neither touchpad 110 itself nor the device driver for touchpad 110 draws the pointer on display 130. Instead, touchpad 110 in combination with the device driver for touchpad 110 reports position or position information for object 105, and the operating system, window manager, display driver, or combinations thereof, draw pointer 125 accordingly.
In the example shown in
In other embodiments, the size of display areas 140 is different than the size of touchpad 110, so translation logic 490 uses scaling during the translation. The scaling may be linear or non-linear, as long as the same scale is used.
Some embodiments of translation logic 490 support user-initiated transitions such as those described above (e.g., taps on touchpad 110, key presses, button clicks). In some embodiments of translation logic 490, transitions occur automatically upon an indication of a new input area. In one embodiment, the indication corresponds to user input approaching the edge of a display area 140. For example, translation logic 490 may automatically transition to the next display area to the right as user input approaches the right edge of the current input area. When the right-most area has been reached, translation logic 490 may transition automatically to the left-most display area that is below the current area. Such an embodiment may be useful when the user is entering text which will be recognized through handwriting recognition software.
Various implementation options are available for this automatic transition. These options can be implemented in software, for example in the touchpad driver alone or in conjunction with the display driver and/or window manager. In one embodiment, after the drawing eclipses an adjustable boundary on the edge of touchpad 110, software automatically transitions to the next area when contact with the touchpad 110 is lost (e.g., user lifted his finger or stylus). Delays may be introduced in the transition so that actions such as dotting the letter ‘i’ are not treated as a transition. Some embodiments allow the user to enable and disable the automatic transition feature, and to configure the adjustable boundary and/or the delay may be user configurable.
In another embodiment, the automatic transition occurs whenever contact with the touchpad 110 is lost. With this option, there is no hand movement across touchpad 110 while writing, just character entry in touchpad area. Such embodiments may scale the size of the window on display 130 to the size of the characters that were being entered, so that the characters do not look unusual because they are spaced too far apart.
In the embodiment of
Translation logic 490 can be implemented in software, hardware, or a combination thereof. In some embodiments, translation logic 490 is implemented in hardware, including, but not limited to, a programmable logic device (PLD), programmable gate array (PGA), field programmable gate array (FPGA), an application-specific integrated circuit (ASIC), a system on chip (SoC), and a system in package (SiP). In some embodiments, translation logic 490 is implemented in software that is stored in a memory and that is executed by a suitable microprocessor, network processor, or microcontroller situated in a computing device.
Memory 420 contains instructions which, when executed by processor 410, implement translation logic 490. Software components residing in memory 420 include application 450, window manager 460, operating system 470, touchpad device driver 490, and translation logic 490. Although translation logic 490 is shown here as being part of device driver 490, translation logic 490 can also be implemented in another software component, or in firmware that resides in touchpad 110.
Translation logic 490 can be embodied in any computer-readable medium for use by or in connection with an instruction execution system, apparatus, or device. Such instruction execution systems include any computer-based system, processor-containing system, or other system that can fetch and execute the instructions from the instruction execution system. In the context of this disclosure, a “computer-readable medium” can be any means that can contain, store, communicate, propagate, or transport the program for use by, or in connection with, the instruction execution system. The computer readable medium can be, for example but not limited to, a system or propagation medium that is based on electronic, magnetic, optical, electromagnetic, infrared, or semiconductor technology.
Specific examples of a computer-readable medium using electronic technology would include (but are not limited to) the following: an electrical connection (electronic) having one or more wires; a random access memory (RAM); a read-only memory (ROM); an erasable programmable read-only memory (EPROM or Flash memory). A specific example using magnetic technology includes (but is not limited to) a portable computer diskette. Specific examples using optical technology include (but are not limited to) an optical fiber and a portable compact disk read-only memory (CD-ROM).
The flow charts herein provide examples of the operation of translation logic 490, according to embodiments disclosed herein. Alternatively, these diagrams may be viewed as depicting actions of an example of a method implemented in translation logic 490. Blocks in these diagrams represent procedures, functions, modules, or portions of code which include one or more executable instructions for implementing logical functions or steps in the process. Alternate embodiments are also included within the scope of the disclosure. In these alternate embodiments, functions may be executed out of order from that shown or discussed, including substantially concurrently or in reverse order, depending on the functionality involved. Not all steps are required in all embodiments.
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/US08/56480 | 3/11/2008 | WO | 00 | 2/22/2011 |