Language selection

Search

Patent 2252302 Summary

Third-party information liability

Some of the information on this Web page has been provided by external sources. The Government of Canada is not responsible for the accuracy, reliability or currency of the information supplied by external sources. Users wishing to rely upon this information should consult directly with the source of the information. Content provided by external sources is not subject to official languages, privacy and accessibility requirements.

Claims and Abstract availability

Any discrepancies in the text and image of the Claims and Abstract are due to differing posting times. Text of the Claims and Abstract are posted:

  • At the time the application is open to public inspection;
  • At the time of issue of the patent (grant).
(12) Patent: (11) CA 2252302
(54) English Title: KEYBOARD FOR AN ELECTRONIC WRITEBOARD AND METHOD
(54) French Title: CLAVIER POUR TABLE D'ECRITURE ELECTRONIQUE ET METHODE
Status: Expired
Bibliographic Data
(51) International Patent Classification (IPC):
  • G06F 3/041 (2006.01)
  • G06F 3/0488 (2013.01)
  • G06F 13/10 (2006.01)
(72) Inventors :
  • VAN IEPEREN, TACO (Canada)
(73) Owners :
  • SMART TECHNOLOGIES ULC (Canada)
(71) Applicants :
  • SMART TECHNOLOGIES INC. (Canada)
(74) Agent: MLT AIKINS LLP
(74) Associate agent:
(45) Issued: 2009-01-20
(22) Filed Date: 1998-10-30
(41) Open to Public Inspection: 2000-04-30
Examination requested: 2003-09-12
Availability of licence: N/A
(25) Language of filing: English

Patent Cooperation Treaty (PCT): No

(30) Application Priority Data: None

Abstracts

English Abstract

An electronic writeboard for communicating with a computer including applications software and running an active application comprises a touch sensitive panel on which the screen image output of the computer is displayed. The touch sensitive panel is responsive to user contact and generates events. A keyboard window is displayed on the touch sensitive panel and includes a keyboard having a plurality of user selectable keys. A driver receives the events and senses user contact on the touch sensitive panel within the keyboard window and generates messages in response thereto. A controller executing a keyboard application receives the messages. The keyboard application processes the messages to provide data to the active application running on the computer corresponding to keys of the keyboard contacted by the user.


French Abstract

Une table d'écriture électronique pour communiquer avec un ordinateur comprenant un logiciel d'applications et exécutant une application active comprend un panneau tactile sur lequel la sortie d'affichage de l'ordinateur est affichée. Le panneau tactile réagit au contact de l'utilisateur et génère des événements. Une fenêtre clavier est affichée sur le panneau tactile et comprend un clavier ayant une pluralité de touches au choix de l'utilisateur. Un pilote reçoit les événements et détecte le contact de l'utilisateur sur le panneau tactile dans la fenêtre clavier et génère des messages en réponse. Un contrôleur exécutant une application de clavier reçoit les messages. L'application de clavier traite les messages pour fournir des données à l'application active qui est en exécution sur l'ordinateur correspondant aux touches du clavier que l'utilisateur touche.

Claims

Note: Claims are shown in the official language in which they were submitted.




-15-

What is claimed is:


1. An electronic writeboard for communicating with a computer running
on a Windows®-type operating platform, said computer including
applications
software and running an active application having input focus comprising:
a touch sensitive panel on which screen image output of said computer
is displayed, said touch sensitive panel being responsive to user contact and
generating events;
a keyboard window displayed on said touch sensitive panel and
including a keyboard having a plurality of user selectable keys;
a driver receiving events generated by said touch sensitive panel, said
driver sensing user contact on said touch sensitive panel within said keyboard
window
and generating messages in response to user selection of keys of said
keyboard; and
a controller executing a keyboard application and receiving said
messages, said keyboard application processing said messages to provide data
directly
to the active application running on said computer corresponding to keys of
said
keyboard contacted by said user to bypass the computer operating system and
thereby
avoid input focus shifting to said keyboard application in response to user
contacts on
said touch sensitive panel within said keyboard window.


2. An electronic writeboard according to claim 1 wherein said driver
passes events generated as a result of user contact on said touch sensitive
panel
outside of said keyboard window directly to said computer for processing.


3. An electronic writeboard according to claim 2 wherein during
initialization, said controller registers with said driver and provides a
keyboard
window handle establishing the location of said keyboard window on said touch
sensitive panel and a set of message identifiers to allow said driver to
communicate
with said keyboard application.




-16-

4. An electronic writeboard according to claim 3 wherein said driver uses
said message identifiers to generate a message to said keyboard application in

response to a mouse down event resulting from user contact on said touch
sensitive
panel within said keyboard window, said driver setting a flag so that
subsequent
mouse events result in the generation of messages to said keyboard application
until a
mouse up event is detected.


5. An electronic writeboard according to any one of the claims 1 to 4
wherein said keyboard application signals said computer to switch input focus
automatically to another application if input focus is given to said keyboard
application.


6. An electronic writeboard according to claim 5 wherein input focus is
switched automatically to the next application in the Windows® task list.


7. An interactive display system comprising:
an electronic writeboard;

a computer running on a Windows®-based operating platform
connected to said electronic writeboard, said computer including applications
software and running an active application having input focus; and

a projector coupled to said computer and projecting screen image
output of said computer onto said electronic writeboard, wherein said
electronic
writeboard includes:

a touch sensitive panel on which the screen image output of
said computer is displayed, said touch sensitive panel being responsive to
user contact
and generating events;

a keyboard window displayed on said touch sensitive panel and
including a keyboard having a plurality of user selectable keys;
a driver receiving events generated by said touch sensitive
panel, said driver sensing user contact on said touch sensitive panel within
said
keyboard window and generating messages in response to user selection of keys
of
said keyboard; and




-17-

a controller executing a keyboard application and receiving said
messages, said keyboard application processing said messages to provide data
directly
to the active application running on said computer corresponding to keys of
said
keyboard contacted by said user to bypass the computer operating system and
thereby
avoid input focus shifting to said keyboard application in response to user
contacts on
said touch sensitive panel within said keyboard window.


8. An interactive display system according to claim 7 wherein said driver
passes events generated as a result of user contact on said touch sensitive
panel
outside of said keyboard window directly to said computer for processing.


9. An interactive display system according to claim 8 wherein during
initialization, said controller registers with said driver and provides a
keyboard
window handle establishing the location of said keyboard window on said touch
sensitive panel and a set of message identifiers to allow said driver to
communicate
with said keyboard application.


10. An interactive display system according to claim 9 wherein said driver
uses said message identifiers to generate a message to said keyboard
application in
response to a mouse down event resulting from user contact on said touch
sensitive
panel within said keyboard window, said driver setting a flag so that
subsequent
mouse events result in the generation of messages to said keyboard application
until a
mouse up event is detected.


11. An interactive display system according to any one of claims 7 to 10
wherein said keyboard application signals said computer to switch input focus
automatically to another application if input focus is given to said keyboard
application.


12. An interactive display system according to claim 11 wherein input
focus is switched automatically to the next application in the Windows®
task list.




-18-

13. In an electronic writeboard having a touch sensitive panel on which an
on-screen keyboard is displayed within a window, where user contact on said
touch
sensitive panel results in the generation of mouse events conveyed to a
computer
running on a Windows®-based operating system for processing, a method of
inhibiting input focus from being switched from an active application executed
by
said computer to said on-screen keyboard when said on-screen keyboard is
touched,
said method comprising the steps of:
detecting user contact on said touch sensitive panel;
forwarding events generated in response to contact on said touch
sensitive panel outside of said on-screen keyboard window directly to said
operating
system for processing; and

processing events generated in response to contact on said touch
sensitive panel within said on-screen keyboard window and forwarding said
processed
events directly to said active application thereby to bypass said Windows®-
based
operating system and inhibit a shift in input focus from said active
application to said
on-screen keyboard.


14. The method of claim 13 further comprising the step of automatically
shifting input focus to another application if input focus is given to said on-
screen
keyboard.


15. A computer readable medium embodying a computer program for
controlling the display of images, said computer program comprising:
computer program code for displaying on a touch sensitive display
screen within a window, a keyboard having a plurality of user selectable keys;

computer program code for sensing contact on the touch sensitive
display screen within the keyboard window and generating events corresponding
to
keys contacted by a user; and

computer program code for processing the events and sending data to
the active application being run by the processor without shifting input focus
to the
on-screen keyboard application as a result of contacts on said touch sensitive
display
within said keyboard window.




-19-

16. The computer readable medium of claim 15 wherein said computer
program code for sensing contacts sends events generated in response to
contact on
the touch sensitive display outside of the keyboard window to said processor
without
said events being processed by said computer program code for processing.


17. The computer readable medium of claim 16 further comprising
computer program code for shifting automatically input focus to another
application if
input focus is given to said on-screen keyboard application.


18. In a computer running on a Windows®-type platform having code
responsible for the automatic activation and deactivation of an application in
response
to mouse events and executing an active application having input focus, a
method of
inputting data to the active application via a touch sensitive on-screen
application
displayed within a window while inhibiting input focus from being switched to
said
on-screen application as result of contacts within said window, said method
comprising the steps of:

detecting user contact on said on-screen application within said
window and generating events corresponding to said user contact; and
conveying data directly to the active application corresponding to the
events thereby to bypass said code.


19. The method of claim 18 further comprising the step of shifting input
focus automatically to another application if input focus is given to said on-
screen
application.


20. Apparatus for controlling the display of images comprising:
a large screen display uncoupled from a projector, which displays a
computer-generated image, and which outputs a location signal corresponding to
a
location on the large-screen display where contact is made; and

a computer running at least one application program on a Windows®
operating system, said computer further running an interrupt routine, the
interrupt




-20-

routine generating a mouse event in response to said location signal and
additionally
causing the application program to modify the computer-generated image in
response
to the mouse event, said computer still further running an on-screen keyboard
application, said on-screen keyboard application causing the computer to
display as
part of the computer-generated image an on-screen keyboard within a window,
said
on-screen keyboard application detecting and processing mouse commands
generated
as a result of user contact on said large-screen display within said window
and
conveying data to an active application program run by said computer while
bypassing the Windows® operating system.


21. Apparatus according to claim 20 wherein said on-screen keyboard
application software causes said computer to shift automatically input focus
to
another application if input focus is given to said on-screen keyboard
application
software.


22. Apparatus according to claim 21 wherein said on-screen keyboard has
a QWERTY layout.


23. Apparatus according to any of claims 20 to 22, wherein said large-
screen display comprises a touch sensitive screen.


24. Apparatus according to any and claims 20 to 23, further comprising the
image projector which comprises:
an LCD projector coupled to the computer; and
an overhead projector adjacent said LCD projector.


25. A method for controlling the display of images projected through a
projector and generated by a computer running application programs on a
Windows®
operating system, comprising the steps of:

displaying the computer-generated image on a large-screen display
uncoupled from the projector, the computer-generated image in part including
an on-
screen keyboard within a keyboard window;



-21-

outputting a location signal corresponding to a location on the large-
screen display where contact is made;

running an interrupt routine on the Windows® operating system of the
computer, the interrupt routine generating a mouse event in response to said
location
signal; and
causing the application program to modify the computer-generated
image in response to the mouse event, the computer-generated image being
modified
at the location on the large-screen display corresponding to the location
where contact
is made, wherein mouse events generated in response to contacts made on the
large-
screen display within the keyboard window are processed via a private
communication mechanism so that data corresponding to the mouse events is sent
to
the active application program being run by the computer without being routed
through the Windows® operating system.


26. A computer readable medium embodying a computer program for
controlling the display of images projected through a projector and generated
by a
computer running application programs on a Windows® operating system, the
computer program comprising:
computer program code for generating display signals for displaying a
computer-generated image on a large-screen display uncoupled from the
projector;
computer program code for, in response to receiving a location signal
corresponding to a location on the large-screen display where a contact is
made,
running an interrupt routine on the Windows® operating system of the
computer, the
interrupt routine generating a mouse event in response to said location
signal; and
computer program code for causing an application program running on
the computer to modify the computer-generated image in response to the mouse
event, the computer-generated image modified at the location on the large-
screen
display corresponding to the location contact is made, wherein mouse events
generated in response to contacts made on the large-screen display within the
keyboard window are processed via a private communications mechanism so that
data
corresponding to the mouse events is sent to the active application program
being run
by the computer without being routed through the Windows® operating
system.




-22-

27. An electronic writeboard for communicating with a computer running
on a multitasking operating platform, said computer executing an active
application
having input focus comprising:
a touch sensitive panel on which screen image output of said computer
is displayed, said touch sensitive panel being responsive to user contact and
generating events;
a keyboard window displayed on said touch sensitive panel and
including a keyboard having a plurality of user selectable keys;
a driver receiving events generated by said touch sensitive panel, said
driver sensing user contact on said touch sensitive panel within said keyboard
window
and generating messages in response to user selection of keys of said
keyboard; and
a controller executing a keyboard application and receiving said
messages, said keyboard application processing said messages to provide data
directly
to the active application running on said computer corresponding to keys of
said
keyboard contacted by said user to bypass code of said operating platform
responsible
for shifting input focus thereby to avoid input focus shifting to said
keyboard
application in response to user contacts on said touch sensitive panel within
said
keyboard window.


28. An electronic writeboard according to claim 27 wherein said driver
passes events generated as a result of user contact on said touch sensitive
panel
outside of said keyboard window directly to said computer for processing.


29. An electronic writeboard according to claim 28 wherein during
initialization, said controller registers with said driver and provides a
keyboard
window handle establishing the location of said keyboard window on said touch
sensitive panel and a set of message identifiers to allow said driver to
communicate
with said keyboard application.


30. An electronic writeboard according to claim 29 wherein said driver
uses said message identifiers to generate a message to said keyboard
application in



-23-

response to a mouse down event resulting from user contact on said touch
sensitive
panel within said keyboard window, said driver setting a flag so that
subsequent
mouse events result in the generation of messages to said keyboard application
until a
mouse up event is detected.


31. An electronic writeboard according to any one of claims 27 to 30
wherein said keyboard application signals said computer to switch input focus
automatically to another application if input focus is given to said keyboard
application.


32. An interactive display system comprising:
an electronic writeboard;
a computer running on a multitasking operating platform connected to
said electronic writeboard, said computer executing an active application
having input
focus; and

a projector coupled to said computer and projecting screen image
output of said computer onto said electronic writeboard, wherein said
electronic
writeboard includes:
a touch sensitive panel on which the screen image output of
said computer is displayed, said touch sensitive panel being responsive to
user contact
and generating events;

a keyboard window displayed on said touch sensitive panel and
including a keyboard having a plurality of user selectable keys;
a driver receiving events generated by said touch sensitive
panel, said driver sensing user contact on said touch sensitive panel within
said
keyboard window and generating messages in response to user selection of keys
of
said keyboard; and

a controller executing a keyboard application and receiving said
messages, said keyboard application processing said messages to provide data
directly
to the active application running on said computer corresponding to keys of
said
keyboard contacted by said user to bypass code of said operating platform
responsible
for shifting input focus thereby to avoid input focus shifting to said
keyboard



-24-

application in response to user contacts on said touch sensitive panel within
said
keyboard window.


33. An interactive display system according to claim 32 wherein said
driver passes events generated as a result of user contact on said touch
sensitive panel
outside of said keyboard window directly to said computer for processing.


34. An interactive display system according to claim 33 wherein during
initialization, said controller registers with said driver and provides a
keyboard
window handle establishing the location of said keyboard window on said touch
sensitive panel and a set of message identifiers to allow said driver to
communicate
with said keyboard application.


35. An interactive display system according to claim 34 wherein said
driver uses said message identifiers to generate a message to said keyboard
application in response to a mouse down event resulting from user contact on
said
touch sensitive panel within said keyboard window, said driver setting a flag
so that
subsequent mouse events result in the generation of messages to said keyboard
application until a mouse up event is detected.


36. An interactive display system according to any one of claims 32 to 35
wherein said keyboard application signals said computer to switch input focus
automatically to another application if input focus is given to said keyboard
application.


37. In a touch sensitive panel on which an on-screen keyboard is displayed
within a window, where user contact on said touch sensitive panel results in
the
generation of mouse events conveyed to a computer running on a multitasking
operating system, a method of inhibiting input focus from being switched from
an
active application executed by said computer to said on-screen keyboard when
said
on-screen keyboard is touched, said method comprising the steps of:
detecting user contact on said touch sensitive panel;



-25-

forwarding events generated in response to contact on said touch
sensitive panel outside of said on-screen keyboard window to said operating
system
for processing; and

processing events generated in response to contact on said touch
sensitive panel within said on-screen keyboard window and forwarding said
processed
events to said active application to bypass code of said operating system
responsible
for shifting input focus and thereby inhibit a shift in input focus from said
active
application to said on-screen keyboard.


38. The method of claim 37 further comprising the step of automatically
shifting input focus to another application if input focus is given to said on-
screen
keyboard.


39. A computing device running on a multitasking operating platform and
including an active application having input focus and a user input keyboard
application, said computing device comprising:
a touch sensitive panel;

a user input keyboard window displayed on said touch sensitive panel;
and

an active application window displayed on said touch sensitive panel,
wherein user input generated in response to user contact within said keyboard
window
is forwarded to said active application by said keyboard application without
invoking
code of said operating platform responsible for handling mouse events and
switching
input focus thereby to inhibit input focus shifting to said keyboard
application.


40. The device of claim 39 wherein the user input received by said active
application is displayed in said active application window.


41. The device of claim 40 wherein said keyboard window includes a
plurality of user selectable keys.



-26-

42. The device of claim 41 wherein said keyboard window registers with
said keyboard application.


43. The device of any one of claims 39 to 42 wherein said keyboard
application automatically shifts input focus to another application should
input focus
be given to said keyboard application.


44. The device of claim 43 wherein said another application is selected
from a task list of said multitasking operating platform.


45. The device of claim 44 wherein the another application is the next
application in said task list.


46. A computing device running on a multitasking operating platform and
including an active application having input focus and a user input keyboard
application, said computing device comprising:
a touch sensitive panel;

a user input keyboard window displayed on said touch sensitive panel;
and

an active application window displayed on said touch sensitive panel,
wherein user input generated in response to user contact within said keyboard
window
is forwarded to said active application by said keyboard application without
invoking
code of said operating platform responsible for handling mouse events and
switching
input focus, said active application retaining said input focus during
generation and
receiving of said user input.


47. The device of claim 46 wherein the user input received by said active
application is displayed in said active application window.


48. The device of claim 47 wherein said keyboard window includes a
plurality of user selectable keys.



-27-

49. The device of claim 48 wherein said keyboard window registers with
said keyboard application.


50. The device of any one of claims 46 to 49 wherein said keyboard
application automatically shifts input focus to another application should
input focus
be given to said keyboard application.


51. The device of claim 50 wherein said another application is selected
from a task list of said multitasking operating platform.


52. The device of claim 51 wherein the another application is the next
application in said task list.


53. In a computing device having a touch sensitive panel on which an on-
screen keyboard is displayed within a window, and running on a multitasking
operating platform, a method of managing data input comprising:
detecting user contact on said touch sensitive panel;
forwarding data generated in response to contact on said touch
sensitive panel outside of said on-screen keyboard window to said computing
device
for processing; and
forwarding data generated in response to contact on said touch
sensitive panel within said on-screen keyboard window to an active application

without invoking code of said operating platform responsible for handling
mouse
events and switching input focus thereby to avoid a shift in input focus from
said
active application to said on-screen keyboard.


54. The method of claim 53 further comprising displaying the data
forwarded to said active application within an active application window
displayed on
said touch sensitive panel.


55. The method of claim 53 or 54 wherein said displayed data is textual
data.



-28-

56. The method of claim 55 further comprising registering said keyboard
window with said computing device.


57. The method of any one of claims 53 to 56 further comprising shifting
input focus automatically to another application should input focus be given
to said
keyboard window.


58. The method of claim 57 further comprising selecting the other
application from a task list of said multitasking operating platform.


59. In a computing device having a touch sensitive panel on which an on-
screen keyboard is displayed within a window and running on a multitasking
operating platform, a method of managing data input comprising:
detecting user contact on said touch sensitive panel;
forwarding data generated in response to contact on said touch
sensitive panel outside of said on-screen keyboard window to said computing
device
for processing;

forwarding data generated in response to contact on said touch
sensitive panel within said on-screen keyboard window to an active
application; and
retaining input focus with said active application at least during
generating and forwarding of data generated in response to contact on said
touch
sensitive panel within said on-screen keyboard window, wherein said on-screen
keyboard forwards user input to said active application without invoking code
of said
operating platform responsible for handling mouse events and switching input
focus.

60. The method of claim 59 further comprising displaying the data
forwarded to said active application within an active application window
displayed on
said touch sensitive panel.


61. The method of claim 59 or 60 wherein said displayed data is textual
data.



-29-

62. The method of claim 61 further comprising registering said on-screen
keyboard with said computing device.


63. The method of any one of claims 59 to 62 further comprising shifting
input focus automatically to another application should input focus be given
to said
on-screen keyboard.


64. The method of claim 63 wherein said another application is selected
from a task list of said multitasking operating platform.


65. The method of claim 64 wherein the another application is the next
application in said task list.


66. In computing device running on a multitasking operating platform and
executing an active application having input focus, a method of inputting data
to the
active application via a user input application, said active application and
user input
application being displayed within respective windows on a touch sensitive
panel,
said method comprising:

detecting user contact within the window of said user input application
and generating data corresponding to said user contact;

conveying the generated data to said active application; and
retaining input focus with said active application, wherein during said
conveying said user input application forwards the generated data to said
active
application without invoking code of said operating platform responsible for
handling
mouse events and switching input focus.


67. The method of claim 66 further comprising displaying the data
forwarded to said active application within its respective window.


68. The method of claim 66 or 76 wherein said displayed data is textual
data.




-30-



69. The method of claim 68 further comprising registering the user input
application with its respective window.


70. The method of any one of claims 66 to 69 further comprising shifting
input focus automatically to another application should input focus be given
to said
user input application.


71. The method of claim 70 wherein said another application is selected
from a task list of said multitasking operating platform.


72. The method of claim 71 wherein the another application is the next
application in said task list.


73. The method of any one of claims 66 to 72 wherein said user input
application includes a plurality of user selectable keys.


74. A computing device, comprising:
a user input device;
a display configured to detect said user input device; and
a processor displaying an application window corresponding to an
active application having input focus of said computing device, displaying a
user
input window corresponding to a user input application while said application
window is displayed, said user input window including a plurality of onscreen
keys
corresponding at least to textual characters and receiving user input on said
display,
said user input being located within said user input window, wherein said user
input
application forwards user input to said active application without invoking
code of
said operating platform responsible for handling mouse events and switching
input
focus and wherein said application window retains input focus after user input
is
received.


75. The device of claim 74, wherein said user input application transmits




-31-


textual data corresponding to said user input to said active application.


76. A computing device running on a multitasking operating platform and
including an active application having input focus and a user input keyboard
application, said computing device comprising:
a touch sensitive panel;
a user input keyboard window displayed on said touch sensitive panel;
and
an active application window displayed on said touch sensitive panel,
wherein user input generated in response to user contact within said keyboard
window
is forwarded to said active application by said keyboard application without
invoking
code of said operating platform responsible for handling mouse events and
switching
input focus thereby to treat the user input as if said user input was
generated by a
physical input device.


77. The device of claim 76 wherein the user input received by said active
application is displayed in said active application window.


78. The device of claim 77 wherein said keyboard window includes a
plurality of user selectable keys.


79. The device of claim 78 wherein said keyboard window registers with
said keyboard application.


80. The device of any one of claims 76 to 79 wherein said keyboard
application automatically shifts input focus to another application should
input focus
be given to said keyboard application.


81. The device of claim 80 wherein said another application is selected
from a task list of said multitasking operating platform.


82. A computing device running on a multitasking operating platform and




-32-



including an active application having input focus and a user input keyboard
application configured to inhibit said keyboard application from gaining
and/or
maintaining input focus, said computing device comprising:
a touch sensitive panel;

a user input keyboard window displayed on said touch sensitive panel;
and

an active application window displayed on said touch sensitive panel,
wherein said keyboard application forwards user input to said active
application while
bypassing code of said operating platform responsible for handling mouse
events and
switching input focus thereby to inhibit input focus shifting to said keyboard
application.

83. The device of claim 82 wherein said keyboard window includes a
plurality of user selectable keys.


84. The device of claim 82 wherein said keyboard application
automatically shifts input focus to another application should input focus be
given to
said keyboard application.


85. The device of claim 84 wherein said another application is selected
from a task list of said multitasking operating platform.


86. The device of claim 85 wherein the another application is the next
application in said task list.


87. A computing device running on a multitasking operating platform and
including an active application having input focus and a user input keyboard
application configured to inhibit said keyboard from gaining and/or
maintaining input
focus, said computing device comprising:

a touch sensitive panel;

a user input keyboard window displayed on said touch sensitive panel;
and




-33-



an active application window displayed on said touch sensitive panel,
wherein said keyboard application forwards user input to said active
application while
bypassing code of said operating platform responsible for handling mouse
events and
switching input focus so that said active application retains said input focus
during
generation and receiving of said user input.


88. The device of claim 87 wherein said keyboard window includes a
plurality of user selectable keys.


89. The device of claim 87 wherein said keyboard application
automatically shifts input focus to another application should input focus be
given to
said keyboard application.


90. The device of claim 89 wherein said another application is selected
from a task list of said multitasking operating platform.


91. The device of claim 90 wherein the another application is the next
application in said task list.


92. In a computing device having a touch sensitive panel on which an on-
screen keyboard is displayed within a window, and running on a multitasking
operating platform, a method of managing data input comprising:
detecting user contact on said touch sensitive panel;
forwarding data generated in response to contact on said touch
sensitive panel outside of said on-screen keyboard window to said computing
device
for processing; and
forwarding data generated in response to contact on said touch
sensitive panel within said on-screen keyboard window to an active application
while
bypassing code of said operating platform responsible for handling mouse
events and
switching input focus thereby to inhibit a shift in input focus from said
active
application to said on-screen keyboard.




-34-



93. The method of claim 92 further comprising displaying the data
forwarded to said active application within an active application window
displayed on
said touch sensitive panel.


94. The method of claim 93 wherein said displayed data is textual data.

95. The method of claim 92 further comprising shifting input focus
automatically to another application should input focus be given to said
keyboard
window.


96. The method of claim 95 further comprising selecting the other
application from a task list of said multitasking operating platform.


97. In a computing device having a touch sensitive panel on which an on-
screen keyboard is displayed within a window and running on a multitasking
operating platform, a method of managing data input comprising:

detecting user contact on said touch sensitive panel;
forwarding data generated in response to contact on said touch
sensitive panel outside of said on-screen keyboard window to said computing
device
for processing;

forwarding data generated in response to contact on said touch
sensitive panel within said on-screen keyboard window to an active application
while
bypassing code of said operating platform responsible for handling mouse
events and
switching input focus; and

retaining input focus with said active application at least during
generating and forwarding of data generated in response to contact on said
touch
sensitive panel within said on-screen keyboard window.


98. The method of claim 97 further comprising displaying the data
forwarded to said active application within an active application window
displayed on
said touch sensitive panel.





-35-



99. The method of claim 98 wherein said displayed data is textual data.

100. The method of claim 97 further comprising shifting input focus
automatically to another application should input focus be given to said on-
screen
keyboard.


101. The method of claim 100 wherein said another application is selected
from a task list of said multitasking operating platform.


102. The method of claim 101 wherein the another application is the next
application in said task list.


103. In computing device running on a multitasking operating platform and
executing an active application having input focus, a method of inputting data
to the
active application via a user input application, said active application and
user input
application being displayed within respective windows on a touch sensitive
panel,
said method comprising:
detecting user contact within the window of said user input application
and generating data corresponding to said user contact;
conveying the generated data to said active application while
bypassing code of said operating platform responsible for handling mouse
events and
switching input focus; and
retaining input focus with said active application.


104. The method of claim 103 further comprising displaying the data
forwarded to said active application within its respective window.


105. The method of claim 104 wherein said displayed data is textual data.

106. The method of claim 103 further comprising shifting input focus
automatically to another application should input focus be given to said user
input
application.





-36-


107. The method of claim 106 wherein said another application is selected
from a task list of said multitasking operating platform.


108. The method of claim 107 wherein the another application is the next
application in said task list.

Description

Note: Descriptions are shown in the official language in which they were submitted.



CA 02252302 1998-10-30

KEYBOARD FOR AN ELECTRONIC WRITEBOARD AND METHOD
Field Of The Invention
The present invention relates to electronic writeboards and in particular
to an on-screen keyboard for an electronic writeboard.

Background Of The Invention

Electronic writeboards or whiteboards (EWBs) are known in the art
and have been used in conjunction with host computers executing applications
software to provide enhanced multimedia and teleconferencing capabilities. An
example of an electronic writeboard of this nature is sold by SMART
Technologies

Inc. of Calgary, Alberta, Canada under the name SMART Board. The SMART Board
electronic writeboard includes a touch sensitive panel, a tool tray
accommodating a
plurality of tools such as colored pens and an eraser as well as a driver and
an
associated controller.

In use, the electronic writeboard is connected to a host processor such
as a personal computer operating in a Windows environment and executing
applications software, via a serial data connection. The electronic writeboard
can be
operated in one of three modes, namely a projected mouse mode, a projected
mark-up
mode and a non-projected mode.

In the projected mouse mode, the image displayed on the monitor of
the personal computer is projected onto the touch sensitive panel. In this
case, the
electronic writeboard functions as a giant mouse providing input to the
personal
computer in response to user contact with the touch sensitive panel.
Specifically, the
electronic writeboard generates mouse events in response to user contact with
the
touch sensitive panel which are conveyed to the personal computer for
processing.

Thus, by contacting the touch sensitive panel, the personal computer can be
conditioned to open and display menus, to activate displayed menus, to drag
icons, to
execute software and to switch applications by changing input focus. The
latter event
of course is achieved by contacting the touch sensitive panel outside of the
window of
the active application running on by the personal computer.


CA 02252302 1998-10-30

-2-
In the projected markup mode, the coloured pens and eraser are used to
contact the touch sensitive panel. The active application running on the
personal
computer tracks where writing and erasing has occurred and maintains a
computerized
image of what is drawn on and erased from the touch sensitive panel. The

computerized image is projected onto the touch sensitive panel so that user
can see
the computerized image.

In the non-projected mode, there is no image displayed on the
whiteboard by the computer. Contact made on the whiteboard is recorded on the
attached computer. Since the whiteboard is in non-projected mode, it is not

interactive since users cannot see how their strokes are being recorded. For
this
reason, in non-projected mode, people write on the whiteboard with standard
dry-eraser markers. The computer then tracks their writing and allows

them to save the notes later.

To enhance user input abilities, on-screen keyboards for use with

electronic writeboards have been considered. For example, Innovative
Management
Group Inc. of California, U.S.A. has developed an on-screen keyboard sold
under the
name My-T-Touch. The My-T-Touch keyboard is an extension of a touchscreen
interface and uses "Heads Up Display" technology designed to keep a user's
focus
and concentration in one place. Thus, visual re-focusing and re-positioning,
caused

by the up and down motion of going from screen to keyboard to screen is
reduced.
Unfortunately, prior art on-screen keyboards do not address certain
technical issues and therefore, suffer a number of problems. For example, some
computer platforms such as Microsoft Windows always ensure that an active
application has input focus. In other words, these computer platforms ensure
that any

application that is selected through a mouse click receives input focus, i.e.
the
application becomes active. Thus, when a user contacts a prior art on-screen
keyboard
displayed on a touch sensitive panel to enter text into an active application,
input
focus is switched from the active application to the on-screen keyboard.

Unfortunately, only the application with input focus may receive inputs
from peripheral devices, such as a mouse or a keyboard. Therefore input focus
must


CA 02252302 2004-07-09

-3-
be removed from the on-screen keyboard and given back to the application in
order
for the application to receive any input from the on-screen keyboard.
Switching input
focus from the on-screen keyboard to the application each time the on-screen
keyboard is touched causes many unpleasant side effects. Firstly, a change in
the
activation state of an application causes the application to refresh or redraw
portions
of itsel This means that every time input focus is changed from the active
application to the on-screen keyboard and then back to the application, the
application
will flicker as it refreshes. Secondly, a loss of input focus causes the
application to
close all of its open menus. As a result, prior art on-screen keyboards cannot
be used
to navigate through the menus of an active application. Finally, some
applications,
such as Internet ExplorerTM, do not retain the text insertion point whenever
input
focus is lost. This means that when input focus is switched from the active
application to the on-screen keyboard and then back to the application, the
cursor is
often positioned at a different point than where the cursor was prior to the
active
application losing input focus. In some circumstances, this makes it
impossible to
type text into certain fields using an on-screen keyboard.
It is therefore an object of the present invention to provide a novel on-
screen keyboard for an electronic writeboard and an interactive display system
incorporating the same.

Summary Of The Invention
According to one aspect of the present invention there is provided an
electronic writeboard for communicating with a computer running on a Windows -
type operating platform, said computer including applications software and
running
an active application having input focus comprising:
a touch sensitive panel on which screen image output of said computer
is displayed, said touch sensitive panel being responsive to user contact and
generating events;
a keyboard window displayed on said touch sensitive panel and
including a keyboard having a plurality of user selectable keys;
a driver receiving events generated by said touch sensitive panel, said
driver sensing user contact on said touch sensitive panel within said keyboard
window


CA 02252302 2004-07-09

-4-
and generating messages in response to user selection of keys of said
keyboard; and
a controller executing a keyboard application and receiving said
messages, said keyboard application processing said messages to provide data
directly
to the active application running on said corriputer corresponding to keys of
said
keyboard contacted by said user to bypass the computer operating system and
thereby
avoid input focus shifting to said keyboard application in response to user
contacts on
said touch sensitive panel within said keyboard window.
In a preferred embodiment, the driver passes events resulting from user
contact on the touch sensitive panel outside of the keyboard window directly
to the
computer for processing. During initialization, the controller registers with
the driver
and provides a keyboard window handler establishing the location of the
keyboard
window on the touch sensitive panel and a set of message identifiers to allow
the
driver to communicate with the keyboard application. The driver uses the
message
identifiers to generate a message to the keyboard application in response to a
mouse
down event resulting from user contact within the keyboard window. A flag is
also
set by the driver so that subsequent mouse move events or a mouse up event
result in
the generation of messages or a message to the keyboard application.
It is also preferred that the keyboard application signals the computer
to switch input focus to another application if input focus is given to the
keyboard
window.
According to another aspect of the present invention there is provided
an interactive display system comprising:
an electronic writeboard;

a computer running on a Windows -based operating platform
connected to said electronic writeboard, said computer including applications
software and running an active application having input focus; and
a projector coupled to said computer and projecting screen image
output of said computer onto said electronic writeboard, wherein said
electronic
writeboard includes:
a touch sensitive panel on which the screen image output of
said computer is displayed, said touch sensitive panel being responsive to
user contact
and generating events;


CA 02252302 2008-01-28

-5-
a keyboard window displayed on said touch sensitive panel and
including a keyboard having a plurality of user selectable keys;
a driver receiving events generated by said touch sensitive
panel, said driver sensing user contact on said touch sensitive panel within
said
keyboard window and generating messages in response to user selection of keys
of
said keyboard; and

a controller executing a keyboard application and receiving said
messages, said keyboard application processing said messages to provide data
directly
to the active application running on said computer corresponding to keys of
said
keyboard contacted by said user to bypass the computer operating system and
thereby
avoid input focus shifting to said keyboard application in response to user
contacts on
said touch sensitive panel within said keyboard window.

According to yet another aspect of the present invention there is
provided in an electronic writeboard having a touch sensitive panel on which
an on-
screen keyboard is displayed within a window, where user contact on said touch
sensitive panel results in the generation of mouse events conveyed to a
computer
running on a Windows -based operating system for processing, a method of
inhibiting input focus from being switched from an active application executed
by
said computer to said on-screen keyboard when said on-screen keyboard is
touched,
said method comprising the steps of:
detecting user contact on said touch sensitive panel;
forwarding events generated in response to contact on said touch
sensitive panel outside of said on-screen keyboard window directly to said
operating
system for processing; and

processing events generated in response to contact on said touch
sensitive panel within said on-screen keyboard window and forwarding said
processed
events directly to said active application thereby to bypass said Windows -
based
operating system and inhibit a shift in input focus from said active
application to said
on-screen keyboard.

According to yet another aspect of the present invention there is
provided in computer readable medium embodying a computer program for
controlling the display of images, said computer program comprising:


CA 02252302 2008-01-28

-5a-
computer program code for displaying on a touch sensitive display
screen within a window, a keyboard having a plurality of user selectable keys;
computer program code for sensing contact on the touch sensitive
display screen within the keyboard window and generating events corresponding
to
keys contacted by a user; and
computer program code for processing the events and sending data to
the active application being run by the processor without shifting input focus
to the
on-screen keyboard application as a result of contacts on said touch sensitive
display
within said keyboard window.
According to yet another aspect of the present invention there is
provided in a computer running on a Windows -type platform having code
responsible for the automatic activation and deactivation of an application in
response
to mouse events and executing an active application having input focus, a
method of
inputting data to the active application via a touch sensitive on-screen
application
displayed within a window while inhibiting input focus from being switched to
said
on-screen application as result of contacts within said window, said method
comprising the steps of:

detecting user contact on said on-screen application within said
window and generating events corresponding to said user contact; and
conveying data directly to the active application corresponding to the
events thereby to bypass said code.

According to yet another aspect of the present invention there is
provided in an apparatus for controlling the display of images comprising:
a large screen display uncoupled from a projector, which displays a
computer-generated image, and which outputs a location signal corresponding to
a
location on the large-screen display where contact is made; and

a computer running at least one application program on a Windows
operating system, said computer further running an interrupt routine, the
interrupt
routine generating a mouse event in response to said location signal and
additionally
causing the application program to modify the computer-generated image in
response
to the mouse event, said computer still further running an on-screen keyboard
application, said on-screen keyboard application causing the computer to
display as


CA 02252302 2008-01-28

- 5b -

part of the computer-generated image an on-screen keyboard within a window,
said
on-screen keyboard application detecting and processing mouse commands
generated
as a result of user contact on said large-screen display within said window
and
conveying data to an active application program run by said computer while
bypassing the Windows operating system.

According to yet another aspect of the present invention there is
provided a method for controlling the display of images projected through a
projector
and generated by a computer running application programs on a Windows
operating
system, comprising the steps of:

displaying the computer-generated image on a large-screen display
uncoupled from the projector, the computer-generated image in part including
an on-
screen keyboard within a keyboard window;

outputting a location signal corresponding to a location on the large-
screen display where contact is made;

running an interrupt routine on the Windows operating system of the
computer, the interrupt routine generating a mouse event in response to said
location
signal; and

causing the application program to modify the computer-generated
image in response to the mouse event, the computer-generated image being
modified
at the location on the large-screen display corresponding to the location
where contact
is made, wherein mouse events generated in response to contacts made on the
large-
screen display within the keyboard window are processed via a private
communication mechanism so that data corresponding to the mouse events is sent
to
the active application program being run by the computer without being routed
through the Windows operating system.

According to yet another aspect of the present invention there is
provided a computer readable medium embodying a computer program for
controlling
the display of images projected through a projector and generated by a
computer
running application programs on a Windows operating system, the computer
program comprising:

computer program code for generating display signals for displaying a
computer-generated image on a large-screen display uncoupled from the
projector;


CA 02252302 2008-01-28

- 5c -

computer program code for, in response to receiving a location signal
corresponding to a location on the large-screen display where a contact is
made,
running an interrupt routine on the Windows operating system of the computer,
the
interrupt routine generating a mouse event in response to said location
signal; and
computer program code for causing an application program running on
the computer to modify the computer-generated image in response to the mouse
event, the computer-generated image modified at the location on the large-
screen
display corresponding to the location contact is made, wherein mouse events
generated in response to contacts made on the large-screen display within the
keyboard window are processed via a private communications mechanism so that
data
corresponding to the mouse events is sent to the active application program
being run
by the computer without being routed through the Windows operating system.

According to yet another aspect of the present invention there is
provided an electronic writeboard for communicating with a computer running on
a
multitasking operating platform, said computer executing an active application
having
input focus comprising:

a touch sensitive panel on which screen image output of said computer
is displayed, said touch sensitive panel being responsive to user contact and
generating events;

a keyboard window displayed on said touch sensitive panel and
including a keyboard having a plurality of user selectable keys;

a driver receiving events generated by said touch sensitive panel, said
driver sensing user contact on said touch sensitive panel within said keyboard
window
and generating messages in response to user selection of keys of said
keyboard; and
a controller executing a keyboard application and receiving said
messages, said keyboard application processing said messages to provide data
directly
to the active application running on said computer corresponding to keys of
said
keyboard contacted by said user to bypass code of said operating platform
responsible
for shifting input focus thereby to avoid input focus shifting to said
keyboard
application in response to user contacts on said touch sensitive panel within
said
keyboard window.


CA 02252302 2008-01-28

- 5d-

According to yet another aspect of the present invention there is
provided an interactive display system comprising:
an electronic writeboard;
a computer running on a multitasking operating platform connected to
said electronic writeboard, said computer executing an active application
having input
focus; and
a projector coupled to said computer and projecting screen image
output of said computer onto said electronic writeboard, wherein said
electronic
writeboard includes:
a touch sensitive panel on which the screen image output of
said computer is displayed, said touch sensitive panel being responsive to
user contact
and generating events;
a keyboard window displayed on said touch sensitive panel and
including a keyboard having a plurality of user selectable keys;
a driver receiving events generated by said touch sensitive
panel, said driver sensing user contact on said touch sensitive panel within
said
keyboard window and generating messages in response to user selection of keys
of
said keyboard; and
a controller executing a keyboard application and receiving said
messages, said keyboard application processing said messages to provide data
directly
to the active application running on said computer corresponding to keys of
said
keyboard contacted by said user to bypass code of said operating platform
responsible
for shifting input focus thereby to avoid input focus shifting to said
keyboard
application in response to user contacts on said touch sensitive panel within
said
keyboard window.
According to yet another aspect of the present invention there is
provided in a touch sensitive panel on which an on-screen keyboard is
displayed
within a window, where user contact on said touch sensitive panel results in
the
generation of mouse events conveyed to a computer running on a multitasking
operating system, a method of inhibiting input focus from being switched from
an
active application executed by said computer to said on-screen keyboard when
said
on-screen keyboard is touched, said method comprising the steps of:


CA 02252302 2008-01-28

- 5e -

detecting user contact on said touch sensitive panel;
forwarding events generated in response to contact on said touch
sensitive panel outside of said on-screen keyboard window to said operating
system
for processing; and
processing events generated in response to contact on said touch
sensitive panel within said on-screen keyboard window and forwarding said
processed
events to said active application to bypass code of said operating system
responsible
for shifting input focus and thereby inhibit a shift in input focus from said
active
application to said on-screen keyboard.
According to yet another aspect of the present invention there is
provided in a computing device running on a multitasking operating platform
and
including an active application having input focus and a user input keyboard
application, said computing device comprising:
a touch sensitive panel;
a user input keyboard window displayed on said touch sensitive panel;
and
an active application window displayed on said touch sensitive panel,
wherein user input generated in response to user contact within said keyboard
window
is forwarded to said active application by said keyboard application without
invoking
code of said operating platform responsible for handling mouse events and
switching
input focus thereby to inhibit input focus shifting to said keyboard
application.
According to yet another aspect of the present invention there is
provided a computing device running on a multitasking operating platform and
including an active application having input focus and a user input keyboard
application, said computing device comprising:
a touch sensitive panel;
a user input keyboard window displayed on said touch sensitive panel;
and
an active application window displayed on said touch sensitive panel,
wherein user input generated in response to user contact within said keyboard
window
is forwarded to said active application by said keyboard application without
invoking
code of said operating platform responsible for handling mouse events and
switching


CA 02252302 2008-01-28

- 5f -

input focus, said active application retaining said input focus during
generation and
receiving of said user input.
According to yet another aspect of the present invention there is
provided in a computing device having a touch sensitive panel on which an on-
screen
keyboard is displayed within a window, and running on a multitasking operating
platform, a method of managing data input comprising:
detecting user contact on said touch sensitive panel;
forwarding data generated in response to contact on said touch
sensitive panel outside of said on-screen keyboard window to said computing
device
for processing; and
forwarding data generated in response to contact on said touch
sensitive panel within said on-screen keyboard window to an active application
without invoking code of said operating platform responsible for handling
mouse
events and switching input focus thereby to avoid a shift in input focus from
said
active application to said on-screen keyboard.

According to yet another aspect of the present invention there is
provided in a computing device having a touch sensitive panel on which an on-
screen
keyboard is displayed within a window and running on a multitasking operating
platform, a method of managing data input comprising:

detecting user contact on said touch sensitive panel;
forwarding data generated in response to contact on said touch
sensitive panel outside of said on-screen keyboard window to said computing
device
for processing;

forwarding data generated in response to contact on said touch
sensitive panel within said on-screen keyboard window to an active
application; and
retaining input focus with said active application at least during
generating and forwarding of data generated in response to contact on said
touch
sensitive panel within said on-screen keyboard window, wherein said on-screen
keyboard forwards user input to said active application without invoking code
of said
operating platform responsible for handling mouse events and switching input
focus.

According to yet another aspect of the present invention there is
provided in computing device running on a multitasking operating platform and


CA 02252302 2008-01-28

- 5g -

executing an active application having input focus, a method of inputting data
to the
active application via a user input application, said active application and
user input
application being displayed within respective windows on a touch sensitive
panel,
said method comprising:

detecting user contact within the window of said user input application
and generating data corresponding to said user contact;

conveying the generated data to said active application; and
retaining input focus with said active application, wherein during said
conveying said user input application forwards the generated data to said
active
application without invoking code of said operating platform responsible for
handling
mouse events and switching input focus.

According to yet another aspect of the present invention there is
provided a computing device, comprising:
a user input device;
a display configured to detect said user input device; and
a processor displaying an application window corresponding to an
active application having input focus of said computing device, displaying a
user
input window corresponding to a user input application while said application
window is displayed, said user input window including a plurality of onscreen
keys
corresponding at least to textual characters and receiving user input on said
display,
said user input being located within said user input window, wherein said user
input
application forwards user input to said active application without invoking
code of
said operating platform responsible for handling mouse events and switching
input
focus and wherein said application window retains input focus after user input
is
received.

According to yet another aspect of the present invention there is
provided a computing device running on a multitasking operating platform and
including an active application having input focus and a user input keyboard
application, said computing device comprising:
a touch sensitive panel;

a user input keyboard window displayed on said touch sensitive panel;
and


CA 02252302 2008-01-28

- 5h-

an active application window displayed on said touch sensitive panel,
wherein user input generated in response to user contact within said keyboard
window
is forwarded to said active application by said keyboard application without
invoking
code of said operating platform responsible for handling mouse events and
switching
input focus thereby to treat the user input as if said user input was
generated by a
physical input device.
According to yet another aspect of the present invention there is
provided a computing device running on a multitasking operating platform and
including an active application having input focus and a user input keyboard
application configured to inhibit said keyboard application from gaining
and/or
maintaining input focus, said computing device comprising:
a touch sensitive panel;
a user input keyboard window displayed on said touch sensitive panel;
and
an active application window displayed on said touch sensitive panel,
wherein said keyboard application forwards user input to said active
application while
bypassing code of said operating platform responsible for handling mouse
events and
switching input focus thereby to inhibit input focus shifting to said keyboard
application.
According to still yet another aspect of the present invention there is
provided a computing device running on a multitasking operating platform and
including an active application having input focus and a user input keyboard
application configured to inhibit said keyboard from gaining and/or
maintaining input
focus, said computing device comprising:
a touch sensitive panel;
a user input keyboard window displayed on said touch sensitive panel;
and
an active application window displayed on said touch sensitive panel,
wherein said keyboard application forwards user input to said active
application while
bypassing code of said operating platform responsible for handling mouse
events and
switching input focus so that said active application retains said input focus
during
generation and receiving of said user input.


CA 02252302 2008-01-28

-51-
According to still yet another aspect of the present invention there is
provided in a computing device having a touch sensitive panel on which an on-
screen
keyboard is displayed within a window, and running on a multitasking operating
platform, a method of managing data input comprising:
detecting user contact on said touch sensitive panel;
forwarding data generated in response to contact on said touch
sensitive panel outside of said on-screen keyboard window to said computing
device
for processing; and
forwarding data generated in response to contact on said touch
sensitive panel within said on-screen keyboard window to an active application
while
bypassing code of said operating platform responsible for handling mouse
events and
switching input focus thereby to inhibit a shift in input focus from said
active
application to said on-screen keyboard.
According to still yet another aspect of the present invention there is
provided in a computing device having a touch sensitive panel on which an on-
screen
keyboard is displayed within a window and running on a multitasking operating
platform, a method of managing data input comprising:
detecting user contact on said touch sensitive panel;
forwarding data generated in response to contact on said touch
sensitive panel outside of said on-screen keyboard window to said computing
device
for processing;
forwarding data generated in response to contact on said touch
sensitive panel within said on-screen keyboard window to an active application
while
bypassing code of said operating platform responsible for handling mouse
events and
switching input focus; and
retaining input focus with said active application at least during
generating and forwarding of data generated in response to contact on said
touch
sensitive panel within said on-screen keyboard window.

According to still yet another aspect of the present invention there is
provided in computing device running on a multitasking operating platform and
executing an active application having input focus, a method of inputting data
to the
active application via a user input application, said active application and
user input


CA 02252302 2008-01-28

-5j -

application being displayed within respective windows on a touch sensitive
panel,
said method comprising:

detecting user contact within the window of said user input application
and generating data corresponding to said user contact;
conveying the generated data to said active application while
bypassing code of said operating platform responsible for handling mouse
events and
switching input focus; and
retaining input focus with said active application.

The present invention provides advantages in that when the on-screen
keyboard is used to enter data text into an active application, the active
application
does not flicker or close its open menus. This is achieved by inhibiting input
focus
from changing to the on-screen keyboard when it is touched. Also, since input
focus


CA 02252302 1998-10-30

-6-
does not change, text insertion points in active applications are not lost
when the on-
screen keyboard is used to enter data into the active application.

Brief Description Of The Drawings

An embodiment of the present invention will now be described more
fully with reference to the accompanying drawings in which:

Figure 1 is a schematic view of an interactive display system including
an electronic writeboard having a touch sensitive panel;

Figure 2 is a front view of the touch sensitive panel of Figure 1 on

which an active application and an on-screen keyboard in accordance with the
present
invention are projected; and
Figure 3 is a flow chart illustrating the steps performed by the
electronic writeboard when the on-screen keyboard is used to enter data into
an active
application.

Detailed Description Of The Preferred Embodiment
Referring now to Figure 1, an interactive display system is shown and
is generally indicated to by reference numeral 10. As can be seen, interactive
display
system 10 includes an electronic writeboard 12 (EWB) of the type manufactured
by

SMART Technologies Inc. under model No. SB360 and sold under the name SMART
Board. The SMART Board 12 includes a touch sensitive panel 14 and a tool tray
16
accommodating a plurality of tools 18 and having at least one user selectable
button
19. The tools 18 include a number of colored pens and an eraser. A controller
28
having memory is installed in a slot of a personal computer 26 and executes a

controller application to control the overall operation of the SMART Board 12.
A
driver in the form of an application is executed by the personal computer 26
and
translates serial data from the controller 28 into events such as mouse
events, tool
change events and button press events.

The personal computer 26 is connected to a liquid crystal display panel
30 positioned on an overhead projector 32 so that the screen image presented
on the


CA 02252302 2005-02-21

-7-=
monitor of the personal computer is projected onto the touch sensitive panel
14. As
will be appreciated, the touch sensitive pane I can be placed in front of a
rear
projection system.
The SMART Board 12 can operate either in a projection mode or in a
non-projection mode. As mentioned previously, in the projection mode, screen
images generated by the personal computer 26 are projected onto the touch
sensitive
panel 14 and the SMART Board 12 functions as a giant mouse. The touch
sensitive
panel 14 is mapped onto the drawing area of the running application so that
writing
and erasing on the touch sensitive panel 14 is stored as a computerized image
and
projected onto the touch sensitive panel.

When the electronic writeboard 12 and the personal computer 26 are
connected and initialized, the electronic writeboard driver registers with the
writeboard applications software executed by the personal computer. During
this
registration process, the driver determines the messages to which the
applications

software responds. Once the registration prccess has been completed, events
generated by the SMART Board 12 as a result of user contact with the touch
sensitive
panel, selection of a tool, pressing of a buttoil etc. are sent to the
application software.

If the application software is not "aware" of the SMART Board 12
such as Microsoft NetMeeting i.e. the applications software does not use the
SMART
Board SDK source code, the personal compL.ter 26 executes Aware interface
software
to interface the SMART Board 12 and the afplications software.

In the preferred embodiment, the personal computer 26 runs a
Windows 95 platform and executes a variety of applications programs. In the
projection mode, touching the touch sensitiv,,- panel results in mouse events
being
generated and processed by the personal corriputer. To allow a user to enter
text data
into an active application executed by the personal computer without having to
use the


CA 02252302 1998-10-30

-8-
keyboard of the personal computer 26, the controller 28 executes a keyboard
application so that an on-screen keyboard 40 is presented within a window on
the
touch sensitive panel 14 (see Figure 2). As can be seen, the on-screen
keyboard 40
includes a plurality of selectable keys 42 and in this embodiment is based on
a

"QWERTY" layout.

Unlike conventional prior art on-screen keyboards, the on-screen
keyboard 40 in accordance with the present invention allows a user to enter
data into
an active application by touching the on-screen keyboard without input focus
changing to the on-screen keyboard even though the personal computer 26 runs a

Windows platform. To achieve this, the driver and the controller 28 invoke a
private communication mechanism so that mouse events generated as a result of
contact with the touch sensitive panel 14 within the on-screen keyboard window
are
sent directly to the controller 28 instead of being routed through Windows .
In this
manner, the code in Windows responsible for the automatic activation and de-

activation of applications in response to mouse events is bypassed. Thus, the
controller 28 is able to process on-screen keyboard events without input focus
changing. As a result, the problems associated with prior art on-screen
keyboards
described previously are overcome. Further specifics of the private
communication
mechanism established between the driver and the controller 28 will now be
described
with particular reference to Figure 3.

In operation, when the SMART Board 12 is initiated, the controller 28
registers the on-screen keyboard 40 with the driver by submitting two pieces
of
information to the driver. The first piece of information is the window handle
of the
keyboard window which includes its position on the touch sensitive panel 14.
The

second piece of information is a set of message identifiers and flags which
allows the
driver to communicate with the keyboard application executed by the controller
28.
Once the controller 28 has registered with the driver, when a user
contacts the touch sensitive panel 14 and a mouse event is generated (block
48), the
driver checks to see if the mouse down event occurred within the keyboard
window
(block 50). If the mouse down event occurred outside of the keyboard window,
the


CA 02252302 1998-10-30

-9-
driver simply sends the mouse event to Windows (block 52). Windows in turn
handles the mouse down event in the conventional manner and the driver awaits
the
next mouse event.

If the mouse down event occurs within the keyboard window, the
driver notifies the controller 28 of the mouse down event using the set of
message
identifiers and flags. The driver also sets a second flag so that all
subsequent mouse
events are sent to the keyboard application until a mouse up event is
detected. When
the controller 28 receives the identifiers and flags which represent the key
selected by
the user, the keyboard application proceeds to process the mouse down event
and

sends the selected key data to the active application with input focus. The
text
corresponding to the activated key 42 of on-screen keyboard is therefore,
entered into
the active application (blocks 54 and 56).
If a mouse move event or a mouse up event is generated, the

driver checks to see if the flag was set to determine whether the event should
be sent
to the controller 28. If the flag is set, the mouse move or mouse up event is
sent to the
keyboard application for processing. If the flag is not set, the mouse event
is sent to
Windows .
This process is repeated for each mouse down event so that mouse
events occurring within the keyboard window bypass Windows and thereby
inhibit
input focus changing from the active application to the on-screen keyboard 40.

Source code for the driver and controller to perform the above-described
operation is
set out in Appendix A.

It is possible for the on-screen keyboard 40 to become active and gain
input focus through use of an Alt-Tab hotkey sequence or through the WindowsOO

Task Manager. If the on-screen keyboard 40 becomes active, the controller 28
automatically notifies Windows to switch input focus to the next application
in the
Windows task list. In this manner, if input focus is inadvertently switched
to the on-
screen keyboard 40, it is quickly switched to another application.


CA 02252302 1998-10-30

-10-
As will be appreciated, the present invention allows an on-screen
keyboard to be used to enter text into an active application while avoiding
the
problems associated with prior art on-screen keyboards.

Although the electronic writeboard 12 has been described as a SMART
Board including a tool tray with colored pens and an eraser, those of skill in
the art
will appreciate that the on-screen keyboard can be used with other electronic
writeboards which use software tool panels allowing a user to select a tool.
Also,
although a preferred embodiment of the present invention has been described,
those of
skill in the art will appreciate that variations and modifications may be made
without

departing from the spirit and scope thereof as defined by the appended claims.


CA 02252302 1998-10-30

-11-
APPENDIX A
KEYBOARD APPLICATION

STRUCTURE registrationBlock
{
WORD messageType;
WORD downMessage;
WORD upMessage;
WORD moveMessage;
WINDOW windowHandle;
};

WINDOW
smartBoardDriverWindow=FindWindow(driver_class_name,driver_title);
if (EXISTS(smartBoardDriverWindow))
{
//create a block of data that we use to pass information to the driver
registrationBlock myBlock;
//The driver asks as what messages we would like to receive for the various
//mouse movement events.
myB lock.messageType=REGISTER_MOUSE;
myB lock. downMessage=DOWN_MES SAGE;
myBlock.upMessage=UP_MESSAGE;
myBlock.moveMessage=MOVE_MESSAGE;
myB lock.windowHandle=mainWindowHandle;

//Use a special windows message called COPYDATA to send a block
//of information to the driver
S endMes s age(smartB o ardDriverW indow, WM_C OPYDATA, &myB lock);
}

OnDownMessage(POSITION pos,FLAGS flags)
{
savedbutton=GetButtonFromPosition(pos);
if (savedbutton!=0)
{
savebutton. drawpusheddown();
}
}
OnMoveMessage(POSITION pos,FLAGS flags)
{
//No button was pressed, so ignore moves.


CA 02252302 1998-10-30

-12-
APPENDIX A (CON'T)
if (savedbutton=0)
return;
BUTTON newbutton=GetButtonFromPosition(pos);
if (newbuton!=savedbutton)
{
//move button up if mouse moves of it
newbutton.Drawunpushedbutton();
return;
}
else
{
newbutton.Drawpushedbutton();
}
}
OnUpMessage(POSITION pos)
{
//No button was pressed, so ignore the up
if (savedbutton=0)
return;
if (GetButtonFromPosition(pos)!=savedButton)
return;
savedbutton.Drawunpushedbutton();
savedbutton.SendKeyPressToWindowsQ;
savedbutton=0;
}

BOARD DRIVER APPLICATION

void HandleBoardRegisrationBlock(registrationBlock theBlock)
{
//When we get the block from the keyboard asking for us to register it to get
//mouse events directly
//we store it in a list of these blocks so that many applications can use this
//approach if needed.
listOfRegisteredB locks.AddToEnd(theBlock);
}

//This function is called when the board driver is about to send a mouse
//down to the system.
void HandleMouseDownEvent(POSITION pos,FLAGS flags)


CA 02252302 1998-10-30

-13-
APPENDIX A (CON'T)
{
//What window are we pushing on.
WINDOW PressedOn=WIndowFromPoint(pos);
//is it one of our registered windows?
for (INTEGER i=0;i<listOfRegisteredBlocks.GetNumberOfBlocks();i++)
{
registrationBlock
block=listOfRegisteredBlocks. GetBlockBylndex(i);
if (block.windowHandle=PressedOn)
{
//Press was on the registered window. Send it the message
SendMessage(RegisteredWindow,block. downMessage, flags,pos);
//save the handle so that all events until the up event can go to
//the same place.
blockForSubsequentEvents=block;
return;
}
}
//The window we are clicking on is not one of our registered windows, so
//send the events directly to the operating system
blockForSubsequentEvents=0;
SendMessageToSystem(WM_LBUTTONDOWN,flags,pos);
}

void HandleMouseMoveEvent(POSITION pos,FLAGS flags)
{
//If we sent the down event to a special window all subsequent events must go
//there too
if (blockForSubsequentEvents!=0)
{
//Press was on the registered window. Send it the message
SendMessage(blockForSubsequentEvents.windowHandle,
blockForSubsequentEvents. downMessage,flags,po s);
}
else
{
SendMessageToSystem(WM_MOUSEMOVE,flags,pos);
}
}
void HandleMouseUpEvent(POSITION pos,FLAGS flags)


CA 02252302 1998-10-30

-14-
APPENDIX A (CON'T)
{
//If we sent the down event to a special window all subsequent events must go
//there too
if (blockForSubsequentEvents!=0)
{
//Press was on the registered window. Send it the message
SendMessage(blockForSubsequentEvents.windowHandle,
blockForSubsequentEvents.upMessage,flags,pos);
}
else
{
SendMessageToSystem(WM_LBUTTONUP,flags,pos);
}
blockForSubsequentEvents=0;
//reset it. It will be initialized again on the next button down.
}

Representative Drawing
A single figure which represents the drawing illustrating the invention.
Administrative Status

For a clearer understanding of the status of the application/patent presented on this page, the site Disclaimer , as well as the definitions for Patent , Administrative Status , Maintenance Fee  and Payment History  should be consulted.

Administrative Status

Title Date
Forecasted Issue Date 2009-01-20
(22) Filed 1998-10-30
(41) Open to Public Inspection 2000-04-30
Examination Requested 2003-09-12
(45) Issued 2009-01-20
Expired 2018-10-30

Abandonment History

There is no abandonment history.

Payment History

Fee Type Anniversary Year Due Date Amount Paid Paid Date
Registration of a document - section 124 $100.00 1998-10-30
Application Fee $300.00 1998-10-30
Maintenance Fee - Application - New Act 2 2000-10-30 $100.00 2000-09-25
Maintenance Fee - Application - New Act 3 2001-10-30 $100.00 2001-10-02
Maintenance Fee - Application - New Act 4 2002-10-30 $100.00 2002-07-30
Maintenance Fee - Application - New Act 5 2003-10-30 $150.00 2003-08-08
Request for Examination $400.00 2003-09-12
Maintenance Fee - Application - New Act 6 2004-11-01 $200.00 2004-10-13
Maintenance Fee - Application - New Act 7 2005-10-31 $200.00 2005-08-24
Maintenance Fee - Application - New Act 8 2006-10-30 $200.00 2006-08-24
Maintenance Fee - Application - New Act 9 2007-10-30 $200.00 2007-10-16
Final Fee $300.00 2008-10-30
Maintenance Fee - Application - New Act 10 2008-10-30 $250.00 2008-10-30
Registration of a document - section 124 $100.00 2009-02-02
Section 8 Correction $200.00 2009-08-18
Maintenance Fee - Patent - New Act 11 2009-10-30 $250.00 2009-10-27
Maintenance Fee - Patent - New Act 12 2010-11-01 $250.00 2010-10-15
Maintenance Fee - Patent - New Act 13 2011-10-31 $250.00 2011-10-04
Maintenance Fee - Patent - New Act 14 2012-10-30 $250.00 2012-10-15
Registration of a document - section 124 $100.00 2013-08-01
Registration of a document - section 124 $100.00 2013-08-06
Maintenance Fee - Patent - New Act 15 2013-10-30 $450.00 2013-09-30
Maintenance Fee - Patent - New Act 16 2014-10-30 $650.00 2014-12-08
Maintenance Fee - Patent - New Act 17 2015-10-30 $450.00 2015-10-26
Maintenance Fee - Patent - New Act 18 2016-10-31 $450.00 2016-10-24
Maintenance Fee - Patent - New Act 19 2017-10-30 $450.00 2017-09-27
Owners on Record

Note: Records showing the ownership history in alphabetical order.

Current Owners on Record
SMART TECHNOLOGIES ULC
Past Owners on Record
SMART TECHNOLOGIES INC.
VAN IEPEREN, TACO
Past Owners that do not appear in the "Owners on Record" listing will appear in other documentation within the application.
Documents

To view selected files, please enter reCAPTCHA code :



To view images, click a link in the Document Description column. To download the documents, select one or more checkboxes in the first column and then click the "Download Selected in PDF format (Zip Archive)" or the "Download Selected as Single PDF" button.

List of published and non-published patent-specific documents on the CPD .

If you have any difficulty accessing content, you can call the Client Service Centre at 1-866-997-1936 or send them an e-mail at CIPO Client Service Centre.


Document
Description 
Date
(yyyy-mm-dd) 
Number of pages   Size of Image (KB) 
Claims 2004-07-09 21 948
Description 2004-07-09 22 1,040
Representative Drawing 2000-04-26 1 11
Cover Page 2009-10-30 3 106
Cover Page 2000-04-26 1 39
Abstract 1998-10-30 1 22
Description 1998-10-30 14 566
Claims 1998-10-30 4 133
Drawings 1998-10-30 3 91
Drawings 2004-04-16 3 251
Description 2005-02-21 22 965
Claims 2005-02-21 21 807
Description 2008-01-28 24 1,058
Claims 2008-01-28 22 872
Representative Drawing 2008-12-23 1 134
Cover Page 2008-12-23 2 171
Correspondence 2004-08-12 1 15
Prosecution-Amendment 2004-08-20 4 183
Assignment 1999-03-02 3 103
Correspondence 1998-12-15 1 31
Assignment 1998-10-30 2 95
Fees 2003-08-08 1 46
Prosecution-Amendment 2003-09-12 1 51
Prosecution-Amendment 2009-10-30 2 51
Fees 2008-10-30 1 58
Fees 2001-10-02 1 52
Fees 2000-09-25 1 50
Fees 2002-07-30 1 60
Prosecution-Amendment 2004-02-12 1 28
Prosecution-Amendment 2004-04-16 4 273
Prosecution-Amendment 2004-07-16 3 124
Prosecution-Amendment 2004-07-09 34 1,621
Correspondence 2005-02-21 4 139
Prosecution-Amendment 2005-02-21 34 1,386
Fees 2004-10-13 1 42
Maintenance Fee Payment 2017-09-27 3 103
Fees 2005-08-24 1 52
Assignment 1998-10-30 3 131
Fees 2006-08-24 1 50
Prosecution-Amendment 2007-07-26 4 134
Fees 2007-10-16 1 64
Prosecution-Amendment 2008-01-28 35 1,467
Correspondence 2008-10-30 1 59
Assignment 2009-02-02 8 308
Correspondence 2009-08-18 6 186
Fees 2009-10-27 1 65
Fees 2010-10-15 1 67
Fees 2011-10-04 1 62
Assignment 2013-08-01 18 734
Assignment 2013-08-06 18 819