U.S. patent application number 13/644863 was filed with the patent office on 2013-01-31 for system for a text speller.
This patent application is currently assigned to HARMAN INTERNATIONAL INDUSTRIES, INCORPORATED. The applicant listed for this patent is HARMAN INTERNATIONAL INDUSTRIES, INCOR. Invention is credited to Jeffrey A. Millington.
Application Number | 20130031505 13/644863 |
Document ID | / |
Family ID | 40229843 |
Filed Date | 2013-01-31 |
United States Patent
Application |
20130031505 |
Kind Code |
A1 |
Millington; Jeffrey A. |
January 31, 2013 |
SYSTEM FOR A TEXT SPELLER
Abstract
An apparatus may generate a text entry with a user interface.
The apparatus may include a display, a user input device, a memory
and a processor. The apparatus may display single character user
input controls and multi-character user input controls on the
display. Each of the single character user input controls and the
multi-character user input controls may be buttons selectable with
the user input device. A single character user input control may
correspond to a single character and a multi-character user input
control may correspond to a group of characters. The apparatus may
display one of the multi-character user input controls in a display
region and other user input controls outside of the display region.
If the multi-character user input control is selected, the
apparatus may replace the multi-character user input control with a
second set of single character user input controls in an expanded
display region.
Inventors: |
Millington; Jeffrey A.;
(Rochester Hills, MI) |
|
Applicant: |
Name |
City |
State |
Country |
Type |
HARMAN INTERNATIONAL INDUSTRIES, INCOR; |
Stamford |
CT |
US |
|
|
Assignee: |
HARMAN INTERNATIONAL INDUSTRIES,
INCORPORATED
Stamford
CT
|
Family ID: |
40229843 |
Appl. No.: |
13/644863 |
Filed: |
October 4, 2012 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
12131682 |
Jun 2, 2008 |
8296676 |
|
|
13644863 |
|
|
|
|
60980117 |
Oct 15, 2007 |
|
|
|
Current U.S.
Class: |
715/780 |
Current CPC
Class: |
G06F 3/0237 20130101;
G06F 3/0236 20130101; G06F 3/04886 20130101; G06F 3/0233 20130101;
G01C 21/3611 20130101 |
Class at
Publication: |
715/780 |
International
Class: |
G06F 3/048 20060101
G06F003/048 |
Claims
1. A system to generate a text entry with a user interface, the
system comprising: a display; a user input device; a recent entries
database; a memory; and a processor in communication with the
memory, the display, the user input device and the recent entries
database, where instructions encoded in the memory are executable
with the processor to: generate the text entry in response to
receipt of a plurality of selection signals from the user input
device, where at least one of the selection signals is indicative
of a selection of a single character user input control
corresponding to a beginning character, and the text entry
comprises the beginning character; store the text entry in the
recent entries database; and receive recent entries from the recent
entries database, where each of the recent entries start with the
beginning character.
2. The system of claim 1, where the processor is operable to:
direct display of at least one of the recent entries in response to
receipt of the at least one of the selection signals.
3. The system of claim 1, where the recent entries received from
the recent entries database are based on a speller type, the
speller type indicative of the type of information included in the
text entry.
4. The system of claim 1, where the recent entries received from
the recent entries database are based on an identity of a user of
the system.
5. The system of claim 1, where the processor is operable to:
direct display on the display of a value indicative of a numerical
count of the recent entries associated with the text entry.
6. The system of claim 1, where the processor is further operable
to: direct display on the display of the beginning character and
any remaining characters of one of the recent entries, where the
beginning character is displayed differently than the any remaining
characters.
7. The system of claim 1, where the recent entries received from
the recent entries database are based on a context and the context
is indicative of a relationship between information included in the
text entry and information included in other text entries.
8. A method for generating a text entry with a user interface, the
method comprising: generating a beginning character of the text
entry with a processor in response to selection of a single
character user input control corresponding to the beginning
character; receiving recent entries with the processor from a
recent entries database, where each of the recent entries starts
with the beginning character and represents an entry that was
completed within a predetermined period of time of a current time;
and generating the text entry with the processor in response to a
selection of one of the recent entries received from the recent
entries database.
9. The method of claim 8 further comprising causing display of a
recent entry that is included in the recent entries received from
the recent entries database.
10. The method of claim 8 further comprising limiting the recent
entries received from the recent entries database based on a
speller type, the speller type indicative of a type of information
included in the text entry.
11. The method of claim 8 further comprising limiting the recent
entries received from the recent entries database based on an
identity of a user.
12. The method of claim 8 further comprising displaying a value
indicative of a numerical count of the recent entries received from
the recent entries database.
13. The method of claim 8 further comprising displaying the
beginning character and any remaining characters of one of the
recent entries, where the beginning character is displayed
differently than the any remaining characters.
14. The method of claim 8 further comprising limiting the recent
entries received from the recent entries database based on a
context, where the context comprises information about an entry
entered by a user that is of a type different than a type of the
text entry.
15. A computer readable storage medium comprising instructions
executable with a processor to: generate a portion of a text entry
in response to selection of a user input control corresponding to a
beginning character, and the portion of the text entry comprises
the beginning character; receive recent entries from a recent
entries database, where each of the recent entries starts with the
beginning character and represents an entry that was entered within
a predetermined period of time of a current time; and cause any
characters on any of a plurality of user input controls that match
any character immediately following the beginning character in any
of the recent entries to be displayed differently than any
characters on the user input controls that fail to match any
character immediately following the beginning character in any of
the recent entries, where the user input controls are selectable to
spell out the text entry.
16. The computer readable storage medium of claim 15, where the
computer readable storage medium further comprises instructions
executable with the processor to generate the text entry in
response to a selection of one of the recent entries received from
the recent entries database.
17. The computer readable storage medium of claim 15, wherein any
characters on any of the user input controls that match any
character immediately following the beginning character in any of
the recent entries are bolded, and any characters on the user input
controls that fail to match any character immediately following the
beginning character in any of the recent entries are not
bolded.
18. The computer readable storage medium of claim 15, where the
user input controls comprise a single character user input control
and a multi-character user input control.
19. The computer readable storage medium of claim 15, where the
computer readable storage medium further comprises instructions
executable with the processor to limit the recent entries received
from the recent entries database to entries entered by a user that
entered the beginning character.
20. The computer readable storage medium of claim 15, where the
computer readable storage medium further comprises instructions
executable with the processor to limit the recent entries received
from the recent entries database based on a context, where the
context comprises information about an entry entered by a user that
is of a type different than a type of the text entry.
Description
PRIORITY CLAIM
[0001] This application is a divisional application of, and claims
priority under 35 U.S.C. .sctn.120 to, U.S. patent application Ser.
No. 12/131,682, "SYSTEM FOR A TEXT SPELLER" filed Jun. 2, 2008, the
entire contents of which are incorporated by reference, which
claims priority to U.S. Provisional Application No. 60/980,117,
filed Oct. 15, 2007, the entire contents of which is incorporated
by reference.
BACKGROUND OF THE INVENTION
[0002] 1. Technical Field
[0003] This invention relates generally to user interfaces and,
more particularly, to a text speller in a user interface such as in
a vehicle navigation system.
[0004] 2. Related Art
[0005] Most electronic systems and devices include a user interface
to not only provide information to users of these systems, but also
to receive user commands and other inputs to such systems. Such
user interfaces can include a display screen in combination with
one or more user input devices, such as buttons, knobs, or
joysticks. User input devices may also include touch screen display
capability, cursor control devices such as a mouse, microphones and
voice responsiveness capability, and other mechanisms and systems
that provide a communication path to exchange data between users
and such systems. Examples of such electronic devices and systems
include stationary devices such as automated teller bank machines
and airline flight check in kiosks, and mobile devices such as PDAs
(personal digital assistants), mobile phones, and vehicle passenger
entertainment systems. Vehicle entertainment systems can include
audio systems, mobile communication systems and vehicle navigation
systems, for example.
SUMMARY
[0006] An apparatus may generate a text entry with a user
interface. The apparatus may include a display, a user input
device, a memory and a processor. The apparatus may display user
input controls on the display. The user input controls may include
single character user input controls and multi-character user input
controls. The single character user input controls and the
multi-character user input controls may be buttons selectable with
the user input device. A single character user input control may
correspond to a single character and a multi-character user input
control may correspond to a group of characters. The apparatus may
display one of the multi-character user input controls in a display
region and other user input controls in other display regions. If
the multi-character user input control is selected, the apparatus
may replace the multi-character user input control with a set of
single character user input controls in an expanded display region.
The expanded display region may include the display region. If a
single character user input control is selected, a character
corresponding to the selected single character user input control
is added to a text entry.
[0007] An interesting feature of one example of the apparatus
simplifies entering of information by tracking recent entries based
on a speller type. The speller type may be an indication of the
type of information that the apparatus is to obtain from a user.
Examples of speller types may include a city type, a state type, a
street address type, and a person's name type. The apparatus may
progressively narrow the list of recent entries of that speller
type as the user enters new characters with the apparatus.
[0008] A method of displaying user input controls may operate by
displaying at least one of the user input controls in separate
display regions. Each of the display regions may correspond to a
character group formed from selectable characters. The user input
controls may include a multi-character user input control, which is
displayed in one of the display regions. If a user selects the
multi-character user input control, the operation may continue by
displaying single character user input controls in the display
region instead of the multi-character user input control.
Displaying the single character user input controls may include
resizing the display region and shifting the position of at least
one of the other display regions in order to accommodate the
resized display region.
[0009] If the user selects one of the single character user input
controls, the operation continues by adding a character that
corresponds to the selected single character user input control to
a text entry. The operation may include displaying a visual
indication on the multi-character input control that indicates what
characters are included in a group of characters corresponding to
the multi-character user input control.
[0010] Other systems, methods, features and advantages will be, or
will become, apparent to one with skill in the art upon examination
of the following figures and detailed description. It is intended
that all such additional systems, methods, features and advantages
be included within this description, be within the scope of the
invention, and be protected by the following claims.
BRIEF DESCRIPTION OF THE DRAWINGS
[0011] The system may be better understood with reference to the
following drawings and description. The components in the figures
are not necessarily to scale, emphasis instead being placed upon
illustrating the principles of the invention.
[0012] FIG. 1 illustrates an example of an apparatus that includes
a text speller module.
[0013] FIG. 2 illustrates an example of an audio system, such as an
audio system in a vehicle that includes the text speller
module.
[0014] FIG. 3 illustrates an example of the text speller module in
interaction with other code modules in a system.
[0015] FIG. 4 illustrates an example display screen of an example
first user interface generated with the text speller module of
FIGS. 1-3.
[0016] FIG. 5 illustrates an example display screen of an example
second user interface generated with the text speller module of
FIGS. 1-3.
[0017] FIG. 6 illustrates an example display screen of an example
user interface that permits entry of numbers.
[0018] FIG. 7 illustrates an example display screen of an example
third user interface generated with the text speller module of
FIGS. 1-3.
[0019] FIG. 8 illustrates an example display screen of an example
fourth user interface generated with the text speller module of
FIGS. 1-3.
[0020] FIG. 9 illustrates an example dialog box superimposed on the
example display screen of FIG. 8.
[0021] FIG. 10 illustrates an example display screen of an example
fifth user interface generated with the text speller module of
FIGS. 1-3.
[0022] FIG. 11 illustrates an example display screen of an example
sixth user interface generated with the text speller module of
FIGS. 1-3.
[0023] FIG. 12 illustrates a flow diagram illustrating a first
example operation of the text speller module of FIGS. 1-3 to obtain
a text entry using user input controls displayed on a display.
[0024] FIG. 13 illustrates a flow diagram illustrating a second
example operation of the text speller module of FIGS. 1-3 to obtain
a text entry using user input controls displayed on a display.
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0025] FIG. 1 illustrates an example of an apparatus that is
computing device 100 (CD) that includes a text speller module. The
CD 100 may be a personal computer (PC), a portable global
positioning system, a cell phone, a personal digital assistant, an
MPEG player or any other device or system capable of executing
instructions, software code, or otherwise performing logic. The CD
100 may also use the text speller module 118 to obtain a text entry
from a user for any purpose, such as entering a contact name, a
song name, a destination street name, or any other desired
entry.
[0026] The CD 100 includes at least a display 106, a processor 102,
and memory 104. The processor 102 may be any form of
microprocessor, analog or digital, capable of executing
instructions or code. The memory 104 may be any form of data
storage mechanism accessible by the processor 102 or any
combination of such forms, such as, a magnetic media, an optical
disk, a random access memory (RAM), a flash memory, or an
electrically erasable programmable read-only memory (EEPROM). The
display 106 should be broadly construed to include any device
operable to convert electrical signals into information presented
to the user in some visually perceivable form, such as a liquid
crystal display ("LCD"), a cathode-ray tube ("CRT") display, an
electroluminescent display ("ELD"), a heads-up display ("HUD"), a
plasma display panel ("PDP"), or a vacuum fluorescent display
("VFD"). The display 106 is coupled to the processor 102. A device
may be coupled to another device if electrical signals may be
transmitted between the two devices using one or more electrical
connections, optical connections, or any other type of connections
now known or later discovered that are capable of transmitting a
signal. A device in communication with another device may be
coupled to each other.
[0027] The memory 104 may include computer code. The processor 102
is operable to execute the computer code stored in the memory 104.
The computer code may include the text speller module 118.
[0028] The CD 100 may also include a user input device 110 that is
coupled to the processor 102. The input device may be a wheel
button, a joystick, a keypad, a touch-screen configuration or any
other device or mechanism capable of receiving an input from a user
and providing such an input as an input signal. Code stored in the
memory 104 may receive such an input signal from the user input
device. In one example, the display 106 may be configured as a
touch-screen display that provides user input by converting contact
with the surface of the display 106 into electrical signals
readable or receivable by the processor 102.
[0029] In another example, the text speller module 118 may display
a cursor on the display 106. The cursor may be directed by the user
with a joystick, or some other device or mechanism. When the user
directs the cursor to move over a button drawn on the display 106
and selects the button, such as by clicking a joystick button, the
text speller module 118 may be provided a signal indicative of the
selection, and behave as it would if the user contacted the screen
of display 106 proximate to the button drawn on a display, where
the display is a touch-screen display.
[0030] FIG. 2 illustrates an example of an apparatus that is an
audio system, such as an audio system in a vehicle that includes a
text speller module 218. In other examples, the text speller module
218 may be included in any other form of computing device or system
and that use of the text speller module 218 in an audio system, or
an audio system for a vehicle should not be construed as limiting
the scope of application of the text speller module 218 to only
certain systems, devices, or applications. To the contrary, the
text speller module 218 may be used in any system, device, or
application where user input of any form of characters is
desired.
[0031] The example audio system may include a head unit 200, a
display 206, an amplifier 220, loudspeakers 222, a microphone 226,
a user input device 228, a wireless device 230, a USB device 232, a
bus 234, an audio source 235, and other vehicle systems 236. In
other examples, the audio system may include fewer or greater
amounts of functionality and/or features, devices, and systems that
provide or support provision of audio and/or visual inputs and/or
outputs to a user. The head unit 200 may be coupled to the display
206 and the amplifier 220. The amplifier 220 may be coupled to the
loudspeakers 222. The head unit 200 may communicate through the bus
234 to the other vehicle systems 236. The other vehicle systems 236
of this example may include vehicle speed, number of passengers, or
any other operational related vehicle parameters available from
various systems included in the vehicle that are capable of
communication on the bus 234. The display 206 may be, for example,
a touch-screen display that provides user input by converting
contact with the surface of the display into electrical signals. In
other examples, the display 206 may be any other form of display.
The display 206 should be broadly construed to include a device
operable to convert electrical signals into information presented
to the user in some form, such as CRTs, LCDs, and LEDs.
[0032] The head unit 200 may include an audio tuner 208 and a
navigation system unit 210. In other examples, the head unit 200
may include additional or fewer operational functionalities. The
audio tuner 208 and/or the navigation system unit 210 may be
external to the head unit 200 or internal to the head unit 200. The
head unit 200 may further include a processor 202 and a memory 204.
The processor 202 can be any form of processor, analog or digital,
such as one or more microprocessors and/or digital signal
processors (DSP). The memory 204 may be any form of data storage
mechanism accessible by the processor 202, such as, a magnetic
media, an optical disk, a random access memory (RAM), flash memory,
or electrically erasable programmable read-only memory (EEPROM).
The example navigation system unit 210 may include a geographic
positioning system (GPS) 240, a map database 242, and a gyroscope
244. In other examples, the navigation system 210 may include any
other location related functionality or information. The GPS 240
may determine the physical location of the head unit 200 using
information wirelessly transmitted from a satellite 224 and
received via antenna. Positioning information may also be available
from cellular towers, or other positioning constellations GLONASS
or Galileo. The map database 242 may be stored in the memory 204,
and/or may be stored external to the head unit 200. For example,
the map database 242 may be stored external to the vehicle, and may
be accessible wirelessly. In another example, the map database 242
may be stored internal to the vehicle or stored in two or more
databases that are internal and external to the vehicle.
[0033] The head unit 200 may interact with a user through external
devices in communication with the head unit 200 such as the display
206, microphone 226, user input device 228, wireless device 230,
USB device 232, other vehicle systems 236, and/or the combination
of the amplifier 220 and the loudspeakers 222. The user input
device 228 may be any electro-mechanical device, electro-optical
device, or any other type of device, now known or later discovered,
that is configured to convert user inputs into electrical signals
such as a mouse, joystick, trackball, camera, keyboard, keypad,
wireless device, or touch-screen display.
[0034] In one example, the processor 202 may be operable to execute
computer instructions embodied in code stored in the memory 204. In
other examples, the code may be stored external to the head unit
200, or external to the vehicle and be accessible to the processor
202 via a wired communication link, a wireless communication link,
or some combination of wireless and wired communication links. In
still other examples, portions of the code may be stored in the
memory 204 and other portions of the code may be stored external to
the memory 204. The code stored in the memory 204 may include the
text speller module 218. The code may also include a user interface
module 216, an audio system manager 212 and a navigation system
manager 214. In other examples, additional or fewer modules may be
included in the code. In addition, the number and description of
specific modules included in memory 204 are examples used to
describe the functionality and should not be construed as limiting
the configuration or functionality of the head unit 200. The audio
system manager 212 may control the audio tuner 208. The navigation
system manager 214 may control the navigation system unit 210.
[0035] During operation, the user interface module 216 may obtain
user input from any input device, such as the display 206, the
microphone 226, and/or the user input device 228. The user
interface module 216 may display information on the display 206.
The text speller module 218 may be a standalone separate module,
part of the user interface module 216, or included in one or more
other modules of the head unit 200. Code included in the head unit
200, may use the text speller module 212 to obtain an input from a
user. The text speller module 218 may communicate with the user
interface module 216 to obtain a user input and to display
information on the display 206.
[0036] FIG. 3 illustrates an example of a text speller module 318
in interaction with other code modules in a system. In this
example, the other modules include a requesting module 304 and a
user interface module 306. In other examples, depending on the
particular application in which the text speller module 318 is
deployed, any number of modules describing the functionality of the
system in which the text speller module 318 is operational may be
included. The code modules may also include a possible entries
database 308 and a recent entries database 302. The requesting
module 304 may be any code that receives an entry of data by a user
from the text speller module 318, such as a contact management
module and/or a navigation module. Any system may include multiple
requesting modules 304. The text speller module 318 may display
information and obtain information from a user via the user
interface module 306.
[0037] The possible entries database 308 may be any kind of
database. A database may be any electronic collection of
information that is organized so that it can be accessed, managed,
and updated, such as a Relational Database Management System
(RDBMS), an object-oriented database, an extensible markup language
database (XML), a file system, or a logical structure stored in
memory. The recent entries database 302 may also be any kind of
database. The recent entries database 302 and the possible entries
database 308 may be the same database or different databases.
[0038] During the operation of one example system, the requesting
module 304, prior to invoking the text speller module 318, may
obtain a list of possible entries from the possible entries
database 308. When the requesting module 304 invokes the text
speller module 318 to obtain a text entry, the requesting module
304 may pass the list of possible entries as an argument to a
subroutine of the text speller module 318. The text speller module
318 may subsequently use the list of possible entries, in
conjunction with a partial entry manually entered by a user, in an
effort to predict what the user would eventually manually enter.
The text speller module 318 may permit the user to select a
complete entry from the list of possible entries in lieu of
manually completing the partial entry.
[0039] In another example system, the text speller module 318 may
obtain a list of possible entries from the possible entries
database 308 after being invoked by the requesting module 304. In
one example, the requesting module 304 may pass a reference to a
callback subroutine as an argument when invoking the text speller
module 318. The text speller module 318 may invoke the callback
subroutine to obtain a list of possible entries. In a different
example, text speller module 318 may pass information manually
entered by a user as an argument to the callback subroutine to
restrict the list of possible entries returned by the callback
subroutine based on the information manually entered by the user.
These examples are merely illustrative examples and should not be
construed as limiting how the text speller module 318 obtains the
list of possible entries from the possible entries database
308.
[0040] The text speller module 318 may also obtain a list of recent
entries from the recent entries database 302. For example, the
requesting module 304 may pass a speller type as an argument to a
subroutine of the text speller module 318. A speller type is
defined as an indication of the type of data that the text speller
module 318 is to obtain from the user. The text speller module 318
may search the recent entries database 302 for a list of recent
complete entries made by the text speller module 318 corresponding
to the speller type. The text speller module 318 may combine the
list of recent entries, together with a partial entry manually
entered by a user, in an effort to predict what the user will
eventually manually enter. The text speller module 318 may permit
the user to select a complete entry from a list of recent entries
in lieu of manually completing the partial entry. This example is
merely an illustrative example and should not be construed to limit
how the text speller module 318 obtains the list of recent entries
from the recent entries database 302.
[0041] The list of recent entries may be restricted using other
information in addition to or instead of speller type. As a first
example, the list of recent entries may be restricted based on an
active database configuration of a navigation system unit. An
active database configuration may be a database containing data
specific to a geographic region such as a country. In one example
system, if a navigation system unit is currently physically located
in Canada, an active database configuration may be set to Canada.
The list of recent entries may be limited to entries that apply
only to Canada, excluding entries that apply to other geographic
regions. The text speller module 318, the requesting module 304,
code managing the recent entry database 302, or any other code may
perform this restriction.
[0042] As a second example, the list of recent entries may also be
restricted based on the user's context. For example, if a user is
to enter a destination address, the user may first enter a state
name, then a city name, and finally a street name. If the user is
entering the city name, the list of recent entries may be
restricted to only those items having cities located in the state
the user entered with the text speller module. If the user is
entering the street name, the list of recent entries may be
restricted to only those items having streets located in the city
and state the user just entered. In other examples, if the user is
entering the city name, the list of recent entries may be
restricted to only those items having cities located in the state
the user is currently physically located in. Restricting the list
of entries based on context may apply to any user context, such as:
restricting a list of recent entries to songs performed by an
artist whose name was just entered by the user or restricting a
list of recent entries to points of interest located in a city just
entered by the user. The text speller module 318, the requesting
module 304, code managing the recent entry database 302, or any
other code may perform this restriction.
[0043] As a third example, the list of recent entries may also be
restricted based on the current user. An example system may have
multiple users and be able to determine the current user. In such a
system, the list of recent entries may be restricted to only those
recent entries made by the current user.
[0044] After obtaining a complete entry of data from the user, the
text speller module 318 may store the complete entry, a text entry,
in the recent entries database 302 before returning the text entry
to the requesting module 304. In other examples, the requesting
module 304 may access the recent entries database 302 instead of
the text speller module 318: the requesting module 304 may pass any
list of recent entries to the text speller module 318, and the
requesting module 304 may store the text entry in the recent
entries database 302. In still other examples, any other module may
access the recent entries database 302.
[0045] A speller type may be defined as the type of data that the
text speller module 318 is to obtain from the user for a particular
requesting module 304. For example, a system might have a contact
address speller type and a destination address speller type, where
a contact manager module uses the contact address speller type, and
a navigation system manager module uses the destination address
speller type. A system may use more or less speller types depending
on how narrowly or broadly recent entries made by a user may
apply.
[0046] The speller type may be determined using any method. For
example, the text speller module 318 may accept the speller type as
an argument to a subroutine of the text speller module 318. In a
different example, the text speller module 318 may determine the
speller type. In some systems, a particular module may invoke a
system-level module to determine what subroutine included in what
module invoked that particular module. In such systems, the text
speller module 318 may invoke the system-level module to determine
what subroutine and module invoked the text speller module 318. The
text speller module 318 may then set the speller type to, for
example, a concatenation of the subroutine name and the name of the
requesting module 304.
[0047] Both the recent entries database 302 and the possible
entries database 308 may be used together during user entry to most
accurately predict what a user is entering. In still other
examples, the recent entries database 302 and the possible entries
database 308 may be used sequentially. In other examples, the
sequential order of use of the recent entries database 302 and the
possible entries database 308 may be a user preference setting that
is pre-stored, or is selected during manual entry by the user. In
yet other examples, the possible entries database 308 may be the
superset to the recent entries database 302.
[0048] The number of items stored in the recent entries database
302 may be limited to a predetermined amount. For example, the
predetermined amount may be hard coded, obtained from a user
preference setting, and/or determined dynamically based on
available storage space. The predetermined amount may
alternatively, or in addition, depend on the speller type.
[0049] One example of a requesting module 304 is the navigation
system manager 214 described with reference to FIG. 2. In this
example, the navigation system manager 214 may anticipate a user
entering information from a predetermined category of information,
such as a destination state name. For example, the navigation
system manager 214 may obtain a list of possible entries, which
includes a list of state names, from a map database 242 described
with reference to FIG. 2. The speller type in that example might be
a destination state name.
[0050] FIG. 4 illustrates an example display screen 401 of an
example first user interface generated with the text speller
modules of FIGS. 1-3. In some examples, the text speller module 318
(118 or 218) may display user input controls corresponding to
characters. The user input controls may be any user input controls
operable to receive a selection signal by a user, such as
<HREF> elements in HTML, buttons, and tabs. As used herein,
the term "character" or "characters" includes letters, numbers,
symbols, icons, logos, or any other visual representation that has
meaning to a user and/or a system in which the text speller module
is deployed. The user input controls may be single character user
input controls such as an "H" single character user input control
402 or an "I" single character user input control 404. The user
input controls may also be multi-character user input controls,
such as multi-character user input controls 406 and 408. A single
character user input control, 402 and 404, corresponds to a single
character. A multi-character user input control, 406 and 408,
corresponds to a group of characters. As used herein, the term
"selectable character" or "selectable characters" refers to any
character corresponding to any of the user input controls.
[0051] In some examples, the user interface may include a character
button pane 410 on which the text speller module 318 displays the
user input controls corresponding to the characters. The single
character user input controls, 402 and 404, may be displayed as a
collection of user input controls.
[0052] The text speller module 318 may also display a partial entry
412 in an entry field 414. The partial entry 412 includes
characters manually entered by a user during operation (or one or
more characters auto-filled by name completion). The entry field
414 is any user interface control operable to display text. In
other examples, the text speller module 318 may display a partial
entry 412 without the entry field 414. In still other examples, the
text speller module 318 may not display the partial entry 412.
[0053] During operation, if a user selects a single character user
input control, 402 or 404, a character corresponding to the single
character user input control, 402 or 404, selected by the user may
be concatenated to an end of the partial entry 412. The text
speller module may display a position cursor 416 to indicate the
end of the partial entry 412. The partial entry 412 may include a
beginning character 418 if the user has made any manual entry. As
the user sequentially selects the single character user input
controls, 402 and 404, the corresponding characters may be
sequentially added to the end of the partial entry 412 in order to
spell out a text entry that is being manually entered into the
entry field 414 by the user. The user may select a single character
user input control, 402 and 404, or a multi-character user input
control, 406 and 408, using any selection method now known or later
discovered, such as by contacting a touch-screen display, speaking
a command, or moving a cursor over the user input control with a
mouse, joystick or other maneuvering apparatus and pressing a
button on a user input device 110 (FIG. 1), such as a mouse button.
In some examples, the user may use a different selection method for
the single character user input control, 402 or 404, than the
multi-character user input control, 406 or 408.
[0054] Also during operation, the text speller module 318 may
display information received from an entries database. Depending on
the example, the entries database may be a possible entries
database 308 or a recent entries database 302, or both (FIG. 3).
For example, the text speller module 318 may display a first entry
420 of a list of possible entries received from the possible
entries database 308. In another example, the text speller module
318 may display a last entry 420 of the list of entries received
from the possible entries database 308. In yet another example, the
list of entries may be all entries stored in the possible entries
database 308 beginning with the partial entry 412. The first entry
420 may be displayed in the entry field 414, where the characters
not yet manually entered by the user are displayed differently than
the partial entry 412. A different text style may be used, such as
bold vs. plain face or italics vs. non italics. The text speller
module 318 may display a numerical count 422 of the entries in the
list of entries. Thus, as the user manually enters more characters
that are concatenated to the end of the partial entry 412, the
numerical count 422 may decrease and the first entry 420 may change
as the list of entries changes.
[0055] The text speller module 318 may also display a next user
input control 424. Selection of the next user input control 424
navigates to a new screen from which the user may select an entry
from the list of the possible entries, where the text entry is set
to the selected entry. In some examples, if the numerical count 422
is one, then selection of the next user input control 424 operates
to set the text entry to the first entry 420.
[0056] Similarly, a first item 420 from a list of recent entries,
received from the recent entries database 302 described in FIG. 3,
that begins with the partial entry 412 may be displayed. The
characters of the first item 420 not yet entered by the user are
displayed differently than the characters of the partial entry 412.
A different text style may be used such as bold vs. plain face or
italics vs. non italics. A total number of items 422 in the list of
recent entries that match the partial entry 412 may be displayed.
Selection of the next user input control 424 navigates to a new
screen from which the user may select an entry from the list of the
recent entries, where the text entry is set to the selected entry.
In some examples, if the numerical count 422 is one, then selection
of the next user input control 424 operates to set the text entry
to the first entry 420.
[0057] As discussed above, a single character user input control,
402 and 404, may correspond to a single character and a
multi-character user input control, 406 and 408, may correspond to
a group of characters. In FIG. 4, the selectable characters include
the letters of the English alphabet: "a", "b", "c", "d", "e", "f",
"g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s",
"t", "u" "v", "w", "x", "y", and "z". In this example, the groups
of characters may include a first group of letters "a" through "i",
a second group of letters "j" through "r", and a third group of
letters "s" through "z". Dividing the characters in such a manner
forms two groups of nine and one group of eight. In other examples,
the groups may be differently sized and there may be more or less
groups. In still other examples, a collection of numbers,
characters, words, or any other collection of characters may be
divided into groups.
[0058] A first group of characters 426 may be displayed on
corresponding single character user input controls, such as 402 and
404. The first group of characters 426 may be referred to as a
maximized group. The remaining groups may be displayed using
multi-character user input controls, such as 406 and 408. The
remaining groups may be referred to as minimized groups. The
characters included in the maximized group may be referred to as
maximized characters 430 and the characters included in the
minimized group may be identified as minimized characters 428. Any
algorithm may be used to determine which group of characters is
initially the maximized group. Alternatively, the group that is
initially the maximized group may be predetermined by user
preference or be hard coded. In still other examples, no group may
be initially maximized.
[0059] In one example, the characters 428 corresponding to the
multi-character user input control 406 may be displayed on the
multi-character user input control 406 using a smaller font size
than is used to display a character 430 on a single character user
input control 404. For example, in the example display screen 401,
the characters "J" through "R" in the English alphabet are
displayed on a first multi-character user input control 406 in a
font size smaller than the character "H," which corresponds to one
of the single character user input controls 402.
[0060] In other examples, any visual indication may be displayed on
each of the multi-character user input controls, 406 and 408, that
indicates what characters are included in a group corresponding to
each of the multi-character user input controls, 406 and 408. For
example, visual indication of the characters in the group
corresponding to the multi-character user input control 406 may be
displayed as a range of characters, such as "J-R."
[0061] The placement of the multi-character user input controls,
406 and 408, in relation to the single character user input
controls, 402 and 404, may suggest what characters correspond to
the multi-character user input controls, 406 and 408. For example,
placement may suggest the corresponding characters when the
characters that are divided into the groups have an order in a
predefined sequence. For example, the characters may have an order
in a predefined sequence where the characters from all of the
groups together form an alphabet and the alphabet has an alphabetic
order. In another example, the characters may have an order in a
predefined sequence where the characters are integers in ascending
or descending order. In yet another example, the characters may
have an order in a predefined sequence defined by a character set
encoding table, such as a code page.
[0062] Selectable characters may be sequentially consecutive
characters in the predefined sequence. Sequentially consecutive
characters are characters that follow each other in the predefined
sequence without skipping any characters. Alternatively, the
selectable characters may not be sequentially consecutive
characters in the predefined sequence.
[0063] Where the characters have an order in a predefined sequence,
the groups may have an order determined by the predetermined
sequence. For example, if each of the groups of characters includes
only sequentially consecutive characters in the predefined sequence
and no two groups have any characters in common, then each of the
groups may be ordered based on a relative position in the
predefined sequence of one of the characters of each of the groups.
In another example, the groups may be ordered based on the
predefined sequence where no two groups have any character in
common, each group has a lowest and highest character in the
predefined sequence, and no characters from the other groups fall
between the lowest and highest character of each group.
[0064] As an example of placement suggesting what characters
correspond to each of the multi-character user input controls, 406
and 408, consider FIG. 4. In FIG. 4, a first multi-character user
input control 406 is positioned immediately to the right of the
first group of characters 426 displayed on single character user
input controls, 402 and 404. Such a placement may suggest to the
user that the characters corresponding to the first multi-character
user input control 406 are the characters that sequentially follow
a character of the first group of characters 426 having the highest
order in the predefined sequence of the first group of characters
426. Placing a second multi-character user input control 408 to the
right of the first multi-character user input control 406 may
further suggest that the characters corresponding to the second
multi-character user input control 408 sequentially follow one or
more of the characters corresponding to the first multi-character
user input control 406.
[0065] During operation with respect to the display screen 401
shown in FIG. 4, a user may indicate a selection of a character
that belongs to a minimized group of characters corresponding to a
multi-character user input control 408 by selecting the
multi-character user input control 408. When a user selects one of
the multi-character user input controls, 406 or 408, the text
speller module 318 may internally identify the currently maximized
group as one of the minimized groups, and internally identify the
group of characters corresponding to the multi-character user input
control, 406 or 408, selected by the user as a new maximized group
of characters. The text speller module 318 may internally identify
a group in any manner that computer code may identify a data
structure, such as storing a reference to the data structure in a
programming variable or setting an attribute of the data structure
to a determined value.
[0066] FIG. 5 illustrates an example display screen 501 of an
example second user interface generated with the text speller
modules of FIGS. 1-3. In one example, the text speller module 318
may display the display screen 501 after a user selects one of the
multi-character user input controls 406 or 408 shown in FIG. 4. In
response to this selection, the text speller module 318 may display
the originally minimized group (i.e., the group of characters
corresponding to the selected multi-character character user input
control 406 or 408) as a second group of characters 526
corresponding to single character user input controls 502. The text
speller module 318 may display a single multi-character user input
control 528 corresponding to the originally maximized group of
characters 426. The text speller module 318 may display any of the
multi-character user input controls 406 that were not selected by
the user the same as before, such the multi-character user input
control 406 shown in FIG. 4 and the multi-character user input
control 506 shown in FIG. 5.
[0067] In another example, a user may be permitted by the text
speller module 318 to enter only those entries that belong to a
list of entries obtained from an entries database, such as a
possible entries database 308 or a recent entries database 302
(FIG. 3). In such an example, as the user selects characters by
selecting single character user input controls 502, the partial
entry 512 should match, at least partially, the entries in the list
of entries. Otherwise, at least in the case of a possible entries
database 308, the text speller module 318 would be permitting the
user to make entries that were not possible entries. Either an
entry may match the partial entry 512 exactly, or the entry may
have a next character that follows the last character of the
partial entry 512. A set of characters including the next character
of each of the entries may be a certain subset of the characters
corresponding to user input controls. Therefore, the text speller
module 318 may enable only single character user input controls 504
that belong to this certain subset of characters. For example, in
display screen 501, the "S" single character user input control 504
is enabled and the "Z" single character user input control 502 is
disabled, because the letter "S" matches at least one possible
entry.
[0068] In some examples, the text speller module 318 may disable a
multi-character user input control, 506 or 528, where no characters
of a group of characters corresponding to the multi-character user
input control belong to this certain subset of characters. As
discussed above, a user may indicate that he or she wants to enter
a character corresponding to a multi-character user input control
506 by selecting the multi-character user input control 506. If
that character is the only character corresponding to the
multi-character user input control 506 that belongs to this certain
subset of characters, the text speller module 318 may simply
concatenate that character to the partial entry 512, instead of
maximizing the group and displaying the corresponding single
character user input controls 502. Such behavior may be optional as
determined by a user preference, such as a pre-stored user
preference.
[0069] In another example, the behavior described for a list of
possible entries, may be implemented for a list of recent entries.
The behavior for a list of recent entries may be optional based on
a user preference, be implemented in lieu of the behavior for a
list of possible entries, or be operable in combination with the
behavior for a list of possible entries.
[0070] In another example, when a multi-character user input
control, 506 or 528, displays multiple characters thereon, the
characters corresponding to the multi-character user input control
506 or 528 that belong to this certain subset of characters may be
displayed differently than other characters on the same
multi-character user input control 506 and 528. For example in
display screen 501, an "O" character 530 on the multi-character
user input control 506 is displayed differently than the "J"
character 532. In other examples, if a user is permitted to enter
any character regardless of any list of possible entries or of
recent entries, the text speller module 318 may enable all of the
single character user input controls, 502 and 504, and
multi-character user input controls, 506 and 528, and simply
display this certain subset of characters differently than others
characters corresponding to the user input controls.
[0071] As illustrated in FIG. 5, a group of characters 526 may be
displayed on a grid of single character user input controls, 502
and 504. The grid may have three rows and three columns, or any
other number of rows and columns. In some examples, the same size
grid may be used to display any maximized group, regardless of the
number of characters in the group. In such examples, if the number
of characters in a particular group of characters is less than the
number of cells in the grid, a blank space may be displayed in, for
example, the lower-right corner of the grid. However, any other
arrangement of characters within the grid may be used. In other
examples, an arrangement other than a grid may be used to position
the single character user input controls, 502 and 504.
[0072] The text speller module 318 may display other user input
controls selectable to modify what characters are divided into
groups and displayed on corresponding single character user input
controls, 502 and 504, and multi-character user input controls, 506
and 528. For example, a user may select a number user input control
536 and the text speller module 318 may modify the characters from
letters to numbers as illustrated in FIG. 6. In another example, a
user may select a symbol user input control 538 and the text
speller module 318 may modify the characters from letters to
symbols, such as "$", "@", "!", etc. as illustrated in FIG. 11. In
still another example, a user may select an accent user input
control 540 and the text speller module 318 may modify the
characters from letters to accented characters as illustrated in
FIG. 10.
[0073] FIG. 6 illustrates an example display screen 601 of an
example user interface permitting entry of numbers. In FIG. 6,
integers "1" through "9" are displayed on corresponding single
character user input controls in a three by three grid, starting at
the top-left with "1", counting from left to right, and finishing
with "9" at the lower-right. Also in FIG. 6, on display screen 601,
integer "0" is displayed on a corresponding single character user
input control displayed to the left of the single character user
input control that corresponds to the integer "1." In other
examples, other arrangements may be used to display numbers, such
as in a three by four grid, a five by two grid, and a non-grid
arrangement.
[0074] Again, the text speller module 318 may display other user
input controls that are selectable to modify what characters are
divided into groups and displayed on corresponding user input
controls. For example, a user may select a letter user input
control 636 and the text speller module 318 may modify the
characters from numbers back to letters as illustrated in FIG. 5.
In other examples, additional or different user inputs controls may
be displayed that are selectable to modify what characters are
divided into groups and displayed on corresponding user input
controls.
[0075] FIG. 7 illustrates an example display screen 701 of an
example third user interface generated with the text speller module
of FIGS. 1-3. The text speller module 318 may use a recent user
input control 702 to display, and enable selection by a user, of
recent entries from the list of recent entries received from the
recent entries database 302 (FIG. 3). During operation, if a user
selects the recent user input control 702, the text speller module
318 may display a list of recent entries on the example display
screen 701 or on a different display screen. The user may then
select one of the items in the list of recent entries as his entry,
or may return to the example display screen 701 by selecting a
cancel user input control. In some examples, the text speller
module 318 may display a numerical count 704 of the list of recent
entries.
[0076] In different examples, the text speller module 318 may
display a numerical count 704 of the list of recent entries that
match the partial entry 712 made by the user so far. The user may
decide not to select recent user input control 702 if the user
considers the numerical count 704 to be too large. If no recent
entry in the list of recent entries matches the partial entry 712,
the text speller module 318 may disable the recent user input
control 702.
[0077] Display regions, 714, 716, and 718, contain user input
controls, 704, 706, and 708. Each display region is sized to
include one or more user input controls, 704, 706, and 708, that
correspond to selectable characters. Three display regions, 714,
716, and 718 are shown in the example display screen 701. Other
examples may have fewer or greater number of display regions. Each
of the display regions 716 and 718 may include a multi-character
user input control, 706 and 708. The display region 714 may include
a group of single character user input controls 704. Characters
included in a group that correspond to the display region may
remain the same regardless of which of the user input controls
included in the display regions is selected. In other examples, the
characters included in a group corresponding to one of the regions
may change based on a user selection.
[0078] FIG. 8 illustrates an example display screen 801 of an
example fourth user interface generated with the text speller
modules of FIGS. 1-3. In FIG. 8, the user may select a change case
user input control 802. In response to the selection of the change
case user input control 802, the text speller module 318 may change
the case of the characters displayed on single character user input
controls and multi-character user input controls.
[0079] Selection of an accent user input control 804 on the example
display screen 801 may change the characters displayed to other
characters, such as accented characters, as shown in FIG. 10.
Accented characters may be considered stylistic variations of
common characters. The available set of accented characters may
determined from any condition, such as current language and/or
territory settings, the character set used, and/or a set of
characters specific to the information to be entered.
[0080] Alternatively or in addition, the accented characters may be
accessed using a dialog box 901 as shown in FIG. 9. In FIG. 9, the
dialog box 901 is superimposed on the display screen 801 of FIG. 8.
In some examples, the dialog box 901 may be a modal dialog box that
is displayed over a portion of another display screen 801, where
the underlying display screen 801 is disabled. In other examples
all or some portion of the underlying display screen 801 may not be
disabled. Instead of transitioning to a screen that displays groups
of accented characters as illustrated in FIG. 10, a subset of the
accented characters may be displayed in the dialog box 901. The
subset of the accented characters may be a family of accented
characters 902. For example, the family of accented characters 902
may include accented characters that share a common root character
904, where the root character 904 has no accent mark. For example,
a family of characters including " ", " ", "A", " ", "A,", ".ANG.",
and "AE", may be said to have a root character 904 of "A". The root
character 904 may be displayed in the dialog box 901 along with the
other members of the family of characters 902. In other examples,
any other groupings or subsets of characters may be provided in one
or more dialog boxes 901. For example, the dialog box 901 may
display a subset of the alphabet, a subset that includes a mixture
of commonly used characters, such as numbers and letters, or any
other subset of characters.
[0081] Referring to FIGS. 8 and 9, a user may initiate generation
of the dialog box 901 by requesting the dialog box 901 during
operation. In one example, the user may request the dialog box 901
using a single character user input control 806 on a display
screen, such as display screen 801. The single character user input
control 806 may correspond to the root character of the subset of
characters included in the dialog box 901. For example, as
illustrated in display screen 801 and dialog box 901, a root
character 904 "A" may be selected to display a family of characters
902 related to the root character "A." A user may request the
dialog box 901 using a secondary selection mechanism of the single
character user input control 806, such as pressing and holding the
single character user input control 806 for a predetermined period
of time, moving a cursor over the single character user input
control 806 and clicking on a certain mouse button, selecting
another button while also selecting the single character user input
control 806, double-clicking the single character user input
control 806, or any other selection mechanism that is different
than simply selecting the single character user input control 806
with a primary selection mechanism.
[0082] The existence of a subset of characters, such as the
accented characters, related to a root character 904, such as the
letter "A," may be indicated with a visual indication 808 displayed
on or proximate to the single character user input control 806,
such as a plus sign as depicted in display screen 801. Any visual
indication 808 may be used, such as displaying a single character
user input control 806 with a unique color, using italics to
display the root character 904 on the single character user input
control 806, and outlining the single character user input control
806. In other examples, the text speller module 318 may not display
any visual indication 808.
[0083] Within the dialog box 901, single character user input
controls 908 that each correspond to a respective member of the
family of characters 902 may be selected by a user. Upon selection
of one of the single character user input controls 908, the text
speller module 318 may add the character corresponding to the
selected single character user input control 908 to a partial entry
906. In some examples, in response to selection of one of the
single character user input controls 908, the text speller module
318 may also dismiss the dialog box 901, and transition to the
underlying display screen, such as display screen 801.
Alternatively, or in addition, the text speller module 318 may
dismiss the dialog box 901 in response to selection of a close user
input control 910 by the user. In one example, the text speller
module 318 may dismiss the dialog box 901 without modifying the
partial entry 906 when the close user input control 910 is
selected. In another example, any character corresponding to a
single character user input control 908 selected in the dialog box
901 may be first added to the partial entry 906 by the text speller
module 318 in response to selection of the close user input control
910.
[0084] In yet another example, the dialog box 901 may be displayed
automatically if multiple accented or alternate characters are
available for a root character 904 and the user selects the single
character user input control 806 in the display screen 801
corresponding to the root character 904. Alternatively or in
addition, if the root character 904 is not available due to a list
of possible entries restriction and only one alternate character is
available, the text speller module 318 may display the alternate
character instead of the root letter on the single character user
input control 806 in the display screen 801.
[0085] FIG. 10 illustrates an example display screen 1001 of an
example fifth user interface generated with the text speller
modules of FIGS. 1-3. In one example, the characters displayed in
the display screen 1001 are accented characters. The accented
characters may be displayed on single character user input controls
1002 and on multi-character user input controls, 1006 and 1008.
[0086] FIG. 11 illustrates an example display screen 1101 of an
example sixth user interface generated with the text speller module
of FIGS. 1-3. In one example, the characters displayed in the
display screen 1101 are symbols, such as #, $, %, *, etc. The
symbols may be displayed on single character user input controls
1102 and on multi-character user input controls, 1106 and 1108.
[0087] FIG. 12 is a flow diagram illustrating a first example
operation of the text speller module of FIGS. 1-3 to obtain a text
entry using user input controls displayed on a display. More
specifically, FIG. 12 depicts operations related to selection of a
minimized group, selection of a character in a maximized group, and
selection of acceptance of a text entry. However, there are other
operations associated with obtaining a text entry using user input
controls drawn on a display not depicted or discussed. The user
input controls represent characters, where the characters are
divided into groups, as previously discussed. The characters may be
divided into any number of groups and the groups may be of any
size. Each of the groups may be substantially the same size as the
other groups. Alternatively, the groups may be different sizes. The
groups may be ordered in any manner such as by an associated
character set sequence, alphabetically, by frequency of use, or by
any combination thereof. In one example, where the characters are
the letters of the English alphabet, the letters may be divided
into three groups: a first group of characters "A"-"I," a second
group of characters "J"-"R," and a third group of characters
"S"-"Z."
[0088] In FIG. 12, at block 1202, the operation begins by
internally identifying one of the groups of characters as a
maximized group. Identification of the maximized group may include
starting with a first group as ordered alphabetically, with a first
group as ordered by a character set sequence, with a first group as
ordered by most frequently used, with a first group that is the
group that was last maximized, or with a randomly selected
group.
[0089] The operation may include internally identifying all other
groups as minimized groups. Alternatively, no group may be
maximized at the beginning. In another example, one group may be
initially maximized, but if, after no user input control is
selected for a predetermined period of time, the maximized group is
minimized.
[0090] Displaying the maximized group occurs at block 1204. Display
of the maximized group may include displaying a single character
user input control corresponding to each character in the maximized
group. Display of the maximized group may also include displaying
the single character user input controls in a determined pattern,
such as a three-by-three matrix. If the number of characters in the
group is less than the number of characters in the determined
pattern, the determined pattern may be automatically modified by
the text speller module to adjust the display of the maximized
group. For example, if the predetermined pattern is a
three-by-three matrix, and there are less than nine characters in
the group to be maximized, then displaying the single character
user input controls in a three-by-three matrix may include leaving
blank spaces in a predetermined location, such as in the
bottom-right portion of the matrix.
[0091] Minimized groups may be displayed at block 1206. Display of
the minimized groups may include displaying a multi-character user
input control corresponding to each of the minimized groups. The
multi-character user input control may be graphically represented
as a tab user interface element. In another example, the
multi-character user input controls may be graphically represented
as an overlapping set of cards.
[0092] Displaying a multi-character user input control may include
displaying a visual indication of each of the minimized groups on
corresponding multi-character user input controls, where the visual
indication indicates the characters that belong to each of the
minimized groups. For example, the visual indication may include
displaying all of the characters in the group on the user input
control, displaying the combination of the first character in the
group, a "-", and the last character in the group to indicate the
range of characters in the group, or any other form of visual
indication that provides the user with an indication of what
characters are included in the minimized group.
[0093] Displaying a multi-character user input control may include
positioning the multi-character user input control along a single
axis of the display. A matrix of single character user input
controls and one or more other multi-character user input controls
may also be positioned along the single axis. The single axis may
be at any angle, such as horizontal, vertical, or 45 degrees from
the horizontal. The multi-character user input control, the matrix
of single character user input controls, and other multi-character
user input controls may be ordered along the single axis in a
predetermined order. For example, each of the characters included
in all of the groups may be ordered in a predefined sequence, such
as an alphabetic sequence or in a sequence defined by a numerical
representation of each of the characters in a character set. The
predefined order may then be the order of each of the groups based
on a relative position, in the predefined sequence, of a beginning
character of each of the groups. In other examples, some of user
input controls may be displayed along two different axes.
[0094] As discussed, minimized groups may be displayed at block
1206. Displaying the minimized groups may include positioning the
multi-character user input controls and the single character user
input controls in a window that does not entirely fit within the
display. In addition, displaying the minimized groups may further
include permitting the user to alter the displayed portion of the
window by receipt of one or more user inputs. The user inputs could
be any method or mechanism that enables movement of the display to
depict the non-displayed portion of the window, such as scrolling
by selecting a blank portion of a scroll bar, clicking on and
dragging a scroll bar button, spinning a wheel button, or any other
user input that initiates adjustment of the position of the window
in the display.
[0095] Displaying the maximized group and displaying the minimized
group(s) may also include shifting non-critical items off screen to
provide more area for the expanded group. For example, this may
include shifting graphical elements, such as title area text like
"Input Street Name", off of the display screen while the group is
maximized. In addition to shifting graphical elements off of the
display screen, displaying the maximized group may also include
shifting up other graphical elements, such as an entry field, to
take the location of the shifted graphical elements. After a
character is selected, the operation may include minimizing the
group and shifting the shifted graphical elements back onto the
display screen and/or any other items that moved.
[0096] If a character group changes status from minimized to
maximized or from maximized to minimized, animation transitions may
be used to graphically emphasize the transition. The type of
animation used may be configurable by the user.
[0097] At block 1208, a signal indicating a user input is received
by the text speller module. The user input may be received via the
user interface module from any form of one or more user input
devices such as contact with a touch screen of the display, a key
press, a mouse move, a button click, a voice command, or any other
user input capable of providing an electric signal to the text
speller module.
[0098] At block 1210, the text speller module determines whether
the user input signal indicates user selection of a minimized
group. The determination may include any manner of checking whether
the user input signal is a multi-character signal. For example, the
determination may include checking for a contact on the display
screen above a corresponding multi-character user input control, a
hardware key press on the device, a mouse move over the
multi-character user input control, or any other mechanism for
selecting a currently minimized group to be maximized.
[0099] If a multi-character signal is received from the user input
device, then the group of characters corresponding to the
multi-character user input control is a selected group of
characters. In response to receipt of the multi-character signal,
the currently maximized group (if available) is identified as one
of the minimized groups at block 1212. At block 1214, the operation
continues by internally identifying the selected group of
characters as the maximized group. The operation returns to block
1204 to display the maximized group.
[0100] Alternatively, at block 1210, if the input signal received
from the user input device is not a multi-character signal, the
operation continues at block 1216 by checking whether whether a
single character signal was received from the user input device.
Receipt of the single character signal may be indicative of the
user input device selecting one of the single character user input
controls. The receipt of the single character signal may indicate
the user's desire to select a character in the currently maximized
group of characters. Such a selection may occur by user contact
with a touch screen on an associated single character user input
control, a key press, a mouse move over the associated single
character user input control in combination with a mouse button
click, a voice command, or any other mechanism for selecting a
single character user input control.
[0101] If, at block 1216, the single character signal was received,
the operation continues at block 1218 by adding the selected
character to a text entry. Adding the selected character to a text
entry may include simply adding the character to a text entry or
setting the text entry to the selected character if the text entry
is not yet set to any value. The operation then returns to block
1204 to display the maximized group.
[0102] If, at block 1216, the single character signal was not
received, the operation continues at block 1220 where it is
determined if the user input indicates the user's desire to accept
the text entry. Such a user input may be initiated by a touch
screen contact with an accept user input control, a key press on
the device, a voice command, or any other any other mechanism for
selection of acceptance of a current text entry. If the user input
is not determined to be acceptance of a current text entry, the
operation determines the user command embodied in the signal and
returns to block 1204 to display a maximized group. If the user
input is determined to be acceptance of a current text entry, at
block 1222, the text speller module returns the text entry to the
application in which the text speller module is operating and the
operation ends.
[0103] FIG. 13 is a flow diagram illustrating a second example
operation of the text speller module of FIGS. 1-3 to obtain a text
entry using user input controls displayed on a display. The
operation may begin at block 1302, by displaying at least one user
input control in different display regions of the display. Each of
the display regions may be positioned and sized to include the at
least one of the user input controls. Each of the display regions
may correspond to a group of characters formed from selectable
characters. The user input controls may include a multi-character
user input control, which is displayed in one of the display
regions that corresponds to one of the groups.
[0104] At block 1304, the operation may continue by checking for
receipt of a multi-character signal from a user input device, where
the multi-character signal is indicative of the user input device
selecting the multi-character user input control. If the
multi-character user input control was not selected at block 1304,
the operation may continue, at block 1312, to check for selection
of a single character user input control. Alternatively, if the
multi-character user input control was selected at block 1304, the
operation may continue at block 1306 by displaying single character
user input controls in the display region instead of the
multi-character user input control. The single character user input
controls correspond to the characters included in the group
corresponding to the multi-character user input control.
[0105] The operation may proceed at block 1308 by resizing the
display region to a new size, where the display region is sized to
include the single character user input controls. Furthermore, the
operation may proceed at block 1310 by shifting the position of at
least one of the display regions other than the display region in
order to accommodate the new size of the display region.
[0106] At block 1312, the operation continues by checking for
selection of a single character user input control. The single
character user input control corresponds to a selected
character.
[0107] If, at block 1312, the single character user input control
was selected, the operation may continue at block 1314 by adding
the selected character to the text entry. The second example
operation then completes. Alternatively, if the single character
user input control was not selected, then the second example
operation completes without adding the selected character to the
text entry.
[0108] Using relatively large buttons may make a text speller
easier to use. Users with large fingers tend to favor larger
buttons. Large letters may be displayed on large buttons. Users
with poor eyesight may find reading large letters easier than small
letters.
[0109] Using relatively large buttons may impose on a user the
burden of making many selections in order to select a desired
character. The various embodiments of the invention described
enable the use of relatively large buttons without imposing a
burden of making many selections in order to make an text
entry.
[0110] While various embodiments of the invention have been
described, it will be apparent to those of ordinary skill in the
art that many more embodiments and implementations are possible
within the scope of the invention. Accordingly, the invention is
not to be restricted except in light of the attached claims and
their equivalents.
* * * * *