1. Field of Art
The disclosure generally relates to user interfaces for touch screens and in particular to user interface for modifying numeric values using a touch screen.
2. Description of the Related Art
User interfaces typically provide mechanisms that allow users to enter or modify data, for example, numeric values. Conventional examples of mechanisms provided by user interfaces for entering data include text-input fields that allow a user to enter values using a keyboard. The user types in the specific value of each character or digit of the data being entered. Some user interfaces allow specification of data values using a drop down list of values. For example, user interfaces may allow a user to enter a date using a drop down list for each of the month, day, and year.
These user interfaces typically require a peripheral device, for example, a mouse or a keyboard to allow the user to enter data. However, several client devices provide a touch screen and may not have a hardware keyboard or mouse. For example, tablets and smartphones offered by several vendors do not provide a hardware keyboard or mouse with the device. For these devices, a user enters or modifies data or values using the touch screen rather than a peripheral device such as keyboard and mouse.
Some applications for touch screen devices provide a simulated keyboard that allows the user to enter values using the touch screen. For example,
Systems, methods, and computer program products allow entry or modification of numeric values using a touch screen. A user selects a first digit of a numeric value. The user further provides a touch input having a direction and a magnitude for selecting a second digit of the numeric value. The position of the second digit with respect to the first digit is selected based on the direction and magnitude of the touch input. The user provides a second touch input having a direction and a magnitude for modifying the second digit. The value of the second digit is modified based on the direction and magnitude of the second touch input.
In an embodiment, the numeric value is displayed having an orientation on the touch screen. The direction of the first touch input has at least a component parallel to the orientation of the numeric value. The direction of the second touch input has at least a component perpendicular to the orientation of the numeric value. For example, if the numeric value is displayed horizontally, the first touch input has a horizontal component and the second touch input has a vertical component.
If the first digit is either the most significant digit or the least significant digit of the numeric value, the second digit may be introduced as a new digit adjacent to the first digit. If the numeric value is an integer without a decimal point and the first digit is the least significant digit of the numeric value, a decimal point may be introduced between the first digit and the second digit. In an embodiment, the new digit introduced has zero value that may be subsequently modified using the second touch input.
The features and advantages described in the specification are not all inclusive and, in particular, many additional features and advantages will be apparent to one of ordinary skill in the art in view of the drawings, specification, and claims. Moreover, it should be noted that the language used in the specification has been principally selected for readability and instructional purposes, and may not have been selected to delineate or circumscribe the disclosed subject matter.
The disclosed embodiments have other advantages and features which will be more readily apparent from the detailed description, the appended claims, and the accompanying figures (or drawings). A brief introduction to the figures is below.
Reference will now be made in detail to several embodiments, examples of which are illustrated in the accompanying figures. It is noted that wherever practicable similar or like reference numbers may be used in the figures and may indicate similar or like functionality. The figures depict embodiments of the disclosed system (or method) for purposes of illustration only. One skilled in the art will readily recognize from the following description that alternative embodiments of the structures and methods illustrated herein may be employed without departing from the principles described herein.
An application may allow a user to read and modify data values stored in the data store 205 by displaying them on the touch screen 225. The application may modify values stored in the memory of the device, for example, random access memory (RAM) or other form of volatile memory. An application may add new values to the data store 205 or modify values previously stored in the data store 205. The data store 205 in one embodiment is implemented using a hard disk drive but can also be implemented using any other device capable of storing data, such as a writeable compact disc (CD) or DVD, or a solid state memory device, for example a flash memory. In other embodiments, the data store 205 may represent RAM.
The data and the information necessary for rendering the data are provided by the data renderer 215 to the input/output driver 220. The input/output driver 220 provides the touch screen 225 with instructions and data necessary for displaying data and/or images. In various embodiments, the touch screen 225 is used to input data and/or commands. For example, a touch sensitive screen can sense the coordinates of the portion of the screen touched by a user. The user may touch the touch screen 225, for example, to select a user interface element, for example, a key of a simulated keyboard. Alternatively, the user may touch the touch screen 225 to select a data element from a list of data elements displayed on the screen. The input/output driver 220 sends the data or instructions provided by the touch screen 225 causing the data stored in the data store 205 to be modified or new data added to the data store 205. In an embodiment, the input/output driver 220 invokes a numeric processor to determine changes to a numeric value to be displayed. The software modules executing on the device that cause changes to numeric values displayed in response to the user input are also referred to herein as the system. For example, a reference to the system modifying a numeric value displayed corresponds to a module modifying the numeric value displayed. The module that causes numeric values displayed to change may be the input/output driver 200 or any other module, for example, a numeric value processing module. In an embodiment, the numeric values displayed may be modified by applications, for example, the user interface of an application. The application may invoke the numeric value processing module to perform the required action.
To modify a particular digit value, the user provides an input to select the digit value. For example, the user may touch a particular digit value or tap on a digit value to select it.
In one embodiment, when the user stops touching the screen, for example, subsequent to invoking the above process for modifying a selected digit, the system displays the selected digit similar to other digits of the numeric value. However, the system stores the position of the selected digit so that the selected digit acts as a basis for a subsequent user input. For example, if the user provides the touch input to select a new digit, the previously selected digit becomes a starting point for determining the next digit. Similarly, if the user provides touch input to modify a selected value, the previously selected value gets modified. The selection of the digit remains active until the user explicitly selects another digit or until more than a threshold time has passed.
As shown in
The amount by which the system changes the selected value may depend on the magnitude of the user input. For example, if a user swipes a larger distance, the system changes the selected digit by a larger amount as compared to small swiping motion by the user. For example,
In one embodiment, the system does not modify the digit value once the digit value reaches the maximum digit value, i.e., nine, in response to user input that causes the selected digit to increase beyond the maximum value, for example, by using a long swiping motion or by continuing to swipe even after the digit value has reached nine. Similarly, the system does not modify the digit value if it reaches the smallest possible value, i.e., zero and the user provides input that attempts to cause the selected digit to decrease below zero. The maximum or minimum digit value depends on the radix value of the numeric system being used, for example, for a hexadecimal system, the maximum digit value is F and minimum digit value is 0.
In other embodiments, the system wraps around the selected digit and continues to modify the value responsive to user input even if the digit reaches the maximum or the minimum digit value. For example, if the digit value is increased until it reaches nine and the user continues attempting to increase the value, the system wraps around the digit value from nine to zero and continues to change the digit value based on the user input. Similarly, if the user input attempts to cause the system to decrease the selected digit value to a value below zero, the system wraps around the digit value from zero to nine and then continues decreasing the digit value from nine depending on the user input.
The relative position of the new selection of the digit with respect to the previous selection of the digit depends on the direction of the touch input. For example, a leftward direction of the swiping motion causes the system to select a digit to the left of the previous digit and a rightward swiping motion causes the system to select a digit to the right of the previous digit.
In an embodiment, the distance between the new selection of digit and the previous selection of digit depends on the magnitude of the touch input. The distance between two digits may be measured in terms of the number of digits between the two digits. If a user provides a small swiping motion, the system selects a digit near the previous selection of digit whereas if a user provides a longer swiping motion, the system selects a digit further from the previous selection of digit.
In another embodiment, the system adds a single zero responsive to the user input. However, if the user provides a second user input, the system adds a second zero to the left of the first zero. Accordingly, the user can repeatedly provide user input to cause the system to add as many zeros to the left of the most significant digit as desired. The user may select the left most zero and then cause the system to change the value.
As illustrated in
In another embodiment, responsive to the user attempting to decrease the value of the new digit that occupies the most significant digit position, the system changes the numeric value to a negative value. In this situation, instead of the most significant digit value wrapping around, the system changes the digit value from zero to one and keeps increasing the digit value. However, since the overall numeric value is changed to be negative, this corresponds to the overall numeric value decreasing, i.e., increasing magnitude of a negative number.
As illustrated in
In some embodiments, the numeric value may be configured not to change from integer to a floating point value. In these embodiments, the swiping motion 380f to the right causes the system to add one or more zeroes to the right of the least significant digit without introducing a decimal point. For every zero digit that is added to the right of the least significant digit, the system increases the overall numeric value by a power of ten.
The user can select any digit in a given numeric value and provide touch input causing the system to modify the selected value.
In some embodiments, the user input causes the system to change a digit's value independent of the other digit values. For example, even if a digit value is modified causing the value to wrap around, the system does not change the digit adjacent to the selected digit.
The system checks 1020 if the first touch input is directed toward left. If the first touch input is directed towards left, the system selects 1030 a second digit to the left of the first digit. If the first touch input is not directed towards left, i.e., the first touch input is directed towards right, the system selects 1040 a second digit to the right of the first digit. If necessary, a new digit may be added to left or right of the numeric value and then selected 1030, 1040.
A second touch input is received that is substantially in a vertical direction. The second touch input has a direction and a magnitude. As mentioned above, if the numeric value has an orientation different from horizontal, the second touch input must have a substantial component perpendicular to the direction of orientation of the numeric value. The system checks 1060 if the second touch input is directed upwards. If the second touch input is directed upwards (or a preconfigured direction with respect to the orientation of the numeric value), the second digit value is increased 1070 based on the magnitude of the second touch input. If the second touch input is not directed upwards, i.e., it is directed downwards, the second digit value is decreased 1080 based on the magnitude of the second touch input. The second digit value may wrap around if it is increased beyond the maximum digit possible, i.e., nine, or if it is decreased below the minimum digit possible, i.e., zero. In an embodiment, the modification of the second digit causes the digit values adjacent to the second digit and to the left of the second digit to be modified 1090. The modification of digit adjacent to the second digit may trigger modification of subsequent digits to the left of each modified digit. This may ultimately result in a new digit being added adjacent to the most significant digit or the most significant digit being removed.
In one embodiment, the user selects one of the displayed digits and provides a user input that causes the system to zero out all digits that are less-significant than the selected digit. For example, the user may touch a digit displayed on the screen to select the digit and then provide a shake input. In another embodiment, the shake input itself is performed on a digit, thereby combining the step of selecting and shaking in a single operation, i.e., the shake operation. The user input, for example, the shake input causes the system to change the value of each digit that is less-significant than the selected digit to zero.
For example, if the numeric value displayed is 42356 and the user selects digit 2 and provides the user input, the system changes the numeric value to 42000 since 3, 5, and 6 are digits that are less significant that digit 2 in 42356. These embodiments allow the user to remove clutter in a numeric value by reducing less-significant digits to zero without having to change the values of the digits to zero one by one.
As an example, the user input provided for zeroing out all less significant digit is a shake. For example, the user may select the digit and shake the digit up and down. The shake input may be provided by the user by rapidly moving the users finger on a touch screen or by rapidly moving a pointing device back and forth, i.e., in a first direction followed by a second direction opposite the first direction and repeating the movement in rapid succession. In an embodiment, the shake input is along a direction that is approximately perpendicular to the orientation of the numeric value as displayed on the screen. That is, the shake input is along a direction that has at least a component along the direction perpendicular to the orientation of the numeric value as displayed on the screen.
In another embodiment, the user input associated with a selection of a digit causes the system to round off the numeric value at the selected digit. For example, if the input numeric value is 42998 and the user shakes the digit 2, the system changes the numeric value to 43000. Accordingly, the selected digit is rounded off to the nearest value based on the value of the less-significant digits. In an embodiment, if the value of the less-significant digit adjacent to the selected digit is greater than or equal to 5, the system increases the value of the selected digit by one responsive to the shake input as all less-significant digits are zeroed out. On the other hand, if the value of the less-significant digit adjacent to the selected digit is less than 5, the system keeps the value of the selected digit the same responsive to the shake input as all less-significant digits are zeroed out.
The functionality of rounding off a numeric value may be provided along with the other functionality described herein. This is ensured by associating each particular type of user input in a given context with a unique functionality. In an embodiment, the type of user input used to zero out digits may be configurable. Accordingly, a user may configure the system to use any user input that is not being used for another purpose for zeroing out digits in a number.
Embodiments disclosed herein allow numeric values to be added or modified using touch screens. However, the techniques disclosed can be applied to other types of data values, for example, alphanumeric values. Although examples disclosed herein display numbers having a radix ten, the techniques disclosed apply to other types of numeric values, for example hexadecimal, binary, octal or any other representation of numeric value that uses positional significance of digits. The techniques disclosed herein apply to any system of representing data values that applies positional significance to individual characters representing a data value. If a system represents data values such that the most significant digit value is the rightmost digit, the least significant digit value is the leftmost digit, and the positional significance decreases as one goes from right to left within a data value, the techniques disclosed herein can be applied with appropriate modification of the effects of user inputs as may be necessary. For example, a left swiping motion may result in addition of a decimal point to the left of the data value, if the system allows such a representation. Similarly, increasing or decreasing a selected digit value may cause digits to the right of the selected digit to be affected.
It is to be understood that the Figures and descriptions of the present invention have been simplified to illustrate elements that are relevant for a clear understanding of the present invention, while eliminating, for the purpose of clarity, many other elements found in a typical system that allows modification of numeric values. Those of ordinary skill in the art may recognize that other elements and/or steps are desirable and/or required in implementing the present invention. However, because such elements and steps are well known in the art, and because they do not facilitate a better understanding of the present invention, a discussion of such elements and steps is not provided herein. The disclosure herein is directed to all such variations and modifications to such elements and methods known to those skilled in the art.
Some portions of above description describe the embodiments in terms of algorithms and symbolic representations of operations on information. These algorithmic descriptions and representations are commonly used by those skilled in the data processing arts to convey the substance of their work effectively to others skilled in the art. These operations, while described functionally, computationally, or logically, are understood to be implemented by computer programs or equivalent electrical circuits, microcode, or the like. Furthermore, it has also proven convenient at times, to refer to these arrangements of operations as modules, without loss of generality. The described operations and their associated modules may be embodied in software, firmware, hardware, or any combinations thereof.
As used herein any reference to “one embodiment” or “an embodiment” means that a particular element, feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment. The appearances of the phrase “in one embodiment” in various places in the specification are not necessarily all referring to the same embodiment.
Some embodiments may be described using the expression “coupled” and “connected” along with their derivatives. It should be understood that these terms are not intended as synonyms for each other. For example, some embodiments may be described using the term “connected” to indicate that two or more elements are in direct physical or electrical contact with each other. In another example, some embodiments may be described using the term “coupled” to indicate that two or more elements are in direct physical or electrical contact. The term “coupled,” however, may also mean that two or more elements are not in direct contact with each other, but yet still co-operate or interact with each other. The embodiments are not limited in this context.
As used herein, the terms “comprises,” “comprising,” “includes,” “including,” “has,” “having” or any other variation thereof, are intended to cover a non-exclusive inclusion. For example, a process, method, article, or apparatus that comprises a list of elements is not necessarily limited to only those elements but may include other elements not expressly listed or inherent to such process, method, article, or apparatus. Further, unless expressly stated to the contrary, “or” refers to an inclusive or and not to an exclusive or. For example, a condition A or B is satisfied by any one of the following: A is true (or present) and B is false (or not present), A is false (or not present) and B is true (or present), and both A and B are true (or present).
In addition, use of the “a” or “an” are employed to describe elements and components of the embodiments herein. This is done merely for convenience and to give a general sense of the invention. This description should be read to include one or at least one and the singular also includes the plural unless it is obvious that it is meant otherwise.
Upon reading this disclosure, those of skill in the art will appreciate still additional alternative structural and functional designs for a system and a process for entering or modifying numeric values through the disclosed principles herein. Thus, while particular embodiments and applications have been illustrated and described, it is to be understood that the disclosed embodiments are not limited to the precise construction and components disclosed herein. Various modifications, changes and variations, which will be apparent to those skilled in the art, may be made in the arrangement, operation and details of the method and apparatus disclosed herein without departing from the spirit and scope defined in the appended claims.